diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,64 +1,90 @@
 # $Id: Makefile,v 1.93 2006/11/24 07:41:37 hxml Exp $
 
+include Version.mk
+
 HXT_HOME	= .
 
-software	= hxt
-VERSION		= 7.5
-dist		= $(software)-$(VERSION)
-DIST		= $(software)-$(VERSION)
-DIST_FILES	= Makefile README LICENCE Setup.lhs hxt.cabal
-DIST_TAR	= $(dist).tar.gz
+DIST		= $(DIST_NAME)
+DIST_TAR	= $(DIST_NAME).tar.gz
+DIST_FILES	= Makefile Version.mk README LICENCE Setup.lhs $(SOFTWARE).cabal
 
-VERSIONTAG	= $(software)-7-05				# use: make tag for creating darcs tag
-LASTVERSION	= 7.4
+SETUP		= Setup.lhs
+
+VERSIONTAG	= $(DIST_NAME)
 PUBDATE		:= $(shell date +%Y-%m-%d)
 
-EDIT_VERSION	= sed 's/%DISTFILE%/$(DIST)/g' \
+EDIT_VERSION	= sed 's/%DISTFILE%/$(DIST_NAME)/g' \
 		| sed 's/%VERSION%/$(VERSION)/g' \
 		| sed 's/%PUBDATE%/$(PUBDATE)/g'
 
+HSCOLOUR	= HsColour
+HSCOLOUR_CSS	= doc/hscolour.css
 
 # --------------------------------------------------
 
 all		:
-		$(MAKE) -C src      all VERSION=$(VERSION)
-		$(MAKE) allexamples
+		$(MAKE) -C src all
+		$(MAKE)        $(SOFTWARE).cabal
+		$(MAKE)        allexamples
 
 allexamples	:
-		$(MAKE) -C examples all VERSION=$(VERSION)
-
-doc		:
-		$(MAKE) -C src doc        VERSION=$(VERSION)
-		$(MAKE) -C src doc_filter VERSION=$(VERSION)
-		$(MAKE) -C src doc_arrow  VERSION=$(VERSION)
+		$(MAKE) -C examples all
 
 test		:
-		$(MAKE) -C examples test VERSION=$(VERSION) LASTVERSION=$(LASTVERSION)
+		$(MAKE) -C examples test
 
-setup		: Setup.lhs
-		ghc -package Cabal Setup.lhs -o setup
-		rm -f Setup.hi Setup.o
+# ------------------------------------------------------------
 
-hxt.cabal	: src/hxt-package.hs src/Makefile Makefile
-		$(MAKE) -C src ../hxt.cabal VERSION=$(VERSION)
+cabal		:
+		$(MAKE) cabal_configure cabal_build cabal_doc cabal_install
 
-dist		: all doc hxt.cabal
+cabal_configure :
+		runhaskell $(SETUP) configure
+
+cabal_doc	:
+		$(HSCOLOUR) -print-css > $(HSCOLOUR)
+		runhaskell $(SETUP) haddock --hyperlink-source --hscolour-css=$(HSCOLOUR)
+		rm -f $(HSCOLOUR)
+
+cabal_build	:
+		runhaskell $(SETUP) build
+
+cabal_install	:
+		sudo runhaskell $(SETUP) build
+
+# ------------------------------------------------------------
+
+$(SOFTWARE).cabal	: src/$(SOFTWARE)-package.hs src/Makefile Makefile
+		$(MAKE) -C src ../$(SOFTWARE).cabal
+
+DOC_HXT		= $(DIST)/doc/hdoc
+
+doc		: $(SOFTWARE).cabal
+		$(MAKE) cabal_configure cabal_doc
+		[ -d $(DOC_HXT) ] || mkdir -p $(DOC_HXT)
+		( cd dist/doc/html/$(SOFTWARE) ; tar cf - . ) | ( cd $(DOC_HXT) ; tar xf - )
+
+dist		: all doc
 		[ -d $(DIST) ] || mkdir -p $(DIST)
-		$(MAKE) -C src      dist DIST=../$(DIST)
-		$(MAKE) -C examples dist DIST=../$(DIST)
-		$(MAKE) -C doc      dist DIST=../$(DIST)
+		$(MAKE) -C src      dist
+		$(MAKE) -C examples dist
+		$(MAKE) -C doc      dist
 		cat doc/index.html | $(EDIT_VERSION) > $(DIST)/doc/index.html
 		cp $(DIST_FILES) $(DIST)
 
 tarball		: dist
 		tar -zcvf $(DIST_TAR) $(DIST)
 
+# ------------------------------------------------------------
+
 clean		:
 		$(MAKE) -C src      clean
 		$(MAKE) -C examples clean
 		$(MAKE) -C doc      clean
-		rm -rf $(DIST) $(DIST_TAR) hxt.cabal setup .setup-config .installed-pkg-config dist
+		rm -rf $(DIST) $(DIST_TAR) $(SOFTWARE).cabal setup .setup-config .installed-pkg-config dist
 
+# ------------------------------------------------------------
+
 tag		:
 		darcs tag $(VERSIONTAG) .
 
@@ -68,10 +94,10 @@
 uninstall		:
 		$(MAKE) -C src uninstall
 
-distdate	= $(shell date -r $(DIST_TAR) +%Y-%m-%d.%R)
+DISTDATE	= $(shell date -r $(DIST_TAR) +%Y-%m-%d.%R)
 
 distcopy	: $(DIST_TAR)
-		scp $(DIST_TAR) hxt@darcs.fh-wedel.de:/home/hxt/hxt/hxt-head-$(distdate).tar.gz
+		scp $(DIST_TAR) hxt@darcs.fh-wedel.de:/home/hxt/$(SOFTWARE)/$(SOFTWARE)-head-$(DISTDATE).tar.gz
 
 # --------------------------------------------------
 
@@ -85,8 +111,9 @@
 
 webpage		: tarball
 		[ ! -d $(WEBHOME) ] || echo "please clean $(WEBHOME) first: make cleanwebpage"
-		mkdir -p $(WEBHOME)
-		cp -r doc/hdoc doc/hdoc_filter doc/hdoc_arrow $(WEBHOME)/
+		[ -d $(WEBHOME) ] || mkdir -p $(WEBHOME)
+		[ -d $(WEBHOME)/hdoc ] || mkdir -p $(WEBHOME)/hdoc
+		cp -r dist/doc/html/$(SOFTWARE)/* $(WEBHOME)/hdoc
 		cp -r doc/hvalidator/thesis $(WEBHOME)/thesis
 		cp -f doc/hvalidator/thesis.ps doc/hvalidator/thesis.pdf $(WEBHOME) || true
 		[ -d $(WEBHOME)/hxpath ] || mkdir -p $(WEBHOME)/hxpath
@@ -99,9 +126,6 @@
 		[ -d $(WEBHOME)/xslt ] || mkdir -p $(WEBHOME)/xslt
 		cp -f doc/xslt/thesis.pdf $(WEBHOME)/xslt
 		[ -d $(WEBHOME)/examples ] || mkdir -p $(WEBHOME)/examples
-		cp -f examples/hsvg/*.html.jpg $(WEBHOME)/examples
-		cp -f examples/hsvg/*.html.svg $(WEBHOME)/examples
-		cp -f examples/hfilter/FilterExample.hs examples/hunit/HUnitExample.hs examples/hsvg/TreeVisualisation.hs $(WEBHOME)/examples
 		cp -f examples/arrows/AGentleIntroductionToHXT/SimpleExamples.hs $(WEBHOME)/examples
 		cat doc/index.html | $(EDIT_VERSION) > $(WEBHOME)/index.html
 		cp $(DIST_TAR) $(WEBHOME)
@@ -113,6 +137,29 @@
 cleanwebpage	:
 		rm -rf $(WEBHOME)
 
+
+# --------------------------------------------------
+
+# make a clean installation from distribution tar
+
+PROD_DIR	= ~/tmp
+INSTALL		= echo now run: "(" cd $(PROD_DIR)/$(DIST) ";" 
+INSTEND		= ")"
+
+distbuild	: tarball
+		( [ -f $(DIST_TAR) ] || exit 1 \
+		; cp -f $(DIST_TAR) $(PROD_DIR) || exit 1 \
+		; cd $(PROD_DIR) || exit 1 \
+		; rm -rf $(DIST) \
+		; tar xvzf $(DIST_TAR) \
+		; cd $(DIST) || exit 1 \
+		; runhaskell $(SETUP) configure || exit 1 \
+		; runhaskell $(SETUP) build || exit 1 \
+		; $(INSTALL) sudo runhaskell $(SETUP) install $(INSTEND) \
+		)
+
+distinstall	:
+		$(MAKE) distbuild INSTALL="" INSTEND=""
 
 # --------------------------------------------------
 #
diff --git a/Version.mk b/Version.mk
new file mode 100644
--- /dev/null
+++ b/Version.mk
@@ -0,0 +1,7 @@
+# Version.mk
+# Version numbering for HXT
+
+SOFTWARE	= hxt
+VERSION		= 8.0.0
+LASTVERSION	= 7.5
+DIST_NAME	= $(SOFTWARE)-$(VERSION)
diff --git a/doc/Makefile b/doc/Makefile
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,5 +1,7 @@
 # $Id: Makefile,v 1.5 2006/11/11 15:36:03 hxml Exp $
 
+include ../Version.mk
+
 HXT_HOME	= ..
 
 all		:
@@ -7,10 +9,9 @@
 
 test		:
 
-DIST		= $(HXT_HOME)/dist
+DIST		= ../$(DIST_NAME)
 DIST_DIR	= $(DIST)/doc
 DIST_FILES	= Makefile \
-		  hdoc hdoc_filter hdoc_arrow \
 		  hvalidator/thesis \
 		  $(wildcard hxpath/*.pdf) \
 		  relaxng/thesis.pdf \
@@ -23,6 +24,6 @@
 		cp hvalidator/thesis.pdf $(DIST_DIR)
 
 clean		:
-		rm -rf hdoc/* hdoc_arrow/* hdoc_filter/*
+		rm -rf hdoc
 
 .PHONY		: all test dist clean
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"
+><A HREF="src/Control-Arrow-ArrowIO.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -195,7 +195,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > Arrow a =&gt; <A NAME="t%3AArrowIO"
@@ -205,7 +208,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#ArrowIO"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -226,13 +236,23 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AarrIO"
 ></A
 ><B
 >arrIO</B
 > :: (b -&gt; IO c) -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#arrIO"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construct an arrow from an IO action
@@ -243,13 +263,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AarrIO0"
 ></A
 ><B
 >arrIO0</B
 > :: IO c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#arrIO0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construct an arrow from an IO action without any parameter
@@ -260,13 +290,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AarrIO2"
 ></A
 ><B
 >arrIO2</B
 > :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#arrIO2"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 2 argument arrow from a binary IO action
@@ -281,13 +321,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AarrIO3"
 ></A
 ><B
 >arrIO3</B
 > :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#arrIO3"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 3 argument arrow from a 3-ary IO action
@@ -302,13 +352,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AarrIO4"
 ></A
 ><B
 >arrIO4</B
 > :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#arrIO4"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 4 argument arrow from a 4-ary IO action
@@ -362,7 +422,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
@@ -374,7 +437,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#ArrowIOIf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -395,12 +465,22 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisIOA"
 ></A
 ><B
 >isIOA</B
 > :: (b -&gt; IO Bool) -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIO.html#isIOA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIf.hs"
+><A HREF="src/Control-Arrow-ArrowIf.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -182,6 +182,12 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AfilterA"
+>filterA</A
+> :: a b c -&gt; a b b</TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Acontaining"
 >containing</A
 > :: a b c -&gt; a c d -&gt; a b c</TD
@@ -257,7 +263,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
@@ -269,7 +278,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#ArrowIf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -306,13 +322,23 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AifA"
 ></A
 ><B
 >ifA</B
 > :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#ifA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >if lifted to arrows
@@ -323,13 +349,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AifP"
 ></A
 ><B
 >ifP</B
 > :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#ifP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut: <TT
@@ -342,13 +378,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aneg"
 ></A
 ><B
 >neg</B
 > :: a b c -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#neg"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >negation: <TT
@@ -361,13 +407,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Awhen"
 ></A
 ><B
 >when</B
 > :: a b b -&gt; a b c -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#when"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><TT
@@ -380,13 +436,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwhenP"
 ></A
 ><B
 >whenP</B
 > :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#whenP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut: <TT
@@ -399,13 +465,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwhenNot"
 ></A
 ><B
 >whenNot</B
 > :: a b b -&gt; a b c -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#whenNot"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><TT
@@ -418,13 +494,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwhenNotP"
 ></A
 ><B
 >whenNotP</B
 > :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#whenNotP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >like <TT
@@ -439,13 +525,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aguards"
 ></A
 ><B
 >guards</B
 > :: a b c -&gt; a b d -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#guards"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><TT
@@ -458,13 +554,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AguardsP"
 ></A
 ><B
 >guardsP</B
 > :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#guardsP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >like <TT
@@ -479,13 +585,56 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AfilterA"
+></A
+><B
+>filterA</B
+> :: a b c -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#filterA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>shortcut for <TT
+> f <TT
+><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"
+>guards</A
+></TT
+> this </TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Acontaining"
 ></A
 ><B
 >containing</B
 > :: a b c -&gt; a c d -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#containing"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -505,13 +654,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnotContaining"
 ></A
 ><B
 >notContaining</B
 > :: a b c -&gt; a c d -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#notContaining"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -531,13 +690,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AorElse"
 ></A
 ><B
 >orElse</B
 > :: a b c -&gt; a b c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#orElse"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><TT
@@ -550,7 +719,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchoiceA"
 ></A
 ><B
@@ -558,7 +730,14 @@
 > :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
 >IfThen</A
 > (a b c) (a b d)] -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#choiceA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -587,13 +766,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtagA"
 ></A
 ><B
 >tagA</B
 > :: a b c -&gt; a b (Either b b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#tagA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right
@@ -604,13 +793,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AspanA"
 ></A
 ><B
 >spanA</B
 > :: a b b -&gt; a [b] ([b], [b])</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#spanA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -631,13 +830,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApartitionA"
 ></A
 ><B
 >partitionA</B
 > :: a b b -&gt; a [b] ([b], [b])</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#partitionA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -712,7 +921,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AIfThen"
@@ -720,6 +932,13 @@
 ><B
 >IfThen</B
 > a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowIf.html#IfThen"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowList.hs"
+><A HREF="src/Control-Arrow-ArrowList.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -309,7 +309,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A NAME="t%3AArrowList"
@@ -319,7 +322,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#ArrowList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -353,13 +363,23 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aarr2"
 ></A
 ><B
 >arr2</B
 > :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#arr2"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 2 argument arrow from a binary function
@@ -374,13 +394,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aarr3"
 ></A
 ><B
 >arr3</B
 > :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#arr3"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 3 argument arrow from a 3-ary function
@@ -395,13 +425,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aarr4"
 ></A
 ><B
 >arr4</B
 > :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#arr4"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 4 argument arrow from a 4-ary function
@@ -416,13 +456,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aarr2A"
 ></A
 ><B
 >arr2A</B
 > :: (b -&gt; a c d) -&gt; a (b, c) d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#arr2A"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >construction of a 2 argument arrow from a singe argument arrow
@@ -433,13 +483,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AarrL"
 ></A
 ><B
 >arrL</B
 > :: (b -&gt; [c]) -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#arrL"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >constructor for a list arrow from a function with a list as result
@@ -450,13 +510,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aarr2L"
 ></A
 ><B
 >arr2L</B
 > :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#arr2L"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >constructor for a list arrow with 2 arguments
@@ -467,13 +537,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AconstA"
 ></A
 ><B
 >constA</B
 > :: c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#constA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >constructor for a const arrow: <TT
@@ -486,13 +566,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AconstL"
 ></A
 ><B
 >constL</B
 > :: [c] -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#constL"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >constructor for a const arrow: <TT
@@ -505,13 +595,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisA"
 ></A
 ><B
 >isA</B
 > :: (b -&gt; Bool) -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#isA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >builds an arrow from a predicate.
@@ -523,13 +623,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%3E%3E."
 ></A
 ><B
 >(&gt;&gt;.)</B
 > :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%3E%3E."
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -552,13 +662,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%3E."
 ></A
 ><B
 >(&gt;.)</B
 > :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%3E."
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >combinator for converting the result of an arrow into a single element result
@@ -569,13 +689,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlistA"
 ></A
 ><B
 >listA</B
 > :: a b c -&gt; a b [c]</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#listA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -601,13 +731,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunlistA"
 ></A
 ><B
 >unlistA</B
 > :: a [b] b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#unlistA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -631,13 +771,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Athis"
 ></A
 ><B
 >this</B
 > :: a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#this"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the identity arrow, alias for returnA
@@ -648,13 +798,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Anone"
 ></A
 ><B
 >none</B
 > :: a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#none"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the zero arrow, alias for zeroArrow
@@ -665,13 +825,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwithDefault"
 ></A
 ><B
 >withDefault</B
 > :: a b c -&gt; c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#withDefault"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -691,13 +861,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Asingle"
 ></A
 ><B
 >single</B
 > :: a b c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#single"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -726,13 +906,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AapplyA"
 ></A
 ><B
 >applyA</B
 > :: a b (a b c) -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#applyA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -783,13 +973,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%3C"
 ></A
 ><B
 >($&lt;)</B
 > :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%24%3C"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -868,13 +1068,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%3C%3C"
 ></A
 ><B
 >($&lt;&lt;)</B
 > :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%3C"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -904,13 +1114,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%3C%3C%3C"
 ></A
 ><B
 >($&lt;&lt;&lt;)</B
 > :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%3C%3C"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -933,13 +1153,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%3C%3C%3C%3C"
 ></A
 ><B
 >($&lt;&lt;&lt;&lt;)</B
 > :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%3C%3C%3C"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -962,13 +1192,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%3C%24"
 ></A
 ><B
 >($&lt;$)</B
 > :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%24"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1086,13 +1326,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmergeA"
 ></A
 ><B
 >mergeA</B
 > :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#mergeA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1137,13 +1387,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aperform"
 ></A
 ><B
 >perform</B
 > :: a b c -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#perform"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1162,13 +1422,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcatA"
 ></A
 ><B
 >catA</B
 > :: [a b c] -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#catA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1188,12 +1458,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AseqA"
 ></A
 ><B
 >seqA</B
 > :: [a b b] -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowList.html#seqA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowState.hs"
+><A HREF="src/Control-Arrow-ArrowState.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -171,7 +171,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > Arrow a =&gt; <A NAME="t%3AArrowState"
@@ -181,7 +184,14 @@
 > s a | a -&gt; s <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowState.html#ArrowState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -207,13 +217,23 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeState"
 ></A
 ><B
 >changeState</B
 > :: (s -&gt; b -&gt; s) -&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowState.html#changeState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >change the state of a state arrow by applying a function
@@ -226,13 +246,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaccessState"
 ></A
 ><B
 >accessState</B
 > :: (s -&gt; b -&gt; c) -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowState.html#accessState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >access the state with a function using the arrow input
@@ -244,13 +274,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetState"
 ></A
 ><B
 >getState</B
 > :: a b s</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowState.html#getState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -268,13 +308,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetState"
 ></A
 ><B
 >setState</B
 > :: a s s</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowState.html#setState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -292,12 +342,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnextState"
 ></A
 ><B
 >nextState</B
 > :: (s -&gt; s) -&gt; a b s</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowState.html#nextState"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Control-Arrow-ArrowStrict.html b/doc/hdoc/Control-Arrow-ArrowStrict.html
--- a/doc/hdoc/Control-Arrow-ArrowStrict.html
+++ b/doc/hdoc/Control-Arrow-ArrowStrict.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowStrict.hs"
+><A HREF="src/Control-Arrow-ArrowStrict.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -127,7 +127,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstrictA"
 ></A
 ><B
@@ -135,6 +138,13 @@
 > :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
 >DeepSeq</A
 > b) =&gt; a b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowStrict.html#strictA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowTree.hs"
+><A HREF="src/Control-Arrow-ArrowTree.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -319,7 +319,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
@@ -331,7 +334,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#ArrowTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -357,7 +367,10 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetChildren"
 ></A
 ><B
@@ -365,7 +378,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#getChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >select the children of the root of a tree
@@ -376,7 +396,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetNode"
 ></A
 ><B
@@ -384,7 +407,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#getNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >select the attribute of the root of a tree
@@ -395,7 +425,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetChildren"
 ></A
 ><B
@@ -403,7 +436,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; [t b] -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#setChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >substitute the children of the root of a tree
@@ -414,7 +454,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetNode"
 ></A
 ><B
@@ -422,7 +465,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; b -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#setNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >substitute the attribute of the root of a tree
@@ -433,7 +483,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeChildren"
 ></A
 ><B
@@ -441,7 +494,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#changeChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >edit the children of the root of a tree
@@ -452,7 +512,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeNode"
 ></A
 ><B
@@ -460,7 +523,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#changeNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >edit the attribute of the root of a tree
@@ -471,7 +541,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessChildren"
 ></A
 ><B
@@ -479,7 +552,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#processChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -503,7 +583,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreplaceChildren"
 ></A
 ><B
@@ -511,7 +594,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#replaceChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -531,7 +621,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%2F%3E"
 ></A
 ><B
@@ -539,7 +632,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#%2F%3E"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -567,7 +667,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%3C%2F"
 ></A
 ><B
@@ -575,7 +678,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#%3C%2F"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -593,7 +703,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adeep"
 ></A
 ><B
@@ -601,7 +714,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#deep"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -627,7 +747,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adeepest"
 ></A
 ><B
@@ -635,7 +758,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#deepest"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -663,7 +793,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amulti"
 ></A
 ><B
@@ -671,7 +804,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) c -&gt; a (t b) c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#multi"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -691,7 +831,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessBottomUp"
 ></A
 ><B
@@ -699,7 +842,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#processBottomUp"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -719,7 +869,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessTopDown"
 ></A
 ><B
@@ -727,7 +880,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#processTopDown"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >similar to <TT
@@ -752,7 +912,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessBottomUpWhenNot"
 ></A
 ><B
@@ -760,7 +923,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#processBottomUpWhenNot"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >recursively transforms a whole tree by applying an arrow to all subtrees,
@@ -773,7 +943,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessTopDownUntil"
 ></A
 ><B
@@ -781,7 +954,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#processTopDownUntil"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -802,7 +982,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinsertChildrenAt"
 ></A
 ><B
@@ -810,7 +993,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#insertChildrenAt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -830,7 +1020,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinsertChildrenAfter"
 ></A
 ><B
@@ -838,7 +1031,14 @@
 > :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
 >Tree</A
 > t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#insertChildrenAfter"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >similar to <TT
@@ -853,7 +1053,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinsertTreeTemplate"
 ></A
 ><B
@@ -863,7 +1066,14 @@
 > t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
 >IfThen</A
 > (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#insertTreeTemplate"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -962,7 +1172,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > <A NAME="t%3ATree"
@@ -970,6 +1183,13 @@
 ><B
 >Tree</B
 > t </TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ArrowTree.html#Tree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOListArrow.hs"
+><A HREF="src/Control-Arrow-IOListArrow.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: IOListArrow.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Implementation of pure list arrows with io
-</P
-></TD
+>Implementation of pure list arrows with IO
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -139,7 +132,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3AIOLA"
@@ -147,6 +143,13 @@
 ><B
 >IOLA</B
 > a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-IOListArrow.html#IOLA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOStateListArrow.hs"
+><A HREF="src/Control-Arrow-IOStateListArrow.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -167,7 +167,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3AIOSLA"
@@ -175,7 +178,14 @@
 ><B
 >IOSLA</B
 > s a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-IOStateListArrow.html#IOSLA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -335,7 +345,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AliftSt"
 ></A
 ><B
@@ -345,7 +358,14 @@
 > s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
 >IOSLA</A
 > (s1, s2) b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-IOStateListArrow.html#liftSt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -362,7 +382,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArunSt"
 ></A
 ><B
@@ -372,6 +395,13 @@
 > (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
 >IOSLA</A
 > s1 b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-IOStateListArrow.html#runSt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrow.hs"
+><A HREF="src/Control-Arrow-ListArrow.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -153,7 +153,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3ALA"
@@ -161,7 +164,14 @@
 ><B
 >LA</B
 > a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ListArrow.html#LA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -297,7 +307,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfromLA"
 ></A
 ><B
@@ -307,6 +320,13 @@
 > a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
 >LA</A
 > b c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-ListArrow.html#fromLA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrows.hs"
+><A HREF="src/Control-Arrow-ListArrows.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/StateListArrow.hs"
+><A HREF="src/Control-Arrow-StateListArrow.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -153,7 +153,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3ASLA"
@@ -161,7 +164,14 @@
 ><B
 >SLA</B
 > s a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-StateListArrow.html#SLA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -305,7 +315,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfromSLA"
 ></A
 ><B
@@ -315,6 +328,13 @@
 > a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
 >SLA</A
 > s b c -&gt; a b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Arrow-StateListArrow.html#fromSLA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Control-Monad-MonadStateIO.html b/doc/hdoc/Control-Monad-MonadStateIO.html
--- a/doc/hdoc/Control-Monad-MonadStateIO.html
+++ b/doc/hdoc/Control-Monad-MonadStateIO.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"
+><A HREF="src/Control-Monad-MonadStateIO.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -189,7 +189,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3AStateIO"
@@ -197,7 +200,14 @@
 ><B
 >StateIO</B
 > state res</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#StateIO"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -264,7 +274,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aio"
 ></A
 ><B
@@ -272,7 +285,14 @@
 > :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
 >StateIO</A
 > state a</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#io"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >lift IO command to <TT
@@ -287,7 +307,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtrcState"
 ></A
 ><B
@@ -295,7 +318,14 @@
 > :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
 >StateIO</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#trcState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >state inspection command: a &quot;show&quot;-like function is applied to the state
@@ -307,7 +337,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeState"
 ></A
 ><B
@@ -315,7 +348,14 @@
 > :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
 >StateIO</A
 > state state</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#changeState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >change the state with a given function and return the new state
@@ -326,7 +366,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetState"
 ></A
 ><B
@@ -334,7 +377,14 @@
 > :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
 >StateIO</A
 > state state</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#setState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the state
@@ -345,7 +395,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetState"
 ></A
 ><B
@@ -353,7 +406,14 @@
 > :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
 >StateIO</A
 > state state</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#getState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read the state
@@ -364,7 +424,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arun"
 ></A
 ><B
@@ -372,6 +435,13 @@
 > :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
 >StateIO</A
 > state res -&gt; IO res</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Monad-MonadStateIO.html#run"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Control-Strategies-DeepSeq.html b/doc/hdoc/Control-Strategies-DeepSeq.html
--- a/doc/hdoc/Control-Strategies-DeepSeq.html
+++ b/doc/hdoc/Control-Strategies-DeepSeq.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"
+><A HREF="src/Control-Strategies-DeepSeq.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -109,7 +109,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > <A NAME="t%3ADeepSeq"
@@ -119,7 +122,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Strategies-DeepSeq.html#DeepSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -135,16 +145,26 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdeepSeq"
 ></A
 ><B
 >deepSeq</B
 > :: a -&gt; b -&gt; b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Strategies-DeepSeq.html#deepSeq"
+>Source</A
+></TD
 ></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s8"
 ></TD
@@ -398,7 +418,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%21%21"
 ></A
 ><B
@@ -406,13 +429,23 @@
 > :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
 >DeepSeq</A
 > a =&gt; (a -&gt; b) -&gt; a -&gt; b</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Strategies-DeepSeq.html#%24%21%21"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Astrict"
 ></A
 ><B
@@ -420,6 +453,13 @@
 > :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
 >DeepSeq</A
 > a =&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Control-Strategies-DeepSeq.html#strict"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"
+><A HREF="src/Data-AssocList.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -202,7 +202,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AAssocList"
@@ -210,13 +213,23 @@
 ><B
 >AssocList</B
 > k v = [(k, v)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#AssocList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlookupDef"
 ></A
 ><B
@@ -224,7 +237,14 @@
 > :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k v -&gt; v</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#lookupDef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >lookup with default value
@@ -235,7 +255,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Alookup1"
 ></A
 ><B
@@ -243,7 +266,14 @@
 > :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k [e] -&gt; [e]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#lookup1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >lookup with empty list (empty string) as default value
@@ -254,7 +284,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AhasEntry"
 ></A
 ><B
@@ -262,7 +295,14 @@
 > :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k v -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#hasEntry"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >test for existence of a key
@@ -273,7 +313,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddEntry"
 ></A
 ><B
@@ -283,7 +326,14 @@
 > k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k v</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#addEntry"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict
@@ -294,7 +344,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddEntries"
 ></A
 ><B
@@ -306,7 +359,14 @@
 > k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k v</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#addEntries"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add a whole list of entries with <TT
@@ -321,7 +381,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdelEntry"
 ></A
 ><B
@@ -331,7 +394,14 @@
 > k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k v</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#delEntry"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >delete an entry, delEntry is strict
@@ -342,7 +412,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdelEntries"
 ></A
 ><B
@@ -352,6 +425,13 @@
 > k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > k v</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-AssocList.html#delEntries"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Char/UTF8.hs"
+><A HREF="src/Data-Char-UTF8.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,19 +69,32 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aencode"
 ></A
 ><B
 >encode</B
 > :: [Char] -&gt; [Word8]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Char-UTF8.html#encode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adecode"
 ></A
 ><B
@@ -89,13 +102,23 @@
 > :: [Word8] -&gt; ([Char], [(<A HREF="Data-Char-UTF8.html#t%3AError"
 >Error</A
 >, Int)])</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Char-UTF8.html#decode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdecodeEmbedErrors"
 ></A
 ><B
@@ -103,25 +126,45 @@
 > :: [Word8] -&gt; [Either (<A HREF="Data-Char-UTF8.html#t%3AError"
 >Error</A
 >, Int) Char]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Char-UTF8.html#decodeEmbedErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AencodeOne"
 ></A
 ><B
 >encodeOne</B
 > :: Char -&gt; [Word8]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Char-UTF8.html#encodeOne"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdecodeOne"
 ></A
 ><B
@@ -129,13 +172,23 @@
 > :: [Word8] -&gt; (Either <A HREF="Data-Char-UTF8.html#t%3AError"
 >Error</A
 > Char, Int, [Word8])</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Char-UTF8.html#decodeOne"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AError"
@@ -143,6 +196,13 @@
 ><B
 >Error</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Char-UTF8.html#Error"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"
+><A HREF="src/Data-NavTree.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -272,8 +272,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Data-Tree-NTree-Filter.html"
->Data.Tree.NTree.Filter</A
+>module <A HREF="Data-Tree-NTree-TypeDefs.html"
+>Data.Tree.NTree.TypeDefs</A
 ></TD
 ></TR
 ></TABLE
@@ -292,7 +292,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ANavTree"
@@ -300,7 +303,14 @@
 ><B
 >NavTree</B
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#NavTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -383,7 +393,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Antree"
 ></A
 ><B
@@ -393,7 +406,14 @@
 > a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#ntree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >converts a n-ary tree in a navigable tree
@@ -404,7 +424,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsubtreeNT"
 ></A
 ><B
@@ -414,7 +437,14 @@
 > a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#subtreeNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >converts a navigable tree in a n-ary tree
@@ -425,7 +455,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdataNT"
 ></A
 ><B
@@ -433,7 +466,14 @@
 > :: <A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#dataNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >function for selecting the value of the current fragment tree
@@ -444,7 +484,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AupNT"
 ></A
 ><B
@@ -454,13 +497,23 @@
 > a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#upNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdownNT"
 ></A
 ><B
@@ -470,13 +523,23 @@
 > a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#downNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AleftNT"
 ></A
 ><B
@@ -486,13 +549,23 @@
 > a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#leftNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArightNT"
 ></A
 ><B
@@ -502,13 +575,23 @@
 > a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#rightNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApreorderNT"
 ></A
 ><B
@@ -518,13 +601,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#preorderNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArevPreorderNT"
 ></A
 ><B
@@ -534,13 +627,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#revPreorderNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetChildrenNT"
 ></A
 ><B
@@ -550,19 +653,36 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#getChildrenNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ao%27"
 ></A
 ><B
 >o'</B
 > :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#o%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Kleisli composition:
@@ -573,33 +693,53 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmaybeStar"
 ></A
 ><B
 >maybeStar</B
 > :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#maybeStar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmaybePlus"
 ></A
 ><B
 >maybePlus</B
 > :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-NavTree.html#maybePlus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></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
+>module <A HREF="Data-Tree-NTree-TypeDefs.html"
+>Data.Tree.NTree.TypeDefs</A
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"
+><A HREF="src/Data-Tree-Class.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -220,7 +220,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > <A NAME="t%3ATree"
@@ -230,7 +233,14 @@
 > t  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#Tree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -251,13 +261,23 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkTree"
 ></A
 ><B
 >mkTree</B
 > :: a -&gt; [t a] -&gt; t a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#mkTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >tree construction: a new tree is constructed by a node attribute and a list of children
@@ -268,13 +288,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkLeaf"
 ></A
 ><B
 >mkLeaf</B
 > :: a -&gt; t a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#mkLeaf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -292,13 +322,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisLeaf"
 ></A
 ><B
 >isLeaf</B
 > :: t a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#isLeaf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >leaf test: list of children empty?
@@ -309,13 +349,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisInner"
 ></A
 ><B
 >isInner</B
 > :: t a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#isInner"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >innner node test: <TT
@@ -328,13 +378,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetNode"
 ></A
 ><B
 >getNode</B
 > :: t a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#getNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >select node attribute
@@ -345,13 +405,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetChildren"
 ></A
 ><B
 >getChildren</B
 > :: t a -&gt; [t a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#getChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >select children
@@ -362,13 +432,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeNode"
 ></A
 ><B
 >changeNode</B
 > :: (a -&gt; a) -&gt; t a -&gt; t a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#changeNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >edit node attribute
@@ -379,13 +459,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeChildren"
 ></A
 ><B
 >changeChildren</B
 > :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#changeChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >edit children
@@ -396,13 +486,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetNode"
 ></A
 ><B
 >setNode</B
 > :: a -&gt; t a -&gt; t a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#setNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >substitute node: <TT
@@ -415,13 +515,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetChildren"
 ></A
 ><B
 >setChildren</B
 > :: [t a] -&gt; t a -&gt; t a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#setChildren"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >substitute children: <TT
@@ -434,13 +544,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfoldTree"
 ></A
 ><B
 >foldTree</B
 > :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#foldTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >fold for trees
@@ -451,13 +571,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnodesTree"
 ></A
 ><B
 >nodesTree</B
 > :: t a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#nodesTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >all nodes of a tree
@@ -468,13 +598,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdepthTree"
 ></A
 ><B
 >depthTree</B
 > :: t a -&gt; Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#depthTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >depth of a tree
@@ -485,13 +625,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcardTree"
 ></A
 ><B
 >cardTree</B
 > :: t a -&gt; Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#cardTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >number of nodes in a tree
@@ -502,12 +652,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatTree"
 ></A
 ><B
 >formatTree</B
 > :: (a -&gt; String) -&gt; t a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-Class.html#formatTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Data-Tree-NTree-Filter.html b/doc/hdoc/Data-Tree-NTree-Filter.html
--- a/doc/hdoc/Data-Tree-NTree-Filter.html
+++ b/doc/hdoc/Data-Tree-NTree-Filter.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/Filter.hs"
+><A HREF="src/Data-Tree-NTree-Filter.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -924,7 +924,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ATFilter"
@@ -936,7 +939,14 @@
 > 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
@@ -952,7 +962,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ATSFilter"
@@ -964,7 +977,14 @@
 > 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
@@ -975,13 +995,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Asatisfies"
 ></A
 ><B
 >satisfies</B
 > :: (a -&gt; [b]) -&gt; a -&gt; Bool</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
@@ -1026,13 +1056,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1043,13 +1083,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1060,13 +1110,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisOf"
 ></A
 ><B
 >isOf</B
 > :: (a -&gt; Bool) -&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
@@ -1095,7 +1155,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisOfNode"
 ></A
 ><B
@@ -1103,7 +1166,14 @@
 > :: (node -&gt; Bool) -&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
@@ -1137,7 +1207,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkNTree"
 ></A
 ><B
@@ -1147,7 +1220,14 @@
 > 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
@@ -1168,7 +1248,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreplaceNode"
 ></A
 ><B
@@ -1176,7 +1259,14 @@
 > :: 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
@@ -1197,7 +1287,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreplaceChildren"
 ></A
 ><B
@@ -1207,7 +1300,14 @@
 > 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
@@ -1228,7 +1328,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmodifyNode"
 ></A
 ><B
@@ -1236,13 +1339,23 @@
 > :: (node -&gt; Maybe 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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmodifyNode0"
 ></A
 ><B
@@ -1250,7 +1363,14 @@
 > :: (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
@@ -1271,7 +1391,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmodifyChildren"
 ></A
 ><B
@@ -1281,7 +1404,14 @@
 > 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
@@ -1320,7 +1450,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsubstChildren"
 ></A
 ><B
@@ -1330,7 +1463,14 @@
 > 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
@@ -1356,7 +1496,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessChildren"
 ></A
 ><B
@@ -1366,7 +1509,14 @@
 > 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
@@ -1394,13 +1544,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1431,13 +1591,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1473,13 +1643,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1495,13 +1675,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1531,13 +1721,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1561,13 +1761,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1588,13 +1798,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1625,13 +1845,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1658,7 +1888,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Achoice"
 ></A
 ><B
@@ -1666,7 +1899,14 @@
 > :: [<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
@@ -1701,7 +1941,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AIfThen"
@@ -1709,7 +1952,14 @@
 ><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"
@@ -1746,13 +1996,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1795,13 +2055,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1840,13 +2110,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1885,13 +2165,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1912,13 +2202,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1956,13 +2256,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -1982,7 +2292,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%2F%3E"
 ></A
 ><B
@@ -1994,7 +2307,14 @@
 > 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
@@ -2005,7 +2325,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%3C%2F"
 ></A
 ><B
@@ -2017,7 +2340,14 @@
 > 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
@@ -2028,7 +2358,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adeep"
 ></A
 ><B
@@ -2038,7 +2371,14 @@
 > 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
@@ -2055,7 +2395,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adeepest"
 ></A
 ><B
@@ -2065,7 +2408,14 @@
 > 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
@@ -2083,7 +2433,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amulti"
 ></A
 ><B
@@ -2093,7 +2446,14 @@
 > 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
@@ -2109,7 +2469,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessBottomUp"
 ></A
 ><B
@@ -2119,7 +2482,14 @@
 > 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
@@ -2153,7 +2523,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessBottomUpIfNot"
 ></A
 ><B
@@ -2165,7 +2538,14 @@
 > 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
@@ -2196,7 +2576,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessTopDown"
 ></A
 ><B
@@ -2206,7 +2589,14 @@
 > 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
@@ -2236,7 +2626,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessTopDownUntil"
 ></A
 ><B
@@ -2246,7 +2639,14 @@
 > 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
@@ -2298,7 +2698,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinsertChildrenAt"
 ></A
 ><B
@@ -2308,7 +2711,14 @@
 > 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
@@ -2347,7 +2757,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinsertChildrenAfter"
 ></A
 ><B
@@ -2359,7 +2772,14 @@
 > 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
@@ -2409,13 +2829,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AthisM"
 ></A
 ><B
 >thisM</B
 > :: Monad 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
@@ -2435,13 +2865,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnoneM"
 ></A
 ><B
 >noneM</B
 > :: Monad 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
@@ -2461,13 +2901,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A.%3E%3E"
 ></A
 ><B
 >(.&gt;&gt;)</B
 > :: Monad 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
@@ -2494,13 +2944,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AseqM"
 ></A
 ><B
 >seqM</B
 > :: Monad 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
@@ -2511,13 +2971,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%2B%2B%2B%3E%3E"
 ></A
 ><B
 >(+++&gt;&gt;)</B
 > :: Monad 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
@@ -2554,13 +3024,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcatM"
 ></A
 ><B
 >catM</B
 > :: Monad 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
@@ -2594,13 +3074,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AifM"
 ></A
 ><B
 >ifM</B
 > :: Monad 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
@@ -2627,7 +3117,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchoiceM"
 ></A
 ><B
@@ -2635,7 +3128,14 @@
 > :: Monad 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
@@ -2670,13 +3170,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwhenM"
 ></A
 ><B
 >whenM</B
 > :: Monad 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
@@ -2719,13 +3229,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwhenNotM"
 ></A
 ><B
 >whenNotM</B
 > :: Monad 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
@@ -2753,13 +3273,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AguardsM"
 ></A
 ><B
 >guardsM</B
 > :: Monad 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
@@ -2798,13 +3328,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcontainingM"
 ></A
 ><B
 >containingM</B
 > :: Monad 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
@@ -2842,7 +3382,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessChildrenM"
 ></A
 ><B
@@ -2856,7 +3399,14 @@
 > 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
@@ -2884,7 +3434,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessTopDownM"
 ></A
 ><B
@@ -2898,7 +3451,14 @@
 > 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
@@ -2913,7 +3473,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessBottomUpM"
 ></A
 ><B
@@ -2927,7 +3490,14 @@
 > 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
@@ -2942,13 +3512,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AliftMf"
 ></A
 ><B
 >liftMf</B
 > :: Monad 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
@@ -2971,13 +3551,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><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
@@ -3001,13 +3591,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%24%24%3C"
 ></A
 ><B
 >($$&lt;)</B
 > :: Monad 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
@@ -3035,12 +3635,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AperformAction"
 ></A
 ><B
 >performAction</B
 > :: Monad 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"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"
+><A HREF="src/Data-Tree-NTree-TypeDefs.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -182,7 +182,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ANTree"
@@ -190,7 +193,14 @@
 ><B
 >NTree</B
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-TypeDefs.html#NTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -296,9 +306,9 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> a =&gt; <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
@@ -316,7 +326,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANTrees"
@@ -326,7 +339,14 @@
 > a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-TypeDefs.html#NTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut for a sequence of n-ary trees
@@ -337,7 +357,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatNTreeF"
 ></A
 ><B
@@ -345,6 +368,13 @@
 > :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > node -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-TypeDefs.html#formatNTreeF"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/System-PipeOpen.html b/doc/hdoc/System-PipeOpen.html
--- a/doc/hdoc/System-PipeOpen.html
+++ b/doc/hdoc/System-PipeOpen.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./System/PipeOpen.hs"
+><A HREF="src/System-PipeOpen.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -127,12 +127,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Apopen"
 ></A
 ><B
 >popen</B
 > :: String -&gt; [String] -&gt; IO (String, String, Int)</TD
+><TD CLASS="declbut"
+><A HREF="src/System-PipeOpen.html#popen"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html b/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.DOMInterface</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DOMInterface.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.DOMInterface</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The interface to the DOM data types and constants
-</P
-><P
->Version : $Id: DOMInterface.hs,v 1.2 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</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="decl"
->module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
->Text.XML.HXT.DOM.NamespacePredicates</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-Util.html"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlOptions.html"
->Text.XML.HXT.DOM.XmlOptions</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DTDProcessing.hs"
+><A HREF="src/Text-XML-HXT-Arrow-DTDProcessing.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -138,7 +138,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessDTD"
 ></A
 ><B
@@ -149,6 +152,13 @@
 >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-DTDProcessing.html#processDTD"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentInput.hs"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -193,7 +193,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetURIContents"
 ></A
 ><B
@@ -205,13 +208,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getURIContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXmlContents"
 ></A
 ><B
@@ -223,7 +236,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getXmlContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -268,7 +288,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXmlEntityContents"
 ></A
 ><B
@@ -280,13 +303,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getXmlEntityContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetEncoding"
 ></A
 ><B
@@ -296,13 +329,23 @@
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getEncoding"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdecodeDocument"
 ></A
 ><B
@@ -313,6 +356,13 @@
 >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-DocumentInput.html#decodeDocument"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentOutput.hs"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -173,7 +173,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AputXmlDocument"
 ></A
 ><B
@@ -185,13 +188,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#putXmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AputXmlTree"
 ></A
 ><B
@@ -203,7 +216,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#putXmlTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >write the tree representation of a document to a file
@@ -214,7 +234,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AputXmlSource"
 ></A
 ><B
@@ -226,7 +249,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#putXmlSource"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >write a document with indentaion and line numers
@@ -237,7 +267,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetOutputEncoding"
 ></A
 ><B
@@ -247,13 +280,23 @@
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#getOutputEncoding"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AencodeDocument"
 ></A
 ><B
@@ -264,6 +307,13 @@
 >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-DocumentOutput.html#encodeDocument"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Edit.hs"
+><A HREF="src/Text-XML-HXT-Arrow-Edit.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -565,7 +565,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcanonicalizeAllNodes"
 ></A
 ><B
@@ -577,7 +580,14 @@
 > <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#canonicalizeAllNodes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -620,7 +630,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcanonicalizeForXPath"
 ></A
 ><B
@@ -632,7 +645,14 @@
 > <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#canonicalizeForXPath"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -657,7 +677,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcanonicalizeContents"
 ></A
 ><B
@@ -669,7 +692,14 @@
 > <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#canonicalizeContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -694,7 +724,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcollapseAllXText"
 ></A
 ><B
@@ -706,7 +739,14 @@
 > <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#collapseAllXText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -726,7 +766,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcollapseXText"
 ></A
 ><B
@@ -738,7 +781,14 @@
 > <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#collapseXText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Collects sequences of text nodes in the list of children of a node into one single text node.
@@ -750,7 +800,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AescapeXmlDoc"
 ></A
 ><B
@@ -762,7 +815,14 @@
 > <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#escapeXmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -780,7 +840,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AescapeHtmlDoc"
 ></A
 ><B
@@ -792,7 +855,14 @@
 > <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#escapeHtmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -810,7 +880,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AhaskellRepOfXmlDoc"
 ></A
 ><B
@@ -822,7 +895,14 @@
 > <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#haskellRepOfXmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -847,7 +927,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtreeRepOfXmlDoc"
 ></A
 ><B
@@ -859,7 +942,14 @@
 > <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#treeRepOfXmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -884,7 +974,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddHeadlineToXmlDoc"
 ></A
 ><B
@@ -896,13 +989,23 @@
 > <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#addHeadlineToXmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AindentDoc"
 ></A
 ><B
@@ -914,7 +1017,14 @@
 > <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#indentDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -957,7 +1067,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnumberLinesInXmlDoc"
 ></A
 ><B
@@ -969,7 +1082,14 @@
 > <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#numberLinesInXmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -995,7 +1115,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveComment"
 ></A
 ><B
@@ -1007,7 +1130,14 @@
 > <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#removeComment"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >remove Comments: <TT
@@ -1024,7 +1154,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveAllComment"
 ></A
 ><B
@@ -1036,7 +1169,14 @@
 > <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#removeAllComment"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >remove all comments recursively
@@ -1047,7 +1187,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveWhiteSpace"
 ></A
 ><B
@@ -1059,7 +1202,14 @@
 > <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#removeWhiteSpace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1086,7 +1236,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveAllWhiteSpace"
 ></A
 ><B
@@ -1098,7 +1251,14 @@
 > <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#removeAllWhiteSpace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1125,7 +1285,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveDocWhiteSpace"
 ></A
 ><B
@@ -1137,7 +1300,14 @@
 > <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#removeDocWhiteSpace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1179,7 +1349,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtransfCdata"
 ></A
 ><B
@@ -1191,7 +1364,14 @@
 > <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#transfCdata"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >converts a CDATA section node into a normal text node
@@ -1202,7 +1382,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtransfAllCdata"
 ></A
 ><B
@@ -1214,7 +1397,14 @@
 > <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#transfAllCdata"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >converts CDATA sections in whole document tree into normal text nodes
@@ -1225,7 +1415,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtransfCharRef"
 ></A
 ><B
@@ -1237,7 +1430,14 @@
 > <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#transfCharRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >converts character references to normal text
@@ -1248,7 +1448,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtransfAllCharRef"
 ></A
 ><B
@@ -1260,7 +1463,14 @@
 > <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#transfAllCharRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >recursively converts all character references to normal text
@@ -1271,7 +1481,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AhasXmlPi"
 ></A
 ><B
@@ -1283,13 +1496,23 @@
 > <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#hasXmlPi"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddXmlPi"
 ></A
 ><B
@@ -1301,7 +1524,14 @@
 > <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#addXmlPi"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add an &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction
@@ -1313,7 +1543,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddXmlPiEncoding"
 ></A
 ><B
@@ -1325,7 +1558,14 @@
 > <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#addXmlPiEncoding"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add an encoding spec to the &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction
@@ -1336,7 +1576,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddDoctypeDecl"
 ></A
 ><B
@@ -1348,7 +1591,14 @@
 > <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#addDoctypeDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1364,7 +1614,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddXHtmlDoctypeStrict"
 ></A
 ><B
@@ -1376,7 +1629,14 @@
 > <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#addXHtmlDoctypeStrict"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add an XHTML strict doctype declaration to a document
@@ -1387,7 +1647,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddXHtmlDoctypeTransitional"
 ></A
 ><B
@@ -1399,13 +1662,23 @@
 > <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#addXHtmlDoctypeTransitional"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddXHtmlDoctypeFrameset"
 ></A
 ><B
@@ -1416,6 +1689,13 @@
 >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#addXHtmlDoctypeFrameset"
+>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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs"
+><A HREF="src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -133,7 +133,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessGeneralEntities"
 ></A
 ><B
@@ -144,6 +147,13 @@
 >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-GeneralEntitySubstitution.html#processGeneralEntities"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Namespace.hs"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -293,7 +293,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattachNsEnv"
 ></A
 ><B
@@ -307,7 +310,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#attachNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -328,7 +338,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcleanupNamespaces"
 ></A
 ><B
@@ -344,7 +357,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#cleanupNamespaces"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -360,7 +380,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcollectNamespaceDecl"
 ></A
 ><B
@@ -370,7 +393,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > (String, String)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#collectNamespaceDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -390,7 +420,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcollectPrefixUriPairs"
 ></A
 ><B
@@ -400,7 +433,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > (String, String)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#collectPrefixUriPairs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -427,7 +467,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNamespaceDeclAttr"
 ></A
 ><B
@@ -439,7 +482,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#isNamespaceDeclAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >test whether an attribute node contains an XML Namespace declaration
@@ -450,7 +500,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetNamespaceDecl"
 ></A
 ><B
@@ -460,7 +513,14 @@
 > a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > (String, String)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#getNamespaceDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >get the namespace prefix and the namespace URI out of
@@ -477,7 +537,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessWithNsEnv"
 ></A
 ><B
@@ -497,7 +560,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#processWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -518,7 +588,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessWithNsEnvWithoutAttrl"
 ></A
 ><B
@@ -538,7 +611,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#processWithNsEnvWithoutAttrl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -559,7 +639,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AuniqueNamespaces"
 ></A
 ><B
@@ -571,7 +654,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#uniqueNamespaces"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -595,7 +685,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AuniqueNamespacesFromDeclAndQNames"
 ></A
 ><B
@@ -606,6 +699,13 @@
 >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-Namespace.html#uniqueNamespacesFromDeclAndQNames"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ParserInterface.hs"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -389,7 +389,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDoc"
 ></A
 ><B
@@ -399,13 +402,23 @@
 > a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDPart"
 ></A
 ><B
@@ -417,13 +430,23 @@
 >) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDPart"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlContent"
 ></A
 ><B
@@ -433,13 +456,23 @@
 > a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlContent"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlEntityEncodingSpec"
 ></A
 ><B
@@ -451,13 +484,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlEntityEncodingSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDocEncodingSpec"
 ></A
 ><B
@@ -469,13 +512,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDocEncodingSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveEncodingSpec"
 ></A
 ><B
@@ -487,13 +540,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#removeEncodingSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDdeclPart"
 ></A
 ><B
@@ -505,13 +568,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDdeclPart"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDdecl"
 ></A
 ><B
@@ -523,13 +596,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDdecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDEntityValue"
 ></A
 ><B
@@ -541,13 +624,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDEntityValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlAttrValue"
 ></A
 ><B
@@ -559,13 +652,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlAttrValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlGeneralEntityValue"
 ></A
 ><B
@@ -577,13 +680,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlGeneralEntityValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlDoc"
 ></A
 ><B
@@ -593,13 +706,23 @@
 > a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseHtmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlContent"
 ></A
 ><B
@@ -609,13 +732,23 @@
 > a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseHtmlContent"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlTagSoup"
 ></A
 ><B
@@ -625,13 +758,23 @@
 > a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseHtmlTagSoup"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDoc"
 ></A
 ><B
@@ -643,13 +786,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#validateDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtransformDoc"
 ></A
 ><B
@@ -661,13 +814,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#transformDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsubstHtmlEntityRefs"
 ></A
 ><B
@@ -679,7 +842,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#substHtmlEntityRefs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -700,7 +870,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsubstXmlEntityRefs"
 ></A
 ><B
@@ -712,7 +885,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#substXmlEntityRefs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >substitution of the five predefined XMT entities, works like <TT
@@ -727,7 +907,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsubstEntityRefs"
 ></A
 ><B
@@ -738,6 +921,13 @@
 >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-ParserInterface.html#substEntityRefs"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/DTD.hs"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -436,7 +436,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ADTDdescr"
@@ -444,7 +447,14 @@
 ><B
 >DTDdescr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#DTDdescr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -503,7 +513,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdDescrToXml"
 ></A
 ><B
@@ -513,7 +526,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#dtdDescrToXml"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >convert a DTD descr into XmlTrees
@@ -524,7 +544,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckAttrModell"
 ></A
 ><B
@@ -536,13 +559,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkAttrModell"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckAM"
 ></A
 ><B
@@ -554,13 +587,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkAM"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckAMC"
 ></A
 ><B
@@ -574,13 +617,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkAMC"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckContentModell"
 ></A
 ><B
@@ -592,13 +645,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkContentModell"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscContToXml"
 ></A
 ><B
@@ -610,13 +673,23 @@
 >, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scContToXml"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscWrap"
 ></A
 ><B
@@ -626,13 +699,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scWrap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscCont"
 ></A
 ><B
@@ -644,13 +727,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scCont"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscConts"
 ></A
 ><B
@@ -662,13 +755,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scConts"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscAttrToXml"
 ></A
 ><B
@@ -680,13 +783,23 @@
 >, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scAttrToXml"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckErr"
 ></A
 ><B
@@ -694,13 +807,23 @@
 > :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkErr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfoundErr"
 ></A
 ><B
@@ -708,13 +831,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#foundErr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdDescr"
 ></A
 ><B
@@ -724,7 +857,14 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
 >DTDdescr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#dtdDescr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >convert a pickler schema into a DTD descr
@@ -735,7 +875,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AelementDeclarations"
 ></A
 ><B
@@ -745,13 +888,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
 >Schemas</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elementDeclarations"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AelementDecs"
 ></A
 ><B
@@ -763,13 +916,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
 >Schemas</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elementDecs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AelemNames"
 ></A
 ><B
@@ -779,13 +942,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
 >Name</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elemNames"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AelemName"
 ></A
 ><B
@@ -795,13 +968,23 @@
 > -&gt; Maybe <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
 >Name</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elemName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AelemRefs"
 ></A
 ><B
@@ -811,13 +994,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
 >Schemas</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elemRefs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattrDec"
 ></A
 ><B
@@ -829,13 +1022,23 @@
 >, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
 >Schemas</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#attrDec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremAttrDec"
 ></A
 ><B
@@ -844,6 +1047,13 @@
 >Schema</A
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#remAttrDec"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Schema.hs"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -764,7 +764,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ASchema"
@@ -772,7 +775,14 @@
 ><B
 >Schema</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Schema"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1074,7 +1084,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AName"
@@ -1082,13 +1095,23 @@
 ><B
 >Name</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Name"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ASchemas"
@@ -1098,13 +1121,23 @@
 > = [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Schemas"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ADataTypeDescr"
@@ -1112,7 +1145,14 @@
 ><B
 >DataTypeDescr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#DataTypeDescr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1207,7 +1247,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScXsd"
 ></A
 ><B
@@ -1215,7 +1258,14 @@
 > :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScXsd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >test: is schema a simple XML Schema datatype
@@ -1226,7 +1276,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScFixed"
 ></A
 ><B
@@ -1234,7 +1287,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScFixed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >test: is type a fixed value attribute type
@@ -1245,7 +1305,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScEnum"
 ></A
 ><B
@@ -1253,13 +1316,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScEnum"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScElem"
 ></A
 ><B
@@ -1267,13 +1340,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScElem"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScAttr"
 ></A
 ><B
@@ -1281,13 +1364,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScElemRef"
 ></A
 ><B
@@ -1295,13 +1388,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScElemRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScCharData"
 ></A
 ><B
@@ -1309,13 +1412,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScCharData"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScSARE"
 ></A
 ><B
@@ -1323,13 +1436,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScSARE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScList"
 ></A
 ><B
@@ -1337,13 +1460,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisScOpt"
 ></A
 ><B
@@ -1351,13 +1484,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScOpt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsdParam"
 ></A
 ><B
@@ -1365,7 +1508,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#xsdParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >access an attribute of a descr of an atomic type
@@ -1376,7 +1526,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscDT"
 ></A
 ><B
@@ -1386,13 +1539,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scDT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscDTxsd"
 ></A
 ><B
@@ -1402,13 +1565,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scDTxsd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscString"
 ></A
 ><B
@@ -1416,13 +1589,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscString1"
 ></A
 ><B
@@ -1430,13 +1613,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scString1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscFixed"
 ></A
 ><B
@@ -1444,13 +1637,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scFixed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscEnum"
 ></A
 ><B
@@ -1458,13 +1661,23 @@
 > :: [String] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scEnum"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscNmtoken"
 ></A
 ><B
@@ -1472,13 +1685,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scNmtoken"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscNmtokens"
 ></A
 ><B
@@ -1486,13 +1709,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scNmtokens"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscEmpty"
 ></A
 ><B
@@ -1500,13 +1733,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scEmpty"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscSeq"
 ></A
 ><B
@@ -1518,13 +1761,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscSeqs"
 ></A
 ><B
@@ -1534,13 +1787,23 @@
 >] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scSeqs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscNull"
 ></A
 ><B
@@ -1548,13 +1811,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scNull"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscAlt"
 ></A
 ><B
@@ -1566,13 +1839,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scAlt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscAlts"
 ></A
 ><B
@@ -1582,13 +1865,23 @@
 >] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scAlts"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscOption"
 ></A
 ><B
@@ -1598,13 +1891,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scOption"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscList"
 ></A
 ><B
@@ -1614,13 +1917,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscList1"
 ></A
 ><B
@@ -1630,13 +1943,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scList1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscOpt"
 ></A
 ><B
@@ -1646,13 +1969,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scOpt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscRep"
 ></A
 ><B
@@ -1662,13 +1995,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scRep"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscElem"
 ></A
 ><B
@@ -1678,13 +2021,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scElem"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AscAttr"
 ></A
 ><B
@@ -1693,6 +2046,13 @@
 >Schema</A
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
 >Schema</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scAttr"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Xml.hs"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -523,6 +523,30 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axp6Tuple"
+>xp6Tuple</A
+> :: <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
+> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> f -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> (a, b, c, d, e, f)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AxpText"
 >xpText</A
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
@@ -763,7 +787,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ASt"
@@ -771,7 +798,14 @@
 ><B
 >St</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#St"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -833,7 +867,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3APU"
@@ -841,7 +878,14 @@
 ><B
 >PU</B
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#PU"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -919,7 +963,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AemptySt"
 ></A
 ><B
@@ -927,13 +974,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
 >St</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#emptySt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddAtt"
 ></A
 ><B
@@ -945,13 +1002,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
 >St</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#addAtt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddCont"
 ></A
 ><B
@@ -963,13 +1030,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
 >St</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#addCont"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdropCont"
 ></A
 ><B
@@ -979,13 +1056,23 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
 >St</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#dropCont"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetAtt"
 ></A
 ><B
@@ -995,13 +1082,23 @@
 > -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#getAtt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetCont"
 ></A
 ><B
@@ -1011,13 +1108,23 @@
 > -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#getCont"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApickleDoc"
 ></A
 ><B
@@ -1027,7 +1134,14 @@
 > a -&gt; a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#pickleDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1044,7 +1158,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunpickleDoc"
 ></A
 ><B
@@ -1054,7 +1171,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > -&gt; Maybe a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#unpickleDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1080,7 +1204,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpZero"
 ></A
 ><B
@@ -1088,7 +1215,14 @@
 > :: <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#xpZero"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1104,7 +1238,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpUnit"
 ></A
 ><B
@@ -1112,13 +1249,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpUnit"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpLift"
 ></A
 ><B
@@ -1126,7 +1273,14 @@
 > :: 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#xpLift"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1143,7 +1297,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpLiftMaybe"
 ></A
 ><B
@@ -1151,7 +1308,14 @@
 > :: Maybe 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#xpLiftMaybe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1173,7 +1337,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpCondSeq"
 ></A
 ><B
@@ -1187,7 +1354,14 @@
 > b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpCondSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1216,7 +1390,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpSeq"
 ></A
 ><B
@@ -1228,7 +1405,14 @@
 > b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1245,7 +1429,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpChoice"
 ></A
 ><B
@@ -1259,7 +1446,14 @@
 > b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpChoice"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1278,7 +1472,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpWrap"
 ></A
 ><B
@@ -1288,7 +1485,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpWrap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1304,7 +1508,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpWrapMaybe"
 ></A
 ><B
@@ -1314,7 +1521,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpWrapMaybe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1335,7 +1549,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpPair"
 ></A
 ><B
@@ -1347,7 +1564,14 @@
 > b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > (a, b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpPair"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1364,7 +1588,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpTriple"
 ></A
 ><B
@@ -1378,7 +1605,14 @@
 > c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > (a, b, c)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTriple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Like <TT
@@ -1393,7 +1627,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axp4Tuple"
 ></A
 ><B
@@ -1409,7 +1646,14 @@
 > d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > (a, b, c, d)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp4Tuple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Like <TT
@@ -1428,7 +1672,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axp5Tuple"
 ></A
 ><B
@@ -1446,7 +1693,14 @@
 > e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > (a, b, c, d, e)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp5Tuple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Like <TT
@@ -1465,7 +1719,59 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Axp6Tuple"
+></A
+><B
+>xp6Tuple</B
+> :: <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
+> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> f -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
+>PU</A
+> (a, b, c, d, e, f)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp6Tuple"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Like <TT
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"
+>xpPair</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"
+>xpTriple</A
+></TT
+> but for 6-tuples
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpText"
 ></A
 ><B
@@ -1473,7 +1779,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1499,7 +1812,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpTextDT"
 ></A
 ><B
@@ -1509,7 +1825,14 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTextDT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1536,7 +1859,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpText0"
 ></A
 ><B
@@ -1544,7 +1870,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1564,7 +1897,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpText0DT"
 ></A
 ><B
@@ -1574,7 +1910,14 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText0DT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1598,7 +1941,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpPrim"
 ></A
 ><B
@@ -1606,7 +1952,14 @@
 > :: (Read a, Show 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#xpPrim"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1614,7 +1967,11 @@
  and read during unpickling.
 </P
 ><P
->Real pickling is then done with xpString.
+>Real pickling is then done with <TT
+><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText"
+>xpText</A
+></TT
+>.
  One of the most often used pimitive picklers. Applicable for all
  types which are instances of <TT
 >Read</TT
@@ -1629,7 +1986,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpTree"
 ></A
 ><B
@@ -1639,7 +1999,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1655,7 +2022,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpOption"
 ></A
 ><B
@@ -1665,7 +2035,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > (Maybe a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpOption"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1682,7 +2059,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpList"
 ></A
 ><B
@@ -1692,7 +2072,14 @@
 > 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#xpList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1714,7 +2101,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpList1"
 ></A
 ><B
@@ -1724,7 +2114,14 @@
 > 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#xpList1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1741,7 +2138,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAlt"
 ></A
 ><B
@@ -1751,7 +2151,14 @@
 > 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#xpAlt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1768,7 +2175,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpElem"
 ></A
 ><B
@@ -1778,7 +2188,14 @@
 > 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
@@ -1795,7 +2212,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAttr"
 ></A
 ><B
@@ -1805,7 +2225,14 @@
 > 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
@@ -1825,7 +2252,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAttrImplied"
 ></A
 ><B
@@ -1835,7 +2265,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > (Maybe a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrImplied"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Add an optional attribute for an optional value (Maybe a).
@@ -1846,7 +2283,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAttrFixed"
 ></A
 ><B
@@ -1854,13 +2294,23 @@
 > :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
 >PU</A
 > ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrFixed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAddFixedAttr"
 ></A
 ><B
@@ -1870,7 +2320,14 @@
 > 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#xpAddFixedAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1890,7 +2347,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > <A NAME="t%3AXmlPickler"
@@ -1900,7 +2360,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#XmlPickler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1925,7 +2392,10 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axpickle"
 ></A
 ><B
@@ -1933,6 +2403,13 @@
 > :: <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#xpickle"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ></TABLE
 ></TD
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle.hs"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -835,7 +835,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpickleDocument"
 ></A
 ><B
@@ -849,7 +852,14 @@
 > s a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -868,7 +878,7 @@
 >
 </P
 ><P
->An options evaluated by this arrow is <TT
+>An option evaluated by this arrow is <TT
 ><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"
 >a_addDTD</A
 ></TT
@@ -890,7 +900,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxunpickleDocument"
 ></A
 ><B
@@ -902,7 +915,14 @@
 > -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xunpickleDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -935,7 +955,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpickleWriteDTD"
 ></A
 ><B
@@ -949,7 +972,14 @@
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleWriteDTD"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Write out the DTD generated out of a pickler. Calls xpicklerDTD
@@ -960,7 +990,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpickleDTD"
 ></A
 ><B
@@ -972,7 +1005,14 @@
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleDTD"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -989,7 +1029,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckPickler"
 ></A
 ><B
@@ -999,7 +1042,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s a a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#checkPickler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1023,7 +1073,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpickleVal"
 ></A
 ><B
@@ -1035,7 +1088,14 @@
 > b -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleVal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The arrow version of the pickler function
@@ -1046,7 +1106,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxunpickleVal"
 ></A
 ><B
@@ -1058,7 +1121,14 @@
 > b -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xunpickleVal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The arrow version of the unpickler function
@@ -1069,7 +1139,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AthePicklerDTD"
 ></A
 ><B
@@ -1079,7 +1152,14 @@
 > b -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#thePicklerDTD"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Compute the associated DTD of a pickler
@@ -1090,13 +1170,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_addDTD"
 ></A
 ><B
 >a_addDTD</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#a_addDTD"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Option for generating and adding DTD when document is pickled
@@ -1107,7 +1197,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApickleDoc"
 ></A
 ><B
@@ -1117,7 +1210,14 @@
 > a -&gt; a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#pickleDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1134,7 +1234,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunpickleDoc"
 ></A
 ><B
@@ -1144,7 +1247,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > -&gt; Maybe a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#unpickleDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1170,7 +1280,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3APU"
@@ -1178,7 +1291,14 @@
 ><B
 >PU</B
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#PU"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1256,7 +1376,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >class</SPAN
 > <A NAME="t%3AXmlPickler"
@@ -1266,7 +1389,14 @@
 > a  <SPAN CLASS="keyword"
 >where</SPAN
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#XmlPickler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1291,7 +1421,10 @@
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axpickle"
 ></A
 ><B
@@ -1299,10 +1432,17 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickle"
+>Source</A
+></TD
 ></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s8"
 ></TD
@@ -1414,7 +1554,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axp4Tuple"
 ></A
 ><B
@@ -1430,7 +1573,14 @@
 > d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > (a, b, c, d)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xp4Tuple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Like <TT
@@ -1449,7 +1599,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axp5Tuple"
 ></A
 ><B
@@ -1467,7 +1620,14 @@
 > e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > (a, b, c, d, e)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xp5Tuple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Like <TT
@@ -1486,7 +1646,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAddFixedAttr"
 ></A
 ><B
@@ -1496,7 +1659,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpAddFixedAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1516,7 +1686,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAlt"
 ></A
 ><B
@@ -1526,7 +1699,14 @@
 > a] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpAlt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1543,7 +1723,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAttr"
 ></A
 ><B
@@ -1553,7 +1736,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1573,7 +1763,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAttrFixed"
 ></A
 ><B
@@ -1581,13 +1774,23 @@
 > :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpAttrFixed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpAttrImplied"
 ></A
 ><B
@@ -1597,7 +1800,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > (Maybe a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpAttrImplied"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Add an optional attribute for an optional value (Maybe a).
@@ -1608,7 +1818,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpChoice"
 ></A
 ><B
@@ -1622,7 +1835,14 @@
 > b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpChoice"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1641,7 +1861,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpCondSeq"
 ></A
 ><B
@@ -1655,7 +1878,14 @@
 > b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpCondSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1684,7 +1914,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpElem"
 ></A
 ><B
@@ -1694,7 +1927,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpElem"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1711,7 +1951,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axpickle"
 ></A
 ><B
@@ -1721,13 +1964,23 @@
 > a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickle"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpLift"
 ></A
 ><B
@@ -1735,7 +1988,14 @@
 > :: a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpLift"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1752,7 +2012,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpLiftMaybe"
 ></A
 ><B
@@ -1760,7 +2023,14 @@
 > :: Maybe a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpLiftMaybe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1782,7 +2052,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpList"
 ></A
 ><B
@@ -1792,7 +2065,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1814,7 +2094,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpList1"
 ></A
 ><B
@@ -1824,7 +2107,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpList1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1841,7 +2131,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpOption"
 ></A
 ><B
@@ -1851,7 +2144,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > (Maybe a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpOption"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1868,7 +2168,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpPair"
 ></A
 ><B
@@ -1880,7 +2183,14 @@
 > b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > (a, b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpPair"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1897,7 +2207,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpPrim"
 ></A
 ><B
@@ -1905,7 +2218,14 @@
 > :: (Read a, Show a) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpPrim"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1913,7 +2233,11 @@
  and read during unpickling.
 </P
 ><P
->Real pickling is then done with xpString.
+>Real pickling is then done with <TT
+><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText"
+>xpText</A
+></TT
+>.
  One of the most often used pimitive picklers. Applicable for all
  types which are instances of <TT
 >Read</TT
@@ -1928,7 +2252,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpSeq"
 ></A
 ><B
@@ -1940,7 +2267,14 @@
 > b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1957,7 +2291,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpText"
 ></A
 ><B
@@ -1965,7 +2302,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1991,7 +2335,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpText0"
 ></A
 ><B
@@ -1999,7 +2346,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpText0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2019,7 +2373,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpTextDT"
 ></A
 ><B
@@ -2029,7 +2386,14 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpTextDT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2056,7 +2420,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpText0DT"
 ></A
 ><B
@@ -2066,7 +2433,14 @@
 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpText0DT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2090,7 +2464,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpTree"
 ></A
 ><B
@@ -2100,7 +2477,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2116,7 +2500,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpTriple"
 ></A
 ><B
@@ -2130,7 +2517,14 @@
 > c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > (a, b, c)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpTriple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Like <TT
@@ -2145,7 +2539,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpUnit"
 ></A
 ><B
@@ -2153,13 +2550,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpUnit"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpWrap"
 ></A
 ><B
@@ -2169,7 +2576,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpWrap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2185,7 +2599,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpWrapMaybe"
 ></A
 ><B
@@ -2195,7 +2612,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpWrapMaybe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2216,7 +2640,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxpZero"
 ></A
 ><B
@@ -2224,7 +2651,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
 >PU</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpZero"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2240,7 +2674,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ASchema"
@@ -2248,7 +2685,14 @@
 ><B
 >Schema</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#Schema"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -2290,7 +2734,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ASchemas"
@@ -2300,13 +2747,23 @@
 > = [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
 >Schema</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#Schemas"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ADataTypeDescr"
@@ -2314,6 +2771,13 @@
 ><B
 >DataTypeDescr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#DataTypeDescr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ProcessDocument.hs"
+><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -200,7 +200,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDocument"
 ></A
 ><B
@@ -212,7 +215,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#parseXmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -244,7 +254,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlDocument"
 ></A
 ><B
@@ -256,7 +269,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#parseHtmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -283,7 +303,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDocument"
 ></A
 ><B
@@ -295,7 +318,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#validateDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -322,7 +352,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApropagateAndValidateNamespaces"
 ></A
 ><B
@@ -334,7 +367,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#propagateAndValidateNamespaces"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -360,7 +400,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetDocumentContents"
 ></A
 ><B
@@ -371,6 +414,13 @@
 >IOStateArrow</A
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#getDocumentContents"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ReadDocument.hs"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -209,7 +209,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreadDocument"
 ></A
 ><B
@@ -221,7 +224,14 @@
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -468,7 +478,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreadFromDocument"
 ></A
 ><B
@@ -480,7 +493,14 @@
 > s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readFromDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the arrow version of <TT
@@ -495,7 +515,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreadString"
 ></A
 ><B
@@ -507,7 +530,14 @@
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -531,7 +561,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreadFromString"
 ></A
 ><B
@@ -543,7 +576,14 @@
 > s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readFromString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the arrow version of <TT
@@ -558,7 +598,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ahread"
 ></A
 ><B
@@ -568,7 +611,14 @@
 > a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#hread"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -590,7 +640,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axread"
 ></A
 ><B
@@ -599,6 +652,13 @@
 >ArrowXml</A
 > a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#xread"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/WriteDocument.hs"
+><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -169,7 +169,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwriteDocument"
 ></A
 ><B
@@ -183,7 +186,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html#writeDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -336,7 +346,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwriteDocumentToString"
 ></A
 ><B
@@ -348,7 +361,14 @@
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html#writeDocumentToString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Convert a document into a string. Formating is done the same way
@@ -364,7 +384,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprepareContents"
 ></A
 ><B
@@ -377,6 +400,13 @@
 >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-WriteDocument.html#prepareContents"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPath.hs"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -339,7 +339,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesInDoc"
 ></A
 ><B
@@ -351,7 +354,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTreesInDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -384,7 +394,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
 ></A
 ><B
@@ -398,7 +411,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTreesInDocWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same as <TT
@@ -413,7 +433,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTrees"
 ></A
 ><B
@@ -425,7 +448,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -451,7 +481,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesWithNsEnv"
 ></A
 ><B
@@ -465,7 +498,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTreesWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same as <TT
@@ -480,7 +520,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetElemNodeSet"
 ></A
 ><B
@@ -496,7 +539,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getElemNodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -515,7 +565,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetElemAndAttrNodeSet"
 ></A
 ><B
@@ -531,7 +584,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getElemAndAttrNodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >compute a node set from a tree, containing all nodes including attribute nodes
@@ -543,7 +603,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathNodeSet"
 ></A
 ><B
@@ -555,7 +618,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathNodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -584,7 +654,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetFromNodeSet"
 ></A
 ><B
@@ -598,7 +671,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getFromNodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -617,7 +697,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessXPathTrees"
 ></A
 ><B
@@ -633,7 +716,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#processXPathTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -652,7 +742,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessXPathTreesWithNsEnv"
 ></A
 ><B
@@ -670,7 +763,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPath.html#processXPathTreesWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same as <TT
@@ -685,7 +785,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessFromNodeSet"
 ></A
 ><B
@@ -702,6 +805,13 @@
 >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-XPath.html#processFromNodeSet"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPathSimple.hs"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -999,7 +999,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesInDoc"
 ></A
 ><B
@@ -1011,7 +1014,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesInDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same Functionality as <TT
@@ -1026,7 +1036,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
 ></A
 ><B
@@ -1040,7 +1053,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesInDocWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same Functionality as <TT
@@ -1055,7 +1075,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTrees"
 ></A
 ><B
@@ -1067,7 +1090,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same Functionality as <TT
@@ -1082,7 +1112,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesWithNsEnv"
 ></A
 ><B
@@ -1096,7 +1129,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same Functionality as <TT
@@ -1111,7 +1151,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtryGetXPath"
 ></A
 ><B
@@ -1125,13 +1168,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#tryGetXPath"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathTreesWithNsEnvSimple"
 ></A
 ><B
@@ -1145,7 +1198,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesWithNsEnvSimple"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1162,7 +1222,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXP"
 ></A
 ><B
@@ -1176,13 +1239,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXPArrow"
@@ -1192,13 +1265,23 @@
 > b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
 >LA</A
 > b c)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#XPArrow"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amk"
 ></A
 ><B
@@ -1208,13 +1291,23 @@
 > b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#mk"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aunwrap"
 ></A
 ><B
@@ -1224,13 +1317,23 @@
 > b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
 >LA</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#unwrap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%3E%3E%3E%3E"
 ></A
 ><B
@@ -1242,13 +1345,23 @@
 > b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#%3E%3E%3E%3E"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%26%26%26%26"
 ></A
 ><B
@@ -1260,13 +1373,23 @@
 > b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b (b, b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#%26%26%26%26"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3A%3C%2B%3E%3E"
 ></A
 ><B
@@ -1278,13 +1401,23 @@
 > b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#%3C%2B%3E%3E"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aguards%27"
 ></A
 ><B
@@ -1296,13 +1429,23 @@
 > b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#guards%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Athis%27"
 ></A
 ><B
@@ -1310,13 +1453,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#this%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Athis%27%27"
 ></A
 ><B
@@ -1324,13 +1477,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#this%27%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtoThis"
 ></A
 ><B
@@ -1340,13 +1503,23 @@
 > b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
 >XPArrow</A
 > b b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#toThis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetChildren%27"
 ></A
 ><B
@@ -1364,13 +1537,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getChildren%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetAttrl%27"
 ></A
 ><B
@@ -1388,13 +1571,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getAttrl%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amulti%27"
 ></A
 ><B
@@ -1412,13 +1605,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#multi%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adeep%27"
 ></A
 ><B
@@ -1436,13 +1639,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#deep%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxIndex"
 ></A
 ><B
@@ -1450,13 +1663,23 @@
 > :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
 >LA</A
 > [b] b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#xIndex"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxString"
 ></A
 ><B
@@ -1472,13 +1695,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#xString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxNumber%27"
 ></A
 ><B
@@ -1496,25 +1729,45 @@
 > <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
 >XPNumber</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#xNumber%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdeadEndStreet"
 ></A
 ><B
 >deadEndStreet</B
 > :: Monad m =&gt; m a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#deadEndStreet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompXPath"
 ></A
 ><B
@@ -1528,13 +1781,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compXPath"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompXP"
 ></A
 ><B
@@ -1548,13 +1811,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compXP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompFP"
 ></A
 ><B
@@ -1574,13 +1847,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compFP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompLP"
 ></A
 ><B
@@ -1600,13 +1883,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compLP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompXS"
 ></A
 ><B
@@ -1626,13 +1919,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compXS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompNTE"
 ></A
 ><B
@@ -1646,13 +1949,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNTE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompNTA"
 ></A
 ><B
@@ -1666,13 +1979,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNTA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompNameT"
 ></A
 ><B
@@ -1692,13 +2015,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNameT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompNT"
 ></A
 ><B
@@ -1712,13 +2045,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompPred"
 ></A
 ><B
@@ -1738,13 +2081,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compPred"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompPred1"
 ></A
 ><B
@@ -1764,13 +2117,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compPred1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompRelPathExpr"
 ></A
 ><B
@@ -1784,13 +2147,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compRelPathExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompStringExpr"
 ></A
 ><B
@@ -1798,13 +2171,23 @@
 > :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 > -&gt; m String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compStringExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompNumberExpr"
 ></A
 ><B
@@ -1814,13 +2197,23 @@
 > -&gt; m <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
 >XPNumber</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNumberExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompIntExpr"
 ></A
 ><B
@@ -1828,13 +2221,23 @@
 > :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 > -&gt; m Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compIntExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompBoolExpr"
 ></A
 ><B
@@ -1842,13 +2245,23 @@
 > :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 > -&gt; m Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compBoolExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompGenExpr"
 ></A
 ><B
@@ -1862,13 +2275,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compGenExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompString"
 ></A
 ><B
@@ -1886,13 +2309,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompNumber"
 ></A
 ><B
@@ -1910,13 +2343,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompBool"
 ></A
 ><B
@@ -1934,13 +2377,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compBool"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompPath"
 ></A
 ><B
@@ -1958,13 +2411,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compPath"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtoNumber"
 ></A
 ><B
@@ -1972,18 +2435,35 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
 >XPNumber</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#toNumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AequalNodeSet"
 ></A
 ><B
 >equalNodeSet</B
 > :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#equalNodeSet"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,3967 +19,5137 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlArrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: 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
->All arrows use IO and a global state for options, errorhandling, ...
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> a) =&gt; <A HREF="#t%3AArrowXml"
->ArrowXml</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisText"
->isText</A
-> :: a <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="decl"
-><A HREF="#v%3AisCharRef"
->isCharRef</A
-> :: a <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="decl"
-><A HREF="#v%3AisEntityRef"
->isEntityRef</A
-> :: a <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="decl"
-><A HREF="#v%3AisCmt"
->isCmt</A
-> :: a <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="decl"
-><A HREF="#v%3AisCdata"
->isCdata</A
-> :: a <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="decl"
-><A HREF="#v%3AisPi"
->isPi</A
-> :: a <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="decl"
-><A HREF="#v%3AisXmlPi"
->isXmlPi</A
-> :: a <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="decl"
-><A HREF="#v%3AisElem"
->isElem</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTD"
->isDTD</A
-> :: a <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="decl"
-><A HREF="#v%3AisAttr"
->isAttr</A
-> :: a <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="decl"
-><A HREF="#v%3AisError"
->isError</A
-> :: a <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="decl"
-><A HREF="#v%3AisRoot"
->isRoot</A
-> :: a <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="decl"
-><A HREF="#v%3AhasText"
->hasText</A
-> :: (String -&gt; Bool) -&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="decl"
-><A HREF="#v%3AisWhiteSpace"
->isWhiteSpace</A
-> :: a <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="decl"
-><A HREF="#v%3AhasNameWith"
->hasNameWith</A
-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasQName"
->hasQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasName"
->hasName</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasLocalPart"
->hasLocalPart</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamePrefix"
->hasNamePrefix</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamespaceUri"
->hasNamespaceUri</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttr"
->hasAttr</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasQAttr"
->hasQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttrValue"
->hasAttrValue</A
-> :: String -&gt; (String -&gt; Bool) -&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="decl"
-><A HREF="#v%3AhasQAttrValue"
->hasQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkText"
->mkText</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCharRef"
->mkCharRef</A
-> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkEntityRef"
->mkEntityRef</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCmt"
->mkCmt</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCdata"
->mkCdata</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkError"
->mkError</A
-> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkElement"
->mkElement</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkAttr"
->mkAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPi"
->mkPi</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amkqelem"
->mkqelem</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amkelem"
->mkelem</A
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aaelem"
->aelem</A
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aselem"
->selem</A
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aeelem"
->eelem</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aroot"
->root</A
-> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqattr"
->qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aattr"
->attr</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atxt"
->txt</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcharRef"
->charRef</A
-> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AentityRef"
->entityRef</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acmt"
->cmt</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awarn"
->warn</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aerr"
->err</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Afatal"
->fatal</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aspi"
->spi</A
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asqattr"
->sqattr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asattr"
->sattr</A
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetText"
->getText</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetCharRef"
->getCharRef</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetEntityRef"
->getEntityRef</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetCmt"
->getCmt</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetCdata"
->getCdata</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetPiName"
->getPiName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetPiContent"
->getPiContent</A
-> :: a <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="decl"
-><A HREF="#v%3AgetElemName"
->getElemName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrl"
->getAttrl</A
-> :: a <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="decl"
-><A HREF="#v%3AgetDTDPart"
->getDTDPart</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDAttrl"
->getDTDAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrName"
->getAttrName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetErrorLevel"
->getErrorLevel</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetErrorMsg"
->getErrorMsg</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQName"
->getQName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetName"
->getName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUniversalName"
->getUniversalName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUniversalUri"
->getUniversalUri</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetLocalPart"
->getLocalPart</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNamePrefix"
->getNamePrefix</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNamespaceUri"
->getNamespaceUri</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrValue"
->getAttrValue</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrValue0"
->getAttrValue0</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQAttrValue"
->getQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQAttrValue0"
->getQAttrValue0</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeText"
->changeText</A
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeCmt"
->changeCmt</A
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeQName"
->changeQName</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 <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="decl"
-><A HREF="#v%3AchangeElemName"
->changeElemName</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 <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="decl"
-><A HREF="#v%3AchangeAttrName"
->changeAttrName</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 <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="decl"
-><A HREF="#v%3AchangePiName"
->changePiName</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 <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="decl"
-><A HREF="#v%3AchangeAttrValue"
->changeAttrValue</A
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeAttrl"
->changeAttrl</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetQName"
->setQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetElemName"
->setElemName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetAttrName"
->setAttrName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetPiName"
->setPiName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetAttrl"
->setAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrl"
->addAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttr"
->addAttr</A
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAttr"
->removeAttr</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveQAttr"
->removeQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttrl"
->processAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDownWithAttrl"
->processTopDownWithAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%3D"
->(+=)</A
-> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axshow"
->xshow</A
-> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="#t%3AArrowDTD"
->ArrowDTD</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDDoctype"
->isDTDDoctype</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDElement"
->isDTDElement</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDContent"
->isDTDContent</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDAttlist"
->isDTDAttlist</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDEntity"
->isDTDEntity</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDPEntity"
->isDTDPEntity</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDNotation"
->isDTDNotation</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDCondSect"
->isDTDCondSect</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDName"
->isDTDName</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDPERef"
->isDTDPERef</A
-> :: a <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="decl"
-><A HREF="#v%3AhasDTDAttr"
->hasDTDAttr</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDAttrValue"
->getDTDAttrValue</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetDTDAttrValue"
->setDTDAttrValue</A
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDElem"
->mkDTDElem</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDDoctype"
->mkDTDDoctype</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDElement"
->mkDTDElement</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDEntity"
->mkDTDEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDPEntity"
->mkDTDPEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> a) =&gt; <A NAME="t%3AArrowXml"
-></A
-><B
->ArrowXml</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCharRef"
-></A
-><B
->isCharRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for char reference, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEntityRef"
-></A
-><B
->isEntityRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for entity reference, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCmt"
-></A
-><B
->isCmt</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for comment
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCdata"
-></A
-><B
->isCdata</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for CDATA section, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlPi"
-></A
-><B
->isXmlPi</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for processing instruction &lt;?xml ...&gt;
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElem"
-></A
-><B
->isElem</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for element
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTD"
-></A
-><B
->isDTD</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for DTD part, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for attribute tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for error message
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRoot"
-></A
-><B
->isRoot</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for root node (element with name &quot;/&quot;)
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasText"
-></A
-><B
->hasText</B
-> :: (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test for text nodes with text, for which a predicate holds
-</P
-><P
->example: <TT
->hasText (all (`elem` &quot; \t\n&quot;))</TT
-> check for text nodes with only whitespace content
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWhiteSpace"
-></A
-><B
->isWhiteSpace</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test for text nodes with only white space
-</P
-><P
->implemented with hasTest
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNameWith"
-></A
-><B
->hasNameWith</B
-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node (element, attribute, pi) has a name with a special property
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasQName"
-></A
-><B
->hasQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node (element, attribute, pi) has a specific qualified name
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasName"
-></A
-><B
->hasName</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific name (prefix:localPart ore localPart),
- generally useful, even without namespace handling
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasLocalPart"
-></A
-><B
->hasLocalPart</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific name as local part,
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNamePrefix"
-></A
-><B
->hasNamePrefix</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific name prefix,
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNamespaceUri"
-></A
-><B
->hasNamespaceUri</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific namespace URI
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttr"
-></A
-><B
->hasAttr</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute node with a specific name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasQAttr"
-></A
-><B
->hasQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute node with a specific qualified name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttrValue"
-></A
-><B
->hasAttrValue</B
-> :: String -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute with a specific value
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasQAttrValue"
-></A
-><B
->hasQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute with a qualified name and a specific value
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkText"
-></A
-><B
->mkText</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->text node construction arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCharRef"
-></A
-><B
->mkCharRef</B
-> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->char reference construction arrow, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkEntityRef"
-></A
-><B
->mkEntityRef</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->entity reference construction arrow, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCmt"
-></A
-><B
->mkCmt</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->comment node construction, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCdata"
-></A
-><B
->mkCdata</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->CDATA construction, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkError"
-></A
-><B
->mkError</B
-> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->error node construction, useful only internally
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkElement"
-></A
-><B
->mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->element construction:
- | the attributes and the content of the element are computed by applying arrows
- to the input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAttr"
-></A
-><B
->mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->attribute node construction:
- | the attribute value is computed by applying an arrow to the input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPi"
-></A
-><B
->mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->processing instruction construction:
- | the content of the processing instruction is computed by applying an arrow to the input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amkqelem"
-></A
-><B
->mkqelem</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient arrow for element construction, more comfortable variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</P
-><P
->example for simplifying <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
-> :
-</P
-><PRE
-> mkElement qn (a1 &lt;+&gt; ... &lt;+&gt; ai) (c1 &lt;+&gt; ... &lt;+&gt; cj)
-</PRE
-><P
->equals
-</P
-><PRE
-> mkqelem qn [a1,...,ai] [c1,...,cj]
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amkelem"
-></A
-><B
->mkelem</B
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aaelem"
-></A
-><B
->aelem</B
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for element constrution with attributes but without content, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aselem"
-></A
-><B
->selem</B
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for simple element constrution without attributes, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aeelem"
-></A
-><B
->eelem</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for constrution of empty elements without attributes, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aroot"
-></A
-><B
->root</B
-> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of an element node with name &quot;/&quot; for document roots
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqattr"
-></A
-><B
->qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->alias for <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aattr"
-></A
-><B
->attr</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for attribute constrution, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atxt"
-></A
-><B
->txt</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharRef"
-></A
-><B
->charRef</B
-> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for char reference nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityRef"
-></A
-><B
->entityRef</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for entity reference nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acmt"
-></A
-><B
->cmt</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for comment
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Awarn"
-></A
-><B
->warn</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for warning
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aerr"
-></A
-><B
->err</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for errors
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Afatal"
-></A
-><B
->fatal</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for fatal errors
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aspi"
-></A
-><B
->spi</B
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for simple processing instructions, see <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
->mkPi</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asqattr"
-></A
-><B
->sqattr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for attribute nodes, attribute name is a qualified name and value is a text,
- | see also <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"
->qattr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"
->attr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asattr"
-></A
-><B
->sattr</B
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for attribute nodes, attribute name and value are
- | given by parameters, see <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetText"
-></A
-><B
->getText</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the text of a text node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCharRef"
-></A
-><B
->getCharRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the value of a char reference
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetEntityRef"
-></A
-><B
->getEntityRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of a entity reference node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCmt"
-></A
-><B
->getCmt</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the comment of a comment node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCdata"
-></A
-><B
->getCdata</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the content of a CDATA node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPiName"
-></A
-><B
->getPiName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of a processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPiContent"
-></A
-><B
->getPiContent</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the content of a processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemName"
-></A
-><B
->getElemName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the attribute list of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDPart"
-></A
-><B
->getDTDPart</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the DTD type of a DTD node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDAttrl"
-></A
-><B
->getDTDAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the DTD attributes of a DTD node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrName"
-></A
-><B
->getAttrName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of an attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorLevel"
-></A
-><B
->getErrorLevel</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the error level (c_warn, c_err, c_fatal) from an error node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorMsg"
-></A
-><B
->getErrorMsg</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the error message from an error node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQName"
-></A
-><B
->getQName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the qualified name from an element, attribute or pi
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the prefix:localPart or localPart from an element, attribute or pi
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalName"
-></A
-><B
->getUniversalName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the univeral name ({namespace URI} ++ localPart)
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalUri"
-></A
-><B
->getUniversalUri</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the univeral name (namespace URI ++ localPart)
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetLocalPart"
-></A
-><B
->getLocalPart</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the local part
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamePrefix"
-></A
-><B
->getNamePrefix</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name prefix
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamespaceUri"
-></A
-><B
->getNamespaceUri</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the namespace URI
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrValue"
-></A
-><B
->getAttrValue</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the value of an attribute of an element node,
- always succeeds with empty string as default value &quot;&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrValue0"
-></A
-><B
->getAttrValue0</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
->getAttrValue</A
-></TT
->, but fails if the attribute does not exist
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQAttrValue"
-></A
-><B
->getQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
->getAttrValue</A
-></TT
->, but select the value of an attribute given by a qualified name,
- always succeeds with empty string as default value &quot;&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQAttrValue0"
-></A
-><B
->getQAttrValue0</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"
->getQAttrValue</A
-></TT
->, but fails if attribute does not exist
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeText"
-></A
-><B
->changeText</B
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit the string of a text node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeCmt"
-></A
-><B
->changeCmt</B
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit the comment string of a comment node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeQName"
-></A
-><B
->changeQName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an element-, attribute- or pi- name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeElemName"
-></A
-><B
->changeElemName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an element name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrName"
-></A
-><B
->changeAttrName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangePiName"
-></A
-><B
->changePiName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit a pi name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrValue"
-></A
-><B
->changeAttrValue</B
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an attribute value
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrl"
-></A
-><B
->changeAttrl</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an attribute list of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetQName"
-></A
-><B
->setQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an element, attribute or pi name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetElemName"
-></A
-><B
->setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an element name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttrName"
-></A
-><B
->setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetPiName"
-></A
-><B
->setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an element name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttrl"
-></A
-><B
->setAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an atribute list of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttrl"
-></A
-><B
->addAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add a list of attributes list to an element
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add (or replace) an attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAttr"
-></A
-><B
->removeAttr</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove an attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveQAttr"
-></A
-><B
->removeQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove an attribute with a qualified name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttrl"
-></A
-><B
->processAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->process the attributes of an element node with an arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessTopDownWithAttrl"
-></A
-><B
->processTopDownWithAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->process a whole tree inclusive attribute list of element nodes
- see also: <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
->processTopDown</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%3D"
-></A
-><B
->(+=)</B
-> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient op for adding attributes or children to a node
-</P
-><P
->usage: <TT
-> tf += cf </TT
->
-</P
-><P
->the <TT
->tf</TT
-> arrow computes an element node, and all trees computed by <TT
->cf</TT
-> are
- added to this node, if a tree is an attribute, it is inserted in the attribute list
- else it is appended to the content list.
-</P
-><P
->attention: do not build long content list this way because <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
->+=</A
-></TT
-> is implemented by ++
-</P
-><P
->examples:
-</P
-><PRE
-> eelem &quot;a&quot;
-   += sattr &quot;href&quot; &quot;page.html&quot;
-   += sattr &quot;name&quot; &quot;here&quot;
-   += txt &quot;look here&quot;
-</PRE
-><P
->is the same as
-</P
-><PRE
-> mkelem [ sattr &quot;href&quot; &quot;page.html&quot;
-        , sattr &quot;name&quot; &quot;here&quot;
-        ]
-        [ txt &quot;look here&quot; ]
-</PRE
-><P
->and results in the XML fragment: &lt;a href=&quot;page.html&quot; name=&quot;here&quot;&gt;look here&lt;/a&gt;
-</P
-><P
->advantage of the <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
->+=</A
-></TT
-> operator is, that attributes and content can be added
- any time step by step.
- if <TT
->tf</TT
-> computes a whole list of trees, e.g. a list of &quot;td&quot; or &quot;tr&quot; elements,
- the attributes or content is added to all trees. useful for adding &quot;class&quot; or &quot;style&quot; attributes
- to table elements.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axshow"
-></A
-><B
->xshow</B
-> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n String</TD
-></TR
-><TR
-><TD CLASS="doc"
->apply an arrow to the input and convert the resulting XML trees into a string representation
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowXml')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowXml" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A NAME="t%3AArrowDTD"
-></A
-><B
->ArrowDTD</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Document Type Definition arrows
-</P
-><P
->These are separated, because they are not needed for document processing,
-only when processing the DTD, e.g. for generating access funtions for the toolbox
-from a DTD (se example DTDtoHaskell in the examples directory)
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTDDoctype"
-></A
-><B
->isDTDDoctype</B
-> :: a <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 NAME="v%3AisDTDElement"
-></A
-><B
->isDTDElement</B
-> :: a <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 NAME="v%3AisDTDContent"
-></A
-><B
->isDTDContent</B
-> :: a <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 NAME="v%3AisDTDAttlist"
-></A
-><B
->isDTDAttlist</B
-> :: a <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 NAME="v%3AisDTDEntity"
-></A
-><B
->isDTDEntity</B
-> :: a <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 NAME="v%3AisDTDPEntity"
-></A
-><B
->isDTDPEntity</B
-> :: a <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 NAME="v%3AisDTDNotation"
-></A
-><B
->isDTDNotation</B
-> :: a <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 NAME="v%3AisDTDCondSect"
-></A
-><B
->isDTDCondSect</B
-> :: a <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 NAME="v%3AisDTDName"
-></A
-><B
->isDTDName</B
-> :: a <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 NAME="v%3AisDTDPERef"
-></A
-><B
->isDTDPERef</B
-> :: a <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 NAME="v%3AhasDTDAttr"
-></A
-><B
->hasDTDAttr</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDAttrValue"
-></A
-><B
->getDTDAttrValue</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDTDAttrValue"
-></A
-><B
->setDTDAttrValue</B
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDTDElem"
-></A
-><B
->mkDTDElem</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <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 NAME="v%3AmkDTDDoctype"
-></A
-><B
->mkDTDDoctype</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <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 NAME="v%3AmkDTDElement"
-></A
-><B
->mkDTDElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <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 NAME="v%3AmkDTDEntity"
-></A
-><B
->mkDTDEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <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 NAME="v%3AmkDTDPEntity"
-></A
-><B
->mkDTDPEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
+>hxt-8.0.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
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Arrow.XmlArrow</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Version    : $Id: 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
+>All arrows use IO and a global state for options, errorhandling, ...
+</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"
+><SPAN CLASS="keyword"
+>class</SPAN
+> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
+>ArrowTree</A
+> a) =&gt; <A HREF="#t%3AArrowXml"
+>ArrowXml</A
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisText"
+>isText</A
+> :: a <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="decl"
+><A HREF="#v%3AisCharRef"
+>isCharRef</A
+> :: a <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="decl"
+><A HREF="#v%3AisEntityRef"
+>isEntityRef</A
+> :: a <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="decl"
+><A HREF="#v%3AisCmt"
+>isCmt</A
+> :: a <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="decl"
+><A HREF="#v%3AisCdata"
+>isCdata</A
+> :: a <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="decl"
+><A HREF="#v%3AisPi"
+>isPi</A
+> :: a <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="decl"
+><A HREF="#v%3AisXmlPi"
+>isXmlPi</A
+> :: a <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="decl"
+><A HREF="#v%3AisElem"
+>isElem</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTD"
+>isDTD</A
+> :: a <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="decl"
+><A HREF="#v%3AisAttr"
+>isAttr</A
+> :: a <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="decl"
+><A HREF="#v%3AisError"
+>isError</A
+> :: a <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="decl"
+><A HREF="#v%3AisRoot"
+>isRoot</A
+> :: a <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="decl"
+><A HREF="#v%3AhasText"
+>hasText</A
+> :: (String -&gt; Bool) -&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="decl"
+><A HREF="#v%3AisWhiteSpace"
+>isWhiteSpace</A
+> :: a <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="decl"
+><A HREF="#v%3AhasNameWith"
+>hasNameWith</A
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasQName"
+>hasQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasName"
+>hasName</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasLocalPart"
+>hasLocalPart</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasNamePrefix"
+>hasNamePrefix</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasNamespaceUri"
+>hasNamespaceUri</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasAttr"
+>hasAttr</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasQAttr"
+>hasQAttr</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasAttrValue"
+>hasAttrValue</A
+> :: String -&gt; (String -&gt; Bool) -&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="decl"
+><A HREF="#v%3AhasQAttrValue"
+>hasQAttrValue</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkText"
+>mkText</A
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkCharRef"
+>mkCharRef</A
+> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkEntityRef"
+>mkEntityRef</A
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkCmt"
+>mkCmt</A
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkCdata"
+>mkCdata</A
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkError"
+>mkError</A
+> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkElement"
+>mkElement</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkAttr"
+>mkAttr</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkPi"
+>mkPi</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amkqelem"
+>mkqelem</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amkelem"
+>mkelem</A
+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aaelem"
+>aelem</A
+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aselem"
+>selem</A
+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aeelem"
+>eelem</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aroot"
+>root</A
+> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aqattr"
+>qattr</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aattr"
+>attr</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atxt"
+>txt</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcharRef"
+>charRef</A
+> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AentityRef"
+>entityRef</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Acmt"
+>cmt</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Awarn"
+>warn</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aerr"
+>err</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Afatal"
+>fatal</A
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aspi"
+>spi</A
+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Asqattr"
+>sqattr</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Asattr"
+>sattr</A
+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetText"
+>getText</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetCharRef"
+>getCharRef</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> Int</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetEntityRef"
+>getEntityRef</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetCmt"
+>getCmt</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetCdata"
+>getCdata</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetPiName"
+>getPiName</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetPiContent"
+>getPiContent</A
+> :: a <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="decl"
+><A HREF="#v%3AgetElemName"
+>getElemName</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetAttrl"
+>getAttrl</A
+> :: a <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="decl"
+><A HREF="#v%3AgetDTDPart"
+>getDTDPart</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetDTDAttrl"
+>getDTDAttrl</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetAttrName"
+>getAttrName</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetErrorLevel"
+>getErrorLevel</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> Int</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetErrorMsg"
+>getErrorMsg</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetQName"
+>getQName</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetName"
+>getName</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetUniversalName"
+>getUniversalName</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetUniversalUri"
+>getUniversalUri</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetLocalPart"
+>getLocalPart</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetNamePrefix"
+>getNamePrefix</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetNamespaceUri"
+>getNamespaceUri</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetAttrValue"
+>getAttrValue</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetAttrValue0"
+>getAttrValue0</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetQAttrValue"
+>getQAttrValue</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetQAttrValue0"
+>getQAttrValue0</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AchangeText"
+>changeText</A
+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AchangeCmt"
+>changeCmt</A
+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AchangeQName"
+>changeQName</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 <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="decl"
+><A HREF="#v%3AchangeElemName"
+>changeElemName</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 <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="decl"
+><A HREF="#v%3AchangeAttrName"
+>changeAttrName</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 <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="decl"
+><A HREF="#v%3AchangePiName"
+>changePiName</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 <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="decl"
+><A HREF="#v%3AchangeAttrValue"
+>changeAttrValue</A
+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AchangeAttrl"
+>changeAttrl</A
+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetQName"
+>setQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetElemName"
+>setElemName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetAttrName"
+>setAttrName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetPiName"
+>setPiName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetAttrl"
+>setAttrl</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AaddAttrl"
+>addAttrl</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AaddAttr"
+>addAttr</A
+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AremoveAttr"
+>removeAttr</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AremoveQAttr"
+>removeQAttr</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessAttrl"
+>processAttrl</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessTopDownWithAttrl"
+>processTopDownWithAttrl</A
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%2B%3D"
+>(+=)</A
+> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axshow"
+>xshow</A
+> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>class</SPAN
+> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="#t%3AArrowDTD"
+>ArrowDTD</A
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDTDDoctype"
+>isDTDDoctype</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDElement"
+>isDTDElement</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDContent"
+>isDTDContent</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDAttlist"
+>isDTDAttlist</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDEntity"
+>isDTDEntity</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDPEntity"
+>isDTDPEntity</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDNotation"
+>isDTDNotation</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDCondSect"
+>isDTDCondSect</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDName"
+>isDTDName</A
+> :: a <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="decl"
+><A HREF="#v%3AisDTDPERef"
+>isDTDPERef</A
+> :: a <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="decl"
+><A HREF="#v%3AhasDTDAttr"
+>hasDTDAttr</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetDTDAttrValue"
+>getDTDAttrValue</A
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsetDTDAttrValue"
+>setDTDAttrValue</A
+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkDTDElem"
+>mkDTDElem</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkDTDDoctype"
+>mkDTDDoctype</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkDTDElement"
+>mkDTDElement</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkDTDEntity"
+>mkDTDEntity</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkDTDPEntity"
+>mkDTDPEntity</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+></TABLE
+></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"
+>class</SPAN
+> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
+>ArrowTree</A
+> a) =&gt; <A NAME="t%3AArrowXml"
+></A
+><B
+>ArrowXml</B
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#ArrowXml"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Methods</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisText"
+></A
+><B
+>isText</B
+> :: a <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-XmlArrow.html#isText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for text nodes
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCharRef"
+></A
+><B
+>isCharRef</B
+> :: a <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-XmlArrow.html#isCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for char reference, used during parsing
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisEntityRef"
+></A
+><B
+>isEntityRef</B
+> :: a <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-XmlArrow.html#isEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for entity reference, used during parsing
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCmt"
+></A
+><B
+>isCmt</B
+> :: a <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-XmlArrow.html#isCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for comment
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCdata"
+></A
+><B
+>isCdata</B
+> :: a <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-XmlArrow.html#isCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for CDATA section, used during parsing
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisPi"
+></A
+><B
+>isPi</B
+> :: a <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-XmlArrow.html#isPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for processing instruction
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXmlPi"
+></A
+><B
+>isXmlPi</B
+> :: a <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-XmlArrow.html#isXmlPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for processing instruction &lt;?xml ...&gt;
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisElem"
+></A
+><B
+>isElem</B
+> :: a <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-XmlArrow.html#isElem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for element
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTD"
+></A
+><B
+>isDTD</B
+> :: a <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-XmlArrow.html#isDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for DTD part, used during parsing
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisAttr"
+></A
+><B
+>isAttr</B
+> :: a <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-XmlArrow.html#isAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for attribute tree
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisError"
+></A
+><B
+>isError</B
+> :: a <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-XmlArrow.html#isError"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for error message
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisRoot"
+></A
+><B
+>isRoot</B
+> :: a <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-XmlArrow.html#isRoot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test for root node (element with name &quot;/&quot;)
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasText"
+></A
+><B
+>hasText</B
+> :: (String -&gt; Bool) -&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-XmlArrow.html#hasText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>test for text nodes with text, for which a predicate holds
+</P
+><P
+>example: <TT
+>hasText (all (`elem` &quot; \t\n&quot;))</TT
+> check for text nodes with only whitespace content
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWhiteSpace"
+></A
+><B
+>isWhiteSpace</B
+> :: a <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-XmlArrow.html#isWhiteSpace"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>test for text nodes with only white space
+</P
+><P
+>implemented with hasTest
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasNameWith"
+></A
+><B
+>hasNameWith</B
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasNameWith"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a node (element, attribute, pi) has a name with a special property
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasQName"
+></A
+><B
+>hasQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a node (element, attribute, pi) has a specific qualified name
+ useful only after namespace propagation
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasName"
+></A
+><B
+>hasName</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a node has a specific name (prefix:localPart ore localPart),
+ generally useful, even without namespace handling
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasLocalPart"
+></A
+><B
+>hasLocalPart</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasLocalPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a node has a specific name as local part,
+ useful only after namespace propagation
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasNamePrefix"
+></A
+><B
+>hasNamePrefix</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasNamePrefix"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a node has a specific name prefix,
+ useful only after namespace propagation
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasNamespaceUri"
+></A
+><B
+>hasNamespaceUri</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasNamespaceUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether a node has a specific namespace URI
+ useful only after namespace propagation
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasAttr"
+></A
+><B
+>hasAttr</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether an element node has an attribute node with a specific name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasQAttr"
+></A
+><B
+>hasQAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasQAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether an element node has an attribute node with a specific qualified name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasAttrValue"
+></A
+><B
+>hasAttrValue</B
+> :: String -&gt; (String -&gt; Bool) -&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-XmlArrow.html#hasAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether an element node has an attribute with a specific value
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasQAttrValue"
+></A
+><B
+>hasQAttrValue</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasQAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>test whether an element node has an attribute with a qualified name and a specific value
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkText"
+></A
+><B
+>mkText</B
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>text node construction arrow
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkCharRef"
+></A
+><B
+>mkCharRef</B
+> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>char reference construction arrow, useful for document output
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkEntityRef"
+></A
+><B
+>mkEntityRef</B
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>entity reference construction arrow, useful for document output
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkCmt"
+></A
+><B
+>mkCmt</B
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>comment node construction, useful for document output
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkCdata"
+></A
+><B
+>mkCdata</B
+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>CDATA construction, useful for document output
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkError"
+></A
+><B
+>mkError</B
+> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkError"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>error node construction, useful only internally
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkElement"
+></A
+><B
+>mkElement</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkElement"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>element construction:
+ | the attributes and the content of the element are computed by applying arrows
+ to the input
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkAttr"
+></A
+><B
+>mkAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>attribute node construction:
+ | the attribute value is computed by applying an arrow to the input
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkPi"
+></A
+><B
+>mkPi</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>processing instruction construction:
+ | the content of the processing instruction is computed by applying an arrow to the input
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Amkqelem"
+></A
+><B
+>mkqelem</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkqelem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>convenient arrow for element construction, more comfortable variant of <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>mkElement</A
+></TT
+>
+</P
+><P
+>example for simplifying <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>mkElement</A
+></TT
+> :
+</P
+><PRE
+> mkElement qn (a1 &lt;+&gt; ... &lt;+&gt; ai) (c1 &lt;+&gt; ... &lt;+&gt; cj)
+</PRE
+><P
+>equals
+</P
+><PRE
+> mkqelem qn [a1,...,ai] [c1,...,cj]
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Amkelem"
+></A
+><B
+>mkelem</B
+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkelem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>mkElement</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
+>mkelem</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aaelem"
+></A
+><B
+>aelem</B
+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#aelem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>convenient arrow for element constrution with attributes but without content, simple variant of <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
+>mkelem</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>mkElement</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aselem"
+></A
+><B
+>selem</B
+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#selem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>convenient arrow for simple element constrution without attributes, simple variant of <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
+>mkelem</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>mkElement</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aeelem"
+></A
+><B
+>eelem</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#eelem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>convenient arrow for constrution of empty elements without attributes, simple variant of <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
+>mkelem</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
+>mkElement</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aroot"
+></A
+><B
+>root</B
+> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#root"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>construction of an element node with name &quot;/&quot; for document roots
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aqattr"
+></A
+><B
+>qattr</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#qattr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>alias for <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
+>mkAttr</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aattr"
+></A
+><B
+>attr</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#attr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>convenient arrow for attribute constrution, simple variant of <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
+>mkAttr</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atxt"
+></A
+><B
+>txt</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#txt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for text nodes
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AcharRef"
+></A
+><B
+>charRef</B
+> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#charRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for char reference nodes
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AentityRef"
+></A
+><B
+>entityRef</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#entityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for entity reference nodes
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Acmt"
+></A
+><B
+>cmt</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#cmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for comment
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Awarn"
+></A
+><B
+>warn</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#warn"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for warning
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aerr"
+></A
+><B
+>err</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#err"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for errors
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Afatal"
+></A
+><B
+>fatal</B
+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#fatal"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for fatal errors
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aspi"
+></A
+><B
+>spi</B
+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#spi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for simple processing instructions, see <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
+>mkPi</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Asqattr"
+></A
+><B
+>sqattr</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#sqattr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for attribute nodes, attribute name is a qualified name and value is a text,
+ | see also <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
+>mkAttr</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"
+>qattr</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"
+>attr</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Asattr"
+></A
+><B
+>sattr</B
+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#sattr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constant arrow for attribute nodes, attribute name and value are
+ | given by parameters, see <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
+>mkAttr</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetText"
+></A
+><B
+>getText</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the text of a text node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetCharRef"
+></A
+><B
+>getCharRef</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the value of a char reference
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetEntityRef"
+></A
+><B
+>getEntityRef</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the name of a entity reference node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetCmt"
+></A
+><B
+>getCmt</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the comment of a comment node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetCdata"
+></A
+><B
+>getCdata</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the content of a CDATA node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetPiName"
+></A
+><B
+>getPiName</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getPiName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the name of a processing instruction
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetPiContent"
+></A
+><B
+>getPiContent</B
+> :: a <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-XmlArrow.html#getPiContent"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the content of a processing instruction
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetElemName"
+></A
+><B
+>getElemName</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getElemName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the name of an element node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrl"
+></A
+><B
+>getAttrl</B
+> :: a <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-XmlArrow.html#getAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the attribute list of an element node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetDTDPart"
+></A
+><B
+>getDTDPart</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getDTDPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the DTD type of a DTD node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetDTDAttrl"
+></A
+><B
+>getDTDAttrl</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getDTDAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the DTD attributes of a DTD node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrName"
+></A
+><B
+>getAttrName</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the name of an attribute
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetErrorLevel"
+></A
+><B
+>getErrorLevel</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getErrorLevel"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the error level (c_warn, c_err, c_fatal) from an error node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetErrorMsg"
+></A
+><B
+>getErrorMsg</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getErrorMsg"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the error message from an error node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetQName"
+></A
+><B
+>getQName</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the qualified name from an element, attribute or pi
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetName"
+></A
+><B
+>getName</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the prefix:localPart or localPart from an element, attribute or pi
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetUniversalName"
+></A
+><B
+>getUniversalName</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getUniversalName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the univeral name ({namespace URI} ++ localPart)
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetUniversalUri"
+></A
+><B
+>getUniversalUri</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getUniversalUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the univeral name (namespace URI ++ localPart)
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetLocalPart"
+></A
+><B
+>getLocalPart</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getLocalPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the local part
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetNamePrefix"
+></A
+><B
+>getNamePrefix</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getNamePrefix"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the name prefix
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetNamespaceUri"
+></A
+><B
+>getNamespaceUri</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getNamespaceUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the namespace URI
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrValue"
+></A
+><B
+>getAttrValue</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>select the value of an attribute of an element node,
+ always succeeds with empty string as default value &quot;&quot;
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrValue0"
+></A
+><B
+>getAttrValue0</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrValue0"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>like <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
+>getAttrValue</A
+></TT
+>, but fails if the attribute does not exist
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetQAttrValue"
+></A
+><B
+>getQAttrValue</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getQAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>like <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
+>getAttrValue</A
+></TT
+>, but select the value of an attribute given by a qualified name,
+ always succeeds with empty string as default value &quot;&quot;
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetQAttrValue0"
+></A
+><B
+>getQAttrValue0</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getQAttrValue0"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>like <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"
+>getQAttrValue</A
+></TT
+>, but fails if attribute does not exist
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeText"
+></A
+><B
+>changeText</B
+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit the string of a text node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeCmt"
+></A
+><B
+>changeCmt</B
+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit the comment string of a comment node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeQName"
+></A
+><B
+>changeQName</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 <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-XmlArrow.html#changeQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit an element-, attribute- or pi- name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeElemName"
+></A
+><B
+>changeElemName</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 <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-XmlArrow.html#changeElemName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit an element name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeAttrName"
+></A
+><B
+>changeAttrName</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 <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-XmlArrow.html#changeAttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit an attribute name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangePiName"
+></A
+><B
+>changePiName</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 <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-XmlArrow.html#changePiName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit a pi name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeAttrValue"
+></A
+><B
+>changeAttrValue</B
+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit an attribute value
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeAttrl"
+></A
+><B
+>changeAttrl</B
+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>edit an attribute list of an element node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetQName"
+></A
+><B
+>setQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>replace an element, attribute or pi name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetElemName"
+></A
+><B
+>setElemName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setElemName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>replace an element name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetAttrName"
+></A
+><B
+>setAttrName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setAttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>replace an attribute name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetPiName"
+></A
+><B
+>setPiName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setPiName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>replace an element name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetAttrl"
+></A
+><B
+>setAttrl</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>replace an atribute list of an element node
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AaddAttrl"
+></A
+><B
+>addAttrl</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#addAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>add a list of attributes list to an element
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AaddAttr"
+></A
+><B
+>addAttr</B
+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#addAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>add (or replace) an attribute
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AremoveAttr"
+></A
+><B
+>removeAttr</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#removeAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>remove an attribute
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AremoveQAttr"
+></A
+><B
+>removeQAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#removeQAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>remove an attribute with a qualified name
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessAttrl"
+></A
+><B
+>processAttrl</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#processAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>process the attributes of an element node with an arrow
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessTopDownWithAttrl"
+></A
+><B
+>processTopDownWithAttrl</B
+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#processTopDownWithAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>process a whole tree inclusive attribute list of element nodes
+ see also: <TT
+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
+>processTopDown</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%2B%3D"
+></A
+><B
+>(+=)</B
+> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#%2B%3D"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>convenient op for adding attributes or children to a node
+</P
+><P
+>usage: <TT
+> tf += cf </TT
+>
+</P
+><P
+>the <TT
+>tf</TT
+> arrow computes an element node, and all trees computed by <TT
+>cf</TT
+> are
+ added to this node, if a tree is an attribute, it is inserted in the attribute list
+ else it is appended to the content list.
+</P
+><P
+>attention: do not build long content list this way because <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
+>+=</A
+></TT
+> is implemented by ++
+</P
+><P
+>examples:
+</P
+><PRE
+> eelem &quot;a&quot;
+   += sattr &quot;href&quot; &quot;page.html&quot;
+   += sattr &quot;name&quot; &quot;here&quot;
+   += txt &quot;look here&quot;
+</PRE
+><P
+>is the same as
+</P
+><PRE
+> mkelem [ sattr &quot;href&quot; &quot;page.html&quot;
+        , sattr &quot;name&quot; &quot;here&quot;
+        ]
+        [ txt &quot;look here&quot; ]
+</PRE
+><P
+>and results in the XML fragment: &lt;a href=&quot;page.html&quot; name=&quot;here&quot;&gt;look here&lt;/a&gt;
+</P
+><P
+>advantage of the <TT
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
+>+=</A
+></TT
+> operator is, that attributes and content can be added
+ any time step by step.
+ if <TT
+>tf</TT
+> computes a whole list of trees, e.g. a list of &quot;td&quot; or &quot;tr&quot; elements,
+ the attributes or content is added to all trees. useful for adding &quot;class&quot; or &quot;style&quot; attributes
+ to table elements.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Axshow"
+></A
+><B
+>xshow</B
+> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#xshow"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>apply an arrow to the input and convert the resulting XML trees into a string representation
+</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowXml')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:ArrowXml" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
+>IOLA</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
+>IOSLA</A
+> s)</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
+>SLA</A
+> s)</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"
+>class</SPAN
+> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A NAME="t%3AArrowDTD"
+></A
+><B
+>ArrowDTD</B
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#ArrowDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+><P
+>Document Type Definition arrows
+</P
+><P
+>These are separated, because they are not needed for document processing,
+only when processing the DTD, e.g. for generating access funtions for the toolbox
+from a DTD (se example DTDtoHaskell in the examples directory)
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Methods</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDDoctype"
+></A
+><B
+>isDTDDoctype</B
+> :: a <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-XmlArrow.html#isDTDDoctype"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDElement"
+></A
+><B
+>isDTDElement</B
+> :: a <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-XmlArrow.html#isDTDElement"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDContent"
+></A
+><B
+>isDTDContent</B
+> :: a <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-XmlArrow.html#isDTDContent"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDAttlist"
+></A
+><B
+>isDTDAttlist</B
+> :: a <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-XmlArrow.html#isDTDAttlist"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDEntity"
+></A
+><B
+>isDTDEntity</B
+> :: a <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-XmlArrow.html#isDTDEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDPEntity"
+></A
+><B
+>isDTDPEntity</B
+> :: a <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-XmlArrow.html#isDTDPEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDNotation"
+></A
+><B
+>isDTDNotation</B
+> :: a <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-XmlArrow.html#isDTDNotation"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDCondSect"
+></A
+><B
+>isDTDCondSect</B
+> :: a <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-XmlArrow.html#isDTDCondSect"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDName"
+></A
+><B
+>isDTDName</B
+> :: a <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-XmlArrow.html#isDTDName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDPERef"
+></A
+><B
+>isDTDPERef</B
+> :: a <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-XmlArrow.html#isDTDPERef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasDTDAttr"
+></A
+><B
+>hasDTDAttr</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasDTDAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetDTDAttrValue"
+></A
+><B
+>getDTDAttrValue</B
+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getDTDAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetDTDAttrValue"
+></A
+><B
+>setDTDAttrValue</B
+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setDTDAttrValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkDTDElem"
+></A
+><B
+>mkDTDElem</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDElem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkDTDDoctype"
+></A
+><B
+>mkDTDDoctype</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDDoctype"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkDTDElement"
+></A
+><B
+>mkDTDElement</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDElement"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkDTDEntity"
+></A
+><B
+>mkDTDEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkDTDPEntity"
+></A
+><B
+>mkDTDPEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDPEntity"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ></TABLE
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlIOStateArrow.hs"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -152,21 +152,21 @@
 </P
 ><P
 >A state is needed for global processing options,
-like encoding options, document base URI, trace levels
-and error message handling
+   like encoding options, document base URI, trace levels
+   and error message handling
 </P
 ><P
 >The state is separated into a user defined state
-and a system state. The system state contains variables
-for error message handling, for tracing, for the document base
-for accessing XML documents with relative references, e.g. DTDs,
-and a global key value store. This assoc list has strings as keys
-and lists of XmlTrees as values. It is used to store arbitrary
-XML and text values, e.g. user defined global options.
+   and a system state. The system state contains variables
+   for error message handling, for tracing, for the document base
+   for accessing XML documents with relative references, e.g. DTDs,
+   and a global key value store. This assoc list has strings as keys
+   and lists of XmlTrees as values. It is used to store arbitrary
+   XML and text values, e.g. user defined global options.
 </P
 ><P
 >The user defined part of the store is in the default case empty, defined as ().
-It can be extended with an arbitray data type
+   It can be extended with an arbitray data type
 </P
 ></TD
 ></TR
@@ -1150,7 +1150,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXIOState"
@@ -1158,7 +1161,14 @@
 ><B
 >XIOState</B
 > us</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#XIOState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1247,7 +1257,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXIOSysState"
@@ -1255,7 +1268,14 @@
 ><B
 >XIOSysState</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#XIOSysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1416,7 +1436,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AIOStateArrow"
@@ -1428,7 +1451,14 @@
 > (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
 >XIOState</A
 > s) b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#IOStateArrow"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The arrow type for stateful arrows
@@ -1439,7 +1469,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AIOSArrow"
@@ -1449,7 +1482,14 @@
 > b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > () b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#IOSArrow"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The arrow for stateful arrows with no user defined state
@@ -1471,7 +1511,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinitialState"
 ></A
 ><B
@@ -1479,7 +1522,14 @@
 > :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
 >XIOState</A
 > us</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#initialState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the default global state, used as initial state when running an <TT
@@ -1503,7 +1553,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinitialSysState"
 ></A
 ><B
@@ -1511,13 +1564,23 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
 >XIOSysState</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#initialSysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArunX"
 ></A
 ><B
@@ -1527,7 +1590,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > c -&gt; IO [c]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#runX"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1592,7 +1662,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetUserState"
 ></A
 ><B
@@ -1600,7 +1673,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b s</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getUserState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read the user defined part of the state
@@ -1611,7 +1691,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetUserState"
 ></A
 ><B
@@ -1619,7 +1702,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s s s</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setUserState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the user defined part of the state
@@ -1630,7 +1720,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeUserState"
 ></A
 ><B
@@ -1638,7 +1731,14 @@
 > :: (b -&gt; s -&gt; s) -&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#changeUserState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >change the user defined part of the state
@@ -1649,7 +1749,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwithExtendedUserState"
 ></A
 ><B
@@ -1659,7 +1762,14 @@
 > (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s0 b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#withExtendedUserState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1678,7 +1788,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwithOtherUserState"
 ></A
 ><B
@@ -1688,7 +1801,14 @@
 > s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s0 b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#withOtherUserState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1716,7 +1836,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysParam"
 ></A
 ><B
@@ -1726,13 +1849,23 @@
 > -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getSysParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeSysParam"
 ></A
 ><B
@@ -1744,13 +1877,23 @@
 >) -&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#changeSysParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetParamList"
 ></A
 ><B
@@ -1762,7 +1905,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setParamList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >store a list of XML trees in global system state under a given attribute name
@@ -1773,7 +1923,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetParam"
 ></A
 ><B
@@ -1785,7 +1938,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >store a single XML tree in global state under a given attribute name
@@ -1796,7 +1956,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunsetParam"
 ></A
 ><B
@@ -1804,7 +1967,14 @@
 > :: String -&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#unsetParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >remove an entry in global state, arrow input remains unchanged
@@ -1815,7 +1985,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetParam"
 ></A
 ><B
@@ -1825,7 +1998,14 @@
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read an attribute value from global state
@@ -1836,7 +2016,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetAllParams"
 ></A
 ><B
@@ -1848,7 +2031,14 @@
 > String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getAllParams"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read all attributes from global state
@@ -1859,7 +2049,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetParamString"
 ></A
 ><B
@@ -1867,13 +2060,23 @@
 > :: String -&gt; String -&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#setParamString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetParamString"
 ></A
 ><B
@@ -1881,7 +2084,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getParamString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read a string value from global state,
@@ -1893,7 +2103,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetParamInt"
 ></A
 ><B
@@ -1901,7 +2114,14 @@
 > :: String -&gt; Int -&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#setParamInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >store an int value in global state
@@ -1912,7 +2132,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetParamInt"
 ></A
 ><B
@@ -1920,7 +2143,14 @@
 > :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getParamInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1947,7 +2177,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AclearErrStatus"
 ></A
 ><B
@@ -1955,13 +2188,23 @@
 > :: <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#clearErrStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetErrStatus"
 ></A
 ><B
@@ -1969,7 +2212,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s Int Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setErrStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set global error variable
@@ -1980,7 +2230,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetErrStatus"
 ></A
 ><B
@@ -1990,7 +2243,14 @@
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getErrStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read current global error status
@@ -2001,7 +2261,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetErrMsgStatus"
 ></A
 ><B
@@ -2013,7 +2276,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setErrMsgStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >raise the global error status level to that of the input tree
@@ -2024,7 +2294,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetErrorMsgHandler"
 ></A
 ><B
@@ -2032,7 +2305,14 @@
 > :: Bool -&gt; (String -&gt; IO ()) -&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#setErrorMsgHandler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the error message handler and the flag for collecting the errors
@@ -2043,7 +2323,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgStderr"
 ></A
 ><B
@@ -2051,7 +2334,14 @@
 > :: <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#errorMsgStderr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the default error message handler: error output to stderr
@@ -2062,7 +2352,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgCollect"
 ></A
 ><B
@@ -2070,7 +2363,14 @@
 > :: <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#errorMsgCollect"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >error message handler for collecting errors
@@ -2081,7 +2381,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgStderrAndCollect"
 ></A
 ><B
@@ -2089,7 +2392,14 @@
 > :: <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#errorMsgStderrAndCollect"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >error message handler for output to stderr and collecting
@@ -2100,7 +2410,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgIgnore"
 ></A
 ><B
@@ -2108,7 +2421,14 @@
 > :: <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#errorMsgIgnore"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >error message handler for ignoring errors
@@ -2119,7 +2439,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetErrorMessages"
 ></A
 ><B
@@ -2129,7 +2452,14 @@
 > s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getErrorMessages"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >if error messages are collected by the error handler for
@@ -2142,7 +2472,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfilterErrorMsg"
 ></A
 ><B
@@ -2154,7 +2487,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#filterErrorMsg"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >filter error messages from input trees and issue errors
@@ -2165,7 +2505,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueWarn"
 ></A
 ><B
@@ -2173,7 +2516,14 @@
 > :: String -&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#issueWarn"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >generate a warnig message
@@ -2184,7 +2534,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueErr"
 ></A
 ><B
@@ -2192,7 +2545,14 @@
 > :: String -&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#issueErr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >generate an error message
@@ -2203,7 +2563,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueFatal"
 ></A
 ><B
@@ -2211,7 +2574,14 @@
 > :: String -&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#issueFatal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >generate a fatal error message, e.g. document not found
@@ -2222,7 +2592,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetDocumentStatus"
 ></A
 ><B
@@ -2234,7 +2607,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setDocumentStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add the error level and the module where the error occured
@@ -2255,7 +2635,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetDocumentStatusFromSystemState"
 ></A
 ><B
@@ -2267,7 +2650,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setDocumentStatusFromSystemState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >check whether the error level attribute in the system state
@@ -2285,7 +2675,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdocumentStatusOk"
 ></A
 ><B
@@ -2297,7 +2690,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#documentStatusOk"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >check whether tree is a document root and the status attribute has a value less than <TT
@@ -2323,7 +2723,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetBaseURI"
 ></A
 ><B
@@ -2331,7 +2734,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the base URI of a document, used e.g. for reading includes, e.g. external entities,
@@ -2343,7 +2753,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetBaseURI"
 ></A
 ><B
@@ -2351,7 +2764,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read the base URI from the globale state
@@ -2362,7 +2782,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeBaseURI"
 ></A
 ><B
@@ -2370,7 +2793,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#changeBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2396,7 +2826,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetDefaultBaseURI"
 ></A
 ><B
@@ -2404,7 +2837,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setDefaultBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the default base URI, if parameter is null, the system base (<TT
@@ -2418,7 +2858,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetDefaultBaseURI"
 ></A
 ><B
@@ -2426,7 +2869,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getDefaultBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >get the default base URI
@@ -2437,7 +2887,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArunInLocalURIContext"
 ></A
 ><B
@@ -2447,7 +2900,14 @@
 > s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#runInLocalURIContext"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >remember base uri, run an arrow and restore the base URI, used with external entity substitution
@@ -2469,7 +2929,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetTraceLevel"
 ></A
 ><B
@@ -2477,7 +2940,14 @@
 > :: Int -&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#setTraceLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the global trace level
@@ -2488,7 +2958,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetTraceLevel"
 ></A
 ><B
@@ -2496,7 +2969,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getTraceLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >read the global trace level
@@ -2507,7 +2987,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwithTraceLevel"
 ></A
 ><B
@@ -2517,7 +3000,14 @@
 > s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s b c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#withTraceLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >run an arrow with a given trace level, the old trace level is restored after the arrow execution
@@ -2528,7 +3018,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Atrace"
 ></A
 ><B
@@ -2538,7 +3031,14 @@
 > s b String -&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#trace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >apply a trace arrow and issue message to stderr
@@ -2549,7 +3049,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceMsg"
 ></A
 ><B
@@ -2557,7 +3060,14 @@
 > :: Int -&gt; String -&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#traceMsg"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >issue a string message as trace 
@@ -2568,7 +3078,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceString"
 ></A
 ><B
@@ -2576,7 +3089,14 @@
 > :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >issue the string input of an arrow
@@ -2587,7 +3107,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceSource"
 ></A
 ><B
@@ -2599,7 +3122,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceSource"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2615,7 +3145,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceTree"
 ></A
 ><B
@@ -2627,7 +3160,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >issue the tree representation of a document if trace level &gt;= 4
@@ -2638,7 +3178,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceDoc"
 ></A
 ><B
@@ -2650,7 +3193,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >trace a main computation step
@@ -2662,7 +3212,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceState"
 ></A
 ><B
@@ -2670,7 +3223,14 @@
 > :: <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#traceState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >trace the global state
@@ -2692,13 +3252,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AexpandURIString"
 ></A
 ><B
 >expandURIString</B
 > :: String -&gt; String -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#expandURIString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >compute the absolut URI for a given URI and a base URI
@@ -2709,7 +3279,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AexpandURI"
 ></A
 ><B
@@ -2717,7 +3290,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
 >ArrowXml</A
 > a =&gt; a (String, String) String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#expandURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow variant of <TT
@@ -2736,7 +3316,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkAbsURI"
 ></A
 ><B
@@ -2744,7 +3327,14 @@
 > :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#mkAbsURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI
@@ -2755,7 +3345,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetFragmentFromURI"
 ></A
 ><B
@@ -2763,7 +3356,14 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getFragmentFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow for computing the fragment component of an URI, fails if input is not a legal URI
@@ -2774,7 +3374,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetPathFromURI"
 ></A
 ><B
@@ -2782,7 +3385,14 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getPathFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow for computing the path component of an URI, fails if input is not a legal URI
@@ -2793,7 +3403,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetPortFromURI"
 ></A
 ><B
@@ -2801,7 +3414,14 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getPortFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow for selecting the port number of the URI without leading ':', fails if input is not a legal URI
@@ -2812,7 +3432,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetQueryFromURI"
 ></A
 ><B
@@ -2820,7 +3443,14 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getQueryFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow for computing the query component of an URI, fails if input is not a legal URI
@@ -2831,7 +3461,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetRegNameFromURI"
 ></A
 ><B
@@ -2839,7 +3472,14 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getRegNameFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI
@@ -2850,7 +3490,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSchemeFromURI"
 ></A
 ><B
@@ -2858,7 +3501,14 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getSchemeFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2874,7 +3524,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetUserInfoFromURI"
 ></A
 ><B
@@ -2882,6 +3535,13 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getUserInfoFromURI"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html
+++ /dev/null
@@ -1,1075 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XmlNode</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNode.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlNode</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlNode.hs,v 1.14 2006<EM
->08</EM
->28 19:14:15 hxml Exp $
-</P
-><P
->Interface for XmlArrow to basic data types NTree and XmlTree
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3AXmlNode"
-></A
-><B
->XmlNode</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCharRef"
-></A
-><B
->isCharRef</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEntityRef"
-></A
-><B
->isEntityRef</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCmt"
-></A
-><B
->isCmt</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCdata"
-></A
-><B
->isCdata</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElem"
-></A
-><B
->isElem</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRoot"
-></A
-><B
->isRoot</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTD"
-></A
-><B
->isDTD</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkText"
-></A
-><B
->mkText</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCharRef"
-></A
-><B
->mkCharRef</B
-> :: Int -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkEntityRef"
-></A
-><B
->mkEntityRef</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCmt"
-></A
-><B
->mkCmt</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCdata"
-></A
-><B
->mkCdata</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPi"
-></A
-><B
->mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkError"
-></A
-><B
->mkError</B
-> :: Int -&gt; String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetText"
-></A
-><B
->getText</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCharRef"
-></A
-><B
->getCharRef</B
-> :: a -&gt; Maybe Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetEntityRef"
-></A
-><B
->getEntityRef</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCmt"
-></A
-><B
->getCmt</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCdata"
-></A
-><B
->getCdata</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPiName"
-></A
-><B
->getPiName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetPiContent"
-></A
-><B
->getPiContent</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemName"
-></A
-><B
->getElemName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDPart"
-></A
-><B
->getDTDPart</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDAttrl"
-></A
-><B
->getDTDAttrl</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrName"
-></A
-><B
->getAttrName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetErrorLevel"
-></A
-><B
->getErrorLevel</B
-> :: a -&gt; Maybe Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorMsg"
-></A
-><B
->getErrorMsg</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetQualifiedName"
-></A
-><B
->getQualifiedName</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalName"
-></A
-><B
->getUniversalName</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalUri"
-></A
-><B
->getUniversalUri</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetLocalPart"
-></A
-><B
->getLocalPart</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamePrefix"
-></A
-><B
->getNamePrefix</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamespaceUri"
-></A
-><B
->getNamespaceUri</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeText"
-></A
-><B
->changeText</B
-> :: (String -&gt; String) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeCmt"
-></A
-><B
->changeCmt</B
-> :: (String -&gt; String) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeName"
-></A
-><B
->changeName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeElemName"
-></A
-><B
->changeElemName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrl"
-></A
-><B
->changeAttrl</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrName"
-></A
-><B
->changeAttrName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangePiName"
-></A
-><B
->changePiName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeDTDAttrl"
-></A
-><B
->changeDTDAttrl</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetText"
-></A
-><B
->setText</B
-> :: String -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetCmt"
-></A
-><B
->setCmt</B
-> :: String -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetName"
-></A
-><B
->setName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetElemName"
-></A
-><B
->setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetElemAttrl"
-></A
-><B
->setElemAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttrName"
-></A
-><B
->setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetPiName"
-></A
-><B
->setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDTDAttrl"
-></A
-><B
->setDTDAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a -&gt; a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNode')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XmlNode" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkElementNode"
-></A
-><B
->mkElementNode</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAttrNode"
-></A
-><B
->mkAttrNode</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDTDNode"
-></A
-><B
->mkDTDNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkElement"
-></A
-><B
->mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRoot"
-></A
-><B
->mkRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAttr"
-></A
-><B
->mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDTDElem"
-></A
-><B
->mkDTDElem</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmergeAttrl"
-></A
-><B
->mergeAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></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="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html
@@ -0,0 +1,1137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Arrow.XmlRegex</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.0.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
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Arrow.XmlRegex</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Regular Expression Matcher working on lists of XmlTrees
+</P
+><P
+>It's intendet to import this module with an explicit
+   import declaration for not spoiling the namespace
+   with these somewhat special arrows
+</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"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AXmlRegex"
+>XmlRegex</A
+> </TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkZero"
+>mkZero</A
+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkUnit"
+>mkUnit</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkPrim"
+>mkPrim</A
+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkPrimA"
+>mkPrimA</A
+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkDot"
+>mkDot</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkStar"
+>mkStar</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkAlt"
+>mkAlt</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkSeq"
+>mkSeq</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkRep"
+>mkRep</A
+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkRng"
+>mkRng</A
+> :: Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkOpt"
+>mkOpt</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Anullable"
+>nullable</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adelta"
+>delta</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmatchXmlRegex"
+>matchXmlRegex</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; Maybe String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsplitXmlRegex"
+>splitXmlRegex</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AscanXmlRegex"
+>scanXmlRegex</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; Maybe [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmatchRegexA"
+>matchRegexA</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsplitRegexA"
+>splitRegexA</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AscanRegexA"
+>scanRegexA</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</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%3AXmlRegex"
+></A
+><B
+>XmlRegex</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#XmlRegex"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlRegex')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:XmlRegex" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</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%3AmkZero"
+></A
+><B
+>mkZero</B
+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkZero"
+>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%3AmkUnit"
+></A
+><B
+>mkUnit</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkUnit"
+>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%3AmkPrim"
+></A
+><B
+>mkPrim</B
+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkPrim"
+>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%3AmkPrimA"
+></A
+><B
+>mkPrimA</B
+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkPrimA"
+>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%3AmkDot"
+></A
+><B
+>mkDot</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkDot"
+>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%3AmkStar"
+></A
+><B
+>mkStar</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkStar"
+>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%3AmkAlt"
+></A
+><B
+>mkAlt</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkAlt"
+>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%3AmkSeq"
+></A
+><B
+>mkSeq</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkSeq"
+>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%3AmkRep"
+></A
+><B
+>mkRep</B
+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkRep"
+>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%3AmkRng"
+></A
+><B
+>mkRng</B
+> :: Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkRng"
+>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%3AmkOpt"
+></A
+><B
+>mkOpt</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkOpt"
+>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%3Anullable"
+></A
+><B
+>nullable</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#nullable"
+>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%3Adelta"
+></A
+><B
+>delta</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#delta"
+>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%3AmatchXmlRegex"
+></A
+><B
+>matchXmlRegex</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#matchXmlRegex"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>match a sequence of XML trees with a regular expression over trees
+</P
+><P
+>If the input matches, the result is Nothing, else Just an error message is returned
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsplitXmlRegex"
+></A
+><B
+>splitXmlRegex</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#splitXmlRegex"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>split a sequence of XML trees into a pair of a a matching prefix and a rest
+</P
+><P
+>If there is no matching prefix, Nothing is returned
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AscanXmlRegex"
+></A
+><B
+>scanXmlRegex</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; Maybe [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#scanXmlRegex"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>scan a sequence of XML trees and split it into parts matching the given regex
+</P
+><P
+>If the parts cannot be split because of a missing match, or because of the
+ empty sequence as match, Nothing is returned
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmatchRegexA"
+></A
+><B
+>matchRegexA</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#matchRegexA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>check whether a sequence of XmlTrees match an Xml regular expression
+</P
+><P
+>The arrow for <TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchXmlRegex"
+>matchXmlRegex</A
+></TT
+>.
+</P
+><P
+>The expession is build up from simple arrows acting as predicate (<TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrimA"
+>mkPrimA</A
+></TT
+>) for
+ an XmlTree and of the usual cobinators for sequence (<TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkSeq"
+>mkSeq</A
+></TT
+>), repetition
+ (<TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkStar"
+>mkStar</A
+></TT
+>, mkRep', <TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRng"
+>mkRng</A
+></TT
+>) and choice (<TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkAlt"
+>mkAlt</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkOpt"
+>mkOpt</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%3AsplitRegexA"
+></A
+><B
+>splitRegexA</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#splitRegexA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>split the sequence of trees computed by the filter a into
+</P
+><P
+>The arrow for <TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitXmlRegex"
+>splitXmlRegex</A
+></TT
+>.
+</P
+><P
+>a first part matching the regex and a rest,
+ if a prefix of the input sequence does not match the regex, the arrow fails
+ else the pair containing the result lists is returned
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AscanRegexA"
+></A
+><B
+>scanRegexA</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>XmlRegex</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#scanRegexA"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>scan the input sequence with a regex and give the result as a list of lists of trees back
+ the regex must at least match one input tree, so the empty sequence should not match the regex
+</P
+><P
+>The arrow for <TT
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanXmlRegex"
+>scanXmlRegex</A
+></TT
+>.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-Arrow.html b/doc/hdoc/Text-XML-HXT-Arrow.html
--- a/doc/hdoc/Text-XML-HXT-Arrow.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow.hs"
+><A HREF="src/Text-XML-HXT-Arrow.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -123,8 +123,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-DOMInterface.html"
->Text.XML.HXT.Arrow.DOMInterface</A
+>module <A HREF="Text-XML-HXT-DOM-Interface.html"
+>Text.XML.HXT.DOM.Interface</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html b/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html
+++ /dev/null
@@ -1,1192 +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.EditFilters</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/EditFilters.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.EditFilters</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->XML editing filters
-</P
-><P
->Version : $Id: EditFilters.hs,v 1.5 2006<EM
->11</EM
->12 14:52:59 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%3AcanonicalizeTree"
->canonicalizeTree</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollapseXText"
->collapseXText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollapseAllXText"
->collapseAllXText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AindentDoc"
->indentDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveWhiteSpace"
->removeWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveComment"
->removeComment</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAllComment"
->removeAllComment</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCdata"
->transfCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCdata"
->transfAllCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCdataEscaped"
->transfCdataEscaped</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCdataEscaped"
->transfAllCdataEscaped</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCharRef"
->transfCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCharRef"
->transfAllCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlText"
->escapeXmlText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlAttrValue"
->escapeXmlAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunparseXmlDoc"
->unparseXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumberLines"
->numberLines</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddHeadlineToXmlDoc"
->addHeadlineToXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXmlPiToDoc"
->addXmlPiToDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeTree"
-></A
-><B
->canonicalizeTree</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Applies some <A HREF="Canonical XML.html"
->Canonical XML</A
-> rules to the nodes of a tree.
-</P
-><P
->The rule differ slightly for canonical XML and XPath in handling of comments
-</P
-><P
->Note: This is not the whole canonicalization as it is specified by the W3C
- Recommendation. Adding attribute defaults or sorting attributes in lexicographic
- order is done by the <TT
->transform</TT
-> function of module <TT
->Text.XML.HXT.Validator.Validation</TT
->.
- Replacing entities or line feed normalization is done by the parser.
-</P
-><P
->Not implemented yet:
-</P
-><UL
-><LI
-> Whitespace within start and end tags is normalized
-</LI
-><LI
-> Special characters in attribute values and character content are replaced by character references
-</LI
-></UL
-><P
->see <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeAllNodes"
-></A
-><B
->canonicalizeAllNodes</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->canonicalize tree and remove comments and &lt;?xml ... ?&gt; declarations
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"
->canonicalizeTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeForXPath"
-></A
-><B
->canonicalizeForXPath</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Canonicalize a tree for XPath
- Comment nodes are not removed
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"
->canonicalizeTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollapseXText"
-></A
-><B
->collapseXText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Collects sequences of child XText nodes into one XText node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollapseAllXText"
-></A
-><B
->collapseAllXText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Applies collapseXText recursively.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"
->collapseXText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AindentDoc"
-></A
-><B
->indentDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for indenting a document tree for pretty printing.
-</P
-><P
->the tree is traversed for inserting whitespace for tag indentation.
-</P
-><P
->whitespace is only inserted or changed at places, where it isn't significant,
- is's not inserted between tags and text containing non whitespace chars.
-</P
-><P
->whitespace is only inserted or changed at places, where it's not significant.
- preserving whitespace may be controlled in a document tree
- by a tag attribute <TT
->xml:space</TT
->
-</P
-><P
->allowed values for this attribute are <TT
->default | preserve</TT
->.
-</P
-><P
->input is a complete document tree.
- result the semantically equivalent formatted tree.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveWhiteSpace"
-></A
-><B
->removeWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple filter for removing whitespace.
-</P
-><P
->no check on sigificant whitespace is done.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAllWhiteSpace"
-></A
-><B
->removeAllWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple recursive filter for removing all whitespace.
-</P
-><P
->removes all text nodes in a tree that consist only of whitespace.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"
->removeWhiteSpace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveDocWhiteSpace"
-></A
-><B
->removeDocWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for removing all not significant whitespace.
-</P
-><P
->the tree traversed for removing whitespace between tags,
- that was inserted for indentation and readability.
- whitespace is only removed at places, where it's not significat
- preserving whitespace may be controlled in a document tree
- by a tag attribute <TT
->xml:space</TT
->
-</P
-><P
->allowed values for this attribute are <TT
->default | preserve</TT
->
-</P
-><P
->input is root node of the document to be cleaned up
- output the semantically equivalent simplified tree
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"
->indentDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveComment"
-></A
-><B
->removeComment</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove Comments
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAllComment"
-></A
-><B
->removeAllComment</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove all Comments recursively
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCdata"
-></A
-><B
->transfCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA section in normal text sections
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCdata"
-></A
-><B
->transfAllCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA sections in whole document tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCdataEscaped"
-></A
-><B
->transfCdataEscaped</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA section in normal text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCdataEscaped"
-></A
-><B
->transfAllCdataEscaped</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA sections in whole document tree into normal text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCharRef"
-></A
-><B
->transfCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts character references to normal text
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCharRef"
-></A
-><B
->transfAllCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->recursively converts all character references to normal text
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlDoc"
-></A
-><B
->escapeXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the special XML chars &quot;, &lt;, &gt;, &amp; and ' in a document to char references,
- attribute values are converted with <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"
->escapeXmlAttrValue</A
-></TT
->
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"
->escapeXmlText</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"
->escapeXmlAttrValue</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlText"
-></A
-><B
->escapeXmlText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the special XML chars in a text or comment node
- into character references
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlAttrValue"
-></A
-><B
->escapeXmlAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the special XML chars in an attribute value into
- charachter references. Not only the XML specials but also \n, \r and \t are converted
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"
->escapeXmlText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunparseXmlDoc"
-></A
-><B
->unparseXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document tree into an output string representation
- with respect to the output encoding.
-</P
-><P
->The children of the document root are stubstituted by
- a single text node for the text representation of the document.
-</P
-><P
->Encoding of the document is performed with respect
- to the <TT
->output-encoding</TT
-> attribute in the root node, or if not present,
- of the <TT
->encoding</TT
-> attribute for the original input encoding.
- If the encoding is not specified or not supported, UTF-8 is taken.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumberLinesInXmlDoc"
-></A
-><B
->numberLinesInXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a text and add line numbers to the text representation.
-</P
-><P
->Result is a root node with a single text node as child.
- Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumberLines"
-></A
-><B
->numberLines</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtreeRepOfXmlDoc"
-></A
-><B
->treeRepOfXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a text representation in tree form.
-</P
-><P
->Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhaskellRepOfXmlDoc"
-></A
-><B
->haskellRepOfXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a Haskell representation (with show).
-</P
-><P
->Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddHeadlineToXmlDoc"
-></A
-><B
->addHeadlineToXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXmlPiToDoc"
-></A
-><B
->addXmlPiToDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/FormatXmlTree.hs"
+><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.DOM.FormatXmlTree</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -58,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->format a xml tree in tree representation
-</P
-><P
->Version : $Id: FormatXmlTree.hs,v 1.2 2006<EM
->05</EM
->01 18:56:24 hxml Exp $
-</P
-></TD
+>Format a xml tree in tree representation
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -85,7 +100,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatXmlTree"
 ></A
 ><B
@@ -93,19 +111,38 @@
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html#formatXmlTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatXmlContents"
 ></A
 ><B
 >formatXmlContents</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html#formatXmlContents"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-Interface.html b/doc/hdoc/Text-XML-HXT-DOM-Interface.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DOM-Interface.html
@@ -0,0 +1,162 @@
+<!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.Interface</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.0.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
+></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.Interface</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 interface to the primitive DOM data types and constants
+   and utility functions
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
+>Text.XML.HXT.DOM.XmlKeywords</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="decl"
+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
+>Text.XML.HXT.DOM.NamespacePredicates</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-Util.html"
+>Text.XML.HXT.DOM.Util</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-XmlOptions.html"
+>Text.XML.HXT.DOM.XmlOptions</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/IsoLatinTables.hs"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,168 +69,308 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_2"
 ></A
 ><B
 >iso_8859_2</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_2"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_3"
 ></A
 ><B
 >iso_8859_3</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_3"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_4"
 ></A
 ><B
 >iso_8859_4</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_4"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_5"
 ></A
 ><B
 >iso_8859_5</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_5"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_6"
 ></A
 ><B
 >iso_8859_6</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_6"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_7"
 ></A
 ><B
 >iso_8859_7</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_7"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_8"
 ></A
 ><B
 >iso_8859_8</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_8"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_9"
 ></A
 ><B
 >iso_8859_9</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_9"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_10"
 ></A
 ><B
 >iso_8859_10</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_10"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_11"
 ></A
 ><B
 >iso_8859_11</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_11"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_13"
 ></A
 ><B
 >iso_8859_13</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_13"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_14"
 ></A
 ><B
 >iso_8859_14</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_14"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_15"
 ></A
 ><B
 >iso_8859_15</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_15"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aiso_8859_16"
 ></A
 ><B
 >iso_8859_16</B
 > :: [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_16"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-Namespace.html b/doc/hdoc/Text-XML-HXT-DOM-Namespace.html
--- a/doc/hdoc/Text-XML-HXT-DOM-Namespace.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-Namespace.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Namespace.hs"
+><A HREF="src/Text-XML-HXT-DOM-Namespace.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -117,7 +117,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApropagateAndValidateNamespaces"
 ></A
 ><B
@@ -125,6 +128,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Namespace.html#propagateAndValidateNamespaces"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html
--- a/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespaceFilter.hs"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -129,9 +129,7 @@
 >type</SPAN
 > <A HREF="#t%3ANamespaceTable"
 >NamespaceTable</A
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-></TD
+> = NsEnv</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -141,9 +139,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3ApropagateNamespaces"
 >propagateNamespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -155,9 +151,7 @@
 >propagateNamespaceEnv</A
 > :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
 >NamespaceTable</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> -&gt; XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -167,9 +161,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateNamespaces"
 >validateNamespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -179,9 +171,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Avalidate1Namespaces"
 >validate1Namespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -191,9 +181,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisNamespaceDecl"
 >isNamespaceDecl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -221,25 +209,29 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANamespaceTable"
 ></A
 ><B
 >NamespaceTable</B
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
+> = NsEnv</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#NamespaceTable"
+>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
+ modifying the QName values in a tree
 </TD
 ></TR
 ><TR
@@ -247,15 +239,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApropagateNamespaces"
 ></A
 ><B
 >propagateNamespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#propagateNamespaces"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -280,17 +280,25 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApropagateNamespaceEnv"
 ></A
 ><B
 >propagateNamespaceEnv</B
 > :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
 >NamespaceTable</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> -&gt; XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#propagateNamespaceEnv"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >attaches the namespace info given by the namespace table
@@ -302,15 +310,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateNamespaces"
 ></A
 ><B
 >validateNamespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#validateNamespaces"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >validate the namespace constraints in a whole tree.
@@ -345,15 +361,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Avalidate1Namespaces"
 ></A
 ><B
 >validate1Namespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#validate1Namespaces"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >a single node for namespace constrains.
@@ -364,13 +388,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNamespaceDecl"
 ></A
 ><B
 >isNamespaceDecl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#isNamespaceDecl"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
--- a/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"
+><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -179,7 +179,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetNamespace"
 ></A
 ><B
@@ -191,7 +194,14 @@
 > -&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
@@ -217,7 +227,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlnsQN"
 ></A
 ><B
@@ -225,19 +238,36 @@
 > :: <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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNCName"
 ></A
 ><B
 >isNCName</B
 > :: String -&gt; Bool</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
@@ -248,13 +278,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisWellformedQualifiedName"
 ></A
 ><B
 >isWellformedQualifiedName</B
 > :: String -&gt; Bool</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
@@ -266,7 +306,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisWellformedQName"
 ></A
 ><B
@@ -274,7 +317,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</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.
@@ -287,7 +337,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisWellformedNSDecl"
 ></A
 ><B
@@ -295,7 +348,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</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
@@ -308,7 +368,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisDeclaredNamespace"
 ></A
 ><B
@@ -316,6 +379,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</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"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/QualifiedName.hs"
+><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -326,7 +326,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AQName"
@@ -334,7 +337,14 @@
 ><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"
@@ -476,7 +486,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AqualifiedName"
 ></A
 ><B
@@ -484,7 +497,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</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
@@ -495,7 +515,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AuniversalName"
 ></A
 ><B
@@ -503,7 +526,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</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
@@ -519,7 +549,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AuniversalUri"
 ></A
 ><B
@@ -527,7 +560,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</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,
@@ -544,7 +584,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AbuildUniversalName"
 ></A
 ><B
@@ -552,7 +595,14 @@
 > :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</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
@@ -564,7 +614,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkQName"
 ></A
 ><B
@@ -572,7 +625,14 @@
 > :: String -&gt; String -&gt; String -&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
@@ -595,7 +655,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkName"
 ></A
 ><B
@@ -603,7 +666,14 @@
 > :: String -&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
@@ -622,7 +692,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkPrefixLocalPart"
 ></A
 ><B
@@ -630,7 +703,14 @@
 > :: String -&gt; String -&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
@@ -658,7 +738,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkNsName"
 ></A
 ><B
@@ -666,7 +749,14 @@
 > :: String -&gt; String -&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
@@ -690,7 +780,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkSNsName"
 ></A
 ><B
@@ -698,7 +791,14 @@
 > :: String -&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
@@ -722,7 +822,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnullQName"
 ></A
 ><B
@@ -730,7 +833,14 @@
 > :: <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
@@ -741,7 +851,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AequalQName"
 ></A
 ><B
@@ -751,7 +864,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</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
@@ -768,7 +888,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AequivQName"
 ></A
 ><B
@@ -778,7 +901,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</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.
@@ -798,13 +928,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AequivUri"
 ></A
 ><B
 >equivUri</B
 > :: String -&gt; String -&gt; Bool</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
@@ -819,7 +959,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AequalQNameBy"
 ></A
 ><B
@@ -829,7 +972,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</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
@@ -854,12 +1004,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeNsUri"
 ></A
 ><B
 >normalizeNsUri</B
 > :: String -&gt; String</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"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html b/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DOM-ShowXml.html
@@ -0,0 +1,207 @@
+<!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.ShowXml</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.0.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
+></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.ShowXml</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"
+>XML tree conversion to external string representation
+</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%3Axshow"
+>xshow</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AshowElemType"
+>showElemType</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Axshow"
+></A
+><B
+>xshow</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-ShowXml.html#xshow"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>convert the result of a filter into a string
+</P
+><P
+>see also : xmlTreesToText for filter version, <TT
+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
+>xread</A
+></TT
+> for the inverse operation 
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AshowElemType"
+></A
+><B
+>showElemType</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-ShowXml.html#showElemType"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
--- a/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -474,7 +474,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXmlTree"
@@ -486,7 +489,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XmlTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Node of xml tree representation
@@ -497,7 +507,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXmlTrees"
@@ -509,7 +522,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XmlTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of nodes of xml tree representation
@@ -520,7 +540,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXNode"
@@ -528,7 +551,14 @@
 ><B
 >XNode</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -723,7 +753,7 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
@@ -741,7 +771,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ADTDElem"
@@ -749,7 +782,14 @@
 ><B
 >DTDElem</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#DTDElem"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -983,7 +1023,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AAttributes"
@@ -993,7 +1036,14 @@
 > = <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#Attributes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1009,7 +1059,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANsEnv"
@@ -1019,7 +1072,14 @@
 > = <A HREF="Data-AssocList.html#t%3AAssocList"
 >AssocList</A
 > String String</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
@@ -1035,13 +1095,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ac_ok"
 ></A
 ><B
 >c_ok</B
 > :: Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_ok"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >no error, everything is ok
@@ -1052,13 +1122,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ac_warn"
 ></A
 ><B
 >c_warn</B
 > :: Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_warn"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Error level for XError, type warning
@@ -1069,13 +1149,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ac_err"
 ></A
 ><B
 >c_err</B
 > :: Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_err"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Error level for XError, type error
@@ -1086,13 +1176,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ac_fatal"
 ></A
 ><B
 >c_fatal</B
 > :: Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_fatal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Error level for XError, type fatal error
@@ -1103,7 +1203,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXmlNodeSet"
@@ -1111,7 +1214,14 @@
 ><B
 >XmlNodeSet</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XmlNodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1229,7 +1339,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AChildNodes"
@@ -1239,6 +1352,13 @@
 > = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#ChildNodes"
+>Source</A
+></TD
+></TR
+></TABLE
+></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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/UTF8Decoding.hs"
+><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -135,13 +135,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdecodeUtf8"
 ></A
 ><B
 >decodeUtf8</B
 > :: String -&gt; (String, [String])</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html#decodeUtf8"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >calls <TT
@@ -156,12 +166,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdecodeUtf8EmbedErrors"
 ></A
 ><B
 >decodeUtf8EmbedErrors</B
 > :: String -&gt; [Either String Char]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html#decodeUtf8EmbedErrors"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -689,7 +689,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUnicode"
@@ -697,7 +700,14 @@
 ><B
 >Unicode</B
 > = Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#Unicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Unicode is represented as the Char type
@@ -710,7 +720,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUString"
@@ -720,7 +733,14 @@
 > = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the type for Unicode strings
@@ -731,7 +751,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUTF8Char"
@@ -739,7 +762,14 @@
 ><B
 >UTF8Char</B
 > = Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UTF8Char"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UTF-8 charachters are represented by the Char type
@@ -750,7 +780,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUTF8String"
@@ -758,7 +791,14 @@
 ><B
 >UTF8String</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UTF8String"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UTF-8 strings are implemented as Haskell strings
@@ -769,7 +809,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUStringWithErrors"
@@ -777,13 +820,23 @@
 ><B
 >UStringWithErrors</B
 > = [Either String Char]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UStringWithErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADecodingFct"
@@ -793,7 +846,14 @@
 > = String -&gt; (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 >, [String])</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#DecodingFct"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Decoding function with a pair containing the result string and a list of decoding errors as result
@@ -804,7 +864,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADecodingFctEmbedErrors"
@@ -814,7 +877,14 @@
 > = String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
 >UStringWithErrors</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#DecodingFctEmbedErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Decoding function where decoding errors are interleaved with decoded characters
@@ -836,7 +906,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlChar"
 ></A
 ><B
@@ -844,7 +917,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for valid XML characters
@@ -855,7 +935,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlLatin1Char"
 ></A
 ><B
@@ -863,7 +946,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlLatin1Char"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >test for a legal latin1 XML char
@@ -874,7 +964,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlSpaceChar"
 ></A
 ><B
@@ -882,7 +975,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlSpaceChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML space character: \n, \r, \t and &quot; &quot;
@@ -893,7 +993,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXml11SpaceChar"
 ></A
 ><B
@@ -901,7 +1004,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXml11SpaceChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -921,7 +1031,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlNameChar"
 ></A
 ><B
@@ -929,7 +1042,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNameChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML name character
@@ -940,7 +1060,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlNameStartChar"
 ></A
 ><B
@@ -948,7 +1071,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNameStartChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -968,7 +1098,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlNCNameChar"
 ></A
 ><B
@@ -976,7 +1109,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNCNameChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -996,7 +1136,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlNCNameStartChar"
 ></A
 ><B
@@ -1004,7 +1147,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNCNameStartChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1028,7 +1178,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlPubidChar"
 ></A
 ><B
@@ -1036,7 +1189,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlPubidChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML public id character
@@ -1047,7 +1207,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlLetter"
 ></A
 ><B
@@ -1055,7 +1218,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlLetter"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML letter
@@ -1066,7 +1236,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlBaseChar"
 ></A
 ><B
@@ -1074,7 +1247,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlBaseChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML base charater
@@ -1085,7 +1265,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlIdeographicChar"
 ></A
 ><B
@@ -1093,7 +1276,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlIdeographicChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML ideographic charater
@@ -1104,7 +1294,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlCombiningChar"
 ></A
 ><B
@@ -1112,7 +1305,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlCombiningChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML combining charater
@@ -1123,7 +1323,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlDigit"
 ></A
 ><B
@@ -1131,7 +1334,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlDigit"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML digit
@@ -1142,7 +1352,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlExtender"
 ></A
 ><B
@@ -1150,7 +1363,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlExtender"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >checking for XML extender
@@ -1161,7 +1381,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisXmlControlOrPermanentlyUndefined"
 ></A
 ><B
@@ -1169,7 +1392,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlControlOrPermanentlyUndefined"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1204,7 +1434,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Autf8ToUnicode"
 ></A
 ><B
@@ -1212,7 +1445,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
 >DecodingFct</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf8ToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1
@@ -1223,7 +1463,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Autf8ToUnicodeEmbedErrors"
 ></A
 ><B
@@ -1231,13 +1474,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
 >DecodingFctEmbedErrors</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf8ToUnicodeEmbedErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Alatin1ToUnicode"
 ></A
 ><B
@@ -1245,7 +1498,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#latin1ToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >code conversion from latin1 to Unicode
@@ -1256,7 +1516,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aucs2ToUnicode"
 ></A
 ><B
@@ -1264,7 +1527,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#ucs2ToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UCS-2 to UTF-8 conversion with byte order mark analysis
@@ -1275,7 +1545,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aucs2BigEndianToUnicode"
 ></A
 ><B
@@ -1283,7 +1556,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#ucs2BigEndianToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UCS-2 big endian to Unicode conversion
@@ -1294,7 +1574,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aucs2LittleEndianToUnicode"
 ></A
 ><B
@@ -1302,7 +1585,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#ucs2LittleEndianToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UCS-2 little endian to Unicode conversion
@@ -1313,7 +1603,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Autf16beToUnicode"
 ></A
 ><B
@@ -1321,7 +1614,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf16beToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UTF-16 big endian to UTF-8 conversion with removal of byte order mark
@@ -1332,7 +1632,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Autf16leToUnicode"
 ></A
 ><B
@@ -1340,7 +1643,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf16leToUnicode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >UTF-16 little endian to UTF-8 conversion with removal of byte order mark
@@ -1351,7 +1661,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunicodeCharToUtf8"
 ></A
 ><B
@@ -1361,7 +1674,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
 >UTF8String</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeCharToUtf8"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >conversion from Unicode (Char) to a UTF8 encoded string.
@@ -1372,7 +1692,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunicodeToUtf8"
 ></A
 ><B
@@ -1382,7 +1705,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
 >UTF8String</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeToUtf8"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >conversion from Unicode strings (UString) to UTF8 encoded strings.
@@ -1393,7 +1723,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunicodeToXmlEntity"
 ></A
 ><B
@@ -1401,7 +1734,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeToXmlEntity"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1426,7 +1766,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunicodeToLatin1"
 ></A
 ><B
@@ -1434,7 +1777,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeToLatin1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1459,7 +1809,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunicodeRemoveNoneAscii"
 ></A
 ><B
@@ -1467,7 +1820,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeRemoveNoneAscii"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1493,7 +1853,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunicodeRemoveNoneLatin1"
 ></A
 ><B
@@ -1501,7 +1864,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeRemoveNoneLatin1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1527,13 +1897,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AintToCharRef"
 ></A
 ><B
 >intToCharRef</B
 > :: Int -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#intToCharRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1553,13 +1933,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AintToCharRefHex"
 ></A
 ><B
 >intToCharRefHex</B
 > :: Int -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#intToCharRefHex"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1579,7 +1969,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetDecodingFct"
 ></A
 ><B
@@ -1587,7 +1980,14 @@
 > :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
 >DecodingFct</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#getDecodingFct"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the lookup function for selecting the decoding function
@@ -1598,7 +1998,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetDecodingFctEmbedErrors"
 ></A
 ><B
@@ -1606,7 +2009,14 @@
 > :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
 >DecodingFctEmbedErrors</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#getDecodingFctEmbedErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the lookup function for selecting the decoding function
@@ -1617,7 +2027,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetOutputEncodingFct"
 ></A
 ><B
@@ -1625,7 +2038,14 @@
 > :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
 >UString</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#getOutputEncodingFct"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the lookup function for selecting the encoding function
@@ -1636,13 +2056,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeNL"
 ></A
 ><B
 >normalizeNL</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#normalizeNL"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1659,12 +2089,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AguessEncoding"
 ></A
 ><B
 >guessEncoding</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Unicode.html#guessEncoding"
+>Source</A
+></TD
+></TR
+></TABLE
+></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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"
+><A HREF="src/Text-XML-HXT-DOM-Util.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -318,13 +318,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringTrim"
 ></A
 ><B
 >stringTrim</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#stringTrim"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >remove leading and trailing whitespace with standard Haskell predicate isSpace
@@ -335,13 +345,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringToUpper"
 ></A
 ><B
 >stringToUpper</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#stringToUpper"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >convert string to upercase with standard Haskell toUpper function
@@ -352,13 +372,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeNumber"
 ></A
 ><B
 >normalizeNumber</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#normalizeNumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Removes leading / trailing whitespaces and leading zeros
@@ -369,13 +399,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeWhitespace"
 ></A
 ><B
 >normalizeWhitespace</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#normalizeWhitespace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Reduce whitespace sequences to a single whitespace
@@ -386,13 +426,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeBlanks"
 ></A
 ><B
 >normalizeBlanks</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#normalizeBlanks"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >replace all whitespace chars by blanks
@@ -403,13 +453,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AescapeURI"
 ></A
 ><B
 >escapeURI</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#escapeURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Escape all disallowed characters in URI 
@@ -423,13 +483,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtextEscapeXml"
 ></A
 ><B
 >textEscapeXml</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#textEscapeXml"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -449,13 +519,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringEscapeXml"
 ></A
 ><B
 >stringEscapeXml</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#stringEscapeXml"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -475,13 +555,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattrEscapeXml"
 ></A
 ><B
 >attrEscapeXml</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#attrEscapeXml"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -502,25 +592,45 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringToInt"
 ></A
 ><B
 >stringToInt</B
 > :: Int -&gt; String -&gt; Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#stringToInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringToHexString"
 ></A
 ><B
 >stringToHexString</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#stringToHexString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -540,13 +650,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcharToHexString"
 ></A
 ><B
 >charToHexString</B
 > :: Char -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#charToHexString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -570,13 +690,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AintToHexString"
 ></A
 ><B
 >intToHexString</B
 > :: Int -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#intToHexString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -596,13 +726,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AhexStringToInt"
 ></A
 ><B
 >hexStringToInt</B
 > :: String -&gt; Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#hexStringToInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >convert a string of hexadecimal digits into an Int
@@ -613,13 +753,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdecimalStringToInt"
 ></A
 ><B
 >decimalStringToInt</B
 > :: String -&gt; Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#decimalStringToInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >convert a string of digits into an Int
@@ -630,13 +780,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adoubles"
 ></A
 ><B
 >doubles</B
 > :: Eq a =&gt; [a] -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#doubles"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >take all elements of a list which occur more than once. The result does not contain doubles.
@@ -648,13 +808,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Asingles"
 ></A
 ><B
 >singles</B
 > :: Eq a =&gt; [a] -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#singles"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >drop all elements from a list which occur more than once.
@@ -665,13 +835,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnoDoubles"
 ></A
 ><B
 >noDoubles</B
 > :: Eq a =&gt; [a] -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#noDoubles"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >remove duplicates from list
@@ -682,49 +862,89 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aswap"
 ></A
 ><B
 >swap</B
 > :: (a, b) -&gt; (b, a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#swap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApartitionEither"
 ></A
 ><B
 >partitionEither</B
 > :: [Either a b] -&gt; ([a], [b])</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#partitionEither"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtoMaybe"
 ></A
 ><B
 >toMaybe</B
 > :: Bool -&gt; a -&gt; Maybe a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#toMaybe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Auncurry3"
 ></A
 ><B
 >uncurry3</B
 > :: (a -&gt; b -&gt; c -&gt; d) -&gt; (a, b, c) -&gt; d</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#uncurry3"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >mothers little helpers for to much curry
@@ -735,12 +955,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Auncurry4"
 ></A
 ><B
 >uncurry4</B
 > :: (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; (a, b, c, d) -&gt; e</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-Util.html#uncurry4"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,3458 +19,4978 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlKeywords</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM
->11</EM
->02 09:34:09 hxml Exp $
-</P
-><P
->Constants for XML keywords, for special attribute names
-   and special attribute values
-</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%3At_xml"
->t_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3At_root"
->t_root</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_canonicalize"
->a_canonicalize</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_default"
->a_default</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_check_namespaces"
->a_check_namespaces</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_contentLength"
->a_contentLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_collect_errors"
->a_collect_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_column"
->a_column</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_default_baseuri"
->a_default_baseuri</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_canonicalize"
->a_do_not_canonicalize</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_check_namespaces"
->a_do_not_check_namespaces</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_issue_errors"
->a_do_not_issue_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_issue_warnings"
->a_do_not_issue_warnings</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_preserve_comment"
->a_do_not_preserve_comment</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_remove_whitespace"
->a_do_not_remove_whitespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_use_curl"
->a_do_not_use_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate"
->a_do_not_validate</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_encoding"
->a_encoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_error"
->a_error</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_error_log"
->a_error_log</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_help"
->a_help</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_indent"
->a_indent</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_issue_errors"
->a_issue_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_issue_warnings"
->a_issue_warnings</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_kind"
->a_kind</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_line"
->a_line</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_module"
->a_module</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_modifier"
->a_modifier</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_name"
->a_name</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_no_xml_pi"
->a_no_xml_pi</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_options_curl"
->a_options_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_encoding"
->a_output_encoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_file"
->a_output_file</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_xml"
->a_output_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_html"
->a_output_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_by_mimetype"
->a_parse_by_mimetype</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_html"
->a_parse_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_xml"
->a_parse_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_peref"
->a_peref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_preserve_comment"
->a_preserve_comment</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_propagate_errors"
->a_propagate_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_proxy"
->a_proxy</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_show_haskell"
->a_show_haskell</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_show_tree"
->a_show_tree</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_source"
->a_source</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_status"
->a_status</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_standalone"
->a_standalone</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_tagsoup"
->a_tagsoup</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_trace"
->a_trace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_type"
->a_type</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_use_curl"
->a_use_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_url"
->a_url</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate"
->a_validate</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_value"
->a_value</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_verbose"
->a_verbose</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_version"
->a_version</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_xml"
->a_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_xmlns"
->a_xmlns</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_0"
->v_0</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_1"
->v_1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_yes"
->v_yes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_no"
->v_no</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_any"
->v_any</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_children"
->v_children</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_choice"
->v_choice</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_empty"
->v_empty</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_mixed"
->v_mixed</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_seq"
->v_seq</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_null"
->v_null</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_option"
->v_option</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_pcdata"
->v_pcdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_star"
->v_star</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_plus"
->v_plus</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_any"
->k_any</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_cdata"
->k_cdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_empty"
->k_empty</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_entity"
->k_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_entities"
->k_entities</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_id"
->k_id</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_idref"
->k_idref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_idrefs"
->k_idrefs</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_include"
->k_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_ignore"
->k_ignore</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_nmtoken"
->k_nmtoken</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_nmtokens"
->k_nmtokens</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_peref"
->k_peref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_public"
->k_public</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_system"
->k_system</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_enumeration"
->k_enumeration</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_fixed"
->k_fixed</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_implied"
->k_implied</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_ndata"
->k_ndata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_notation"
->k_notation</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_pcdata"
->k_pcdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_required"
->k_required</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_default"
->k_default</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferPrefix"
->transferPrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferProtocol"
->transferProtocol</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferMimeType"
->transferMimeType</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferEncoding"
->transferEncoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferURI"
->transferURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferDefaultURI"
->transferDefaultURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferStatus"
->transferStatus</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferMessage"
->transferMessage</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferVersion"
->transferVersion</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhttpPrefix"
->httpPrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringProtocol"
->stringProtocol</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisoLatin1"
->isoLatin1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_1"
->iso8859_1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_2"
->iso8859_2</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_3"
->iso8859_3</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_4"
->iso8859_4</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_5"
->iso8859_5</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_6"
->iso8859_6</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_7"
->iso8859_7</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_8"
->iso8859_8</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_9"
->iso8859_9</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_10"
->iso8859_10</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_11"
->iso8859_11</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_13"
->iso8859_13</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_14"
->iso8859_14</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_15"
->iso8859_15</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_16"
->iso8859_16</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AusAscii"
->usAscii</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2"
->ucs2</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8"
->utf8</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16"
->utf16</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16be"
->utf16be</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16le"
->utf16le</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeString"
->unicodeString</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNamespace"
->xmlNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlnsNamespace"
->xmlnsNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArelaxNamespace"
->relaxNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_relax_schema"
->a_relax_schema</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_check_restrictions"
->a_do_not_check_restrictions</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_check_restrictions"
->a_check_restrictions</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate_externalRef"
->a_do_not_validate_externalRef</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate_externalRef"
->a_validate_externalRef</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate_include"
->a_do_not_validate_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate_include"
->a_validate_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_changes"
->a_output_changes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_collect_errors"
->a_do_not_collect_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xhtml"
->application_xhtml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml"
->application_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml_external_parsed_entity"
->application_xml_external_parsed_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml_dtd"
->application_xml_dtd</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_html"
->text_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_xml"
->text_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_xml_external_parsed_entity"
->text_xml_external_parsed_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisHtmlMimeType"
->isHtmlMimeType</A
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlMimeType"
->isXmlMimeType</A
-> :: String -&gt; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3At_xml"
-></A
-><B
->t_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3At_root"
-></A
-><B
->t_root</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_canonicalize"
-></A
-><B
->a_canonicalize</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_default"
-></A
-><B
->a_default</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_check_namespaces"
-></A
-><B
->a_check_namespaces</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_contentLength"
-></A
-><B
->a_contentLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_collect_errors"
-></A
-><B
->a_collect_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_column"
-></A
-><B
->a_column</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_default_baseuri"
-></A
-><B
->a_default_baseuri</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_canonicalize"
-></A
-><B
->a_do_not_canonicalize</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_check_namespaces"
-></A
-><B
->a_do_not_check_namespaces</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_issue_errors"
-></A
-><B
->a_do_not_issue_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_issue_warnings"
-></A
-><B
->a_do_not_issue_warnings</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_preserve_comment"
-></A
-><B
->a_do_not_preserve_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_remove_whitespace"
-></A
-><B
->a_do_not_remove_whitespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_use_curl"
-></A
-><B
->a_do_not_use_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate"
-></A
-><B
->a_do_not_validate</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_encoding"
-></A
-><B
->a_encoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_error"
-></A
-><B
->a_error</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_error_log"
-></A
-><B
->a_error_log</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_help"
-></A
-><B
->a_help</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_indent"
-></A
-><B
->a_indent</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_issue_errors"
-></A
-><B
->a_issue_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_issue_warnings"
-></A
-><B
->a_issue_warnings</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_kind"
-></A
-><B
->a_kind</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_line"
-></A
-><B
->a_line</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_module"
-></A
-><B
->a_module</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_modifier"
-></A
-><B
->a_modifier</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_name"
-></A
-><B
->a_name</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_no_xml_pi"
-></A
-><B
->a_no_xml_pi</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_options_curl"
-></A
-><B
->a_options_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_encoding"
-></A
-><B
->a_output_encoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_file"
-></A
-><B
->a_output_file</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_xml"
-></A
-><B
->a_output_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_html"
-></A
-><B
->a_output_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_by_mimetype"
-></A
-><B
->a_parse_by_mimetype</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_html"
-></A
-><B
->a_parse_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_xml"
-></A
-><B
->a_parse_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_peref"
-></A
-><B
->a_peref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_preserve_comment"
-></A
-><B
->a_preserve_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_propagate_errors"
-></A
-><B
->a_propagate_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_proxy"
-></A
-><B
->a_proxy</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_remove_whitespace"
-></A
-><B
->a_remove_whitespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_show_haskell"
-></A
-><B
->a_show_haskell</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_show_tree"
-></A
-><B
->a_show_tree</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_source"
-></A
-><B
->a_source</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_status"
-></A
-><B
->a_status</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_standalone"
-></A
-><B
->a_standalone</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_tagsoup"
-></A
-><B
->a_tagsoup</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_trace"
-></A
-><B
->a_trace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_type"
-></A
-><B
->a_type</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_use_curl"
-></A
-><B
->a_use_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_url"
-></A
-><B
->a_url</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate"
-></A
-><B
->a_validate</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_value"
-></A
-><B
->a_value</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_verbose"
-></A
-><B
->a_verbose</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_version"
-></A
-><B
->a_version</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_xml"
-></A
-><B
->a_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_xmlns"
-></A
-><B
->a_xmlns</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_0"
-></A
-><B
->v_0</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_1"
-></A
-><B
->v_1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_yes"
-></A
-><B
->v_yes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_no"
-></A
-><B
->v_no</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_any"
-></A
-><B
->v_any</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_children"
-></A
-><B
->v_children</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_choice"
-></A
-><B
->v_choice</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_empty"
-></A
-><B
->v_empty</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_mixed"
-></A
-><B
->v_mixed</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_seq"
-></A
-><B
->v_seq</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_null"
-></A
-><B
->v_null</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_option"
-></A
-><B
->v_option</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_pcdata"
-></A
-><B
->v_pcdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_star"
-></A
-><B
->v_star</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_plus"
-></A
-><B
->v_plus</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_any"
-></A
-><B
->k_any</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_cdata"
-></A
-><B
->k_cdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_empty"
-></A
-><B
->k_empty</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_entity"
-></A
-><B
->k_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_entities"
-></A
-><B
->k_entities</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_id"
-></A
-><B
->k_id</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_idref"
-></A
-><B
->k_idref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_idrefs"
-></A
-><B
->k_idrefs</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_include"
-></A
-><B
->k_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_ignore"
-></A
-><B
->k_ignore</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_nmtoken"
-></A
-><B
->k_nmtoken</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_nmtokens"
-></A
-><B
->k_nmtokens</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_peref"
-></A
-><B
->k_peref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_public"
-></A
-><B
->k_public</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_system"
-></A
-><B
->k_system</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_enumeration"
-></A
-><B
->k_enumeration</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_fixed"
-></A
-><B
->k_fixed</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_implied"
-></A
-><B
->k_implied</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_ndata"
-></A
-><B
->k_ndata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_notation"
-></A
-><B
->k_notation</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_pcdata"
-></A
-><B
->k_pcdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_required"
-></A
-><B
->k_required</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_default"
-></A
-><B
->k_default</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferPrefix"
-></A
-><B
->transferPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferProtocol"
-></A
-><B
->transferProtocol</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferMimeType"
-></A
-><B
->transferMimeType</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferEncoding"
-></A
-><B
->transferEncoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferURI"
-></A
-><B
->transferURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferDefaultURI"
-></A
-><B
->transferDefaultURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferStatus"
-></A
-><B
->transferStatus</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferMessage"
-></A
-><B
->transferMessage</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferVersion"
-></A
-><B
->transferVersion</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhttpPrefix"
-></A
-><B
->httpPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringProtocol"
-></A
-><B
->stringProtocol</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisoLatin1"
-></A
-><B
->isoLatin1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_1"
-></A
-><B
->iso8859_1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_2"
-></A
-><B
->iso8859_2</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_3"
-></A
-><B
->iso8859_3</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_4"
-></A
-><B
->iso8859_4</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_5"
-></A
-><B
->iso8859_5</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_6"
-></A
-><B
->iso8859_6</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_7"
-></A
-><B
->iso8859_7</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_8"
-></A
-><B
->iso8859_8</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_9"
-></A
-><B
->iso8859_9</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_10"
-></A
-><B
->iso8859_10</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_11"
-></A
-><B
->iso8859_11</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_13"
-></A
-><B
->iso8859_13</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_14"
-></A
-><B
->iso8859_14</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_15"
-></A
-><B
->iso8859_15</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_16"
-></A
-><B
->iso8859_16</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AusAscii"
-></A
-><B
->usAscii</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2"
-></A
-><B
->ucs2</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8"
-></A
-><B
->utf8</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16"
-></A
-><B
->utf16</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16be"
-></A
-><B
->utf16be</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16le"
-></A
-><B
->utf16le</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeString"
-></A
-><B
->unicodeString</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNamespace"
-></A
-><B
->xmlNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlnsNamespace"
-></A
-><B
->xmlnsNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxNamespace"
-></A
-><B
->relaxNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Relax NG namespace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_relax_schema"
-></A
-><B
->a_relax_schema</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_check_restrictions"
-></A
-><B
->a_do_not_check_restrictions</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_check_restrictions"
-></A
-><B
->a_check_restrictions</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate_externalRef"
-></A
-><B
->a_do_not_validate_externalRef</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate_externalRef"
-></A
-><B
->a_validate_externalRef</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate_include"
-></A
-><B
->a_do_not_validate_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate_include"
-></A
-><B
->a_validate_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_changes"
-></A
-><B
->a_output_changes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_collect_errors"
-></A
-><B
->a_do_not_collect_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xhtml"
-></A
-><B
->application_xhtml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml"
-></A
-><B
->application_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml_external_parsed_entity"
-></A
-><B
->application_xml_external_parsed_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml_dtd"
-></A
-><B
->application_xml_dtd</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_html"
-></A
-><B
->text_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_xml"
-></A
-><B
->text_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_xml_external_parsed_entity"
-></A
-><B
->text_xml_external_parsed_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisHtmlMimeType"
-></A
-><B
->isHtmlMimeType</B
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlMimeType"
-></A
-><B
->isXmlMimeType</B
-> :: String -&gt; Bool</TD
+>hxt-8.0.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
+></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.XmlKeywords</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM
+>11</EM
+>02 09:34:09 hxml Exp $
+</P
+><P
+>Constants for XML keywords, for special attribute names
+   and special attribute values
+</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%3At_xml"
+>t_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3At_root"
+>t_root</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_canonicalize"
+>a_canonicalize</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_default"
+>a_default</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_check_namespaces"
+>a_check_namespaces</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_contentLength"
+>a_contentLength</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_collect_errors"
+>a_collect_errors</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_column"
+>a_column</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_default_baseuri"
+>a_default_baseuri</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_canonicalize"
+>a_do_not_canonicalize</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_check_namespaces"
+>a_do_not_check_namespaces</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_issue_errors"
+>a_do_not_issue_errors</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_issue_warnings"
+>a_do_not_issue_warnings</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_preserve_comment"
+>a_do_not_preserve_comment</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_remove_whitespace"
+>a_do_not_remove_whitespace</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_use_curl"
+>a_do_not_use_curl</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_validate"
+>a_do_not_validate</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_encoding"
+>a_encoding</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_error"
+>a_error</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_error_log"
+>a_error_log</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_help"
+>a_help</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_indent"
+>a_indent</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_issue_errors"
+>a_issue_errors</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_issue_warnings"
+>a_issue_warnings</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_kind"
+>a_kind</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_line"
+>a_line</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_module"
+>a_module</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_modifier"
+>a_modifier</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_name"
+>a_name</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_no_xml_pi"
+>a_no_xml_pi</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_options_curl"
+>a_options_curl</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_output_encoding"
+>a_output_encoding</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_output_file"
+>a_output_file</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_output_xml"
+>a_output_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_output_html"
+>a_output_html</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_parse_html"
+>a_parse_html</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_parse_xml"
+>a_parse_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_peref"
+>a_peref</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_preserve_comment"
+>a_preserve_comment</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_propagate_errors"
+>a_propagate_errors</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_proxy"
+>a_proxy</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_remove_whitespace"
+>a_remove_whitespace</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_show_haskell"
+>a_show_haskell</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_show_tree"
+>a_show_tree</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_source"
+>a_source</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_status"
+>a_status</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_standalone"
+>a_standalone</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_tagsoup"
+>a_tagsoup</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_trace"
+>a_trace</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_type"
+>a_type</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_use_curl"
+>a_use_curl</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_url"
+>a_url</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_validate"
+>a_validate</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_value"
+>a_value</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_verbose"
+>a_verbose</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_version"
+>a_version</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_xml"
+>a_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_xmlns"
+>a_xmlns</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_0"
+>v_0</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_1"
+>v_1</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_yes"
+>v_yes</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_no"
+>v_no</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_any"
+>v_any</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_children"
+>v_children</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_choice"
+>v_choice</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_empty"
+>v_empty</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_mixed"
+>v_mixed</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_seq"
+>v_seq</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_null"
+>v_null</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_option"
+>v_option</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_pcdata"
+>v_pcdata</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_star"
+>v_star</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Av_plus"
+>v_plus</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_any"
+>k_any</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_cdata"
+>k_cdata</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_empty"
+>k_empty</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_entity"
+>k_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_entities"
+>k_entities</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_id"
+>k_id</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_idref"
+>k_idref</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_idrefs"
+>k_idrefs</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_include"
+>k_include</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_ignore"
+>k_ignore</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_nmtoken"
+>k_nmtoken</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_nmtokens"
+>k_nmtokens</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_peref"
+>k_peref</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_public"
+>k_public</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_system"
+>k_system</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_enumeration"
+>k_enumeration</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_fixed"
+>k_fixed</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_implied"
+>k_implied</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_ndata"
+>k_ndata</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_notation"
+>k_notation</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_pcdata"
+>k_pcdata</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_required"
+>k_required</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ak_default"
+>k_default</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferPrefix"
+>transferPrefix</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferProtocol"
+>transferProtocol</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferMimeType"
+>transferMimeType</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferEncoding"
+>transferEncoding</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferURI"
+>transferURI</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferDefaultURI"
+>transferDefaultURI</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferStatus"
+>transferStatus</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferMessage"
+>transferMessage</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtransferVersion"
+>transferVersion</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhttpPrefix"
+>httpPrefix</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AstringProtocol"
+>stringProtocol</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisoLatin1"
+>isoLatin1</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_1"
+>iso8859_1</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_2"
+>iso8859_2</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_3"
+>iso8859_3</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_4"
+>iso8859_4</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_5"
+>iso8859_5</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_6"
+>iso8859_6</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_7"
+>iso8859_7</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_8"
+>iso8859_8</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_9"
+>iso8859_9</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_10"
+>iso8859_10</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_11"
+>iso8859_11</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_13"
+>iso8859_13</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_14"
+>iso8859_14</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_15"
+>iso8859_15</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiso8859_16"
+>iso8859_16</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AusAscii"
+>usAscii</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aucs2"
+>ucs2</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Autf8"
+>utf8</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Autf16"
+>utf16</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Autf16be"
+>utf16be</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Autf16le"
+>utf16le</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AunicodeString"
+>unicodeString</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlNamespace"
+>xmlNamespace</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxmlnsNamespace"
+>xmlnsNamespace</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3ArelaxNamespace"
+>relaxNamespace</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_relax_schema"
+>a_relax_schema</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_check_restrictions"
+>a_do_not_check_restrictions</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_check_restrictions"
+>a_check_restrictions</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_validate_externalRef"
+>a_do_not_validate_externalRef</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_validate_externalRef"
+>a_validate_externalRef</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_validate_include"
+>a_do_not_validate_include</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_validate_include"
+>a_validate_include</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_output_changes"
+>a_output_changes</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aa_do_not_collect_errors"
+>a_do_not_collect_errors</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xhtml"
+>application_xhtml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml"
+>application_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_external_parsed_entity"
+>application_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_dtd"
+>application_xml_dtd</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_html"
+>text_html</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml"
+>text_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml_external_parsed_entity"
+>text_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisHtmlMimeType"
+>isHtmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisXmlMimeType"
+>isXmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
+></TABLE
+></TD
+></TR
+><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%3At_xml"
+></A
+><B
+>t_xml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#t_xml"
+>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%3At_root"
+></A
+><B
+>t_root</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#t_root"
+>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%3Aa_canonicalize"
+></A
+><B
+>a_canonicalize</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_canonicalize"
+>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%3Aa_default"
+></A
+><B
+>a_default</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_default"
+>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%3Aa_check_namespaces"
+></A
+><B
+>a_check_namespaces</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_check_namespaces"
+>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%3Aa_contentLength"
+></A
+><B
+>a_contentLength</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_contentLength"
+>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%3Aa_collect_errors"
+></A
+><B
+>a_collect_errors</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_collect_errors"
+>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%3Aa_column"
+></A
+><B
+>a_column</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_column"
+>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%3Aa_default_baseuri"
+></A
+><B
+>a_default_baseuri</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_default_baseuri"
+>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%3Aa_do_not_canonicalize"
+></A
+><B
+>a_do_not_canonicalize</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_canonicalize"
+>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%3Aa_do_not_check_namespaces"
+></A
+><B
+>a_do_not_check_namespaces</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_check_namespaces"
+>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%3Aa_do_not_issue_errors"
+></A
+><B
+>a_do_not_issue_errors</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_issue_errors"
+>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%3Aa_do_not_issue_warnings"
+></A
+><B
+>a_do_not_issue_warnings</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_issue_warnings"
+>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%3Aa_do_not_preserve_comment"
+></A
+><B
+>a_do_not_preserve_comment</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_preserve_comment"
+>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%3Aa_do_not_remove_whitespace"
+></A
+><B
+>a_do_not_remove_whitespace</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_remove_whitespace"
+>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%3Aa_do_not_use_curl"
+></A
+><B
+>a_do_not_use_curl</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_use_curl"
+>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%3Aa_do_not_validate"
+></A
+><B
+>a_do_not_validate</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_validate"
+>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%3Aa_encoding"
+></A
+><B
+>a_encoding</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_encoding"
+>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%3Aa_error"
+></A
+><B
+>a_error</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_error"
+>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%3Aa_error_log"
+></A
+><B
+>a_error_log</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_error_log"
+>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%3Aa_help"
+></A
+><B
+>a_help</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_help"
+>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%3Aa_indent"
+></A
+><B
+>a_indent</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_indent"
+>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%3Aa_issue_errors"
+></A
+><B
+>a_issue_errors</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_issue_errors"
+>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%3Aa_issue_warnings"
+></A
+><B
+>a_issue_warnings</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_issue_warnings"
+>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%3Aa_kind"
+></A
+><B
+>a_kind</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_kind"
+>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%3Aa_line"
+></A
+><B
+>a_line</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_line"
+>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%3Aa_module"
+></A
+><B
+>a_module</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_module"
+>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%3Aa_modifier"
+></A
+><B
+>a_modifier</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_modifier"
+>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%3Aa_name"
+></A
+><B
+>a_name</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_name"
+>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%3Aa_no_xml_pi"
+></A
+><B
+>a_no_xml_pi</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_no_xml_pi"
+>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%3Aa_options_curl"
+></A
+><B
+>a_options_curl</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_options_curl"
+>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%3Aa_output_encoding"
+></A
+><B
+>a_output_encoding</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_output_encoding"
+>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%3Aa_output_file"
+></A
+><B
+>a_output_file</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_output_file"
+>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%3Aa_output_xml"
+></A
+><B
+>a_output_xml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_output_xml"
+>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%3Aa_output_html"
+></A
+><B
+>a_output_html</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_output_html"
+>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%3Aa_parse_by_mimetype"
+></A
+><B
+>a_parse_by_mimetype</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_parse_by_mimetype"
+>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%3Aa_parse_html"
+></A
+><B
+>a_parse_html</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_parse_html"
+>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%3Aa_parse_xml"
+></A
+><B
+>a_parse_xml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_parse_xml"
+>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%3Aa_peref"
+></A
+><B
+>a_peref</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_peref"
+>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%3Aa_preserve_comment"
+></A
+><B
+>a_preserve_comment</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_preserve_comment"
+>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%3Aa_propagate_errors"
+></A
+><B
+>a_propagate_errors</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_propagate_errors"
+>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%3Aa_proxy"
+></A
+><B
+>a_proxy</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_proxy"
+>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%3Aa_remove_whitespace"
+></A
+><B
+>a_remove_whitespace</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_remove_whitespace"
+>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%3Aa_show_haskell"
+></A
+><B
+>a_show_haskell</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_show_haskell"
+>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%3Aa_show_tree"
+></A
+><B
+>a_show_tree</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_show_tree"
+>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%3Aa_source"
+></A
+><B
+>a_source</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_source"
+>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%3Aa_status"
+></A
+><B
+>a_status</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_status"
+>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%3Aa_standalone"
+></A
+><B
+>a_standalone</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_standalone"
+>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%3Aa_tagsoup"
+></A
+><B
+>a_tagsoup</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_tagsoup"
+>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%3Aa_trace"
+></A
+><B
+>a_trace</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_trace"
+>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%3Aa_type"
+></A
+><B
+>a_type</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_type"
+>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%3Aa_use_curl"
+></A
+><B
+>a_use_curl</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_use_curl"
+>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%3Aa_url"
+></A
+><B
+>a_url</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_url"
+>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%3Aa_validate"
+></A
+><B
+>a_validate</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_validate"
+>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%3Aa_value"
+></A
+><B
+>a_value</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_value"
+>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%3Aa_verbose"
+></A
+><B
+>a_verbose</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_verbose"
+>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%3Aa_version"
+></A
+><B
+>a_version</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_version"
+>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%3Aa_xml"
+></A
+><B
+>a_xml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_xml"
+>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%3Aa_xmlns"
+></A
+><B
+>a_xmlns</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_xmlns"
+>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%3Av_0"
+></A
+><B
+>v_0</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_0"
+>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%3Av_1"
+></A
+><B
+>v_1</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_1"
+>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%3Av_yes"
+></A
+><B
+>v_yes</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_yes"
+>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%3Av_no"
+></A
+><B
+>v_no</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_no"
+>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%3Av_any"
+></A
+><B
+>v_any</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_any"
+>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%3Av_children"
+></A
+><B
+>v_children</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_children"
+>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%3Av_choice"
+></A
+><B
+>v_choice</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_choice"
+>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%3Av_empty"
+></A
+><B
+>v_empty</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_empty"
+>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%3Av_mixed"
+></A
+><B
+>v_mixed</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_mixed"
+>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%3Av_seq"
+></A
+><B
+>v_seq</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_seq"
+>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%3Av_null"
+></A
+><B
+>v_null</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_null"
+>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%3Av_option"
+></A
+><B
+>v_option</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_option"
+>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%3Av_pcdata"
+></A
+><B
+>v_pcdata</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_pcdata"
+>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%3Av_star"
+></A
+><B
+>v_star</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_star"
+>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%3Av_plus"
+></A
+><B
+>v_plus</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_plus"
+>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%3Ak_any"
+></A
+><B
+>k_any</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_any"
+>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%3Ak_cdata"
+></A
+><B
+>k_cdata</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_cdata"
+>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%3Ak_empty"
+></A
+><B
+>k_empty</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_empty"
+>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%3Ak_entity"
+></A
+><B
+>k_entity</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_entity"
+>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%3Ak_entities"
+></A
+><B
+>k_entities</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_entities"
+>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%3Ak_id"
+></A
+><B
+>k_id</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_id"
+>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%3Ak_idref"
+></A
+><B
+>k_idref</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_idref"
+>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%3Ak_idrefs"
+></A
+><B
+>k_idrefs</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_idrefs"
+>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%3Ak_include"
+></A
+><B
+>k_include</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_include"
+>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%3Ak_ignore"
+></A
+><B
+>k_ignore</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_ignore"
+>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%3Ak_nmtoken"
+></A
+><B
+>k_nmtoken</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_nmtoken"
+>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%3Ak_nmtokens"
+></A
+><B
+>k_nmtokens</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_nmtokens"
+>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%3Ak_peref"
+></A
+><B
+>k_peref</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_peref"
+>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%3Ak_public"
+></A
+><B
+>k_public</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_public"
+>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%3Ak_system"
+></A
+><B
+>k_system</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_system"
+>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%3Ak_enumeration"
+></A
+><B
+>k_enumeration</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_enumeration"
+>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%3Ak_fixed"
+></A
+><B
+>k_fixed</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_fixed"
+>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%3Ak_implied"
+></A
+><B
+>k_implied</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_implied"
+>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%3Ak_ndata"
+></A
+><B
+>k_ndata</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_ndata"
+>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%3Ak_notation"
+></A
+><B
+>k_notation</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_notation"
+>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%3Ak_pcdata"
+></A
+><B
+>k_pcdata</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_pcdata"
+>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%3Ak_required"
+></A
+><B
+>k_required</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_required"
+>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%3Ak_default"
+></A
+><B
+>k_default</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_default"
+>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%3AtransferPrefix"
+></A
+><B
+>transferPrefix</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferPrefix"
+>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%3AtransferProtocol"
+></A
+><B
+>transferProtocol</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferProtocol"
+>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%3AtransferMimeType"
+></A
+><B
+>transferMimeType</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferMimeType"
+>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%3AtransferEncoding"
+></A
+><B
+>transferEncoding</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferEncoding"
+>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%3AtransferURI"
+></A
+><B
+>transferURI</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferURI"
+>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%3AtransferDefaultURI"
+></A
+><B
+>transferDefaultURI</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferDefaultURI"
+>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%3AtransferStatus"
+></A
+><B
+>transferStatus</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferStatus"
+>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%3AtransferMessage"
+></A
+><B
+>transferMessage</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferMessage"
+>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%3AtransferVersion"
+></A
+><B
+>transferVersion</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferVersion"
+>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%3AhttpPrefix"
+></A
+><B
+>httpPrefix</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#httpPrefix"
+>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%3AstringProtocol"
+></A
+><B
+>stringProtocol</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#stringProtocol"
+>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%3AisoLatin1"
+></A
+><B
+>isoLatin1</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#isoLatin1"
+>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%3Aiso8859_1"
+></A
+><B
+>iso8859_1</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_1"
+>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%3Aiso8859_2"
+></A
+><B
+>iso8859_2</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_2"
+>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%3Aiso8859_3"
+></A
+><B
+>iso8859_3</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_3"
+>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%3Aiso8859_4"
+></A
+><B
+>iso8859_4</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_4"
+>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%3Aiso8859_5"
+></A
+><B
+>iso8859_5</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_5"
+>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%3Aiso8859_6"
+></A
+><B
+>iso8859_6</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_6"
+>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%3Aiso8859_7"
+></A
+><B
+>iso8859_7</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_7"
+>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%3Aiso8859_8"
+></A
+><B
+>iso8859_8</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_8"
+>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%3Aiso8859_9"
+></A
+><B
+>iso8859_9</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_9"
+>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%3Aiso8859_10"
+></A
+><B
+>iso8859_10</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_10"
+>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%3Aiso8859_11"
+></A
+><B
+>iso8859_11</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_11"
+>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%3Aiso8859_13"
+></A
+><B
+>iso8859_13</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_13"
+>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%3Aiso8859_14"
+></A
+><B
+>iso8859_14</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_14"
+>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%3Aiso8859_15"
+></A
+><B
+>iso8859_15</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_15"
+>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%3Aiso8859_16"
+></A
+><B
+>iso8859_16</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_16"
+>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%3AusAscii"
+></A
+><B
+>usAscii</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#usAscii"
+>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%3Aucs2"
+></A
+><B
+>ucs2</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#ucs2"
+>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%3Autf8"
+></A
+><B
+>utf8</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#utf8"
+>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%3Autf16"
+></A
+><B
+>utf16</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#utf16"
+>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%3Autf16be"
+></A
+><B
+>utf16be</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#utf16be"
+>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%3Autf16le"
+></A
+><B
+>utf16le</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#utf16le"
+>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%3AunicodeString"
+></A
+><B
+>unicodeString</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#unicodeString"
+>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%3AxmlNamespace"
+></A
+><B
+>xmlNamespace</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#xmlNamespace"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AxmlnsNamespace"
+></A
+><B
+>xmlnsNamespace</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#xmlnsNamespace"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3ArelaxNamespace"
+></A
+><B
+>relaxNamespace</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#relaxNamespace"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Relax NG namespace
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aa_relax_schema"
+></A
+><B
+>a_relax_schema</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_relax_schema"
+>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%3Aa_do_not_check_restrictions"
+></A
+><B
+>a_do_not_check_restrictions</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_check_restrictions"
+>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%3Aa_check_restrictions"
+></A
+><B
+>a_check_restrictions</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_check_restrictions"
+>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%3Aa_do_not_validate_externalRef"
+></A
+><B
+>a_do_not_validate_externalRef</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_validate_externalRef"
+>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%3Aa_validate_externalRef"
+></A
+><B
+>a_validate_externalRef</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_validate_externalRef"
+>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%3Aa_do_not_validate_include"
+></A
+><B
+>a_do_not_validate_include</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_validate_include"
+>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%3Aa_validate_include"
+></A
+><B
+>a_validate_include</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_validate_include"
+>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%3Aa_output_changes"
+></A
+><B
+>a_output_changes</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_output_changes"
+>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%3Aa_do_not_collect_errors"
+></A
+><B
+>a_do_not_collect_errors</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_collect_errors"
+>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%3Aapplication_xhtml"
+></A
+><B
+>application_xhtml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#application_xhtml"
+>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%3Aapplication_xml"
+></A
+><B
+>application_xml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#application_xml"
+>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%3Aapplication_xml_external_parsed_entity"
+></A
+><B
+>application_xml_external_parsed_entity</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#application_xml_external_parsed_entity"
+>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%3Aapplication_xml_dtd"
+></A
+><B
+>application_xml_dtd</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#application_xml_dtd"
+>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%3Atext_html"
+></A
+><B
+>text_html</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#text_html"
+>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%3Atext_xml"
+></A
+><B
+>text_xml</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#text_xml"
+>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%3Atext_xml_external_parsed_entity"
+></A
+><B
+>text_xml_external_parsed_entity</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#text_xml_external_parsed_entity"
+>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%3AisHtmlMimeType"
+></A
+><B
+>isHtmlMimeType</B
+> :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#isHtmlMimeType"
+>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%3AisXmlMimeType"
+></A
+><B
+>isXmlMimeType</B
+> :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#isXmlMimeType"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html b/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlNode.html
@@ -0,0 +1,1739 @@
+<!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.XmlNode</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.0.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
+></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.XmlNode</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"
+><P
+>Interface for XmlArrow to basic data types NTree and XmlTree
+</P
+><P
+>If this module must be used in code working with arrows,
+   it should be imported qualified e.g. <TT
+>as XN</TT
+>, to prevent name clashes.
+</P
+><P
+>For code working on the &quot;node and tree level&quot; this module
+   is the interface for writing code without using the
+   constructor functions of <TT
+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TT
+> and <TT
+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+></TT
+> directly
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>class</SPAN
+> <A NAME="t%3AXmlNode"
+></A
+><B
+>XmlNode</B
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#XmlNode"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Methods</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisText"
+></A
+><B
+>isText</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCharRef"
+></A
+><B
+>isCharRef</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisEntityRef"
+></A
+><B
+>isEntityRef</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCmt"
+></A
+><B
+>isCmt</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCdata"
+></A
+><B
+>isCdata</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisPi"
+></A
+><B
+>isPi</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisElem"
+></A
+><B
+>isElem</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isElem"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisRoot"
+></A
+><B
+>isRoot</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isRoot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTD"
+></A
+><B
+>isDTD</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisAttr"
+></A
+><B
+>isAttr</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisError"
+></A
+><B
+>isError</B
+> :: a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isError"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkText"
+></A
+><B
+>mkText</B
+> :: String -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkCharRef"
+></A
+><B
+>mkCharRef</B
+> :: Int -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkEntityRef"
+></A
+><B
+>mkEntityRef</B
+> :: String -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkCmt"
+></A
+><B
+>mkCmt</B
+> :: String -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkCdata"
+></A
+><B
+>mkCdata</B
+> :: String -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkPi"
+></A
+><B
+>mkPi</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkError"
+></A
+><B
+>mkError</B
+> :: Int -&gt; String -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkError"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetText"
+></A
+><B
+>getText</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetCharRef"
+></A
+><B
+>getCharRef</B
+> :: a -&gt; Maybe Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetEntityRef"
+></A
+><B
+>getEntityRef</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetCmt"
+></A
+><B
+>getCmt</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetCdata"
+></A
+><B
+>getCdata</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetPiName"
+></A
+><B
+>getPiName</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getPiName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetPiContent"
+></A
+><B
+>getPiContent</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getPiContent"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetElemName"
+></A
+><B
+>getElemName</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getElemName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrl"
+></A
+><B
+>getAttrl</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetDTDPart"
+></A
+><B
+>getDTDPart</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getDTDPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetDTDAttrl"
+></A
+><B
+>getDTDAttrl</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getDTDAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrName"
+></A
+><B
+>getAttrName</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getAttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetErrorLevel"
+></A
+><B
+>getErrorLevel</B
+> :: a -&gt; Maybe Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getErrorLevel"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetErrorMsg"
+></A
+><B
+>getErrorMsg</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getErrorMsg"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetName"
+></A
+><B
+>getName</B
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetQualifiedName"
+></A
+><B
+>getQualifiedName</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getQualifiedName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetUniversalName"
+></A
+><B
+>getUniversalName</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getUniversalName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetUniversalUri"
+></A
+><B
+>getUniversalUri</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getUniversalUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetLocalPart"
+></A
+><B
+>getLocalPart</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getLocalPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetNamePrefix"
+></A
+><B
+>getNamePrefix</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getNamePrefix"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetNamespaceUri"
+></A
+><B
+>getNamespaceUri</B
+> :: a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getNamespaceUri"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeText"
+></A
+><B
+>changeText</B
+> :: (String -&gt; String) -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeCmt"
+></A
+><B
+>changeCmt</B
+> :: (String -&gt; String) -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeName"
+></A
+><B
+>changeName</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 -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeElemName"
+></A
+><B
+>changeElemName</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 -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeElemName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeAttrl"
+></A
+><B
+>changeAttrl</B
+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>) -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeAttrName"
+></A
+><B
+>changeAttrName</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 -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeAttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangePiName"
+></A
+><B
+>changePiName</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 -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changePiName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchangeDTDAttrl"
+></A
+><B
+>changeDTDAttrl</B
+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+>) -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeDTDAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetText"
+></A
+><B
+>setText</B
+> :: String -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setText"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetCmt"
+></A
+><B
+>setCmt</B
+> :: String -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetName"
+></A
+><B
+>setName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetElemName"
+></A
+><B
+>setElemName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setElemName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetElemAttrl"
+></A
+><B
+>setElemAttrl</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setElemAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetAttrName"
+></A
+><B
+>setAttrName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setAttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetPiName"
+></A
+><B
+>setPiName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setPiName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsetDTDAttrl"
+></A
+><B
+>setDTDAttrl</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setDTDAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNode')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:XmlNode" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
+>XmlNode</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
+>XmlNode</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
+>XmlNode</A
+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> 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%3AmkElementNode"
+></A
+><B
+>mkElementNode</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkElementNode"
+>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%3AmkAttrNode"
+></A
+><B
+>mkAttrNode</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkAttrNode"
+>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%3AmkDTDNode"
+></A
+><B
+>mkDTDNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkDTDNode"
+>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%3AmkElement"
+></A
+><B
+>mkElement</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkElement"
+>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%3AmkRoot"
+></A
+><B
+>mkRoot</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkRoot"
+>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%3AmkAttr"
+></A
+><B
+>mkAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkAttr"
+>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%3AmkDTDElem"
+></A
+><B
+>mkDTDElem</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkDTDElem"
+>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%3AaddAttr"
+></A
+><B
+>addAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#addAttr"
+>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%3AmergeAttrl"
+></A
+><B
+>mergeAttrl</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mergeAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DOM-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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlOptions.hs"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -187,13 +187,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinputOptions"
 ></A
 ><B
 >inputOptions</B
 > :: [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#inputOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -286,13 +296,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxOptions"
 ></A
 ><B
 >relaxOptions</B
 > :: [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#relaxOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -334,13 +354,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AoutputOptions"
 ></A
 ><B
 >outputOptions</B
 > :: [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#outputOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -372,13 +402,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgeneralOptions"
 ></A
 ><B
 >generalOptions</B
 > :: [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#generalOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -402,13 +442,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AversionOptions"
 ></A
 ><B
 >versionOptions</B
 > :: [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#versionOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >defines <TT
@@ -423,13 +473,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AshowOptions"
 ></A
 ><B
 >showOptions</B
 > :: [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#showOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >debug output options
@@ -440,13 +500,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AselectOptions"
 ></A
 ><B
 >selectOptions</B
 > :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#selectOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >select options from a predefined list of option desciptions
@@ -457,19 +527,32 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveOptions"
 ></A
 ><B
 >removeOptions</B
 > :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#removeOptions"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AoptionIsSet"
 ></A
 ><B
@@ -477,6 +560,13 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
 >Attributes</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#optionIsSet"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlState.html b/doc/hdoc/Text-XML-HXT-DOM-XmlState.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlState.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlState.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlState.hs"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -135,11 +135,7 @@
 >type</SPAN
 > <A HREF="#t%3ASysStateAttrs"
 >SysStateAttrs</A
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
+> = AssocList String XmlTrees</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -197,13 +193,9 @@
 >type</SPAN
 > <A HREF="#t%3AXmlStateFilter"
 >XmlStateFilter</A
-> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> state = XmlTree -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
+> state XmlTrees</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -355,9 +347,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetSysParamTree"
 >setSysParamTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> :: String -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
 ></TR
@@ -407,9 +397,7 @@
 >getSysParamTree</A
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
+> state XmlTrees</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -523,9 +511,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AliftF"
 >liftF</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> :: XmlFilter -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
 ></TR
@@ -777,9 +763,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetStatus"
 >setStatus</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: Int -&gt; String -&gt; XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -789,9 +773,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AstatusOk"
 >statusOk</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -835,7 +817,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ASysState"
@@ -843,7 +828,14 @@
 ><B
 >SysState</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#SysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -917,25 +909,34 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ASysStateAttrs"
 ></A
 ><B
 >SysStateAttrs</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
+> = AssocList String XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#SysStateAttrs"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXmlState"
@@ -943,7 +944,14 @@
 ><B
 >XmlState</B
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#XmlState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1009,7 +1017,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXState"
@@ -1021,7 +1032,14 @@
 > (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
 >XmlState</A
 > state) res</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#XState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The monad type for commands. It is an instance of <A HREF="StateIO.html"
@@ -1037,21 +1055,27 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXmlStateFilter"
 ></A
 ><B
 >XmlStateFilter</B
-> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> state = XmlTree -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
+> state XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#XmlStateFilter"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The <A HREF="XmlFilter.html"
@@ -1064,7 +1088,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeState"
 ></A
 ><B
@@ -1072,7 +1099,14 @@
 > :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#changeState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1093,7 +1127,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetState"
 ></A
 ><B
@@ -1101,7 +1138,14 @@
 > :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1122,7 +1166,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetState"
 ></A
 ><B
@@ -1130,7 +1177,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1148,7 +1202,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeSysState"
 ></A
 ><B
@@ -1162,7 +1219,14 @@
 > state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
 >SysState</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#changeSysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1182,7 +1246,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetSysState"
 ></A
 ><B
@@ -1194,7 +1261,14 @@
 > state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
 >SysState</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setSysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1214,7 +1288,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysState"
 ></A
 ><B
@@ -1224,7 +1301,14 @@
 > state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
 >SysState</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1244,7 +1328,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AinitialSysState"
 ></A
 ><B
@@ -1252,7 +1339,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
 >SysState</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#initialSysState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1268,7 +1362,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchangeSysStateAttrs"
 ></A
 ><B
@@ -1282,7 +1379,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
 >SysState</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#changeSysStateAttrs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >change the attributes in the system state
@@ -1293,7 +1397,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetSysErrorHandler"
 ></A
 ><B
@@ -1303,7 +1410,14 @@
 > () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setSysErrorHandler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the error message handler
@@ -1314,7 +1428,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysErrorHandler"
 ></A
 ><B
@@ -1324,7 +1441,14 @@
 > state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > ())</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysErrorHandler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >get the error handler
@@ -1335,17 +1459,25 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetSysParamTree"
 ></A
 ><B
 >setSysParamTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> :: String -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setSysParamTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1380,7 +1512,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetSysParam"
 ></A
 ><B
@@ -1388,7 +1523,14 @@
 > :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setSysParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1419,7 +1561,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetSysParamInt"
 ></A
 ><B
@@ -1427,7 +1572,14 @@
 > :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setSysParamInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1447,7 +1599,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetSystemParams"
 ></A
 ><B
@@ -1455,7 +1610,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setSystemParams"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add (or change) all attributes of the document root to the system state
@@ -1467,17 +1629,25 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysParamTree"
 ></A
 ><B
 >getSysParamTree</B
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
+> state XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysParamTree"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1498,7 +1668,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysParam"
 ></A
 ><B
@@ -1506,7 +1679,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1527,7 +1707,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysParamWithDefault"
 ></A
 ><B
@@ -1535,7 +1718,14 @@
 > :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysParamWithDefault"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1559,7 +1749,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetSysParamInt"
 ></A
 ><B
@@ -1567,7 +1760,14 @@
 > :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysParamInt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1595,7 +1795,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arun0"
 ></A
 ><B
@@ -1607,7 +1810,14 @@
 > state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
 >XmlState</A
 > state)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#run0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1631,7 +1841,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arun"
 ></A
 ><B
@@ -1639,7 +1852,14 @@
 > :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state res -&gt; IO res</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#run"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >exec a XState command with initial user state.
@@ -1652,7 +1872,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arun%27"
 ></A
 ><B
@@ -1660,7 +1883,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > () res -&gt; IO res</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#run%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >exec a XState command in th IO monad.
@@ -1672,7 +1902,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Achain%27"
 ></A
 ><B
@@ -1682,7 +1915,14 @@
 > state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state0 (res, state1)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#chain%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1709,7 +1949,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Achain"
 ></A
 ><B
@@ -1719,7 +1962,14 @@
 > state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state0 res</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#chain"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1743,17 +1993,25 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AliftF"
 ></A
 ><B
 >liftF</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> :: XmlFilter -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#liftF"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1779,7 +2037,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aio"
 ></A
 ><B
@@ -1787,7 +2048,14 @@
 > :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#io"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1808,7 +2076,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetTraceLevel"
 ></A
 ><B
@@ -1816,7 +2087,14 @@
 > :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setTraceLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1855,7 +2133,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetTraceLevel"
 ></A
 ><B
@@ -1863,7 +2144,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getTraceLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1881,7 +2169,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceCmd"
 ></A
 ><B
@@ -1891,7 +2182,14 @@
 > state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#traceCmd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1917,7 +2215,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Atrace"
 ></A
 ><B
@@ -1925,7 +2226,14 @@
 > :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#trace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1949,7 +2257,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtraceState"
 ></A
 ><B
@@ -1957,7 +2268,14 @@
 > :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#traceState"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1981,7 +2299,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AclearStatus"
 ></A
 ><B
@@ -1989,14 +2310,17 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#clearStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
->filter to reset the state attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->a_status</A
-></TT
->
+>filter to reset the state attribute a_status
     - returns : this
 </TD
 ></TR
@@ -2005,7 +2329,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueError"
 ></A
 ><B
@@ -2013,7 +2340,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#issueError"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2044,7 +2378,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgHandler"
 ></A
 ><B
@@ -2052,13 +2389,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#errorMsgHandler"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetErrorMsgLevel"
 ></A
 ><B
@@ -2066,7 +2413,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setErrorMsgLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >set the error level in system state
@@ -2077,7 +2431,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgToStderr"
 ></A
 ><B
@@ -2085,7 +2442,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#errorMsgToStderr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >default error handler for writing errors to stderr
@@ -2096,7 +2460,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgLogging"
 ></A
 ><B
@@ -2104,15 +2471,18 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#errorMsgLogging"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >error message handler for collecting all error messages
- all messages are stored under attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"
->a_error_log</A
-></TT
->
+ all messages are stored under attribute a_error_log
  they can be read with <TT
 >getSysParamTree a_error_log</TT
 > or by
@@ -2128,7 +2498,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgLoggingAndToStderr"
 ></A
 ><B
@@ -2136,13 +2509,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#errorMsgLoggingAndToStderr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetErrorMsg"
 ></A
 ><B
@@ -2150,7 +2533,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getErrorMsg"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2166,31 +2556,29 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrClass"
 ></A
 ><B
 >errClass</B
 > :: Int -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#errClass"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >error level translation
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
->c_warn</A
-></TT
-> (1) : warning,
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
-> (2): error (e.g. parse error, validation error, ...),
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
->c_fatal</A
-></TT
-> (3) : fatal error (document access error, internal error, ...)
+ c_warn (1) : warning,
+ c_err (2): error (e.g. parse error, validation error, ...),
+ c_fatal (3) : fatal error (document access error, internal error, ...)
 </TD
 ></TR
 ><TR
@@ -2198,7 +2586,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueWarn"
 ></A
 ><B
@@ -2206,7 +2597,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#issueWarn"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2230,7 +2628,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueErr"
 ></A
 ><B
@@ -2238,7 +2639,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#issueErr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2258,7 +2666,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AissueFatal"
 ></A
 ><B
@@ -2266,7 +2677,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#issueFatal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2290,7 +2708,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddFatal"
 ></A
 ><B
@@ -2298,13 +2719,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#addFatal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckStatus"
 ></A
 ><B
@@ -2312,33 +2743,20 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#checkStatus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
->checks the value of the attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->a_status</A
-></TT
-> in a document root.
- if it contains a value greater or equal to <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->, an error with error message
- stored in attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
->a_module</A
-></TT
-> is issued and the filter acts as the <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->noneM</A
-></TT
-> filter
- else its the <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
->thisM</A
-></TT
-> filter
+>checks the value of the attribute a_status in a document root.
+ if it contains a value greater or equal to c_err, an error with error message
+ stored in attribute a_module is issued and the filter acts as the noneM filter
+ else its the thisM filter
 </TD
 ></TR
 ><TR
@@ -2346,23 +2764,27 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetStatus"
 ></A
 ><B
 >setStatus</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: Int -&gt; String -&gt; XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setStatus"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >add the error level and the module where the error occured
- to the attributes of a document root node and remove the children when level is greater or equal to <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->
+ to the attributes of a document root node and remove the children when level is greater or equal to c_err
 </TD
 ></TR
 ><TR
@@ -2370,22 +2792,26 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstatusOk"
 ></A
 ><B
 >statusOk</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#statusOk"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
->check whether tree is a document root and the status attribute has a value less than <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->
+>check whether tree is a document root and the status attribute has a value less than c_err
 </TD
 ></TR
 ><TR
@@ -2393,7 +2819,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckResult"
 ></A
 ><B
@@ -2401,7 +2830,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#checkResult"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >check whether the error level attribute in the system state
@@ -2419,7 +2855,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessAttrM"
 ></A
 ><B
@@ -2429,27 +2868,22 @@
 > a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlState.html#processAttrM"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
 >monadic filter for processing the attribute list of a tag.
- for other trees this filter acts like <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->noneM</A
-></TT
->
+ for other trees this filter acts like noneM
 </P
 ><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"
->processAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"
->processAttrl</A
-></TT
->
+>see also : processAttr, processAttrl
 </P
 ></TD
 ></TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html
+++ /dev/null
@@ -1,137 +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.XmlTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlTree</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This helper module exports elements from the basic libraries:
- XmlTreeTypes, XmlKeywords, XNodeFunctions, XmlTreeFunctions and XmlTreeFilter
-</P
-><P
->Version : $Id: XmlTree.hs,v 1.1 2004<EM
->09</EM
->02 19:11:58 hxml Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"
->Text.XML.HXT.DOM.XmlTreeFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html
+++ /dev/null
@@ -1,4337 +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.XmlTreeFilter</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFilter.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlTreeFilter</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 XmlTree filter
-</P
-><P
->Version : $Id: XmlTreeFilter.hs,v 1.4 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%3AisRoot"
->isRoot</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTag"
->isTag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNsTag"
->isNsTag</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasLocalPart"
->hasLocalPart</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasPrefix"
->hasPrefix</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamespace"
->hasNamespace</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTag"
->isOfTag</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttr"
->hasAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNsAttr"
->hasNsAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasValue"
->hasValue</A
-> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPi"
->isPi</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlPi"
->isXmlPi</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfPi"
->isOfPi</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCdata"
->isXCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCharRef"
->isXCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCmt"
->isXCmt</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXDTD"
->isXDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXEntityRef"
->isXEntityRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXError"
->isXError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXPi"
->isXPi</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTag"
->isXTag</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXAttr"
->isXAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttr"
->isAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNsAttr"
->isNsAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfAttr"
->isOfAttr</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXText"
->isXText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisText"
->isText</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfText"
->isOfText</A
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWhiteSpace"
->isWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDoctype"
->isDoctype</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlist"
->isAttlist</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElement"
->isElement</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEntity"
->isEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPeRef"
->isPeRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDName"
->isDTDName</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisCondSect"
->isCondSect</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisParameterEntity"
->isParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotation"
->isNotation</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDefaultAttrKind"
->isDefaultAttrKind</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEnumAttrType"
->isEnumAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisFixedAttrKind"
->isFixedAttrKind</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIdAttrType"
->isIdAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIdRefAttrType"
->isIdRefAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotationAttrType"
->isNotationAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisRequiredAttrKind"
->isRequiredAttrKind</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlistParameterEntity"
->isAttlistParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEmptyElement"
->isEmptyElement</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisMixedContentElement"
->isMixedContentElement</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElemWithContent"
->isElemWithContent</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlistOfElement"
->isAttlistOfElement</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElemContentParamEntity"
->isElemContentParamEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisUnparsedEntity"
->isUnparsedEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisExternalParameterEntity"
->isExternalParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisInternalParameterEntity"
->isInternalParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWarning"
->isWarning</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisError"
->isError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisFatalError"
->isFatalError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXTag"
->mkXTag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQTag"
->mkQTag</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXNsTag"
->mkXNsTag</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXAttr"
->mkXAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQAttr"
->mkQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXNsAttr"
->mkXNsAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXText"
->mkXText</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCharRef"
->mkXCharRef</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXEntityRef"
->mkXEntityRef</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCmt"
->mkXCmt</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXDTD"
->mkXDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCdata"
->mkXCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXPi"
->mkXPi</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXError"
->mkXError</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetName"
->getName</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrl"
->getAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetValue"
->getValue</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNsValue"
->getNsValue</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDValue"
->getDTDValue</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXCmt"
->getXCmt</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXCdata"
->getXCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceQName"
->replaceQName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyText"
->modifyText</A
-> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyQName"
->modifyQName</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttrl"
->processAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttr"
->processAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceAttrl"
->replaceAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adel1Attr"
->del1Attr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aadd1Attr"
->add1Attr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrl"
->addAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttr"
->addAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrInt"
->addAttrInt</A
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyAttr"
->modifyAttr</A
-> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddDTDAttr"
->addDTDAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%3D"
->(+=)</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%2B%3D"
->(++=)</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalueOf"
->valueOf</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintValueOf"
->intValueOf</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atag"
->tag</A
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Astag"
->stag</A
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aatag"
->atag</A
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aetag"
->etag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqetag"
->qetag</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqtag"
->qtag</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArootTag"
->rootTag</A
-> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aattr"
->attr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqattr"
->qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asattr"
->sattr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atxt"
->txt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acmt"
->cmt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aspi"
->spi</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acdata"
->cdata</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adtd"
->dtd</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awarn"
->warn</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aerr"
->err</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Afatal"
->fatal</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasOption"
->hasOption</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRoot"
-></A
-><B
->isRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a document root node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisTag"
-></A
-><B
->isTag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the root of a tree contains a tag node.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"
->isNsTag</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNsTag"
-></A
-><B
->isNsTag</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->namespace aware test whether the root of a tree contains a tag node. Parameters are the local part and namespace.
- Only usable after namespace propagation.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasLocalPart"
-></A
-><B
->hasLocalPart</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree has a given local name
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"
->hasNamespace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"
->hasPrefix</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasPrefix"
-></A
-><B
->hasPrefix</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree has a given prefix name
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"
->hasNamespace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"
->hasLocalPart</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNamespace"
-></A
-><B
->hasNamespace</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree belongs to a given namespace
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"
->hasLocalPart</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"
->hasPrefix</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfTag"
-></A
-><B
->isOfTag</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a tag node with a special name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttr"
-></A
-><B
->hasAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the node of a tree is a XTag node or a XPi node with an attibute of a specific name
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"
->hasNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNsAttr"
-></A
-><B
->hasNsAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the tree is a XTag node with an attibute of a specific local name and namespace uri
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"
->hasAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"
->isNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasValue"
-></A
-><B
->hasValue</B
-> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the given node is a XTag node or a XPI node with an attribute with a value with a specific property.
- In case of a match, the attribute value represented by a text node is returned as single element list,
- else the empty list is the result.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the tree is a processing instruction with a given name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlPi"
-></A
-><B
->isXmlPi</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the tree is a &lt;?xml ... ?&gt; declaration
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfPi"
-></A
-><B
->isOfPi</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a processing instruction of a special name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCdata"
-></A
-><B
->isXCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a CDATA node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCharRef"
-></A
-><B
->isXCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a character reference node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCmt"
-></A
-><B
->isXCmt</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a comment node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXDTD"
-></A
-><B
->isXDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXEntityRef"
-></A
-><B
->isXEntityRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an entity reference node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXError"
-></A
-><B
->isXError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXPi"
-></A
-><B
->isXPi</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a processing instruction node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXTag"
-></A
-><B
->isXTag</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a tag node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXAttr"
-></A
-><B
->isXAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an attribute node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree is an attribute node for a given attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNsAttr"
-></A
-><B
->isNsAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->namespace aware test whether the tree contains an attribute node. Parameters are the local part of the atribute name and the namespace.
- Only usable after namespace propagation.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"
->isNsTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"
->hasNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfAttr"
-></A
-><B
->isOfAttr</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->general test for an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXText"
-></A
-><B
->isXText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a text node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a special text.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfText"
-></A
-><B
->isOfText</B
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a text node with a special property
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWhiteSpace"
-></A
-><B
->isWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a text node only with whitespace.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDoctype"
-></A
-><B
->isDoctype</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a DOCTYPE DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttlist"
-></A
-><B
->isAttlist</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an ATTLIST DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElement"
-></A
-><B
->isElement</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an ELEMENT DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEntity"
-></A
-><B
->isEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an ENTITY DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPeRef"
-></A
-><B
->isPeRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a parameter ENTITY reference.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTDName"
-></A
-><B
->isDTDName</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a DTD name part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCondSect"
-></A
-><B
->isCondSect</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a conditional section DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisParameterEntity"
-></A
-><B
->isParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a parameter entity declaration.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNotation"
-></A
-><B
->isNotation</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a NOTATION DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDefaultAttrKind"
-></A
-><B
->isDefaultAttrKind</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEnumAttrType"
-></A
-><B
->isEnumAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisFixedAttrKind"
-></A
-><B
->isFixedAttrKind</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisIdAttrType"
-></A
-><B
->isIdAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisIdRefAttrType"
-></A
-><B
->isIdRefAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNotationAttrType"
-></A
-><B
->isNotationAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRequiredAttrKind"
-></A
-><B
->isRequiredAttrKind</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttlistParameterEntity"
-></A
-><B
->isAttlistParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEmptyElement"
-></A
-><B
->isEmptyElement</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisMixedContentElement"
-></A
-><B
->isMixedContentElement</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElemWithContent"
-></A
-><B
->isElemWithContent</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttlistOfElement"
-></A
-><B
->isAttlistOfElement</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElemContentParamEntity"
-></A
-><B
->isElemContentParamEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnparsedEntity"
-></A
-><B
->isUnparsedEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisExternalParameterEntity"
-></A
-><B
->isExternalParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisInternalParameterEntity"
-></A
-><B
->isInternalParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWarning"
-></A
-><B
->isWarning</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node for a warning.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node for an error.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisFatalError"
-></A
-><B
->isFatalError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node for a fatal error.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXTag"
-></A
-><B
->mkXTag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructor filter for a tag node.
- a new tree is constructed.
- the attributes and the children are computed by applying the aproprate filter to the input tree
-</P
-><UL
-><LI
-> 1.parameter n :  the tag name
-</LI
-><LI
-> 2.parameter af :  the filter for the attribute list
-</LI
-><LI
-> 3.parameter cf :  the filter for the children
-</LI
-><LI
-> returns : the constructor filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQTag"
-></A
-><B
->mkQTag</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Version with qualified names of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsTag"
-></A
-><B
->mkXNsTag</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructor filter for a tag node.
- a new tree is constructed.
- the attributes and the children are computed by applying the aproprate filter to the input tree
-</P
-><UL
-><LI
-> 1.parameter n :  the tag name in form of prefix:localpart
-</LI
-><LI
-> 2.parameter ns:   the namespace uri
-</LI
-><LI
-> 3.parameter af :  the filter for the attribute list
-</LI
-><LI
-> 4.parameter cf :  the filter for the children
-</LI
-><LI
-> returns : the constructor filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXAttr"
-></A
-><B
->mkXAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for attribute construction.
- a new tree with attribute name and a value computed by a filter
- is build.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQAttr"
-></A
-><B
->mkQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->mkXAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsAttr"
-></A
-><B
->mkXNsAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for attribute construction.
- a new tree with attribute name and namespace and a value computed by a filter
- is build.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXText"
-></A
-><B
->mkXText</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a text node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCharRef"
-></A
-><B
->mkXCharRef</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a character reference node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXEntityRef"
-></A
-><B
->mkXEntityRef</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for an entity reference node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCmt"
-></A
-><B
->mkXCmt</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a comment node.
- a new tree is constructed.
- the xml string representation of the filter result
- forms the comment
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXDTD"
-></A
-><B
->mkXDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a DTD part.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCdata"
-></A
-><B
->mkXCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a CDATA section node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXPi"
-></A
-><B
->mkXPi</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a processing instruction
- a new tree is constructed from the text representation
- of the input tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXError"
-></A
-><B
->mkXError</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for an error message node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the name of a tag node, an attribute node or a pi node.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the attibute list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetValue"
-></A
-><B
->getValue</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for selecting the value of an attribute in a tag node.
- Result of the filter is a single element list with a text node or the empty list
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"
->hasValue</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"
->getNsValue</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNsValue"
-></A
-><B
->getNsValue</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for selecting the value of an attribute with namespace in a tag node.
- Result of the filter is a single element list with a text node or the empty list
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"
->isNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDValue"
-></A
-><B
->getDTDValue</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting an attribute of a DTD node.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXCmt"
-></A
-><B
->getXCmt</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting content of a comment.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXCdata"
-></A
-><B
->getXCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the CDATA content.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreplaceQName"
-></A
-><B
->replaceQName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit filter for changing the name of a tag node, an attribute or a pi.
- result of the filter is a single element list with a tag node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmodifyText"
-></A
-><B
->modifyText</B
-> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->edit filter for changing the text of a text node.
- result of the filter is a single element list with a text node or the empty list
-</P
-><P
->example for editing all text nodes of a tree with an edit function <TT
->f</TT
->:
-</P
-><PRE
->processBottomUp (modifyText f `when` isXText)</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmodifyQName"
-></A
-><B
->modifyQName</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit filter for changing the name of a tag node.
- result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttrl"
-></A
-><B
->processAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->process the attribute list of a tag node with a tree list filter.
- for other trees this filter acts like <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttr"
-></A
-><B
->processAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->elementwise processing of the attributes of a tag.
- for other trees this filter acts like <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
->
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"
->processAttrl</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreplaceAttrl"
-></A
-><B
->replaceAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an attribute list
- to be renamed when replaceAttrl is eliminated
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adel1Attr"
-></A
-><B
->del1Attr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->delete an attribute from the attribute list of a tag tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aadd1Attr"
-></A
-><B
->add1Attr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->add an attribute to the attribute list of a tag.
- If the attribute already exists, it's substituted,
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"
->sattr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttrl"
-></A
-><B
->addAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->adds an attribute list computed by a filter, uses <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->add1Attr</A
-></TT
->.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add or change an attribute with a given string as value for a XTag or XPi tree,
- uses <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->add1Attr</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttrInt"
-></A
-><B
->addAttrInt</B
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add or change an attribute with an Int value.
- uses <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"
->addAttr</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmodifyAttr"
-></A
-><B
->modifyAttr</B
-> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->edit filter for changing the value of an attribute in a tag node.
- result of the filter is a single element list with the tag node or the empty list.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the attribute
-</LI
-><LI
-> 2.parameter f :  the edit function for the attribute value
-</LI
-><LI
-> returns : the edit filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddDTDAttr"
-></A
-><B
->addDTDAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add or change an attribute of a DTD tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%3D"
-></A
-><B
->(+=)</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient function for tag node tree construction
-</P
-><P
->infixl 7
-</P
-><P
->filter combinator for tag tree constrcution
- take a 1. filter for computing a tag node tree (or a whole list of tag node trees)
- then add all trees computed by the 2. filter to the attribute list when they represent attributes
- else append them to the list of children.
-</P
-><P
->if the 1. filter computes a list of tag nodes, the results of the 2. filter are added to all trees
-</P
-><P
->example: <TT
-> etag &quot;a&quot; += sattr &quot;href&quot; &quot;#42&quot; += txt &quot;the answer&quot; </TT
->
- gives the tree <TT
-> &lt;a href=&quot;#42&quot;&gt;the answer&lt;/a&gt; </TT
->
-</P
-><P
->example: <TT
-> ( etag &quot;a&quot; +++ etag &quot;b&quot; ) += sattr &quot;x&quot; &quot;42&quot; </TT
->
- gives the tree <TT
-> &lt;a x=&quot;42&quot;/&gt;&lt;b x=&quot;42&quot;/&gt; </TT
->
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->add1Attr</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
->modifyChildren</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"
->++=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%2B%3D"
-></A
-><B
->(++=)</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient filter function adding a whole list of trees, just for not writing to many ( ... ).
-</P
-><P
->infixl 7
-</P
-><PRE
-> f ++= gl  == f += cat gl </PRE
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalueOf"
-></A
-><B
->valueOf</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->combination of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
-> and conversion into a String
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintValueOf"
-></A
-><B
->intValueOf</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->combination of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
-> and conversion to a Int
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atag"
-></A
-><B
->tag</B
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->variant of mkXTag with a list of filters for the attributes and a list of filters for the children.
- this variant leads to a more readable source for a complicated construction filter
- than the simple solution with a combination of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
-> and <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->stag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Astag"
-></A
-><B
->stag</B
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->variant of tag, useful for tags without attributes and with a list of filters for
- constructing the children
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aatag"
-></A
-><B
->atag</B
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->variant of tag, useful for tags with attributes but without children
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->stag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aetag"
-></A
-><B
->etag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Short cut for empty tags without attributes
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"
->atag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->stag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqetag"
-></A
-><B
->qetag</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version of etag
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqtag"
-></A
-><B
->qtag</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for mkQTag
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArootTag"
-></A
-><B
->rootTag</B
-> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for creating a document root node with a list of filters for the attributes and a list of filters for the document.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aattr"
-></A
-><B
->attr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->mkXAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqattr"
-></A
-><B
->qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for mkQAttr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asattr"
-></A
-><B
->sattr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for attribute construction with string constants
-</P
-><P
->set also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"
->attr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->mkXAttr</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"
->mkXText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atxt"
-></A
-><B
->txt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->short cut for <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"
->mkXText</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acmt"
-></A
-><B
->cmt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for simple comment
- the input tree is ignored
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"
->mkXCmt</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aspi"
-></A
-><B
->spi</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for generating simple processing instructions (spi)
- the input tree is ignored
-</P
-><P
-><TT
->spi &quot;xyz&quot; &quot;abc&quot;</TT
-> is equal to <TT
->mkXPi &quot;xyz&quot; (txt &quot;abc&quot;)</TT
->
- (the name pi is already used in prelude)
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acdata"
-></A
-><B
->cdata</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->short cut for generating simple cdata sections,
- the input tree is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adtd"
-></A
-><B
->dtd</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->DTD part generation with filter for attributes and children
- see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"
->mkXDTDTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Awarn"
-></A
-><B
->warn</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for mkXError c_warn.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->mkXError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aerr"
-></A
-><B
->err</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for mkXError c_fatal.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->mkXError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Afatal"
-></A
-><B
->fatal</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for mkXError c_fatal.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->mkXError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasOption"
-></A
-><B
->hasOption</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->check whether an option is set
-</P
-><P
->reads the value of an attribute, usually applied to a document root node,
- and checks if the value represents True. The following strings are interpreted
- as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html
+++ /dev/null
@@ -1,3101 +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.XmlTreeFunctions</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFunctions.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlTreeFunctions</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 XmlTree functions
-</P
-><P
->Version : $Id: XmlTreeFunctions.hs,v 1.4 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%3AisXCdataNode"
->isXCdataNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCharRefNode"
->isXCharRefNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCmtNode"
->isXCmtNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXDTDNode"
->isXDTDNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXAttrNode"
->isXAttrNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXEntityRefNode"
->isXEntityRefNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXErrorNode"
->isXErrorNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXPiNode"
->isXPiNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTagNode"
->isXTagNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTextNode"
->isXTextNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisRootNode"
->isRootNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTagNode"
->isTagNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTagNode"
->isOfTagNode</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttrNode"
->isAttrNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfAttrNode"
->isOfAttrNode</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTextNode"
->isTextNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTextNode"
->isOfTextNode</A
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPiNode"
->isPiNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfPiNode"
->isOfPiNode</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDElemNode"
->isDTDElemNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisErrorNode"
->isErrorNode</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtextOfXNode"
->textOfXNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXTagTree"
->mkXTagTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkQTagTree"
->mkQTagTree</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXNsTagTree"
->mkXNsTagTree</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AnewRoot"
->newRoot</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AemptyRoot"
->emptyRoot</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%3AnewDocument"
->newDocument</A
-> :: String -&gt; <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%3AnewDocument%27"
->newDocument'</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <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%3AmkRootTree"
->mkRootTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXTextTree"
->mkXTextTree</A
-> :: String -&gt; <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%3AmkXCharRefTree"
->mkXCharRefTree</A
-> :: Int -&gt; <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%3AmkXEntityRefTree"
->mkXEntityRefTree</A
-> :: String -&gt; <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%3AmkXCmtTree"
->mkXCmtTree</A
-> :: String -&gt; <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%3AmkXDTDTree"
->mkXDTDTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXAttrTree"
->mkXAttrTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkQAttrTree"
->mkQAttrTree</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXNsAttrTree"
->mkXNsAttrTree</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXPERefTree"
->mkXPERefTree</A
-> :: String -&gt; <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%3AmkXPiTree"
->mkXPiTree</A
-> :: String -&gt; String -&gt; <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%3AmkXmlDeclTree"
->mkXmlDeclTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXCdataTree"
->mkXCdataTree</A
-> :: String -&gt; <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%3AmkXErrorTree"
->mkXErrorTree</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmaybeString2XText"
->maybeString2XText</A
-> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXText"
->showXText</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXCharRef"
->showXCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXEntityRef"
->showXEntityRef</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXErrors"
->showXErrors</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axshow"
->xshow</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlTreesToString"
->xmlTreesToString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlTreesToText"
->xmlTreesToText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlContentModelToString"
->xmlContentModelToString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlTree"
->showXmlTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlTrees"
->showXmlTrees</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlTrees%27"
->showXmlTrees'</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowQName"
->showQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowQuoteString"
->showQuoteString</A
-> :: String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowAttr"
->showAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowPEAttr"
->showPEAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowExternalId"
->showExternalId</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowNData"
->showNData</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlDTD"
->showXmlDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowElemType"
->showElemType</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowContent"
->showContent</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowEntity"
->showEntity</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowEntityValue"
->showEntityValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowBlank"
->showBlank</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowEq"
->showEq</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowLt"
->showLt</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowGt"
->showGt</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowSlash"
->showSlash</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowApos"
->showApos</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowQuot"
->showQuot</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowLpar"
->showLpar</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowRpar"
->showRpar</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowNL"
->showNL</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnameOf"
->nameOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AlocalPartOf"
->localPartOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnamespaceOf"
->namespaceOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprefixOf"
->prefixOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalNameOf"
->universalNameOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AattrlOfDTD"
->attrlOfDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalueOfDTD"
->valueOfDTD</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AofDTDequals"
->ofDTDequals</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axcmt"
->xcmt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axerr"
->xerr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axwarn"
->xwarn</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axtext"
->xtext</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axtag"
->xtag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axattr"
->xattr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoTreel"
->toTreel</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoAttrl"
->toAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfromTreel"
->fromTreel</A
-> :: <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfromAttrl"
->fromAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCdataNode"
-></A
-><B
->isXCdataNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCharRefNode"
-></A
-><B
->isXCharRefNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCmtNode"
-></A
-><B
->isXCmtNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXDTDNode"
-></A
-><B
->isXDTDNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXAttrNode"
-></A
-><B
->isXAttrNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXEntityRefNode"
-></A
-><B
->isXEntityRefNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXErrorNode"
-></A
-><B
->isXErrorNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXPiNode"
-></A
-><B
->isXPiNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXTagNode"
-></A
-><B
->isXTagNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXTextNode"
-></A
-><B
->isXTextNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRootNode"
-></A
-><B
->isRootNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisTagNode"
-></A
-><B
->isTagNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfTagNode"
-></A
-><B
->isOfTagNode</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttrNode"
-></A
-><B
->isAttrNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfAttrNode"
-></A
-><B
->isOfAttrNode</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisTextNode"
-></A
-><B
->isTextNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfTextNode"
-></A
-><B
->isOfTextNode</B
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPiNode"
-></A
-><B
->isPiNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfPiNode"
-></A
-><B
->isOfPiNode</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTDElemNode"
-></A
-><B
->isDTDElemNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisErrorNode"
-></A
-><B
->isErrorNode</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtextOfXNode"
-></A
-><B
->textOfXNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXTagTree"
-></A
-><B
->mkXTagTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Create a tree with a tag node.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the tag
-</LI
-><LI
-> 2.parameter al :  the tag attribte list
-</LI
-><LI
-> 3.parameter cs :  the list of children
-</LI
-><LI
-> returns : the new tree
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQTagTree"
-></A
-><B
->mkQTagTree</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Version with qualified name of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"
->mkXTagTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsTagTree"
-></A
-><B
->mkXNsTagTree</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a tree with a namespace aware tag node.
-</P
-><UL
-><LI
-> 1.parameter n :  the prefix:localpart of the tag
-</LI
-><LI
-> 2.parameter ns:  the namespace uri
-</LI
-><LI
-> 3.parameter al :  the tag attribte list
-</LI
-><LI
-> 4.parameter cs :  the list of children
-</LI
-><LI
-> returns : the new tree
-</LI
-></UL
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"
->mkXTagTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnewRoot"
-></A
-><B
->newRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->creates a new document tree with empty contents.
-</P
-><UL
-><LI
-> 1.parameter al : the attribute list for the root node
-</LI
-></UL
-><P
->returns a single node tree with tag name &quot;/&quot; indicating a root and
- with empty list of children
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"
->emptyRoot</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AemptyRoot"
-></A
-><B
->emptyRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the empty document tree
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"
->newRoot</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnewDocument"
-></A
-><B
->newDocument</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->create a new empty document with source name as parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnewDocument%27"
-></A
-><B
->newDocument'</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a new empty document with a list of attributes for source location and options
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"
->newDocument</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRootTree"
-></A
-><B
->mkRootTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a document root tree.
-</P
-><UL
-><LI
-> 1.parameter al :  the attribute list for the root. This list must contain at
-		  least an attribute &quot;source&quot; that contains the URI of the document to be processed
-</LI
-><LI
-> 2.parameter cs :  the list for the document content
-</LI
-><LI
-> returns : the document root
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXTextTree"
-></A
-><B
->mkXTextTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for a text element.
-</P
-><UL
-><LI
-> 1.parameter txt :  the text
-</LI
-><LI
-> returns : the tree with the single node containing the text
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCharRefTree"
-></A
-><B
->mkXCharRefTree</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for a char reference.
-</P
-><UL
-><LI
-> 1.parameter i :  the integer representing the Unicode char
-</LI
-><LI
-> returns : the tree with the single node containing the char reference
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXEntityRefTree"
-></A
-><B
->mkXEntityRefTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for an entity reference.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the entity reference
-</LI
-><LI
-> returns : the tree with the single node containing the entity reference
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCmtTree"
-></A
-><B
->mkXCmtTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for a comment,
-</P
-><UL
-><LI
-> 1.parameter c :  the comment text
-</LI
-><LI
-> returns : the tree with the single node containing the comment
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXDTDTree"
-></A
-><B
->mkXDTDTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a tree for a part of a DTD
-</P
-><UL
-><LI
-> 1.parameter d :  the type of the DTD part
-</LI
-><LI
-> 2.parameter al :  the attribute list for the DTD part
-</LI
-><LI
-> 3.parameter ds :  the possibly empty list of components for the DTD part
-</LI
-><LI
-> returns : the tree with the composed DTD part
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXAttrTree"
-></A
-><B
->mkXAttrTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create an attribute tree as part of a tag attribute list of tag nodes
-</P
-><UL
-><LI
-> 1.parameter al : the attribute name
-</LI
-><LI
-> 2.parameter av : the attribute value as tree list, usually containing a single text node
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQAttrTree"
-></A
-><B
->mkQAttrTree</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"
->mkXAttrTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsAttrTree"
-></A
-><B
->mkXNsAttrTree</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create an attribute tree with a namespace
-</P
-><UL
-><LI
-> 1.parameter al : the attribute name
-</LI
-><LI
-> 2.parameter ns : namespace uri
-</LI
-><LI
-> 3.parameter av : the attribute value as tree list, usually containing a single text node
-</LI
-></UL
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"
->mkXAttrTree</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"
->mkXNsTagTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXPERefTree"
-></A
-><B
->mkXPERefTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a parameter entity reference DTD part.
-</P
-><UL
-><LI
-> 1.parameter ref :  the name of the reference
-</LI
-><LI
-> returns : the DTD part for a PERef
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXPiTree"
-></A
-><B
->mkXPiTree</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a processing instruction tree.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the PI
-</LI
-><LI
-> 2.parameter str :  the content of a PI
-</LI
-><LI
-> returns : the processing instruction tree with a single attribute &quot;value&quot;
-      with the str parameter as attribute value, with <TT
->valueOf a_value</TT
-> applied to the result tree
-      the content of the PI can be selected
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXmlDeclTree"
-></A
-><B
->mkXmlDeclTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->create xml declaration
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCdataTree"
-></A
-><B
->mkXCdataTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a CDATA section tree.
-</P
-><UL
-><LI
-> 1.parameter s :  the content of the CDATA section
-</LI
-><LI
-> returns : the tree for the CDATA section
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXErrorTree"
-></A
-><B
->mkXErrorTree</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create an error tree.
-</P
-><UL
-><LI
-> 1.parameter l :  the level of the error (warning, error fatal)
-</LI
-><LI
-> 2.parameter msg :  the error message
-</LI
-><LI
-> 3.parameter cs :  the context, where the error was detected
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmaybeString2XText"
-></A
-><B
->maybeString2XText</B
-> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXText"
-></A
-><B
->showXText</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXCharRef"
-></A
-><B
->showXCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXEntityRef"
-></A
-><B
->showXEntityRef</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXErrors"
-></A
-><B
->showXErrors</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axshow"
-></A
-><B
->xshow</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the result of a filter into a string
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"
->xmlTreesToText</A
-></TT
-> for filter version, <TT
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
->xread</A
-></TT
-> for the inverse operation 
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlTreesToString"
-></A
-><B
->xmlTreesToString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->old name for <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->xshow</A
-></TT
-> (deprecated)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlTreesToText"
-></A
-><B
->xmlTreesToText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->conversion of a filter result into a text node
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->xshow</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlContentModelToString"
-></A
-><B
->xmlContentModelToString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlTree"
-></A
-><B
->showXmlTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlTrees"
-></A
-><B
->showXmlTrees</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlTrees%27"
-></A
-><B
->showXmlTrees'</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowQName"
-></A
-><B
->showQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowQuoteString"
-></A
-><B
->showQuoteString</B
-> :: String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowAttr"
-></A
-><B
->showAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowPEAttr"
-></A
-><B
->showPEAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowExternalId"
-></A
-><B
->showExternalId</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowNData"
-></A
-><B
->showNData</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlDTD"
-></A
-><B
->showXmlDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowElemType"
-></A
-><B
->showElemType</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowContent"
-></A
-><B
->showContent</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowEntity"
-></A
-><B
->showEntity</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowEntityValue"
-></A
-><B
->showEntityValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowBlank"
-></A
-><B
->showBlank</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowEq"
-></A
-><B
->showEq</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowLt"
-></A
-><B
->showLt</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowGt"
-></A
-><B
->showGt</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowSlash"
-></A
-><B
->showSlash</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowApos"
-></A
-><B
->showApos</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowQuot"
-></A
-><B
->showQuot</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowLpar"
-></A
-><B
->showLpar</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowRpar"
-></A
-><B
->showRpar</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowNL"
-></A
-><B
->showNL</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnameOf"
-></A
-><B
->nameOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of a node. For tags, attributes and pi's the name string
- is returned, else the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlocalPartOf"
-></A
-><B
->localPartOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the local part of a name of a node. For tags, attributes the name string
- is returned, for pi's the whole name, else the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnamespaceOf"
-></A
-><B
->namespaceOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the namespace URI of a tag or an attribute tree, else the empty string is returned
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->nameOf</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprefixOf"
-></A
-><B
->prefixOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the namespace prefix of a tag or an attribute tree, else the empty string is returned
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->nameOf</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"
->localPartOf</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalNameOf"
-></A
-><B
->universalNameOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the universal name (namespace uri ++ localPart) of a tag or an attribute tree, else the empty string is returned
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->nameOf</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"
->namespaceOf</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrlOfDTD"
-></A
-><B
->attrlOfDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the attributes of a dtd tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalueOfDTD"
-></A
-><B
->valueOfDTD</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select a special attribute of a DTD part
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AofDTDequals"
-></A
-><B
->ofDTDequals</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test an attribute of a DTD part
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axcmt"
-></A
-><B
->xcmt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axerr"
-></A
-><B
->xerr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axwarn"
-></A
-><B
->xwarn</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axtext"
-></A
-><B
->xtext</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axtag"
-></A
-><B
->xtag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axattr"
-></A
-><B
->xattr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoTreel"
-></A
-><B
->toTreel</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoAttrl"
-></A
-><B
->toAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromTreel"
-></A
-><B
->fromTreel</B
-> :: <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromAttrl"
-></A
-><B
->fromAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeTypes.hs"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -309,7 +309,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkNode"
 ></A
 ><B
@@ -319,13 +322,23 @@
 > 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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatNTree"
 ></A
 ><B
@@ -333,13 +346,23 @@
 > :: (node -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > node -&gt; String</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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfoldNTree"
 ></A
 ><B
@@ -347,13 +370,23 @@
 > :: (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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmapNTree"
 ></A
 ><B
@@ -363,13 +396,23 @@
 > 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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnTreeToList"
 ></A
 ><B
@@ -377,13 +420,23 @@
 > :: <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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdepthNTree"
 ></A
 ><B
@@ -391,13 +444,23 @@
 > :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > a -&gt; Int</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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcardNTree"
 ></A
 ><B
@@ -405,13 +468,23 @@
 > :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > a -&gt; Int</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="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXmlFilter"
@@ -423,7 +496,14 @@
 > <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
@@ -434,7 +514,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXmlSFilter"
@@ -446,7 +529,14 @@
 > <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
@@ -457,7 +547,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ATagName"
@@ -467,7 +560,14 @@
 > = <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
@@ -478,7 +578,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AAttrName"
@@ -488,7 +591,14 @@
 > = <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
@@ -499,7 +609,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtName"
 ></A
 ><B
@@ -507,7 +620,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</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
@@ -522,7 +642,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaName"
 ></A
 ><B
@@ -530,6 +653,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</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"
diff --git a/doc/hdoc/Text-XML-HXT-DOM.html b/doc/hdoc/Text-XML-HXT-DOM.html
--- a/doc/hdoc/Text-XML-HXT-DOM.html
+++ b/doc/hdoc/Text-XML-HXT-DOM.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM.hs"
+><A HREF="src/Text-XML-HXT-DOM.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -89,28 +89,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTree.html"
->Text.XML.HXT.DOM.XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 >module <A HREF="Text-XML-HXT-DOM-XmlState.html"
 >Text.XML.HXT.DOM.XmlState</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-EditFilters.html"
->Text.XML.HXT.DOM.EditFilters</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
@@ -0,0 +1,255 @@
+<!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.DTDValidation.AttributeValueValidation</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.0.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
+></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.DTDValidation.AttributeValueValidation</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This module provides functions for validating attributes.
+</P
+><P
+>The main functions are:
+</P
+><UL
+><LI
+> Check if the attribute value meets the lexical constraints of its type
+</LI
+><LI
+> Normalization of an attribute value
+</LI
+></UL
+></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%3AcheckAttributeValue"
+>checkAttributeValue</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnormalizeAttributeValue"
+>normalizeAttributeValue</A
+> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AcheckAttributeValue"
+></A
+><B
+>checkAttributeValue</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html#checkAttributeValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Checks if the attribute value meets the lexical constraints of its type.
+</P
+><UL
+><LI
+> 1.parameter dtdPart :  the children of the <TT
+>DOCTYPE</TT
+> node
+</LI
+><LI
+> 2.parameter attrDecl :  the declaration of the attribute from the DTD
+</LI
+><LI
+> returns : a function which takes an element (XTag or XDTD ATTLIST),
+                    checks if the attribute value meets the lexical constraints
+                    of its type and returns a list of errors
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnormalizeAttributeValue"
+></A
+><B
+>normalizeAttributeValue</B
+> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html#normalizeAttributeValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Normalizes an attribute value with respect to its type. (3.3.3 / p.29 in Spec)
+</P
+><UL
+><LI
+> 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected
+                   is a list. If the list is empty, no declaration exists.
+</LI
+><LI
+> 2.parameter value :  the attribute value to be normalized
+</LI
+><LI
+> returns : the normalized value
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html
@@ -0,0 +1,244 @@
+<!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.DTDValidation.DTDValidation</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.0.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
+></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.DTDValidation.DTDValidation</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This module provides functions for validating the DTD of XML documents
+   represented as XmlTree.
+</P
+><P
+>Unlike other popular XML validation tools the validation process returns
+   a list of errors instead of aborting after the first error was found.
+</P
+><P
+>Unlike validation of the document, the DTD branch is traversed four times:
+</P
+><UL
+><LI
+> Validation of Notations
+</LI
+><LI
+> Validation of Unparsed Entities
+</LI
+><LI
+> Validation of Element declarations
+</LI
+><LI
+> Validation of Attribute declarations
+</LI
+></UL
+></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%3AremoveDoublicateDefs"
+>removeDoublicateDefs</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AvalidateDTD"
+>validateDTD</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</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%3AremoveDoublicateDefs"
+></A
+><B
+>removeDoublicateDefs</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-DTDValidation.html#removeDoublicateDefs"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Removes doublicate declarations from the DTD, which first declaration is
+ binding. This is the case for ATTLIST and ENTITY declarations.
+</P
+><UL
+><LI
+> returns : A function that replaces the children of DOCTYPE nodes by a list
+               where all multiple declarations are removed.
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AvalidateDTD"
+></A
+><B
+>validateDTD</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-DTDValidation.html#validateDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Validate a DTD.
+</P
+><UL
+><LI
+> returns : a functions which takes the DTD subset of the XmlTree, checks
+                  if the DTD is valid and returns a list of errors
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html
@@ -0,0 +1,207 @@
+<!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.DTDValidation.DocTransformation</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.0.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
+></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.DTDValidation.DocTransformation</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This module provides functions for transforming XML documents represented as
+   XmlTree with respect to its DTD.
+</P
+><P
+>Transforming an XML document with respect to its DTD means:
+</P
+><UL
+><LI
+> add all attributes with default values
+</LI
+><LI
+> normalize all attribute values
+</LI
+><LI
+> sort all attributes in lexical order
+</LI
+></UL
+><P
+>Note: Transformation should be started after validation.
+</P
+><P
+>Before the document is validated, a lookup-table is build on the basis of
+   the DTD which maps element names to their transformation functions.
+   After this initialization phase the whole document is traversed in preorder
+   and every element is transformed by the XmlFilter from the lookup-table.
+</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%3Atransform"
+>transform</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</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%3Atransform"
+></A
+><B
+>transform</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-DocTransformation.html#transform"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for transforming the document.
+</P
+><UL
+><LI
+> 1.parameter dtdPart :  the DTD subset (Node <TT
+>DOCTYPE</TT
+>) of the XmlTree
+</LI
+><LI
+> 2.parameter doc :  the document subset of the XmlTree
+</LI
+><LI
+> returns : a list of errors
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html
@@ -0,0 +1,194 @@
+<!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.DTDValidation.DocValidation</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.0.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
+></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.DTDValidation.DocValidation</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This module provides functions for validating XML Documents represented as
+   XmlTree.
+</P
+><P
+>Unlike other popular XML validation tools the validation process returns
+   a list of errors instead of aborting after the first error was found.
+</P
+><P
+>Before the document is validated, a lookup-table is build on the basis of
+   the DTD which maps element names to their validation functions.
+   After this initialization phase the whole document is traversed in preorder
+   and every element is validated by the XmlFilter from the lookup-table.
+</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%3AvalidateDoc"
+>validateDoc</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</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%3AvalidateDoc"
+></A
+><B
+>validateDoc</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-DocValidation.html#validateDoc"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Validate a document.
+</P
+><UL
+><LI
+> 1.parameter dtdPart :  the DTD subset (Node <TT
+>DOCTYPE</TT
+>) of the XmlTree
+</LI
+><LI
+> 2.parameter doc :  the document subset of the XmlTree
+</LI
+><LI
+> returns : a list of errors
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html
@@ -0,0 +1,207 @@
+<!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.DTDValidation.IdValidation</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.0.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
+></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.DTDValidation.IdValidation</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This module provides functions for checking special ID<EM
+>IDREF</EM
+>IDREFS constraints.
+</P
+><P
+>Checking special ID/IDREF/IDREFS constraints means:
+</P
+><UL
+><LI
+> checking that all ID values are unique.
+</LI
+><LI
+> checking that all IDREF/IDREFS values match the value of some ID attribute
+</LI
+></UL
+><P
+>ID-Validation should be started before or after validating the document.
+</P
+><P
+>First all nodes with ID attributes are collected from the document, then
+   it is validated that values of ID attributes do not occure more than once.
+   During a second iteration over the document it is validated that there exists
+   an ID attribute value for IDREF/IDREFS attribute values.
+</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%3AvalidateIds"
+>validateIds</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</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%3AvalidateIds"
+></A
+><B
+>validateIds</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-IdValidation.html#validateIds"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Perform the validation of the ID<EM
+>IDREF</EM
+>IDREFS constraints.
+</P
+><UL
+><LI
+> 1.parameter dtdPart :  the DTD subset (Node <TT
+>DOCTYPE</TT
+>) of the XmlTree
+</LI
+><LI
+> 2.parameter doc :  the document subset of the XmlTree
+</LI
+><LI
+> returns : a list of errors
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html b/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-RE.html
@@ -0,0 +1,1126 @@
+<!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.DTDValidation.RE</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.0.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
+></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.DTDValidation.RE</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>A module for regular expression matching based on derivatives of regular expressions.
+</P
+><P
+>The code was taken from Joe English (<A HREF="http://www.flightlab.com/~joe/sgml/validate.html"
+>http://www.flightlab.com/~joe/sgml/validate.html</A
+>).
+   Tested and extended by Martin Schmidt.
+</P
+><P
+>Further references for the algorithm:
+</P
+><P
+>Janusz A. Brzozowski.
+</P
+><P
+>Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. 
+</P
+><P
+>Mark Hopkins.
+</P
+><P
+>Regular Expression Package. Posted to comp.compilers, 1994.
+        Available per FTP at <A HREF="ftp://iecc.com/pub/file/regex.tar.gz"
+>ftp://iecc.com/pub/file/regex.tar.gz</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"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>= <A HREF="#v%3ARE_ZERO"
+>RE_ZERO</A
+> String</TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_UNIT"
+>RE_UNIT</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_SYM"
+>RE_SYM</A
+> a</TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_DOT"
+>RE_DOT</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_REP"
+>RE_REP</A
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_PLUS"
+>RE_PLUS</A
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_OPT"
+>RE_OPT</A
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_SEQ"
+>RE_SEQ</A
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a) (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ARE_ALT"
+>RE_ALT</A
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a) (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_unit"
+>re_unit</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_zero"
+>re_zero</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_sym"
+>re_sym</A
+> :: a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_rep"
+>re_rep</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_plus"
+>re_plus</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_opt"
+>re_opt</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_seq"
+>re_seq</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_alt"
+>re_alt</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_dot"
+>re_dot</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcheckRE"
+>checkRE</A
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amatches"
+>matches</A
+> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Anullable"
+>nullable</A
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprintRE"
+>printRE</A
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3ARE"
+></A
+><B
+>RE</B
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#RE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+>Data type for regular expressions.
+</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 NAME="v%3ARE_ZERO"
+></A
+><B
+>RE_ZERO</B
+> String</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_UNIT"
+></A
+><B
+>RE_UNIT</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_SYM"
+></A
+><B
+>RE_SYM</B
+> a</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_DOT"
+></A
+><B
+>RE_DOT</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_REP"
+></A
+><B
+>RE_REP</B
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_PLUS"
+></A
+><B
+>RE_PLUS</B
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_OPT"
+></A
+><B
+>RE_OPT</B
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_SEQ"
+></A
+><B
+>RE_SEQ</B
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a) (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARE_ALT"
+></A
+><B
+>RE_ALT</B
+> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a) (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:RE" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Eq a =&gt; Eq (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show a =&gt; Show (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> 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%3Are_unit"
+></A
+><B
+>re_unit</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_unit"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for an empty sequence.
+</P
+><UL
+><LI
+> returns : regular expression for an empty sequence
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_zero"
+></A
+><B
+>re_zero</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_zero"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for an empty set.
+</P
+><UL
+><LI
+> 1.parameter errMsg :  error message
+</LI
+><LI
+> returns : regular expression for an empty set
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_sym"
+></A
+><B
+>re_sym</B
+> :: a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_sym"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for accepting a symbol
+</P
+><UL
+><LI
+> 1.parameter sym :  the symbol to be accepted
+</LI
+><LI
+> returns : regular expression for accepting a symbol
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_rep"
+></A
+><B
+>re_rep</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_rep"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs an optional repetition (*) of a regular expression
+</P
+><UL
+><LI
+> 1.parameter re_a :  regular expression to be repeted
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_plus"
+></A
+><B
+>re_plus</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_plus"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a repetition (+) of a regular expression
+</P
+><UL
+><LI
+> 1.parameter re_a :  regular expression to be repeted
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_opt"
+></A
+><B
+>re_opt</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_opt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs an option (?) of a regular expression
+</P
+><UL
+><LI
+> 1.parameter re_a :  regular expression to be optional
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_seq"
+></A
+><B
+>re_seq</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_seq"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a sequence (,) of two regular expressions
+</P
+><UL
+><LI
+> 1.parameter re_a :  first regular expression in sequence
+</LI
+><LI
+> 2.parameter re_b :  second regular expression in sequence
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_alt"
+></A
+><B
+>re_alt</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_alt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs an alternative (|) of two regular expressions
+</P
+><UL
+><LI
+> 1.parameter re_a :  first regular expression of alternative
+</LI
+><LI
+> 2.parameter re_b :  second regular expression of alternative
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_dot"
+></A
+><B
+>re_dot</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_dot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for accepting any singel symbol
+</P
+><UL
+><LI
+> returns : regular expression for accepting any singel symbol
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AcheckRE"
+></A
+><B
+>checkRE</B
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#checkRE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Checks if an input matched a regular expression. The function should be
+ called after matches.
+</P
+><P
+>Was the sentence used in <TT
+>matches</TT
+> in the language of the regular expression?
+ -&gt; matches e s == s `in` L(e)?
+</P
+><UL
+><LI
+> 1.parameter re :  the derived regular expression
+</LI
+><LI
+> returns : empty String if input matched the regular expression, otherwise
+               an error message is returned
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Amatches"
+></A
+><B
+>matches</B
+> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#matches"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Derives a regular expression with respect to a sentence.
+</P
+><UL
+><LI
+> 1.parameter re :  regular expression
+</LI
+><LI
+> 2.parameter s :  sentence to which the regular expression is applied
+</LI
+><LI
+> returns : the derived regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Anullable"
+></A
+><B
+>nullable</B
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#nullable"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Checks if a regular expression matches the empty sequence.
+</P
+><P
+>nullable e == [] `in` L(e)
+</P
+><P
+>This check indicates if a regular expression fits to a sentence or not.
+</P
+><UL
+><LI
+> 1.parameter re :  regular expression to be checked
+</LI
+><LI
+> returns : true if regular expression matches the empty sequence,
+                otherwise false
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprintRE"
+></A
+><B
+>printRE</B
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#printRE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a string representation of a regular expression.
+</P
+><UL
+><LI
+> 1.parameter re :  a regular expression
+</LI
+><LI
+> returns : the string representation of the regular expression
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html b/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html
@@ -0,0 +1,1628 @@
+<!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.DTDValidation.TypeDefs</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.0.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
+></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.DTDValidation.TypeDefs</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>This module provides all datatypes for DTD validation
+</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"
+>type</SPAN
+> <A HREF="#t%3AXmlArrow"
+>XmlArrow</A
+> = <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AXmlArrowS"
+>XmlArrowS</A
+> = <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adtd_name"
+>dtd_name</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adtd_value"
+>dtd_value</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adtd_type"
+>dtd_type</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adtd_kind"
+>dtd_kind</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adtd_modifier"
+>dtd_modifier</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adtd_default"
+>dtd_default</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisUnparsedEntity"
+>isUnparsedEntity</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasDTDAttrValue"
+>hasDTDAttrValue</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; String -&gt; (String -&gt; Bool) -&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%3AisRequiredAttrKind"
+>isRequiredAttrKind</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDefaultAttrKind"
+>isDefaultAttrKind</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisFixedAttrKind"
+>isFixedAttrKind</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisMixedContentElement"
+>isMixedContentElement</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisEmptyElement"
+>isEmptyElement</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisEnumAttrType"
+>isEnumAttrType</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisIdAttrType"
+>isIdAttrType</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisIdRefAttrType"
+>isIdRefAttrType</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisNotationAttrType"
+>isNotationAttrType</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisAttlistOfElement"
+>isAttlistOfElement</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AvalueOfDTD"
+>valueOfDTD</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AvalueOf"
+>valueOf</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetDTDAttributes"
+>getDTDAttributes</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDTDDoctypeNode"
+>isDTDDoctypeNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDTDElementNode"
+>isDTDElementNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDTDAttlistNode"
+>isDTDAttlistNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDTDContentNode"
+>isDTDContentNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisDTDNameNode"
+>isDTDNameNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisElemNode"
+>isElemNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnameOfAttr"
+>nameOfAttr</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnameOfElem"
+>nameOfElem</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%24%24"
+>($$)</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmsgToErr"
+>msgToErr</A
+> :: (String -&gt; String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-Interface.html"
+>Text.XML.HXT.DOM.Interface</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
+>Text.XML.HXT.Arrow.XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowList.html"
+>Control.Arrow.ArrowList</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowIf.html"
+>Control.Arrow.ArrowIf</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowState.html"
+>Control.Arrow.ArrowState</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowTree.html"
+>Control.Arrow.ArrowTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ListArrow.html"
+>Control.Arrow.ListArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-StateListArrow.html"
+>Control.Arrow.StateListArrow</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"
+>type</SPAN
+> <A NAME="t%3AXmlArrow"
+></A
+><B
+>XmlArrow</B
+> = <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#XmlArrow"
+>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%3AXmlArrowS"
+></A
+><B
+>XmlArrowS</B
+> = <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#XmlArrowS"
+>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%3Adtd_name"
+></A
+><B
+>dtd_name</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_name"
+>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%3Adtd_value"
+></A
+><B
+>dtd_value</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_value"
+>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%3Adtd_type"
+></A
+><B
+>dtd_type</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_type"
+>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%3Adtd_kind"
+></A
+><B
+>dtd_kind</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_kind"
+>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%3Adtd_modifier"
+></A
+><B
+>dtd_modifier</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_modifier"
+>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%3Adtd_default"
+></A
+><B
+>dtd_default</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_default"
+>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%3AisUnparsedEntity"
+></A
+><B
+>isUnparsedEntity</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isUnparsedEntity"
+>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%3AhasDTDAttrValue"
+></A
+><B
+>hasDTDAttrValue</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; String -&gt; (String -&gt; Bool) -&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-DTDValidation-TypeDefs.html#hasDTDAttrValue"
+>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%3AisRequiredAttrKind"
+></A
+><B
+>isRequiredAttrKind</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isRequiredAttrKind"
+>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%3AisDefaultAttrKind"
+></A
+><B
+>isDefaultAttrKind</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDefaultAttrKind"
+>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%3AisFixedAttrKind"
+></A
+><B
+>isFixedAttrKind</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isFixedAttrKind"
+>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%3AisMixedContentElement"
+></A
+><B
+>isMixedContentElement</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isMixedContentElement"
+>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%3AisEmptyElement"
+></A
+><B
+>isEmptyElement</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isEmptyElement"
+>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%3AisEnumAttrType"
+></A
+><B
+>isEnumAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isEnumAttrType"
+>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%3AisIdAttrType"
+></A
+><B
+>isIdAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isIdAttrType"
+>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%3AisIdRefAttrType"
+></A
+><B
+>isIdRefAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isIdRefAttrType"
+>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%3AisNotationAttrType"
+></A
+><B
+>isNotationAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isNotationAttrType"
+>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%3AisAttlistOfElement"
+></A
+><B
+>isAttlistOfElement</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
+>ArrowDTD</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isAttlistOfElement"
+>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%3AvalueOfDTD"
+></A
+><B
+>valueOfDTD</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#valueOfDTD"
+>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%3AvalueOf"
+></A
+><B
+>valueOf</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#valueOf"
+>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%3AgetDTDAttributes"
+></A
+><B
+>getDTDAttributes</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#getDTDAttributes"
+>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%3AisDTDDoctypeNode"
+></A
+><B
+>isDTDDoctypeNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDDoctypeNode"
+>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%3AisDTDElementNode"
+></A
+><B
+>isDTDElementNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDElementNode"
+>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%3AisDTDAttlistNode"
+></A
+><B
+>isDTDAttlistNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDAttlistNode"
+>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%3AisDTDContentNode"
+></A
+><B
+>isDTDContentNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDContentNode"
+>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%3AisDTDNameNode"
+></A
+><B
+>isDTDNameNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDNameNode"
+>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%3AisElemNode"
+></A
+><B
+>isElemNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isElemNode"
+>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%3AnameOfAttr"
+></A
+><B
+>nameOfAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#nameOfAttr"
+>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%3AnameOfElem"
+></A
+><B
+>nameOfElem</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#nameOfElem"
+>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%24%24"
+></A
+><B
+>($$)</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#%24%24"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>infix operator for applying an arrow to a list of trees
+</P
+><UL
+><LI
+> 1.parameter f :  the arrow
+</LI
+><LI
+> 2.parameter ts :  the list of trees
+</LI
+><LI
+> returns : 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%3AmsgToErr"
+></A
+><B
+>msgToErr</B
+> :: (String -&gt; String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#msgToErr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>create an error message
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-Interface.html"
+>Text.XML.HXT.DOM.Interface</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
+>Text.XML.HXT.Arrow.XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowList.html"
+>Control.Arrow.ArrowList</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowIf.html"
+>Control.Arrow.ArrowIf</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowState.html"
+>Control.Arrow.ArrowState</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ArrowTree.html"
+>Control.Arrow.ArrowTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-ListArrow.html"
+>Control.Arrow.ListArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Control-Arrow-StateListArrow.html"
+>Control.Arrow.StateListArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html b/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html
@@ -0,0 +1,425 @@
+<!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.DTDValidation.Validation</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.0.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
+></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.DTDValidation.Validation</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This module provides functions for validating XML documents represented as
+   XmlTree.
+</P
+><P
+>Unlike other popular XML validation tools the validation functions return
+   a list of errors instead of aborting after the first error was found.
+</P
+><P
+>Note: The validation process has been split into validation and transformation!
+   If <TT
+>validate</TT
+> did not report any errors, <TT
+>transform</TT
+>
+   should be called, to change the document the way a validating parser
+   is expected to do.
+</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%3AgetDTDSubset"
+>getDTDSubset</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Avalidate"
+>validate</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AvalidateDTD"
+>validateDTD</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AvalidateDoc"
+>validateDoc</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AremoveDoublicateDefs"
+>removeDoublicateDefs</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atransform"
+>transform</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</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%3AgetDTDSubset"
+></A
+><B
+>getDTDSubset</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#getDTDSubset"
+>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%3Avalidate"
+></A
+><B
+>validate</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#validate"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Main validation filter. Check if the DTD and the document are valid.
+</P
+><UL
+><LI
+> returns : a function which expects a complete document as XmlTree input
+                     and returns a list of all errors found.
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AvalidateDTD"
+></A
+><B
+>validateDTD</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#validateDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Check if the DTD is valid.
+</P
+><UL
+><LI
+> returns : a function which expects an XmlTree from the parser as input
+                     and returns a list of all errors found in the DTD.
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AvalidateDoc"
+></A
+><B
+>validateDoc</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#validateDoc"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Check if the document corresponds to the given DTD.
+</P
+><UL
+><LI
+> returns : a function which expects a complete document as XmlTree input
+                     and returns a list of all errors found in the content part.
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AremoveDoublicateDefs"
+></A
+><B
+>removeDoublicateDefs</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#removeDoublicateDefs"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Removes doublicate declarations from the DTD which first declaration is
+ binding. This is the case for ATTLIST and ENTITY declarations.
+</P
+><UL
+><LI
+> returns : A function that replaces the children of DOCTYPE nodes by a list
+               where all multiple declarations are removed.
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atransform"
+></A
+><B
+>transform</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"
+>XmlArrow</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#transform"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for transforming a document with respect to the given DTD.
+</P
+><P
+>Validating parsers
+ are expected to  normalize attribute values and add default values.
+ This function should be called after a successful validation.
+</P
+><UL
+><LI
+> returns : a function which expects a complete XML document tree
+                and returns the transformed XmlTree
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html b/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html
@@ -0,0 +1,857 @@
+<!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.DTDValidation.XmlRE</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.0.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
+></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.DTDValidation.XmlRE</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>A module for regular expression matching, adapted for XML DTDs.
+</P
+><P
+>This module is based on the module RE.
+</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"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcheckRE"
+>checkRE</A
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amatches"
+>matches</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprintRE"
+>printRE</A
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_unit"
+>re_unit</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_zero"
+>re_zero</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_sym"
+>re_sym</A
+> :: a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_rep"
+>re_rep</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_plus"
+>re_plus</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_opt"
+>re_opt</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_seq"
+>re_seq</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_alt"
+>re_alt</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Are_dot"
+>re_dot</A
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> 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%3ARE"
+></A
+><B
+>RE</B
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#RE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+>Data type for regular expressions.
+</TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:RE" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Eq a =&gt; Eq (<A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show a =&gt; Show (<A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> 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%3AcheckRE"
+></A
+><B
+>checkRE</B
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#checkRE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Checks if an input matched a regular expression. The function should be
+ called after matches.
+</P
+><P
+>Was the sentence used in <TT
+>matches</TT
+> in the language of the regular expression?
+ -&gt; matches e s == s `in` L(e)?
+</P
+><UL
+><LI
+> 1.parameter re :  the derived regular expression
+</LI
+><LI
+> returns : empty String if input matched the regular expression, otherwise
+               an error message is returned
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Amatches"
+></A
+><B
+>matches</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#matches"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Derives a regular expression with respect to a list of elements.
+</P
+><UL
+><LI
+> 1.parameter re :  regular expression
+</LI
+><LI
+> 2.parameter list :  list of elements to which the regular expression is applied
+</LI
+><LI
+> returns : the derived regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprintRE"
+></A
+><B
+>printRE</B
+> :: Show a =&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#printRE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a string representation of a regular expression.
+</P
+><UL
+><LI
+> 1.parameter re :  a regular expression
+</LI
+><LI
+> returns : the string representation of the regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_unit"
+></A
+><B
+>re_unit</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_unit"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for an empty sequence.
+</P
+><UL
+><LI
+> returns : regular expression for an empty sequence
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_zero"
+></A
+><B
+>re_zero</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_zero"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for an empty set.
+</P
+><UL
+><LI
+> 1.parameter errMsg :  error message
+</LI
+><LI
+> returns : regular expression for an empty set
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_sym"
+></A
+><B
+>re_sym</B
+> :: a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_sym"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for accepting a symbol
+</P
+><UL
+><LI
+> 1.parameter sym :  the symbol to be accepted
+</LI
+><LI
+> returns : regular expression for accepting a symbol
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_rep"
+></A
+><B
+>re_rep</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_rep"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs an optional repetition (*) of a regular expression
+</P
+><UL
+><LI
+> 1.parameter re_a :  regular expression to be repeted
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_plus"
+></A
+><B
+>re_plus</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_plus"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a repetition (+) of a regular expression
+</P
+><UL
+><LI
+> 1.parameter re_a :  regular expression to be repeted
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_opt"
+></A
+><B
+>re_opt</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_opt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs an option (?) of a regular expression
+</P
+><UL
+><LI
+> 1.parameter re_a :  regular expression to be optional
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_seq"
+></A
+><B
+>re_seq</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_seq"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a sequence (,) of two regular expressions
+</P
+><UL
+><LI
+> 1.parameter re_a :  first regular expression in sequence
+</LI
+><LI
+> 2.parameter re_b :  second regular expression in sequence
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_alt"
+></A
+><B
+>re_alt</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a -&gt; <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_alt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs an alternative (|) of two regular expressions
+</P
+><UL
+><LI
+> 1.parameter re_a :  first regular expression of alternative
+</LI
+><LI
+> 2.parameter re_b :  second regular expression of alternative
+</LI
+><LI
+> returns : new regular expression
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Are_dot"
+></A
+><B
+>re_dot</B
+> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"
+>RE</A
+> a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#re_dot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Constructs a regular expression for accepting any singel symbol
+</P
+><UL
+><LI
+> returns : regular expression for accepting any singel symbol
+</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 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetFILE.hs"
+><A HREF="src/Text-XML-HXT-IO-GetFILE.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,24 +69,44 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetStdinCont"
 ></A
 ><B
 >getStdinCont</B
 > :: IO (Either String String)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-IO-GetFILE.html#getStdinCont"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetCont"
 ></A
 ><B
 >getCont</B
 > :: String -&gt; IO (Either String String)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-IO-GetFILE.html#getCont"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html b/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html
--- a/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html
+++ b/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetHTTPCurl.hs"
+><A HREF="src/Text-XML-HXT-IO-GetHTTPCurl.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,12 +69,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetCont"
 ></A
 ><B
 >getCont</B
 > :: String -&gt; String -&gt; String -&gt; IO (Either String ([(String, String)], String))</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-IO-GetHTTPCurl.html#getCont"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html b/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html
--- a/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html
+++ b/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetHTTPNative.hs"
+><A HREF="src/Text-XML-HXT-IO-GetHTTPNative.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,12 +69,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetCont"
 ></A
 ><B
 >getCont</B
 > :: String -&gt; String -&gt; IO (Either String ([(String, String)], String))</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-IO-GetHTTPNative.html#getCont"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html b/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html
--- a/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DTDProcessing.hs"
+><A HREF="src/Text-XML-HXT-Parser-DTDProcessing.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -167,7 +167,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetWellformedDoc"
 ></A
 ><B
@@ -175,7 +178,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-DTDProcessing.html#getWellformedDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -190,15 +200,7 @@
 ><P
 >Result is the single element list containing the well-formed document tree
  or, in case of errors, the document root with an empty list as children
- and attributes <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->a_status</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
->a_module</A
-></TT
-> for error level and the module,
+ and attributes a_status and a_module for error level and the module,
  where the error occured.
 </P
 ><P
@@ -230,7 +232,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckWellformedDoc"
 ></A
 ><B
@@ -238,14 +243,17 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-DTDProcessing.html#checkWellformedDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
->parses a text node with <TT
-><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"
->parseXmlDoc</A
-></TT
->, processes the DTD and general entities
+>parses a text node with parseXmlDoc, processes the DTD and general entities
  and transforms all char references into characters
 </TD
 ></TR
@@ -254,7 +262,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessDTD"
 ></A
 ><B
@@ -262,7 +273,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-DTDProcessing.html#processDTD"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -283,7 +301,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprocessGeneralEntities"
 ></A
 ><B
@@ -291,6 +312,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-DTDProcessing.html#processGeneralEntities"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html b/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html
--- a/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DefaultURI.hs"
+><A HREF="src/Text-XML-HXT-Parser-DefaultURI.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,7 +69,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetDefaultURI"
 ></A
 ><B
@@ -77,6 +80,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-DefaultURI.html#setDefaultURI"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParsec.hs"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -113,35 +113,36 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstHtmlEntities"
-></A
-><B
->substHtmlEntities</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
 ><TR
-><TD CLASS="decl"
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlText"
 ></A
 ><B
 >parseHtmlText</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#parseHtmlText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlDocument"
 ></A
 ><B
@@ -149,13 +150,23 @@
 > :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#parseHtmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlContent"
 ></A
 ><B
@@ -163,54 +174,101 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#parseHtmlContent"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisEmptyHtmlTag"
 ></A
 ><B
 >isEmptyHtmlTag</B
 > :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#isEmptyHtmlTag"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisInnerHtmlTagOf"
 ></A
 ><B
 >isInnerHtmlTagOf</B
 > :: String -&gt; String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#isInnerHtmlTagOf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AclosesHtmlTag"
 ></A
 ><B
 >closesHtmlTag</B
 > :: String -&gt; String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#closesHtmlTag"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AemptyHtmlTags"
 ></A
 ><B
 >emptyHtmlTags</B
 > :: [String]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#emptyHtmlTags"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html b/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParser.hs"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -148,6 +148,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AsubstHtmlEntities"
+>substHtmlEntities</A
+> :: XmlTree -&gt; XmlTrees</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 >module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"
 >Text.XML.HXT.Parser.HtmlParsec</A
 ></TD
@@ -168,7 +178,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetHtmlDoc"
 ></A
 ><B
@@ -176,7 +189,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html#getHtmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -213,7 +233,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlDoc"
 ></A
 ><B
@@ -221,7 +244,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html#parseHtmlDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -252,7 +282,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArunHtmlParser"
 ></A
 ><B
@@ -260,7 +293,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html#runHtmlParser"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >The pure HTML parser, usually called via <TT
@@ -269,6 +309,28 @@
 ></TT
 >.
 </TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsubstHtmlEntities"
+></A
+><B
+>substHtmlEntities</B
+> :: XmlTree -&gt; XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html#substHtmlEntities"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html b/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html
--- a/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/MainFunctions.hs"
+><A HREF="src/Text-XML-HXT-Parser-MainFunctions.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -92,13 +92,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXmlDocument"
 >getXmlDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
+> :: Attributes -&gt; String -&gt; IO (XmlTree, XmlTrees, Int)</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -108,13 +102,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AputXmlDocument"
 >putXmlDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
+> :: Attributes -&gt; String -&gt; XmlTree -&gt; IO (XmlTrees, Int)</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -124,9 +112,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseDocument"
 >parseDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> :: Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
 ></TR
@@ -138,9 +124,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AwriteDocument"
 >writeDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> :: Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
 ></TR
@@ -160,19 +144,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXmlDocument"
 ></A
 ><B
 >getXmlDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
+> :: Attributes -&gt; String -&gt; IO (XmlTree, XmlTrees, Int)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-MainFunctions.html#getXmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -199,23 +187,7 @@
 > the list of errors and warnings
 </LI
 ><LI
-> the error level: one of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"
->c_ok</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
->c_warn</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
->c_fatal</A
-></TT
->
+> the error level: one of c_ok, c_warn, c_err, c_fatal
 </LI
 ></UL
 ><P
@@ -247,11 +219,7 @@
 ><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
 >parseDocument</A
 ></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->a_collect_errors</A
-></TT
-> is set implicitly
+>, a_collect_errors is set implicitly
 </P
 ></TD
 ></TR
@@ -260,19 +228,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AputXmlDocument"
 ></A
 ><B
 >putXmlDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
+> :: Attributes -&gt; String -&gt; XmlTree -&gt; IO (XmlTrees, Int)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-MainFunctions.html#putXmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -334,17 +306,25 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseDocument"
 ></A
 ><B
 >parseDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> :: Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-MainFunctions.html#parseDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -361,129 +341,53 @@
 </P
 ><UL
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
->a_parse_html</A
-></TT
->: use HTML parser, else use XML parser (default)
+> a_parse_html: use HTML parser, else use XML parser (default)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
->a_validate</A
-></TT
-> : validate document (default), else skip validation
+> a_validate : validate document (default), else skip validation
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"
->a_check_namespaces</A
-></TT
-> : check namespaces, else skip namespace processing (default)
+> a_check_namespaces : check namespaces, else skip namespace processing (default)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
->a_canonicalize</A
-></TT
-> : canonicalize document (default), else skip canonicalization
+> a_canonicalize : canonicalize document (default), else skip canonicalization
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"
->a_preserve_comment</A
-></TT
-> : preserve comments during canonicalization, else remove comments (default)
+> a_preserve_comment : preserve comments during canonicalization, else remove comments (default)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-></TT
-> : remove all whitespace, used for document indentation, else skip this step (default)
+> a_remove_whitespace : remove all whitespace, used for document indentation, else skip this step (default)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
-> : indent document by inserting whitespace, else skip this step (default)
+> a_indent : indent document by inserting whitespace, else skip this step (default)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
->a_issue_warnings</A
-></TT
-> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings
+> a_issue_warnings : issue warnings, when parsing HTML (default), else ignore HTML parser warnings
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->a_issue_errors</A
-></TT
-> : issue all error messages on stderr (default), or ignore all error messages
+> a_issue_errors : issue all error messages on stderr (default), or ignore all error messages
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->a_collect_errors</A
-></TT
-> : all error messages are collected during processing and appended to the result document
+> a_collect_errors : all error messages are collected during processing and appended to the result document
  			  for further processing within the calling modules
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
->a_trace</A
-></TT
-> : trace level: values: 0 -4
+> a_trace : trace level: values: 0 -4
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
->a_proxy</A
-></TT
-> : proxy for http access, e.g. www-cache:3128
+> a_proxy : proxy for http access, e.g. www-cache:3128
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
->a_use_curl</A
-></TT
-> : for http access via external programm curl, default is native HTTP access
+> a_use_curl : for http access via external programm curl, default is native HTTP access
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
->a_options_curl</A
-></TT
-> : more options for external program curl
+> a_options_curl : more options for external program curl
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"
->a_source</A
-></TT
-> : the document source url
+> a_source : the document source url
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
-> : default document encoding (<TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->utf8</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"
->usAscii</A
-></TT
->, ...)
+> a_encoding : default document encoding (utf8, isoLatin1, usAscii, ...)
 </LI
 ></UL
 ><P
@@ -496,11 +400,7 @@
                ] emptyRoot
 </PRE
 ><P
->reads document &quot;test.xml&quot; without validation and default encoding <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->
+>reads document &quot;test.xml&quot; without validation and default encoding isoLatin1
 </P
 ><PRE
 > parseDocument [ (a_source,         &quot;http://www.haskell.org/&quot;)
@@ -545,17 +445,25 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AwriteDocument"
 ></A
 ><B
 >writeDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> :: Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-MainFunctions.html#writeDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -573,80 +481,32 @@
 </P
 ><UL
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
-> : indent document for readability, (default: no indentation)
+> a_indent : indent document for readability, (default: no indentation)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-></TT
-> : remove all redundant whitespace for shorten text (default: no removal)
+> a_remove_whitespace : remove all redundant whitespace for shorten text (default: no removal)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"
->a_output_file</A
-></TT
-> : destination file for document, default is &quot;-&quot; for stdout
+> a_output_file : destination file for document, default is &quot;-&quot; for stdout
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
-> : encoding of document, default is <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
-> or <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->utf8</A
-></TT
->
+> a_output_encoding : encoding of document, default is a_encoding or utf8
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"
->a_output_xml</A
-></TT
-> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp;
+> a_output_xml : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp;
                     add XML processing instruction
-                    and encode document with respect to <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
->,
+                    and encode document with respect to a_output_encoding,
                     if explizitly switched of, the plain text is issued, this is useful
                     for non XML output, e.g. generated Haskell code, LaTex, Java, ...
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"
->a_show_tree</A
-></TT
-> : show tree representation of document (for debugging)
+> a_show_tree : show tree representation of document (for debugging)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"
->a_show_haskell</A
-></TT
-> : show Haskell representaion of document (for debugging)
+> a_show_haskell : show Haskell representaion of document (for debugging)
 </LI
 ><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->a_issue_errors</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->a_collect_errors</A
-></TT
-> : see <TT
+> a_issue_errors, a_collect_errors : see <TT
 ><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
 >parseDocument</A
 ></TT
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandler.hs"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandler.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,7 +69,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetProtocolHandler"
 ></A
 ><B
@@ -77,6 +80,13 @@
 > :: String -&gt; URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandler.html#getProtocolHandler"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerFile.hs"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerFile.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,7 +69,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetFileContents"
 ></A
 ><B
@@ -77,6 +80,13 @@
 > :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerFile.html#getFileContents"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,7 +69,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetHttpContentsWithCurl"
 ></A
 ><B
@@ -77,6 +80,13 @@
 > :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html#getHttpContentsWithCurl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,7 +69,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetHttpContentsWithHttp"
 ></A
 ><B
@@ -77,6 +80,13 @@
 > :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html#getHttpContentsWithHttp"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,7 +69,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetHttpContentsNativeOrWithCurl"
 ></A
 ><B
@@ -77,6 +80,13 @@
 > :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html#getHttpContentsNativeOrWithCurl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerUtil.hs"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -69,12 +69,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseContentType"
 ></A
 ><B
 >parseContentType</B
 > :: Parser [(String, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html#parseContentType"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/TagSoup.hs"
+><A HREF="src/Text-XML-HXT-Parser-TagSoup.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -101,13 +101,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseHtmlTagSoup"
 ></A
 ><B
 >parseHtmlTagSoup</B
 > :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-TagSoup.html#parseHtmlTagSoup"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XhtmlEntities.hs"
+><A HREF="src/Text-XML-HXT-Parser-XhtmlEntities.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -106,12 +106,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxhtmlEntities"
 ></A
 ><B
 >xhtmlEntities</B
 > :: [(String, Int)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XhtmlEntities.html#xhtmlEntities"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlCharParser.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -177,7 +177,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlChar"
 ></A
 ><B
@@ -185,7 +188,14 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a single Unicode character
@@ -196,7 +206,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlNameChar"
 ></A
 ><B
@@ -204,7 +217,14 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNameChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a XML name character
@@ -215,7 +235,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlNameStartChar"
 ></A
 ><B
@@ -223,7 +246,14 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNameStartChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a XML name start character
@@ -234,7 +264,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlNCNameChar"
 ></A
 ><B
@@ -242,7 +275,14 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNCNameChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a XML NCName character
@@ -253,7 +293,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlNCNameStartChar"
 ></A
 ><B
@@ -261,7 +304,14 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNCNameStartChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a XML NCName start character
@@ -272,7 +322,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlLetter"
 ></A
 ><B
@@ -280,7 +333,14 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
 >Unicode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlLetter"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a XML letter character
@@ -291,12 +351,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlSpaceChar"
 ></A
 ><B
 >xmlSpaceChar</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlSpaceChar"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDParser.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -80,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: XmlDTDParser.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
 >Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -109,8 +102,10 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseXmlDTDdecl"
 >parseXmlDTDdecl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -121,8 +116,10 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseXmlDTDdeclPart"
 >parseXmlDTDdeclPart</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -133,8 +130,10 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseXmlDTDEntityValue"
 >parseXmlDTDEntityValue</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -201,15 +200,27 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDdecl"
 ></A
 ><B
 >parseXmlDTDdecl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#parseXmlDTDdecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >parse a tokenized DTD declaration represented by a DTD tree.
@@ -225,35 +236,62 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDdeclPart"
 ></A
 ><B
 >parseXmlDTDdeclPart</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#parseXmlDTDdeclPart"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDEntityValue"
 ></A
 ><B
 >parseXmlDTDEntityValue</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#parseXmlDTDEntityValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AelementDecl"
 ></A
 ><B
@@ -261,13 +299,23 @@
 > :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#elementDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattlistDecl"
 ></A
 ><B
@@ -275,13 +323,23 @@
 > :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#attlistDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityDecl"
 ></A
 ><B
@@ -289,19 +347,36 @@
 > :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#entityDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnotationDecl"
 ></A
 ><B
 >notationDecl</B
 > :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#notationDecl"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDTokenParser.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -107,7 +107,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdDeclTokenizer"
 ></A
 ><B
@@ -115,13 +118,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdDeclTokenizer"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdDeclStart"
 ></A
 ><B
@@ -131,25 +144,45 @@
 >, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
 >Attributes</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdDeclStart"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdDeclEnd"
 ></A
 ><B
 >dtdDeclEnd</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdDeclEnd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdToken"
 ></A
 ><B
@@ -157,13 +190,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdToken"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApeReference"
 ></A
 ><B
@@ -171,13 +214,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#peReference"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattrValue"
 ></A
 ><B
@@ -185,13 +238,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#attrValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdtdChars"
 ></A
 ><B
@@ -199,19 +262,36 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdChars"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Apercent"
 ></A
 ><B
 >percent</B
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#percent"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlEntities.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlEntities.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -104,12 +104,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlEntities"
 ></A
 ><B
 >xmlEntities</B
 > :: [(String, Int)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlEntities.html#xmlEntities"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html b/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlInput.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -107,9 +107,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetContentLength"
 >getContentLength</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -215,7 +213,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXmlContents"
 ></A
 ><B
@@ -223,7 +224,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getXmlContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -241,7 +249,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXmlEntityContents"
 ></A
 ><B
@@ -249,7 +260,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getXmlEntityContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -269,7 +287,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetUrlContents"
 ></A
 ><B
@@ -277,7 +298,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getUrlContents"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -296,24 +324,28 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetContentLength"
 ></A
 ><B
 >getContentLength</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getContentLength"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >compute the length of the data for a document read previously
  by a call of 'getUrlContents. The result is stored as an attribute
- value in the document root node. the attribute name is <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"
->a_contentLength</A
-></TT
->
+ value in the document root node. the attribute name is a_contentLength
 </TD
 ></TR
 ><TR
@@ -321,7 +353,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AguessDocEncoding"
 ></A
 ><B
@@ -329,7 +364,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#guessDocEncoding"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -353,7 +395,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArunInLocalURIContext"
 ></A
 ><B
@@ -363,7 +408,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#runInLocalURIContext"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -385,7 +437,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArunInNewURIContext"
 ></A
 ><B
@@ -395,7 +450,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#runInNewURIContext"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >filter command for running an action in a new URI context
@@ -406,7 +468,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetBaseURI"
 ></A
 ><B
@@ -414,7 +479,14 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -434,7 +506,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetBaseURI"
 ></A
 ><B
@@ -442,7 +517,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#setBaseURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -467,7 +549,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetAbsolutURI"
 ></A
 ><B
@@ -475,7 +560,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getAbsolutURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -496,7 +588,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisStandaloneDocument"
 ></A
 ><B
@@ -504,6 +599,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
 > state Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#isStandaloneDocument"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html b/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html
+++ /dev/null
@@ -1,452 +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.Parser.XmlOutput</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlOutput.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlOutput</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->output functions
- implemented as filer
-</P
-><P
->Version : $Id: XmlOutput.hs,v 1.3 2005<EM
->04</EM
->14 12:52:53 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%3AputXmlDoc"
->putXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlDocToFile"
->putXmlDocToFile</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlTree"
->putXmlTree</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlSource"
->putXmlSource</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhPutXmlDoc"
->hPutXmlDoc</A
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhPutXmlTree"
->hPutXmlTree</A
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhPutXmlSource"
->hPutXmlSource</A
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceF"
->traceF</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceMsg"
->traceMsg</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceTree"
->traceTree</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceSource"
->traceSource</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlDoc"
-></A
-><B
->putXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->document output for standard output
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"
->hPutXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlDocToFile"
-></A
-><B
->putXmlDocToFile</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->document output on a given file name
-</P
-><P
->Result is the input document
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"
->hPutXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"
->putXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlTree"
-></A
-><B
->putXmlTree</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlSource"
-></A
-><B
->putXmlSource</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhPutXmlDoc"
-></A
-><B
->hPutXmlDoc</B
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->document output for arbitrary files.
-</P
-><P
->Result is the input document
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhPutXmlTree"
-></A
-><B
->hPutXmlTree</B
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->output of tree representation for trace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhPutXmlSource"
-></A
-><B
->hPutXmlSource</B
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->output of text representation for trace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceF"
-></A
-><B
->traceF</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceMsg"
-></A
-><B
->traceMsg</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceTree"
-></A
-><B
->traceTree</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceSource"
-></A
-><B
->traceSource</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-Parser-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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParsec.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -555,7 +555,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcharData"
 ></A
 ><B
@@ -563,13 +566,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#charData"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcharData%27"
 ></A
 ><B
@@ -577,13 +590,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#charData%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Acomment"
 ></A
 ><B
@@ -591,13 +614,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#comment"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApI"
 ></A
 ><B
@@ -605,13 +638,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#pI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcDSect"
 ></A
 ><B
@@ -619,13 +662,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#cDSect"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adocument"
 ></A
 ><B
@@ -633,13 +686,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#document"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adocument%27"
 ></A
 ><B
@@ -647,13 +710,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#document%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aprolog"
 ></A
 ><B
@@ -661,13 +734,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#prolog"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxMLDecl"
 ></A
 ><B
@@ -675,13 +758,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#xMLDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxMLDecl%27"
 ></A
 ><B
@@ -689,13 +782,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#xMLDecl%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AversionInfo"
 ></A
 ><B
@@ -703,13 +806,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#versionInfo"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amisc"
 ></A
 ><B
@@ -717,13 +830,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#misc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adoctypedecl"
 ></A
 ><B
@@ -731,13 +854,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#doctypedecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amarkupdecl"
 ></A
 ><B
@@ -745,13 +878,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#markupdecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsDDecl"
 ></A
 ><B
@@ -759,13 +902,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#sDDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aelement"
 ></A
 ><B
@@ -773,13 +926,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#element"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Acontent"
 ></A
 ><B
@@ -787,13 +950,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#content"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcontentWithTextDecl"
 ></A
 ><B
@@ -801,13 +974,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#contentWithTextDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtextDecl"
 ></A
 ><B
@@ -815,13 +998,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#textDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AencodingDecl"
 ></A
 ><B
@@ -829,13 +1022,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#encodingDecl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axread"
 ></A
 ><B
@@ -843,12 +1046,19 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#xread"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
 >the inverse function to <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
+><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"
 >xshow</A
 ></TT
 >, (for XML content).
@@ -872,7 +1082,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlAttrValue"
 ></A
 ><B
@@ -882,7 +1095,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlAttrValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Parser for attribute values
@@ -893,7 +1113,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlContent"
 ></A
 ><B
@@ -903,7 +1126,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlContent"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >the filter version of <TT
@@ -918,7 +1148,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDocEncodingSpec"
 ></A
 ><B
@@ -928,13 +1161,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlDocEncodingSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDocument"
 ></A
 ><B
@@ -942,13 +1185,23 @@
 > :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlDTDPart"
 ></A
 ><B
@@ -958,7 +1211,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlDTDPart"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Parser for parts of a DTD
@@ -969,7 +1229,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlEncodingSpec"
 ></A
 ><B
@@ -981,7 +1244,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlEncodingSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1010,7 +1280,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlEntityEncodingSpec"
 ></A
 ><B
@@ -1020,13 +1293,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlEntityEncodingSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlGeneralEntityValue"
 ></A
 ><B
@@ -1036,7 +1319,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlGeneralEntityValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Parser for general entites
@@ -1047,7 +1337,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlPart"
 ></A
 ><B
@@ -1059,7 +1352,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlPart"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >general parser for parsing arbitray parts of a XML document
@@ -1070,7 +1370,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXmlText"
 ></A
 ><B
@@ -1082,7 +1385,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >a more general version of <TT
@@ -1098,7 +1408,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseNMToken"
 ></A
 ><B
@@ -1108,7 +1421,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseNMToken"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Parser for NMTOKENs
@@ -1119,7 +1439,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseName"
 ></A
 ><B
@@ -1129,7 +1452,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Parser for XML names
@@ -1140,7 +1470,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveEncodingSpec"
 ></A
 ><B
@@ -1149,6 +1482,13 @@
 >XmlTree</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#removeEncodingSpec"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html b/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html
+++ /dev/null
@@ -1,211 +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.Parser.XmlParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlParser</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Xml Parser: the main parse filter 
-</P
-><P
->Version : $Id: XmlParser.hs,v 1.5 2005<EM
->06</EM
->06 15:57:19 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="Text-XML-HXT-Parser-XmlParsec.html"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDoc"
->parseXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubstXmlEntities"
->substXmlEntities</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</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="Text-XML-HXT-Parser-XmlParsec.html"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDoc"
-></A
-><B
->parseXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->The monadic parser for a whole document.
- input must be a root node with a single text child.
- Error messages are issued and global error state is set.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstXmlEntities"
-></A
-><B
->substXmlEntities</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Filter for substitution of all occurences of the predefined XML entites quot, amp, lt, gt, apos
- by equivalent character references
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-Parser-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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlTokenParser.hs"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -107,499 +107,912 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AallBut"
 ></A
 ><B
 >allBut</B
 > :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; String -&gt; GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#allBut"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AallBut1"
 ></A
 ><B
 >allBut1</B
 > :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; (Char -&gt; Bool) -&gt; String -&gt; GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#allBut1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AasciiLetter"
 ></A
 ><B
 >asciiLetter</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#asciiLetter"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattrValue"
 ></A
 ><B
 >attrValue</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#attrValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Abar"
 ></A
 ><B
 >bar</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#bar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcharRef"
 ></A
 ><B
 >charRef</B
 > :: GenParser Char state Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#charRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Acomma"
 ></A
 ><B
 >comma</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#comma"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adq"
 ></A
 ><B
 >dq</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#dq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AencName"
 ></A
 ><B
 >encName</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#encName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityRef"
 ></A
 ><B
 >entityRef</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityValue"
 ></A
 ><B
 >entityValue</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aeq"
 ></A
 ><B
 >eq</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#eq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Agt"
 ></A
 ><B
 >gt</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#gt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Akeyword"
 ></A
 ><B
 >keyword</B
 > :: String -&gt; GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#keyword"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Akeywords"
 ></A
 ><B
 >keywords</B
 > :: [String] -&gt; GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#keywords"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Alpar"
 ></A
 ><B
 >lpar</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#lpar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Alt"
 ></A
 ><B
 >lt</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#lt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aname"
 ></A
 ><B
 >name</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#name"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Anames"
 ></A
 ><B
 >names</B
 > :: GenParser Char state [String]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#names"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AncName"
 ></A
 ><B
 >ncName</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#ncName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Anmtoken"
 ></A
 ><B
 >nmtoken</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nmtoken"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Anmtokens"
 ></A
 ><B
 >nmtokens</B
 > :: GenParser Char state [String]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nmtokens"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApeReference"
 ></A
 ><B
 >peReference</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#peReference"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApubidLiteral"
 ></A
 ><B
 >pubidLiteral</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#pubidLiteral"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AqName"
 ></A
 ><B
 >qName</B
 > :: GenParser Char state (String, String)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#qName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aquoted"
 ></A
 ><B
 >quoted</B
 > :: GenParser Char state a -&gt; GenParser Char state a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#quoted"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Areference"
 ></A
 ><B
 >reference</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#reference"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arpar"
 ></A
 ><B
 >rpar</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#rpar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Asemi"
 ></A
 ><B
 >semi</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#semi"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aseparator"
 ></A
 ><B
 >separator</B
 > :: Char -&gt; GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#separator"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsingleChar"
 ></A
 ><B
 >singleChar</B
 > :: String -&gt; GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#singleChar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsingleChars"
 ></A
 ><B
 >singleChars</B
 > :: String -&gt; GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#singleChars"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AskipS"
 ></A
 ><B
 >skipS</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#skipS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AskipS0"
 ></A
 ><B
 >skipS0</B
 > :: GenParser Char state ()</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#skipS0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsPace"
 ></A
 ><B
 >sPace</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#sPace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsPace0"
 ></A
 ><B
 >sPace0</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#sPace0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Asq"
 ></A
 ><B
 >sq</B
 > :: GenParser Char state Char</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#sq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsystemLiteral"
 ></A
 ><B
 >systemLiteral</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#systemLiteral"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AversionNum"
 ></A
 ><B
 >versionNum</B
 > :: GenParser Char state String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#versionNum"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AconcRes"
 ></A
 ><B
 >concRes</B
 > :: GenParser Char state [[a]] -&gt; GenParser Char state [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#concRes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkList"
 ></A
 ><B
 >mkList</B
 > :: GenParser Char state a -&gt; GenParser Char state [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#mkList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnameT"
 ></A
 ><B
@@ -607,13 +1020,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nameT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnmtokenT"
 ></A
 ><B
@@ -621,13 +1044,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nmtokenT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityValueT"
 ></A
 ><B
@@ -635,13 +1068,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityValueT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityTokensT"
 ></A
 ><B
@@ -649,13 +1092,23 @@
 > :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityTokensT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityCharT"
 ></A
 ><B
@@ -663,13 +1116,23 @@
 > :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityCharT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattrValueT"
 ></A
 ><B
@@ -677,13 +1140,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#attrValueT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattrValueT%27"
 ></A
 ><B
@@ -691,13 +1164,23 @@
 > :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#attrValueT%27"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreferenceT"
 ></A
 ><B
@@ -705,13 +1188,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#referenceT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcharRefT"
 ></A
 ><B
@@ -719,13 +1212,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#charRefT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AentityRefT"
 ></A
 ><B
@@ -733,13 +1236,23 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityRefT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApeReferenceT"
 ></A
 ><B
@@ -747,19 +1260,36 @@
 > :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#peReferenceT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsingleCharsT"
 ></A
 ><B
 >singleCharsT</B
 > :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#singleCharsT"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Parser.html b/doc/hdoc/Text-XML-HXT-Parser.html
--- a/doc/hdoc/Text-XML-HXT-Parser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser.hs"
+><A HREF="src/Text-XML-HXT-Parser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -103,16 +103,6 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlParser.html"
->Text.XML.HXT.Parser.XmlParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 >module <A HREF="Text-XML-HXT-Parser-HtmlParser.html"
 >Text.XML.HXT.Parser.HtmlParser</A
 ></TD
@@ -125,16 +115,6 @@
 ><TD CLASS="decl"
 >module <A HREF="Text-XML-HXT-Parser-XmlInput.html"
 >Text.XML.HXT.Parser.XmlInput</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlOutput.html"
->Text.XML.HXT.Parser.XmlOutput</A
 ></TD
 ></TR
 ><TR
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,1624 +19,2474 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/BasicArrows.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.BasicArrows</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Constants and basic arrows for Relax NG
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngName"
-></A
-><B
->hasRngName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckRngName"
-></A
-><B
->checkRngName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; [String] -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnoOfChildren"
-></A
-><B
->noOfChildren</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; (Int -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttributeRef"
-></A
-><B
->isAttributeRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttributeRefTextListGroupInterleaveOneOrMoreEmpty"
-></A
-><B
->isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttributeRefTextListInterleave"
-></A
-><B
->isAttributeRefTextListInterleave</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttributeListGroupInterleaveOneOrMore"
-></A
-><B
->isAttributeListGroupInterleaveOneOrMore</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisExternalRefInclude"
-></A
-><B
->isExternalRefInclude</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNameNsNameValue"
-></A
-><B
->isNameNsNameValue</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNameNsName"
-></A
-><B
->isNameNsName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNameAnyNameNsName"
-></A
-><B
->isNameAnyNameNsName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDefineOneOrMoreZeroOrMoreOptionalListMixed"
-></A
-><B
->isDefineOneOrMoreZeroOrMoreOptionalListMixed</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisChoiceGroupInterleave"
-></A
-><B
->isChoiceGroupInterleave</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisChoiceGroupInterleaveOneOrMore"
-></A
-><B
->isChoiceGroupInterleaveOneOrMore</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisGroupInterleave"
-></A
-><B
->isGroupInterleave</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAnyName"
-></A
-><B
->isRngAnyName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttribute"
-></A
-><B
->isRngAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngChoice"
-></A
-><B
->isRngChoice</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngCombine"
-></A
-><B
->isRngCombine</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngData"
-></A
-><B
->isRngData</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngDefine"
-></A
-><B
->isRngDefine</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngDiv"
-></A
-><B
->isRngDiv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngElement"
-></A
-><B
->isRngElement</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngEmpty"
-></A
-><B
->isRngEmpty</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngExcept"
-></A
-><B
->isRngExcept</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngExternalRef"
-></A
-><B
->isRngExternalRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngGrammar"
-></A
-><B
->isRngGrammar</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngGroup"
-></A
-><B
->isRngGroup</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngInclude"
-></A
-><B
->isRngInclude</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngInterleave"
-></A
-><B
->isRngInterleave</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngList"
-></A
-><B
->isRngList</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngMixed"
-></A
-><B
->isRngMixed</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngName"
-></A
-><B
->isRngName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngNotAllowed"
-></A
-><B
->isRngNotAllowed</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngNsName"
-></A
-><B
->isRngNsName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngOneOrMore"
-></A
-><B
->isRngOneOrMore</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngOptional"
-></A
-><B
->isRngOptional</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngParam"
-></A
-><B
->isRngParam</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngParentRef"
-></A
-><B
->isRngParentRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngRef"
-></A
-><B
->isRngRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngRelaxError"
-></A
-><B
->isRngRelaxError</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngStart"
-></A
-><B
->isRngStart</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngText"
-></A
-><B
->isRngText</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngType"
-></A
-><B
->isRngType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngValue"
-></A
-><B
->isRngValue</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngZeroOrMore"
-></A
-><B
->isRngZeroOrMore</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngElement"
-></A
-><B
->mkRngElement</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngChoice"
-></A
-><B
->mkRngChoice</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngDefine"
-></A
-><B
->mkRngDefine</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngEmpty"
-></A
-><B
->mkRngEmpty</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngGrammar"
-></A
-><B
->mkRngGrammar</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngGroup"
-></A
-><B
->mkRngGroup</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngInterleave"
-></A
-><B
->mkRngInterleave</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngName"
-></A
-><B
->mkRngName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngNotAllowed"
-></A
-><B
->mkRngNotAllowed</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngOneOrMore"
-></A
-><B
->mkRngOneOrMore</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngRef"
-></A
-><B
->mkRngRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngRelaxError"
-></A
-><B
->mkRngRelaxError</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngStart"
-></A
-><B
->mkRngStart</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRngText"
-></A
-><B
->mkRngText</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetRngName"
-></A
-><B
->setRngName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetRngNameDiv"
-></A
-><B
->setRngNameDiv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetRngNameRef"
-></A
-><B
->setRngNameRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrAttribute"
-></A
-><B
->isRngAttrAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrCombine"
-></A
-><B
->isRngAttrCombine</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrDatatypeLibrary"
-></A
-><B
->isRngAttrDatatypeLibrary</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrHref"
-></A
-><B
->isRngAttrHref</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrName"
-></A
-><B
->isRngAttrName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrNs"
-></A
-><B
->isRngAttrNs</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRngAttrType"
-></A
-><B
->isRngAttrType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrAttribute"
-></A
-><B
->hasRngAttrAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrCombine"
-></A
-><B
->hasRngAttrCombine</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrDatatypeLibrary"
-></A
-><B
->hasRngAttrDatatypeLibrary</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrHref"
-></A
-><B
->hasRngAttrHref</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrName"
-></A
-><B
->hasRngAttrName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrNs"
-></A
-><B
->hasRngAttrNs</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasRngAttrType"
-></A
-><B
->hasRngAttrType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrAttribute"
-></A
-><B
->getRngAttrAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrCombine"
-></A
-><B
->getRngAttrCombine</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrDatatypeLibrary"
-></A
-><B
->getRngAttrDatatypeLibrary</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrDescr"
-></A
-><B
->getRngAttrDescr</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrHref"
-></A
-><B
->getRngAttrHref</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrName"
-></A
-><B
->getRngAttrName</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrNs"
-></A
-><B
->getRngAttrNs</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRngAttrType"
-></A
-><B
->getRngAttrType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
+>hxt-8.0.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
+></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.RelaxNG.BasicArrows</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Version    : $Id$
+</P
+><P
+>Constants and basic arrows for Relax NG
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasRngName"
+></A
+><B
+>hasRngName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngName"
+>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%3AcheckRngName"
+></A
+><B
+>checkRngName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; [String] -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#checkRngName"
+>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%3AnoOfChildren"
+></A
+><B
+>noOfChildren</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; (Int -&gt; Bool) -&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-RelaxNG-BasicArrows.html#noOfChildren"
+>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%3AisAttributeRef"
+></A
+><B
+>isAttributeRef</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeRef"
+>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%3AisAttributeRefTextListGroupInterleaveOneOrMoreEmpty"
+></A
+><B
+>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeRefTextListGroupInterleaveOneOrMoreEmpty"
+>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%3AisAttributeRefTextListInterleave"
+></A
+><B
+>isAttributeRefTextListInterleave</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeRefTextListInterleave"
+>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%3AisAttributeListGroupInterleaveOneOrMore"
+></A
+><B
+>isAttributeListGroupInterleaveOneOrMore</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeListGroupInterleaveOneOrMore"
+>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%3AisExternalRefInclude"
+></A
+><B
+>isExternalRefInclude</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isExternalRefInclude"
+>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%3AisNameNsNameValue"
+></A
+><B
+>isNameNsNameValue</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isNameNsNameValue"
+>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%3AisNameNsName"
+></A
+><B
+>isNameNsName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isNameNsName"
+>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%3AisNameAnyNameNsName"
+></A
+><B
+>isNameAnyNameNsName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isNameAnyNameNsName"
+>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%3AisDefineOneOrMoreZeroOrMoreOptionalListMixed"
+></A
+><B
+>isDefineOneOrMoreZeroOrMoreOptionalListMixed</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isDefineOneOrMoreZeroOrMoreOptionalListMixed"
+>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%3AisChoiceGroupInterleave"
+></A
+><B
+>isChoiceGroupInterleave</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isChoiceGroupInterleave"
+>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%3AisChoiceGroupInterleaveOneOrMore"
+></A
+><B
+>isChoiceGroupInterleaveOneOrMore</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isChoiceGroupInterleaveOneOrMore"
+>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%3AisGroupInterleave"
+></A
+><B
+>isGroupInterleave</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isGroupInterleave"
+>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%3AisRngAnyName"
+></A
+><B
+>isRngAnyName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAnyName"
+>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%3AisRngAttribute"
+></A
+><B
+>isRngAttribute</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttribute"
+>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%3AisRngChoice"
+></A
+><B
+>isRngChoice</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngChoice"
+>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%3AisRngCombine"
+></A
+><B
+>isRngCombine</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngCombine"
+>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%3AisRngData"
+></A
+><B
+>isRngData</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngData"
+>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%3AisRngDefine"
+></A
+><B
+>isRngDefine</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngDefine"
+>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%3AisRngDiv"
+></A
+><B
+>isRngDiv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngDiv"
+>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%3AisRngElement"
+></A
+><B
+>isRngElement</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngElement"
+>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%3AisRngEmpty"
+></A
+><B
+>isRngEmpty</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngEmpty"
+>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%3AisRngExcept"
+></A
+><B
+>isRngExcept</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngExcept"
+>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%3AisRngExternalRef"
+></A
+><B
+>isRngExternalRef</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngExternalRef"
+>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%3AisRngGrammar"
+></A
+><B
+>isRngGrammar</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngGrammar"
+>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%3AisRngGroup"
+></A
+><B
+>isRngGroup</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngGroup"
+>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%3AisRngInclude"
+></A
+><B
+>isRngInclude</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngInclude"
+>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%3AisRngInterleave"
+></A
+><B
+>isRngInterleave</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngInterleave"
+>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%3AisRngList"
+></A
+><B
+>isRngList</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngList"
+>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%3AisRngMixed"
+></A
+><B
+>isRngMixed</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngMixed"
+>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%3AisRngName"
+></A
+><B
+>isRngName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngName"
+>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%3AisRngNotAllowed"
+></A
+><B
+>isRngNotAllowed</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngNotAllowed"
+>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%3AisRngNsName"
+></A
+><B
+>isRngNsName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngNsName"
+>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%3AisRngOneOrMore"
+></A
+><B
+>isRngOneOrMore</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngOneOrMore"
+>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%3AisRngOptional"
+></A
+><B
+>isRngOptional</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngOptional"
+>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%3AisRngParam"
+></A
+><B
+>isRngParam</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngParam"
+>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%3AisRngParentRef"
+></A
+><B
+>isRngParentRef</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngParentRef"
+>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%3AisRngRef"
+></A
+><B
+>isRngRef</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngRef"
+>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%3AisRngRelaxError"
+></A
+><B
+>isRngRelaxError</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngRelaxError"
+>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%3AisRngStart"
+></A
+><B
+>isRngStart</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngStart"
+>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%3AisRngText"
+></A
+><B
+>isRngText</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngText"
+>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%3AisRngType"
+></A
+><B
+>isRngType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngType"
+>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%3AisRngValue"
+></A
+><B
+>isRngValue</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngValue"
+>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%3AisRngZeroOrMore"
+></A
+><B
+>isRngZeroOrMore</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngZeroOrMore"
+>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%3AmkRngElement"
+></A
+><B
+>mkRngElement</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngElement"
+>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%3AmkRngChoice"
+></A
+><B
+>mkRngChoice</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngChoice"
+>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%3AmkRngDefine"
+></A
+><B
+>mkRngDefine</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngDefine"
+>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%3AmkRngEmpty"
+></A
+><B
+>mkRngEmpty</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngEmpty"
+>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%3AmkRngGrammar"
+></A
+><B
+>mkRngGrammar</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngGrammar"
+>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%3AmkRngGroup"
+></A
+><B
+>mkRngGroup</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngGroup"
+>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%3AmkRngInterleave"
+></A
+><B
+>mkRngInterleave</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngInterleave"
+>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%3AmkRngName"
+></A
+><B
+>mkRngName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngName"
+>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%3AmkRngNotAllowed"
+></A
+><B
+>mkRngNotAllowed</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngNotAllowed"
+>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%3AmkRngOneOrMore"
+></A
+><B
+>mkRngOneOrMore</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngOneOrMore"
+>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%3AmkRngRef"
+></A
+><B
+>mkRngRef</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngRef"
+>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%3AmkRngRelaxError"
+></A
+><B
+>mkRngRelaxError</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngRelaxError"
+>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%3AmkRngStart"
+></A
+><B
+>mkRngStart</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngStart"
+>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%3AmkRngText"
+></A
+><B
+>mkRngText</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngText"
+>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%3AsetRngName"
+></A
+><B
+>setRngName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#setRngName"
+>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%3AsetRngNameDiv"
+></A
+><B
+>setRngNameDiv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#setRngNameDiv"
+>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%3AsetRngNameRef"
+></A
+><B
+>setRngNameRef</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#setRngNameRef"
+>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%3AisRngAttrAttribute"
+></A
+><B
+>isRngAttrAttribute</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrAttribute"
+>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%3AisRngAttrCombine"
+></A
+><B
+>isRngAttrCombine</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrCombine"
+>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%3AisRngAttrDatatypeLibrary"
+></A
+><B
+>isRngAttrDatatypeLibrary</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrDatatypeLibrary"
+>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%3AisRngAttrHref"
+></A
+><B
+>isRngAttrHref</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrHref"
+>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%3AisRngAttrName"
+></A
+><B
+>isRngAttrName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrName"
+>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%3AisRngAttrNs"
+></A
+><B
+>isRngAttrNs</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrNs"
+>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%3AisRngAttrType"
+></A
+><B
+>isRngAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrType"
+>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%3AhasRngAttrAttribute"
+></A
+><B
+>hasRngAttrAttribute</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrAttribute"
+>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%3AhasRngAttrCombine"
+></A
+><B
+>hasRngAttrCombine</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrCombine"
+>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%3AhasRngAttrDatatypeLibrary"
+></A
+><B
+>hasRngAttrDatatypeLibrary</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrDatatypeLibrary"
+>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%3AhasRngAttrHref"
+></A
+><B
+>hasRngAttrHref</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrHref"
+>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%3AhasRngAttrName"
+></A
+><B
+>hasRngAttrName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrName"
+>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%3AhasRngAttrNs"
+></A
+><B
+>hasRngAttrNs</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrNs"
+>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%3AhasRngAttrType"
+></A
+><B
+>hasRngAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrType"
+>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%3AgetRngAttrAttribute"
+></A
+><B
+>getRngAttrAttribute</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrAttribute"
+>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%3AgetRngAttrCombine"
+></A
+><B
+>getRngAttrCombine</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrCombine"
+>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%3AgetRngAttrDatatypeLibrary"
+></A
+><B
+>getRngAttrDatatypeLibrary</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrDatatypeLibrary"
+>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%3AgetRngAttrDescr"
+></A
+><B
+>getRngAttrDescr</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrDescr"
+>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%3AgetRngAttrHref"
+></A
+><B
+>getRngAttrHref</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrHref"
+>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%3AgetRngAttrName"
+></A
+><B
+>getRngAttrName</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrName"
+>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%3AgetRngAttrNs"
+></A
+><B
+>getRngAttrNs</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrNs"
+>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%3AgetRngAttrType"
+></A
+><B
+>getRngAttrType</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrType"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/CreatePattern.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -166,7 +166,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcreatePatternFromXmlTree"
 ></A
 ><B
@@ -178,7 +181,14 @@
 > <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#createPatternFromXmlTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Creates the <TT
@@ -193,7 +203,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcreateNameClass"
 ></A
 ><B
@@ -205,7 +218,14 @@
 > <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#createNameClass"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Creates a <TT
@@ -220,7 +240,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfirstChild"
 ></A
 ><B
@@ -230,7 +253,14 @@
 > a, <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t) =&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#firstChild"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Simple access arrows
@@ -241,7 +271,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlastChild"
 ></A
 ><B
@@ -251,6 +284,13 @@
 > a, <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t) =&gt; a (t b) (t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#lastChild"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -117,13 +117,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmysqlNS"
 ></A
 ><B
 >mysqlNS</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#mysqlNS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Namespace of the MySQL datatype library
@@ -134,13 +144,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmysqlDatatypeLib"
 ></A
 ><B
 >mysqlDatatypeLib</B
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
 >DatatypeLibrary</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#mysqlDatatypeLib"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -462,7 +462,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgEqual"
 ></A
 ><B
@@ -470,61 +473,111 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
 >DatatypeName</A
 > -&gt; String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgEqual"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgDataTypeNotAllowed"
 ></A
 ><B
 >errorMsgDataTypeNotAllowed</B
 > :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataTypeNotAllowed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgDataTypeNotAllowed0"
 ></A
 ><B
 >errorMsgDataTypeNotAllowed0</B
 > :: String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataTypeNotAllowed0"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgDataTypeNotAllowed2"
 ></A
 ><B
 >errorMsgDataTypeNotAllowed2</B
 > :: String -&gt; String -&gt; String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataTypeNotAllowed2"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgDataLibQName"
 ></A
 ><B
 >errorMsgDataLibQName</B
 > :: String -&gt; String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataLibQName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AerrorMsgParam"
 ></A
 ><B
@@ -532,7 +585,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
 >LocalName</A
 > -&gt; String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -562,85 +622,155 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_length"
 ></A
 ><B
 >rng_length</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_length"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_maxLength"
 ></A
 ><B
 >rng_maxLength</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_maxLength"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_minLength"
 ></A
 ><B
 >rng_minLength</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_minLength"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_maxExclusive"
 ></A
 ><B
 >rng_maxExclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_maxExclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_minExclusive"
 ></A
 ><B
 >rng_minExclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_minExclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_maxInclusive"
 ></A
 ><B
 >rng_maxInclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_maxInclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Arng_minInclusive"
 ></A
 ><B
 >rng_minInclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_minInclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -676,7 +806,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AFunctionTable"
@@ -684,7 +817,14 @@
 ><B
 >FunctionTable</B
 > = [(String, String -&gt; String -&gt; Bool)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#FunctionTable"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Function table type
@@ -695,7 +835,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringValidFT"
 ></A
 ><B
@@ -709,13 +852,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
 >CheckString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#stringValidFT"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfctTableString"
 ></A
 ><B
@@ -723,7 +876,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
 >FunctionTable</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#fctTableString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Function table for string tests,
@@ -735,7 +895,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfctTableList"
 ></A
 ><B
@@ -743,7 +906,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
 >FunctionTable</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#fctTableList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Function table for list tests,
@@ -755,7 +925,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringValid"
 ></A
 ><B
@@ -767,7 +940,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
 >CheckString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#stringValid"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -804,7 +984,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnumberValid"
 ></A
 ><B
@@ -816,7 +999,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
 >CheckString</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#numberValid"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -854,13 +1044,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnumParamValid"
 ></A
 ><B
 >numParamValid</B
 > :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#numParamValid"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -885,7 +1085,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ACheckA"
@@ -893,7 +1096,14 @@
 ><B
 >CheckA</B
 > a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#CheckA"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -936,7 +1146,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ACheckString"
@@ -946,13 +1159,23 @@
 > = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#CheckString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ACheckInteger"
@@ -962,13 +1185,23 @@
 > = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > Integer Integer</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#CheckInteger"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AperformCheck"
 ></A
 ><B
@@ -976,7 +1209,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > a b -&gt; a -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#performCheck"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >run a check and deliver Just an error message or Nothing
@@ -987,7 +1227,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aok"
 ></A
 ><B
@@ -995,7 +1238,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > a a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#ok"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >every thing is fine
@@ -1006,7 +1256,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Afailure"
 ></A
 ><B
@@ -1014,7 +1267,14 @@
 > :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#failure"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >always failure
@@ -1025,7 +1285,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aassert"
 ></A
 ><B
@@ -1033,7 +1296,14 @@
 > :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > a a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#assert"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >perform a simple check with a predicate p,
@@ -1046,7 +1316,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AassertMaybe"
 ></A
 ><B
@@ -1054,7 +1327,14 @@
 > :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > a b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#assertMaybe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >perform a simple check with a Maybe function, Nothing indicates error
@@ -1065,7 +1345,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckWith"
 ></A
 ><B
@@ -1075,6 +1358,13 @@
 > b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
 >CheckA</A
 > a a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#checkWith"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibraries.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -130,7 +130,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdatatypeLibraries"
 ></A
 ><B
@@ -138,7 +141,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"
 >DatatypeLibraries</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html#datatypeLibraries"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of all supported datatype libraries which can be 
@@ -150,7 +160,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdatatypeEqual"
 ></A
 ><B
@@ -160,7 +173,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
 >DatatypeEqual</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html#datatypeEqual"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -199,7 +219,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdatatypeAllows"
 ></A
 ><B
@@ -208,6 +231,13 @@
 >Uri</A
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
 >DatatypeAllows</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html#datatypeAllows"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypes.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -927,67 +927,120 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxSchemaFile"
 ></A
 ><B
 >relaxSchemaFile</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#relaxSchemaFile"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxSchemaGrammarFile"
 ></A
 ><B
 >relaxSchemaGrammarFile</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#relaxSchemaGrammarFile"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_numberOfErrors"
 ></A
 ><B
 >a_numberOfErrors</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#a_numberOfErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_relaxSimplificationChanges"
 ></A
 ><B
 >a_relaxSimplificationChanges</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#a_relaxSimplificationChanges"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdefineOrigName"
 ></A
 ><B
 >defineOrigName</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#defineOrigName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AEnv"
@@ -997,19 +1050,36 @@
 > = [(String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Env"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcontextAttributes"
 ></A
 ><B
 >contextAttributes</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#contextAttributes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1030,13 +1100,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcontextBaseAttr"
 ></A
 ><B
 >contextBaseAttr</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#contextBaseAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Start of base uri attribute value 
@@ -1050,7 +1130,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AOldName"
@@ -1058,13 +1141,23 @@
 ><B
 >OldName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#OldName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANewName"
@@ -1072,13 +1165,23 @@
 ><B
 >NewName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#NewName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANamePair"
@@ -1090,13 +1193,23 @@
 >, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"
 >NewName</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#NamePair"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ARefList"
@@ -1106,13 +1219,23 @@
 > = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"
 >NamePair</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#RefList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADatatypeEqual"
@@ -1126,7 +1249,14 @@
 > -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
 >Context</A
 > -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeEqual"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1143,7 +1273,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADatatypeAllows"
@@ -1157,7 +1290,14 @@
 > -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
 >Context</A
 > -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeAllows"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -1174,7 +1314,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADatatypeLibraries"
@@ -1184,7 +1327,14 @@
 > = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
 >DatatypeLibrary</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeLibraries"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of all supported datatype libraries
@@ -1195,7 +1345,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADatatypeLibrary"
@@ -1207,7 +1360,14 @@
 >, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
 >DatatypeCheck</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeLibrary"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Each datatype library is identified by a URI.
@@ -1218,7 +1378,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADatatypeName"
@@ -1226,13 +1389,23 @@
 ><B
 >DatatypeName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AParamName"
@@ -1240,13 +1413,23 @@
 ><B
 >ParamName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ParamName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AAllowedParams"
@@ -1256,7 +1439,14 @@
 > = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"
 >ParamName</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#AllowedParams"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of all supported params for a datatype
@@ -1267,7 +1457,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AAllowedDatatypes"
@@ -1279,7 +1472,14 @@
 >, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"
 >AllowedParams</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#AllowedDatatypes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of all supported datatypes and there allowed params
@@ -1290,7 +1490,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ADatatypeCheck"
@@ -1298,7 +1501,14 @@
 ><B
 >DatatypeCheck</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeCheck"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1382,7 +1592,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUri"
@@ -1390,13 +1603,23 @@
 ><B
 >Uri</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Uri"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ALocalName"
@@ -1404,13 +1627,23 @@
 ><B
 >LocalName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#LocalName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AParamList"
@@ -1420,7 +1653,14 @@
 > = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
 >LocalName</A
 >, String)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ParamList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of parameters; each parameter is a pair consisting of a local name and a value.
@@ -1431,7 +1671,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3APrefix"
@@ -1439,13 +1682,23 @@
 ><B
 >Prefix</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Prefix"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AContext"
@@ -1459,7 +1712,14 @@
 >, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
 >Uri</A
 >)])</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Context"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >A Context represents the context of an XML element. 
@@ -1471,7 +1731,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ADatatype"
@@ -1483,7 +1746,14 @@
 >, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
 >LocalName</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Datatype"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >A Datatype identifies a datatype by a datatype library name and a local name.
@@ -1494,7 +1764,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AshowDatatype"
 ></A
 ><B
@@ -1502,13 +1775,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
 >Datatype</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#showDatatype"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ANameClass"
@@ -1516,7 +1799,14 @@
 ><B
 >NameClass</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#NameClass"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1654,7 +1944,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3APattern"
@@ -1662,7 +1955,14 @@
 ><B
 >Pattern</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Pattern"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1892,7 +2192,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AErrMessage"
@@ -1900,7 +2203,14 @@
 ><B
 >ErrMessage</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ErrMessage"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1953,7 +2263,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AErrLevel"
@@ -1961,13 +2274,23 @@
 ><B
 >ErrLevel</B
 > = Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ErrLevel"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnotAllowed"
 ></A
 ><B
@@ -1975,7 +2298,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >smart constructor for NotAllowed
@@ -1986,7 +2316,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnotAllowed1"
 ></A
 ><B
@@ -1994,13 +2327,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowed1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnotAllowed2"
 ></A
 ><B
@@ -2008,13 +2351,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowed2"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnotAllowedN"
 ></A
 ><B
@@ -2024,13 +2377,23 @@
 > -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowedN"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmergeNotAllowed"
 ></A
 ><B
@@ -2042,7 +2405,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#mergeNotAllowed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2060,7 +2430,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Achoice"
 ></A
 ><B
@@ -2072,7 +2445,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#choice"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >smart constructor for Choice
@@ -2083,7 +2463,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Agroup"
 ></A
 ><B
@@ -2095,7 +2478,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#group"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >smart constructor for Group
@@ -2106,7 +2496,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AoneOrMore"
 ></A
 ><B
@@ -2116,7 +2509,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#oneOrMore"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >smart constructor for OneOrMore
@@ -2127,7 +2527,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ainterleave"
 ></A
 ><B
@@ -2139,7 +2542,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#interleave"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >smart constructor for Interleave
@@ -2150,7 +2560,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aafter"
 ></A
 ><B
@@ -2162,7 +2575,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#after"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >smart constructor for After
@@ -2173,7 +2593,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AContentType"
@@ -2181,6 +2604,13 @@
 ><B
 >ContentType</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ContentType"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/PatternFunctions.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -300,7 +300,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxEmpty"
 ></A
 ><B
@@ -308,13 +311,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxEmpty"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxNotAllowed"
 ></A
 ><B
@@ -322,13 +335,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxNotAllowed"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxText"
 ></A
 ><B
@@ -336,13 +359,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxChoice"
 ></A
 ><B
@@ -350,13 +383,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxChoice"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxInterleave"
 ></A
 ><B
@@ -364,13 +407,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxInterleave"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxGroup"
 ></A
 ><B
@@ -378,13 +431,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxGroup"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxOneOrMore"
 ></A
 ><B
@@ -392,13 +455,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxOneOrMore"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxList"
 ></A
 ><B
@@ -406,13 +479,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxData"
 ></A
 ><B
@@ -420,13 +503,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxData"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxDataExcept"
 ></A
 ><B
@@ -434,13 +527,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxDataExcept"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxValue"
 ></A
 ><B
@@ -448,13 +551,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxAttribute"
 ></A
 ><B
@@ -462,13 +575,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxAttribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxElement"
 ></A
 ><B
@@ -476,13 +599,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxElement"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxAfter"
 ></A
 ><B
@@ -490,13 +623,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxAfter"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetChildrenPattern"
 ></A
 ><B
@@ -506,7 +649,14 @@
 > -&gt; [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#getChildrenPattern"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns a list of children pattern for each pattern, 
@@ -518,7 +668,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetNameClassFromPattern"
 ></A
 ><B
@@ -528,7 +681,14 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#getNameClassFromPattern"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns the nameclass of a element- or attribute pattern.
@@ -544,7 +704,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetPatternName"
 ></A
 ><B
@@ -552,6 +715,13 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#getPatternName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/PatternToString.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -163,7 +163,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApatternToStringTree"
 ></A
 ><B
@@ -173,7 +176,14 @@
 > <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#patternToStringTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -220,7 +230,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ApatternToFormatedString"
 ></A
 ><B
@@ -232,7 +245,14 @@
 >] <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
 >Pattern</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#patternToFormatedString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -257,7 +277,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlTreeToPatternStringTree"
 ></A
 ><B
@@ -267,7 +290,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#xmlTreeToPatternStringTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns a tree representation of the pattern structure.
@@ -287,7 +317,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlTreeToPatternFormatedString"
 ></A
 ><B
@@ -297,7 +330,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#xmlTreeToPatternFormatedString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns a formated string representation of the pattern structure.
@@ -317,7 +357,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlTreeToPatternString"
 ></A
 ><B
@@ -327,7 +370,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#xmlTreeToPatternString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -358,7 +408,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnameClassToString"
 ></A
 ><B
@@ -366,6 +419,13 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#nameClassToString"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Schema.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -58,15 +58,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: Schema.hs,v 1.3 2005<EM
->09</EM
->30 14:41:44 hxml Exp $
-</P
-><P
 >Don't edit this module, it's generated by RelaxSchemaToXmlTree
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -85,7 +78,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxSchemaTree"
 ></A
 ><B
@@ -93,13 +89,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html#relaxSchemaTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxSchemaArrow"
 ></A
 ><B
@@ -108,6 +114,13 @@
 >ArrowList</A
 > a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html#relaxSchemaArrow"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/SchemaGrammar.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -58,15 +58,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->Version    : $Id: SchemaGrammar.hs,v 1.3 2005<EM
->09</EM
->30 14:41:45 hxml Exp $
-</P
-><P
 >Don't edit this module, it's generated by RelaxSchemaToXmlTree
-</P
-></TD
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -85,7 +78,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxSchemaTree"
 ></A
 ><B
@@ -93,13 +89,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html#relaxSchemaTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3ArelaxSchemaArrow"
 ></A
 ><B
@@ -108,6 +114,13 @@
 >ArrowList</A
 > a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html#relaxSchemaArrow"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Simplification.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -145,7 +145,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcreateSimpleForm"
 ></A
 ><B
@@ -159,7 +162,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html#createSimpleForm"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Creates the simple form of a Relax NG schema
@@ -175,7 +185,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetErrors"
 ></A
 ><B
@@ -186,6 +199,13 @@
 >XmlTree</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html#getErrors"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/Blocks.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -109,12 +109,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcodeBlocks"
 ></A
 ><B
 >codeBlocks</B
 > :: [(String, (Char, Char))]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html#codeBlocks"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/CharProps.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -109,432 +109,792 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeC"
 ></A
 ><B
 >isUnicodeC</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeC"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeCc"
 ></A
 ><B
 >isUnicodeCc</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeCf"
 ></A
 ><B
 >isUnicodeCf</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeCo"
 ></A
 ><B
 >isUnicodeCo</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCo"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeCs"
 ></A
 ><B
 >isUnicodeCs</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeL"
 ></A
 ><B
 >isUnicodeL</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeL"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeLl"
 ></A
 ><B
 >isUnicodeLl</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeLm"
 ></A
 ><B
 >isUnicodeLm</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLm"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeLo"
 ></A
 ><B
 >isUnicodeLo</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLo"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeLt"
 ></A
 ><B
 >isUnicodeLt</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeLu"
 ></A
 ><B
 >isUnicodeLu</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLu"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeM"
 ></A
 ><B
 >isUnicodeM</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeM"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeMc"
 ></A
 ><B
 >isUnicodeMc</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeMc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeMe"
 ></A
 ><B
 >isUnicodeMe</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeMe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeMn"
 ></A
 ><B
 >isUnicodeMn</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeMn"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeN"
 ></A
 ><B
 >isUnicodeN</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeN"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeNd"
 ></A
 ><B
 >isUnicodeNd</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeNd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeNl"
 ></A
 ><B
 >isUnicodeNl</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeNl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeNo"
 ></A
 ><B
 >isUnicodeNo</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeNo"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeP"
 ></A
 ><B
 >isUnicodeP</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeP"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePc"
 ></A
 ><B
 >isUnicodePc</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePd"
 ></A
 ><B
 >isUnicodePd</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePe"
 ></A
 ><B
 >isUnicodePe</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePe"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePf"
 ></A
 ><B
 >isUnicodePf</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePi"
 ></A
 ><B
 >isUnicodePi</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePi"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePo"
 ></A
 ><B
 >isUnicodePo</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePo"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodePs"
 ></A
 ><B
 >isUnicodePs</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeS"
 ></A
 ><B
 >isUnicodeS</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeSc"
 ></A
 ><B
 >isUnicodeSc</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeSk"
 ></A
 ><B
 >isUnicodeSk</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSk"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeSm"
 ></A
 ><B
 >isUnicodeSm</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSm"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeSo"
 ></A
 ><B
 >isUnicodeSo</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSo"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeZ"
 ></A
 ><B
 >isUnicodeZ</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZ"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeZl"
 ></A
 ><B
 >isUnicodeZl</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeZp"
 ></A
 ><B
 >isUnicodeZp</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZp"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisUnicodeZs"
 ></A
 ><B
 >isUnicodeZs</B
 > :: Char -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZs"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Utils.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -230,13 +230,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisRelaxAnyURI"
 ></A
 ><B
 >isRelaxAnyURI</B
 > :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isRelaxAnyURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Tests whether a URI matches the Relax NG anyURI symbol
@@ -247,13 +257,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcompareURI"
 ></A
 ><B
 >compareURI</B
 > :: String -&gt; String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#compareURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Tests whether two URIs are equal after <TT
@@ -268,13 +288,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeURI"
 ></A
 ><B
 >normalizeURI</B
 > :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#normalizeURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Converts all letters to the corresponding lower-case letter 
@@ -286,13 +316,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNumber"
 ></A
 ><B
 >isNumber</B
 > :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isNumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Tests whether a string matches a number [-](0-9)*
@@ -303,49 +343,89 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNmtoken"
 ></A
 ><B
 >isNmtoken</B
 > :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isNmtoken"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisName"
 ></A
 ><B
 >isName</B
 > :: String -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatStringList"
 ></A
 ><B
 >formatStringList</B
 > :: (String -&gt; String) -&gt; String -&gt; [String] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatStringListPatt"
 ></A
 ><B
 >formatStringListPatt</B
 > :: [String] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListPatt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -366,48 +446,88 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatStringListId"
 ></A
 ><B
 >formatStringListId</B
 > :: [String] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListId"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatStringListQuot"
 ></A
 ><B
 >formatStringListQuot</B
 > :: [String] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListQuot"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatStringListPairs"
 ></A
 ><B
 >formatStringListPairs</B
 > :: [(String, String)] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListPairs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AformatStringListArr"
 ></A
 ><B
 >formatStringListArr</B
 > :: [String] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListArr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validation.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -242,7 +242,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateWithRelaxAndHandleErrors"
 ></A
 ><B
@@ -260,13 +263,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateWithRelaxAndHandleErrors"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDocWithRelax"
 ></A
 ><B
@@ -286,7 +299,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateDocWithRelax"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -320,7 +340,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateRelax"
 ></A
 ><B
@@ -334,7 +357,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateRelax"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -362,7 +392,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateXMLDoc"
 ></A
 ><B
@@ -376,13 +409,23 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateXMLDoc"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreadForRelax"
 ></A
 ><B
@@ -394,13 +437,23 @@
 > b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#readForRelax"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeForRelaxValidation"
 ></A
 ><B
@@ -412,7 +465,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#normalizeForRelaxValidation"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >normalize a document for validation with Relax NG: remove all namespace declaration attributes,
@@ -424,7 +484,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Acontains"
 ></A
 ><B
@@ -434,6 +497,13 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#contains"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validator.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -229,7 +229,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDocumentWithRelaxSchema"
 ></A
 ><B
@@ -243,7 +246,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateDocumentWithRelaxSchema"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -305,7 +315,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDocumentWithRelax"
 ></A
 ><B
@@ -319,7 +332,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateDocumentWithRelax"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -343,7 +363,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Avalidate"
 ></A
 ><B
@@ -355,7 +378,14 @@
 > n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validate"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -472,7 +502,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateSchema"
 ></A
 ><B
@@ -484,7 +517,14 @@
 > n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateSchema"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -512,7 +552,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateWithSpezification"
 ></A
 ><B
@@ -526,7 +569,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateWithSpezification"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -575,7 +625,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateSchemaWithSpezification"
 ></A
 ><B
@@ -589,7 +642,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateSchemaWithSpezification"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -628,7 +688,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateWithoutSpezification"
 ></A
 ><B
@@ -639,6 +702,13 @@
 >IOSArrow</A
 > n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateWithoutSpezification"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -437,13 +437,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aw3cNS"
 ></A
 ><B
 >w3cNS</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#w3cNS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Namespace of the W3C XML schema datatype library
@@ -454,7 +464,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aw3cDatatypeLib"
 ></A
 ><B
@@ -462,7 +475,14 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
 >DatatypeLibrary</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#w3cDatatypeLib"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -484,360 +504,660 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_string"
 ></A
 ><B
 >xsd_string</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_string"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_normalizedString"
 ></A
 ><B
 >xsd_normalizedString</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_normalizedString"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_token"
 ></A
 ><B
 >xsd_token</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_token"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_language"
 ></A
 ><B
 >xsd_language</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_language"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_NMTOKEN"
 ></A
 ><B
 >xsd_NMTOKEN</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_NMTOKEN"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_NMTOKENS"
 ></A
 ><B
 >xsd_NMTOKENS</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_NMTOKENS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_Name"
 ></A
 ><B
 >xsd_Name</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_Name"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_NCName"
 ></A
 ><B
 >xsd_NCName</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_NCName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_ID"
 ></A
 ><B
 >xsd_ID</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_ID"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_IDREF"
 ></A
 ><B
 >xsd_IDREF</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_IDREF"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_IDREFS"
 ></A
 ><B
 >xsd_IDREFS</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_IDREFS"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_ENTITY"
 ></A
 ><B
 >xsd_ENTITY</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_ENTITY"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_ENTITIES"
 ></A
 ><B
 >xsd_ENTITIES</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_ENTITIES"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_anyURI"
 ></A
 ><B
 >xsd_anyURI</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_anyURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_QName"
 ></A
 ><B
 >xsd_QName</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_QName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_NOTATION"
 ></A
 ><B
 >xsd_NOTATION</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_NOTATION"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_hexBinary"
 ></A
 ><B
 >xsd_hexBinary</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_hexBinary"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_base64Binary"
 ></A
 ><B
 >xsd_base64Binary</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_base64Binary"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_decimal"
 ></A
 ><B
 >xsd_decimal</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_decimal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_length"
 ></A
 ><B
 >xsd_length</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_length"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_maxLength"
 ></A
 ><B
 >xsd_maxLength</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_maxLength"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_minLength"
 ></A
 ><B
 >xsd_minLength</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_minLength"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_maxExclusive"
 ></A
 ><B
 >xsd_maxExclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_maxExclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_minExclusive"
 ></A
 ><B
 >xsd_minExclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_minExclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_maxInclusive"
 ></A
 ><B
 >xsd_maxInclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_maxInclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_minInclusive"
 ></A
 ><B
 >xsd_minInclusive</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_minInclusive"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_totalDigits"
 ></A
 ><B
 >xsd_totalDigits</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_totalDigits"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_fractionDigits"
 ></A
 ><B
 >xsd_fractionDigits</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_fractionDigits"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_pattern"
 ></A
 ><B
 >xsd_pattern</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_pattern"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axsd_enumeration"
 ></A
 ><B
 >xsd_enumeration</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_enumeration"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -378,7 +378,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ARegex"
@@ -386,7 +389,14 @@
 ><B
 >Regex</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#Regex"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -417,13 +427,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Achars"
 ></A
 ><B
 >chars</B
 > :: (Char -&gt; Bool) -&gt; [Char]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#chars"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -439,19 +459,32 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcharRngs"
 ></A
 ><B
 >charRngs</B
 > :: [Char] -&gt; [(Char, Char)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#charRngs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkZero"
 ></A
 ><B
@@ -459,13 +492,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkZero"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkUnit"
 ></A
 ><B
@@ -473,13 +516,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkUnit"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkSym"
 ></A
 ><B
@@ -487,13 +540,23 @@
 > :: (Char -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSym"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkSym1"
 ></A
 ><B
@@ -501,13 +564,23 @@
 > :: Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSym1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkSymRng"
 ></A
 ><B
@@ -515,13 +588,23 @@
 > :: Char -&gt; Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSymRng"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkDot"
 ></A
 ><B
@@ -529,13 +612,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkDot"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkStar"
 ></A
 ><B
@@ -545,13 +638,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkStar"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkAlt"
 ></A
 ><B
@@ -563,13 +666,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkAlt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkSeq"
 ></A
 ><B
@@ -581,13 +694,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSeq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkRep"
 ></A
 ><B
@@ -597,13 +720,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkRep"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkRng"
 ></A
 ><B
@@ -613,13 +746,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkRng"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkOpt"
 ></A
 ><B
@@ -629,13 +772,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkOpt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkDif"
 ></A
 ><B
@@ -647,13 +800,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkDif"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkCompl"
 ></A
 ><B
@@ -663,13 +826,23 @@
 > -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkCompl"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Anullable"
 ></A
 ><B
@@ -677,13 +850,23 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#nullable"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Adelta"
 ></A
 ><B
@@ -693,13 +876,23 @@
 > -&gt; Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#delta"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amatch"
 ></A
 ><B
@@ -707,6 +900,13 @@
 > :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
 > -&gt; String -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#match"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -108,13 +108,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseRegex"
 ></A
 ><B
 >parseRegex</B
 > :: String -&gt; Either String <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
 >Regex</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html#parseRegex"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG.hs"
+><A HREF="src/Text-XML-HXT-RelaxNG.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
diff --git a/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html b/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/AttributeValueValidation.hs"
+><A HREF="src/Text-XML-HXT-Validator-AttributeValueValidation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -80,13 +80,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcheckAttributeValue"
 >checkAttributeValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlTrees -&gt; XmlTree -&gt; XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -96,9 +90,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AnormalizeAttributeValue"
 >normalizeAttributeValue</A
-> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
+> :: Maybe XmlTree -&gt; String -&gt; String</TD
 ></TR
 ></TABLE
 ></TD
@@ -116,19 +108,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckAttributeValue"
 ></A
 ><B
 >checkAttributeValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlTrees -&gt; XmlTree -&gt; XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-AttributeValueValidation.html#checkAttributeValue"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -156,14 +152,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AnormalizeAttributeValue"
 ></A
 ><B
 >normalizeAttributeValue</B
-> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
+> :: Maybe XmlTree -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-AttributeValueValidation.html#normalizeAttributeValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html b/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DTDValidation.hs"
+><A HREF="src/Text-XML-HXT-Validator-DTDValidation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -81,9 +81,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveDoublicateDefs"
 >removeDoublicateDefs</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -93,9 +91,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDTD"
 >validateDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ></TABLE
 ></TD
@@ -113,15 +109,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveDoublicateDefs"
 ></A
 ><B
 >removeDoublicateDefs</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-DTDValidation.html#removeDoublicateDefs"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -141,13 +145,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDTD"
 ></A
 ><B
 >validateDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-DTDValidation.html#validateDTD"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html b/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocTransformation.hs"
+><A HREF="src/Text-XML-HXT-Validator-DocTransformation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -81,13 +81,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Atransform"
 >transform</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
+> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
 ></TR
 ></TABLE
 ></TD
@@ -105,17 +99,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Atransform"
 ></A
 ><B
 >transform</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
+> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-DocTransformation.html#transform"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html b/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocValidation.hs"
+><A HREF="src/Text-XML-HXT-Validator-DocValidation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -81,13 +81,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDoc"
 >validateDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
+> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
 ></TR
 ></TABLE
 ></TD
@@ -105,17 +99,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDoc"
 ></A
 ><B
 >validateDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
+> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-DocValidation.html#validateDoc"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html b/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/IdValidation.hs"
+><A HREF="src/Text-XML-HXT-Validator-IdValidation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -82,13 +82,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateIds"
 >validateIds</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
+> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
 ></TR
 ></TABLE
 ></TD
@@ -106,17 +100,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateIds"
 ></A
 ><B
 >validateIds</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
+> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-IdValidation.html#validateIds"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Validator-RE.html b/doc/hdoc/Text-XML-HXT-Validator-RE.html
--- a/doc/hdoc/Text-XML-HXT-Validator-RE.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-RE.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/RE.hs"
+><A HREF="src/Text-XML-HXT-Validator-RE.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -383,7 +383,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ARE"
@@ -391,7 +394,14 @@
 ><B
 >RE</B
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#RE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -547,7 +557,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_unit"
 ></A
 ><B
@@ -555,7 +568,14 @@
 > :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_unit"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -573,7 +593,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_zero"
 ></A
 ><B
@@ -581,7 +604,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_zero"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -602,7 +632,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_sym"
 ></A
 ><B
@@ -610,7 +643,14 @@
 > :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_sym"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -631,7 +671,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_rep"
 ></A
 ><B
@@ -641,7 +684,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_rep"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -662,7 +712,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_plus"
 ></A
 ><B
@@ -672,7 +725,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_plus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -693,7 +753,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_opt"
 ></A
 ><B
@@ -703,7 +766,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_opt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -724,7 +794,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_seq"
 ></A
 ><B
@@ -736,7 +809,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_seq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -760,7 +840,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_alt"
 ></A
 ><B
@@ -772,7 +855,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_alt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -796,7 +886,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_dot"
 ></A
 ><B
@@ -804,7 +897,14 @@
 > :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#re_dot"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -822,7 +922,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckRE"
 ></A
 ><B
@@ -830,7 +933,14 @@
 > :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#checkRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -859,7 +969,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amatches"
 ></A
 ><B
@@ -869,7 +982,14 @@
 > a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#matches"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -893,7 +1013,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Anullable"
 ></A
 ><B
@@ -901,7 +1024,14 @@
 > :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#nullable"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -929,7 +1059,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprintRE"
 ></A
 ><B
@@ -937,6 +1070,13 @@
 > :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
 >RE</A
 > a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-RE.html#printRE"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Validator-Validation.html b/doc/hdoc/Text-XML-HXT-Validator-Validation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-Validation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-Validation.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/Validation.hs"
+><A HREF="src/Text-XML-HXT-Validator-Validation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -125,7 +125,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetValidatedDoc"
 ></A
 ><B
@@ -133,6 +136,13 @@
 > :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
 >XmlStateFilter</A
 > state</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-Validation.html#getValidatedDoc"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
diff --git a/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html b/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html
--- a/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/ValidationFilter.hs"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -81,9 +81,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetDTDSubset"
 >getDTDSubset</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -93,9 +91,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Avalidate"
 >validate</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -105,9 +101,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDTD"
 >validateDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -117,9 +111,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDoc"
 >validateDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -129,9 +121,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveDoublicateDefs"
 >removeDoublicateDefs</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -141,9 +131,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Atransform"
 >transform</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
+> :: XmlFilter</TD
 ></TR
 ></TABLE
 ></TD
@@ -161,29 +149,45 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetDTDSubset"
 ></A
 ><B
 >getDTDSubset</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#getDTDSubset"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Avalidate"
 ></A
 ><B
 >validate</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#validate"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -202,15 +206,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDTD"
 ></A
 ><B
 >validateDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#validateDTD"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -229,15 +241,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvalidateDoc"
 ></A
 ><B
 >validateDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#validateDoc"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -256,15 +276,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremoveDoublicateDefs"
 ></A
 ><B
 >removeDoublicateDefs</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#removeDoublicateDefs"
+>Source</A
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -284,13 +312,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Atransform"
 ></A
 ><B
 >transform</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: XmlFilter</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#transform"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html b/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html
--- a/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/XmlRE.hs"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -114,9 +114,7 @@
 >matches</A
 > :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
-> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
+> String -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > String</TD
 ></TR
@@ -270,7 +268,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ARE"
@@ -278,7 +279,14 @@
 ><B
 >RE</B
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#RE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -320,7 +328,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcheckRE"
 ></A
 ><B
@@ -328,7 +339,14 @@
 > :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#checkRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -357,19 +375,27 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Amatches"
 ></A
 ><B
 >matches</B
 > :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
-> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
+> String -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#matches"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -393,7 +419,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprintRE"
 ></A
 ><B
@@ -401,7 +430,14 @@
 > :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#printRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -422,7 +458,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_unit"
 ></A
 ><B
@@ -430,7 +469,14 @@
 > :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_unit"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -448,7 +494,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_zero"
 ></A
 ><B
@@ -456,7 +505,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_zero"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -477,7 +533,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_sym"
 ></A
 ><B
@@ -485,7 +544,14 @@
 > :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_sym"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -506,7 +572,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_rep"
 ></A
 ><B
@@ -516,7 +585,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_rep"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -537,7 +613,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_plus"
 ></A
 ><B
@@ -547,7 +626,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_plus"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -568,7 +654,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_opt"
 ></A
 ><B
@@ -578,7 +667,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_opt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -599,7 +695,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_seq"
 ></A
 ><B
@@ -611,7 +710,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_seq"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -635,7 +741,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_alt"
 ></A
 ><B
@@ -647,7 +756,14 @@
 > a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_alt"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -671,7 +787,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Are_dot"
 ></A
 ><B
@@ -679,6 +798,13 @@
 > :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-Validator-XmlRE.html#re_dot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/NavTree.hs"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -82,7 +82,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparentAxis"
 ></A
 ><B
@@ -92,13 +95,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#parentAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AancestorAxis"
 ></A
 ><B
@@ -108,13 +121,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#ancestorAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AancestorOrSelfAxis"
 ></A
 ><B
@@ -124,13 +147,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#ancestorOrSelfAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AchildAxis"
 ></A
 ><B
@@ -140,13 +173,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#childAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdescendantAxis"
 ></A
 ><B
@@ -156,13 +199,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#descendantAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AdescendantOrSelfAxis"
 ></A
 ><B
@@ -172,13 +225,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#descendantOrSelfAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfollowingSiblingAxis"
 ></A
 ><B
@@ -188,13 +251,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#followingSiblingAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprecedingSiblingAxis"
 ></A
 ><B
@@ -204,13 +277,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#precedingSiblingAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AselfAxis"
 ></A
 ><B
@@ -220,13 +303,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#selfAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfollowingAxis"
 ></A
 ><B
@@ -236,13 +329,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#followingAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprecedingAxis"
 ></A
 ><B
@@ -252,13 +355,23 @@
 > a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
 >NavTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#precedingAxis"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AattributeAxis"
 ></A
 ><B
@@ -272,6 +385,13 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-NavTree.html#attributeAxis"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathArithmetic.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -165,7 +165,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPathMulti"
 ></A
 ><B
@@ -177,7 +180,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathMulti"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Multiplication
@@ -188,7 +198,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPathMod"
 ></A
 ><B
@@ -200,7 +213,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathMod"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Modulo
@@ -211,7 +231,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPathDiv"
 ></A
 ><B
@@ -223,7 +246,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathDiv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Division: the divison-operator is not according the IEEE 754 standard,
@@ -235,7 +265,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPathAdd"
 ></A
 ><B
@@ -247,7 +280,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathAdd"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -263,13 +303,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPathUnary"
 ></A
 ><B
 >xPathUnary</B
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathUnary"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathDataTypes.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.XPath.XPathDataTypes</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
@@ -59,10 +81,10 @@
 ><TR
 ><TD CLASS="doc"
 >The core data types of XPath.
- The Type NodeSet is based on the module <A HREF="NavTree.html"
+   The Type NodeSet is based on the module <A HREF="NavTree.html"
 >NavTree</A
 > which was adapted from
- HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"
+   HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"
 >http://www.flightlab.com/~joe/hxml/</A
 >)
 </TD
@@ -960,7 +982,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AExpr"
@@ -968,7 +993,14 @@
 ><B
 >Expr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Expr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1119,7 +1151,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AOp"
@@ -1127,7 +1162,14 @@
 ><B
 >Op</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Op"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1329,7 +1371,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXPNumber"
@@ -1337,7 +1382,14 @@
 ><B
 >XPNumber</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPNumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1467,7 +1519,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ALocationPath"
@@ -1475,7 +1530,14 @@
 ><B
 >LocationPath</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#LocationPath"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1546,7 +1608,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3APath"
@@ -1554,7 +1619,14 @@
 ><B
 >Path</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Path"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1626,7 +1698,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXStep"
@@ -1634,7 +1709,14 @@
 ><B
 >XStep</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XStep"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1707,7 +1789,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AAxisSpec"
@@ -1715,7 +1800,14 @@
 ><B
 >AxisSpec</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#AxisSpec"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1897,7 +1989,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ANodeTest"
@@ -1905,7 +2000,14 @@
 ><B
 >NodeTest</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NodeTest"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1994,7 +2096,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXPathNode"
@@ -2002,7 +2107,14 @@
 ><B
 >XPathNode</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPathNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -2099,7 +2211,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AName"
@@ -2111,13 +2226,23 @@
 >, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"
 >LocalName</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Name"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANamePrefix"
@@ -2125,13 +2250,23 @@
 ><B
 >NamePrefix</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NamePrefix"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ALocalName"
@@ -2139,13 +2274,23 @@
 ><B
 >LocalName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#LocalName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AVarName"
@@ -2155,7 +2300,14 @@
 > = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"
 >Name</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#VarName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Variable name
@@ -2166,7 +2318,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ALiteral"
@@ -2174,7 +2329,14 @@
 ><B
 >Literal</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Literal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >a string
@@ -2185,7 +2347,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AFctName"
@@ -2193,7 +2358,14 @@
 ><B
 >FctName</B
 > = String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#FctName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Function name
@@ -2204,7 +2376,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AFctArguments"
@@ -2214,7 +2389,14 @@
 > = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#FctArguments"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Function arguments
@@ -2225,7 +2407,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AContext"
@@ -2239,7 +2424,14 @@
 >, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"
 >ConNode</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Context"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Evaluation context
@@ -2250,7 +2442,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AConPos"
@@ -2258,7 +2453,14 @@
 ><B
 >ConPos</B
 > = Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#ConPos"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Context position
@@ -2269,7 +2471,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AConLen"
@@ -2277,7 +2482,14 @@
 ><B
 >ConLen</B
 > = Int</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#ConLen"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Context length
@@ -2288,7 +2500,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AConNode"
@@ -2298,7 +2513,14 @@
 > = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#ConNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Context node
@@ -2309,7 +2531,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AXPathValue"
@@ -2317,7 +2542,14 @@
 ><B
 >XPathValue</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPathValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -2434,7 +2666,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANavXmlTree"
@@ -2446,7 +2681,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NavXmlTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Node of navigable tree representation
@@ -2457,7 +2699,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANavXmlTrees"
@@ -2467,7 +2712,14 @@
 > = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NavXmlTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >List of nodes of navigable tree representation
@@ -2478,7 +2730,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANodeSet"
@@ -2488,7 +2743,14 @@
 > = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"
 >NavXmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Type synonym for a list of navigable tree representation
@@ -2499,7 +2761,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXPathFilter"
@@ -2511,7 +2776,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPathFilter"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >A functions that takes a XPath result and returns a XPath result
@@ -2522,7 +2794,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AVarTab"
@@ -2534,7 +2809,14 @@
 >, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#VarTab"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -2551,7 +2833,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AKeyTab"
@@ -2563,13 +2848,23 @@
 >, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#KeyTab"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AEnv"
@@ -2581,19 +2876,36 @@
 >, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
 >KeyTab</A
 >)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Env"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AvarEnv"
 ></A
 ><B
 >varEnv</B
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
 >Env</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#varEnv"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathEval.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -114,8 +114,10 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXPath"
 >getXPath</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -128,8 +130,10 @@
 >getXPathWithNsEnv</A
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -140,8 +144,10 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXPathSubTrees"
 >getXPathSubTrees</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -154,8 +160,10 @@
 >getXPathSubTreesWithNsEnv</A
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
 ></TR
 ><TR
@@ -222,15 +230,27 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPath"
 ></A
 ><B
 >getXPath</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPath"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -251,17 +271,29 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathWithNsEnv"
 ></A
 ><B
 >getXPathWithNsEnv</B
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -282,15 +314,27 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathSubTrees"
 ></A
 ><B
 >getXPathSubTrees</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathSubTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -316,17 +360,29 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathSubTreesWithNsEnv"
 ></A
 ><B
 >getXPathSubTreesWithNsEnv</B
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathSubTreesWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Same as <TT
@@ -341,7 +397,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathNodeSet"
 ></A
 ><B
@@ -351,7 +410,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathNodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >compute the node set of an XPath query
@@ -362,7 +428,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetXPathNodeSetWithNsEnv"
 ></A
 ><B
@@ -374,7 +443,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathNodeSetWithNsEnv"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >compute the node set of a namespace aware XPath query
@@ -385,7 +461,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AevalExpr"
 ></A
 ><B
@@ -398,6 +477,13 @@
 >Expr</A
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#evalExpr"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathFct.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.XPath.XPathFct</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
@@ -59,8 +81,8 @@
 ><TR
 ><TD CLASS="doc"
 >The module contains the core-functions of the XPath function library.
- All functions are implemented as XFct. Each XFct contains the evaluation context,
- the variable environment and the function arguments.
+   All functions are implemented as XFct. Each XFct contains the evaluation context,
+   the variable environment and the function arguments.
 </TD
 ></TR
 ><TR
@@ -292,7 +314,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXFct"
@@ -308,7 +333,14 @@
 >] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#XFct"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Type signature for all functions which can be used in the XPath module.
@@ -319,7 +351,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AevalFct"
 ></A
 ><B
@@ -335,7 +370,14 @@
 >] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#evalFct"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -360,7 +402,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtoXValue"
 ></A
 ><B
@@ -376,7 +421,14 @@
 >] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#toXValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -402,7 +454,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axnumber"
 ></A
 ><B
@@ -410,7 +465,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
 >XFct</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#xnumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >number number(object?): converts its argument to a number
@@ -421,7 +483,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axboolean"
 ></A
 ><B
@@ -429,7 +494,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
 >XFct</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#xboolean"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >boolean boolean(object): converts its argument to a boolean value
@@ -440,7 +512,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Axstring"
 ></A
 ><B
@@ -448,7 +523,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
 >XFct</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#xstring"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >string string(object?): converts an object to a string
@@ -459,7 +541,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetConvFct"
 ></A
 ><B
@@ -469,7 +554,14 @@
 > -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
 >XFct</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#getConvFct"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns the conversion function for the XPath results: string, boolean and number
@@ -481,7 +573,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstringValue"
 ></A
 ><B
@@ -491,7 +586,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#stringValue"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns the string-value of a node,
@@ -503,7 +605,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AremDups"
 ></A
 ><B
@@ -511,7 +616,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#remDups"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Filter for removing identical fragment trees in a nodeset
@@ -522,7 +634,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNotInNodeList"
 ></A
 ><B
@@ -532,7 +647,14 @@
 > -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
 >] -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#isNotInNodeList"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Check whether a node is not a part of a node list. Needed to implement matching &amp; testing in xslt.
@@ -543,7 +665,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcreateDocumentOrder"
 ></A
 ><B
@@ -551,7 +676,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#createDocumentOrder"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Filter for ordering a list of Nodes in document order
@@ -562,7 +694,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcreateDocumentOrderReverse"
 ></A
 ><B
@@ -570,7 +705,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
 >XPathFilter</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#createDocumentOrderReverse"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Filter for ordering a list of Nodes in reverse document order
@@ -581,7 +723,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetVarTab"
 ></A
 ><B
@@ -591,7 +736,14 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
 >VarTab</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#getVarTab"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Returns the table of variables from the environment
@@ -602,7 +754,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetKeyTab"
 ></A
 ><B
@@ -611,6 +766,13 @@
 >Env</A
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
 >KeyTab</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#getKeyTab"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathKeywords.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -85,204 +85,374 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_ancestor"
 ></A
 ><B
 >a_ancestor</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_ancestor"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_ancestor_or_self"
 ></A
 ><B
 >a_ancestor_or_self</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_ancestor_or_self"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_attribute"
 ></A
 ><B
 >a_attribute</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_attribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_child"
 ></A
 ><B
 >a_child</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_child"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_descendant"
 ></A
 ><B
 >a_descendant</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_descendant"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_descendant_or_self"
 ></A
 ><B
 >a_descendant_or_self</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_descendant_or_self"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_following"
 ></A
 ><B
 >a_following</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_following"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_following_sibling"
 ></A
 ><B
 >a_following_sibling</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_following_sibling"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_namespace"
 ></A
 ><B
 >a_namespace</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_namespace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_parent"
 ></A
 ><B
 >a_parent</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_parent"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_preceding"
 ></A
 ><B
 >a_preceding</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_preceding"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_preceding_sibling"
 ></A
 ><B
 >a_preceding_sibling</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_preceding_sibling"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aa_self"
 ></A
 ><B
 >a_self</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_self"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3An_comment"
 ></A
 ><B
 >n_comment</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#n_comment"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3An_text"
 ></A
 ><B
 >n_text</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#n_text"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3An_processing_instruction"
 ></A
 ><B
 >n_processing_instruction</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#n_processing_instruction"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3An_node"
 ></A
 ><B
 >n_node</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#n_node"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathParser.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathParser.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -141,7 +141,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseNumber"
 ></A
 ><B
@@ -149,7 +152,14 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathParser.html#parseNumber"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -183,13 +193,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseXPath"
 ></A
 ><B
 >parseXPath</B
 > :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathParser.html#parseXPath"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToNodeSet.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -114,7 +114,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPValue2NodeSet"
 ></A
 ><B
@@ -124,7 +127,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html#xPValue2NodeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -141,13 +151,23 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AemptyNodeSet"
 ></A
 ><B
 >emptyNodeSet</B
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html#emptyNodeSet"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToString.hs"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.XPath.XPathToString</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
@@ -164,7 +186,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Aexpr2XPathTree"
 ></A
 ><B
@@ -172,7 +197,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 > -&gt; XPathTree</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#expr2XPathTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Format a parsed XPath-expression in tree representation.
@@ -188,7 +220,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPValue2String"
 ></A
 ><B
@@ -196,7 +231,14 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
 >XPathValue</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#xPValue2String"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Format a XPath-value in string representation.
@@ -213,7 +255,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxPValue2XmlTrees"
 ></A
 ><B
@@ -223,7 +268,14 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#xPValue2XmlTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 >Convert a a XPath-value into XmlTrees.
@@ -234,7 +286,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Ant2XPathTree"
 ></A
 ><B
@@ -242,13 +297,23 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
 >NodeTest</A
 > -&gt; XPathTree</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#nt2XPathTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3Apred2XPathTree"
 ></A
 ><B
@@ -256,13 +321,23 @@
 > :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 >] -&gt; XPathTree</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#pred2XPathTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtoXPathTree"
 ></A
 ><B
@@ -272,6 +347,13 @@
 > a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
 >NTree</A
 > a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#toXPathTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath.hs"
+><A HREF="src/Text-XML-HXT-XPath.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Application.hs"
+><A HREF="src/Text-XML-HXT-XSLT-Application.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -118,7 +118,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AapplyStylesheet"
 ></A
 ><B
@@ -130,13 +133,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Application.html#applyStylesheet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AapplyStylesheetWParams"
 ></A
 ><B
@@ -150,13 +163,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Application.html#applyStylesheetWParams"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AXPathParams"
@@ -167,6 +190,13 @@
 >ExName</A
 > <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Application.html#XPathParams"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Common.hs"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -108,8 +108,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XmlNode.html"
->Text.XML.HXT.Arrow.XmlNode</A
+>module <A HREF="Text-XML-HXT-DOM-XmlNode.html"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ></TR
 ><TR
@@ -217,7 +217,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfilterTree"
 ></A
 ><B
@@ -225,13 +228,23 @@
 > :: <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#filterTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmapTreeCtx"
 ></A
 ><B
@@ -239,13 +252,23 @@
 > :: <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#mapTreeCtx"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfilterTreeCtx"
 ></A
 ><B
@@ -253,13 +276,23 @@
 > :: <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#filterTreeCtx"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AzipTreeWith"
 ></A
 ><B
@@ -267,13 +300,23 @@
 > :: <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#zipTreeWith"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AzipTree"
 ></A
 ><B
@@ -281,25 +324,45 @@
 > :: <A HREF="Data-Tree-Class.html#t%3ATree"
 >Tree</A
 > t =&gt; t a -&gt; t b -&gt; t (a, b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#zipTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunzipTree"
 ></A
 ><B
 >unzipTree</B
 > :: Functor t =&gt; t (a, b) -&gt; (t a, t b)</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#unzipTree"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AshowTrees"
 ></A
 ><B
@@ -307,59 +370,99 @@
 > :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#showTrees"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisElemType"
 ></A
 ><B
 >isElemType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; n -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#isElemType"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisAttrType"
 ></A
 ><B
 >isAttrType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; n -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#isAttrType"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisWhitespaceNode"
 ></A
 ><B
 >isWhitespaceNode</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; n -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#isWhitespaceNode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcollectTextnodes"
 ></A
 ><B
@@ -367,93 +470,153 @@
 > :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >] -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#collectTextnodes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AtryFetchAttribute"
 ></A
 ><B
 >tryFetchAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Maybe String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#tryFetchAttribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfetchAttributeWDefault"
 ></A
 ><B
 >fetchAttributeWDefault</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#fetchAttributeWDefault"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfetchAttribute"
 ></A
 ><B
 >fetchAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#fetchAttribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AhasAttribute"
 ></A
 ><B
 >hasAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#hasAttribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetAttribute"
 ></A
 ><B
 >setAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; n -&gt; n</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#setAttribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AExName"
@@ -461,7 +624,14 @@
 ><B
 >ExName</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#ExName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -524,7 +694,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkExName"
 ></A
 ><B
@@ -534,13 +707,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkExName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AexLocal"
 ></A
 ><B
@@ -548,13 +731,23 @@
 > :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#exLocal"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AexUri"
 ></A
 ><B
@@ -562,13 +755,23 @@
 > :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 > -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#exUri"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseExName"
 ></A
 ><B
@@ -578,13 +781,23 @@
 > -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#parseExName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AUriMapping"
@@ -592,45 +805,75 @@
 ><B
 >UriMapping</B
 > = Map String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#UriMapping"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetUriMap"
 ></A
 ><B
 >getUriMap</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; n -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
 >UriMapping</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#getUriMap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsetUriMap"
 ></A
 ><B
 >setUriMap</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
+> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
 > n =&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
 >UriMapping</A
 > -&gt; n -&gt; n</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#setUriMap"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AuriMap2Attrs"
 ></A
 ><B
@@ -640,13 +883,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#uriMap2Attrs"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AexpandNSDecls"
 ></A
 ><B
@@ -656,13 +909,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#expandNSDecls"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlookupPrefix"
 ></A
 ><B
@@ -670,13 +933,23 @@
 > :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
 >UriMapping</A
 > -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#lookupPrefix"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisNsAttr"
 ></A
 ><B
@@ -684,13 +957,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#isNsAttr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkLiteralExpr"
 ></A
 ><B
@@ -698,13 +981,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkLiteralExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkStringExpr"
 ></A
 ><B
@@ -714,13 +1007,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkStringExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkBoolExpr"
 ></A
 ><B
@@ -730,13 +1033,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkBoolExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkTrueExpr"
 ></A
 ><B
@@ -744,13 +1057,23 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkTrueExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AconcatExpr"
 ></A
 ><B
@@ -760,13 +1083,23 @@
 >] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#concatExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsplitExpr"
 ></A
 ><B
@@ -776,13 +1109,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#splitExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AunionExpr"
 ></A
 ><B
@@ -792,13 +1135,23 @@
 >] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#unionExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AsplitMatchByPrio"
 ></A
 ><B
@@ -808,13 +1161,23 @@
 > -&gt; [(Float, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 >)]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#splitMatchByPrio"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcomputePriority"
 ></A
 ><B
@@ -822,13 +1185,23 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 > -&gt; Float</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#computePriority"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AcomputeNTestPriority"
 ></A
 ><B
@@ -836,13 +1209,23 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
 >NodeTest</A
 > -&gt; Float</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#computeNTestPriority"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisMatchExpr"
 ></A
 ><B
@@ -850,30 +1233,57 @@
 > :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
 >Expr</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#isMatchExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfromJustErr"
 ></A
 ><B
 >fromJustErr</B
 > :: String -&gt; Maybe a -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#fromJustErr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AreadWDefault"
 ></A
 ><B
 >readWDefault</B
 > :: Read a =&gt; a -&gt; String -&gt; a</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Common.html#readWDefault"
+>Source</A
+></TD
+></TR
+></TABLE
+></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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Compilation.hs"
+><A HREF="src/Text-XML-HXT-XSLT-Compilation.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -107,7 +107,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AprepareXSLTDocument"
 ></A
 ><B
@@ -117,13 +120,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Compilation.html#prepareXSLTDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AassembleStylesheet"
 ></A
 ><B
@@ -134,6 +147,13 @@
 >CompiledStylesheet</A
 >] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
 >CompiledStylesheet</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Compilation.html#assembleStylesheet"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/CompiledStylesheet.hs"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -107,7 +107,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ACompiledStylesheet"
@@ -115,7 +118,14 @@
 ><B
 >CompiledStylesheet</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#CompiledStylesheet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -184,7 +194,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetMatchRules"
 ></A
 ><B
@@ -194,13 +207,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
 >MatchRule</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getMatchRules"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetNamedRules"
 ></A
 ><B
@@ -212,13 +235,23 @@
 > <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
 >NamedRule</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getNamedRules"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetVariables"
 ></A
 ><B
@@ -230,13 +263,23 @@
 > <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
 >Variable</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getVariables"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetAttributeSets"
 ></A
 ><B
@@ -248,13 +291,23 @@
 > [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"
 >AttributeSet</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getAttributeSets"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetStrips"
 ></A
 ><B
@@ -264,13 +317,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
 >Strips</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getStrips"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetAliases"
 ></A
 ><B
@@ -280,13 +343,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
 >NSAliasing</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getAliases"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AMatchRule"
@@ -294,7 +367,14 @@
 ><B
 >MatchRule</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#MatchRule"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -355,7 +435,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetRulePrio"
 ></A
 ><B
@@ -363,13 +446,23 @@
 > :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
 >MatchRule</A
 > -&gt; Float</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRulePrio"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetRuleMode"
 ></A
 ><B
@@ -379,13 +472,23 @@
 > -&gt; Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRuleMode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetRuleImports"
 ></A
 ><B
@@ -395,13 +498,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
 >MatchRule</A
 >]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRuleImports"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ANamedRule"
@@ -409,7 +522,14 @@
 ><B
 >NamedRule</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#NamedRule"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -466,7 +586,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetRuleName"
 ></A
 ><B
@@ -476,13 +599,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRuleName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AVariable"
@@ -490,7 +623,14 @@
 ><B
 >Variable</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#Variable"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -547,7 +687,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AgetVarName"
 ></A
 ><B
@@ -557,13 +700,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getVarName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AisParam"
 ></A
 ><B
@@ -571,13 +724,23 @@
 > :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
 >Variable</A
 > -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#isParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3AUsedAttribSets"
@@ -585,7 +748,14 @@
 ><B
 >UsedAttribSets</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#UsedAttribSets"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -638,7 +808,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AAttributeSet"
@@ -646,7 +819,14 @@
 ><B
 >AttributeSet</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#AttributeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -703,7 +883,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANTest"
@@ -713,13 +896,23 @@
 > = <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#NTest"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AparseNTest"
 ></A
 ><B
@@ -729,13 +922,23 @@
 > -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
 >NTest</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#parseNTest"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3AStrips"
@@ -745,13 +948,23 @@
 > = Map <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
 >NTest</A
 > Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#Strips"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlookupStrip"
 ></A
 ><B
@@ -761,13 +974,23 @@
 > -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
 >Strips</A
 >] -&gt; Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#lookupStrip"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlookupStrip1"
 ></A
 ><B
@@ -777,13 +1000,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
 >Strips</A
 > -&gt; Maybe Bool</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#lookupStrip1"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfeedSpaces"
 ></A
 ><B
@@ -795,13 +1028,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
 >Strips</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#feedSpaces"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfeedStrips"
 ></A
 ><B
@@ -813,13 +1056,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
 >Strips</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#feedStrips"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AfeedPreserves"
 ></A
 ><B
@@ -831,13 +1084,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
 >Strips</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#feedPreserves"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstripDocument"
 ></A
 ><B
@@ -849,13 +1112,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#stripDocument"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstripStylesheet"
 ></A
 ><B
@@ -865,13 +1138,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#stripStylesheet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AstripSpaces"
 ></A
 ><B
@@ -883,13 +1166,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#stripSpaces"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANSAliasing"
@@ -897,13 +1190,23 @@
 ><B
 >NSAliasing</B
 > = Map String String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#NSAliasing"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaddAlias"
 ></A
 ><B
@@ -915,13 +1218,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
 >NSAliasing</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#addAlias"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AlookupAlias"
 ></A
 ><B
@@ -933,13 +1246,23 @@
 > -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#lookupAlias"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AaliasUriMapping"
 ></A
 ><B
@@ -951,13 +1274,23 @@
 > -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
 >UriMapping</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#aliasUriMapping"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ATemplate"
@@ -965,7 +1298,14 @@
 ><B
 >Template</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#Template"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1222,7 +1562,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ASortKey"
@@ -1230,7 +1573,14 @@
 ><B
 >SortKey</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#SortKey"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1287,7 +1637,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AWhen"
@@ -1295,7 +1648,14 @@
 ><B
 >When</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#When"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1350,7 +1710,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AComputedQName"
@@ -1358,7 +1721,14 @@
 ><B
 >ComputedQName</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#ComputedQName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1427,7 +1797,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3ASelectExpr"
@@ -1435,7 +1808,14 @@
 ><B
 >SelectExpr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#SelectExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1488,7 +1868,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3ATestExpr"
@@ -1496,7 +1879,14 @@
 ><B
 >TestExpr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#TestExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1549,7 +1939,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3AStringExpr"
@@ -1557,7 +1950,14 @@
 ><B
 >StringExpr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#StringExpr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="body"
 ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
@@ -1610,7 +2010,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >newtype</SPAN
 > <A NAME="t%3AMatchExpr"
@@ -1618,6 +2021,13 @@
 ><B
 >MatchExpr</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#MatchExpr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
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,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Names.hs"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -107,31 +107,54 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltPrefix"
 ></A
 ><B
 >xsltPrefix</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltPrefix"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltUri"
 ></A
 ><B
 >xsltUri</B
 > :: String</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltUri"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkXsltName"
 ></A
 ><B
@@ -139,13 +162,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#mkXsltName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AmkXsltAttribName"
 ></A
 ><B
@@ -153,13 +186,23 @@
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#mkXsltAttribName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltTransform"
 ></A
 ><B
@@ -167,13 +210,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltTransform"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltStylesheet"
 ></A
 ><B
@@ -181,13 +234,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltStylesheet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltMessage"
 ></A
 ><B
@@ -195,13 +258,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltMessage"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltForEach"
 ></A
 ><B
@@ -209,13 +282,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltForEach"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltChoose"
 ></A
 ><B
@@ -223,13 +306,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltChoose"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltWhen"
 ></A
 ><B
@@ -237,13 +330,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltWhen"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltOtherwise"
 ></A
 ><B
@@ -251,13 +354,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltOtherwise"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltIf"
 ></A
 ><B
@@ -265,13 +378,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltIf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltElement"
 ></A
 ><B
@@ -279,13 +402,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltElement"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltAttribute"
 ></A
 ><B
@@ -293,13 +426,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltAttribute"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltText"
 ></A
 ><B
@@ -307,13 +450,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltText"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltValueOf"
 ></A
 ><B
@@ -321,13 +474,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltValueOf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltComment"
 ></A
 ><B
@@ -335,13 +498,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltComment"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltProcInstr"
 ></A
 ><B
@@ -349,13 +522,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltProcInstr"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltInclude"
 ></A
 ><B
@@ -363,13 +546,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltInclude"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltImport"
 ></A
 ><B
@@ -377,13 +570,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltImport"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltTemplate"
 ></A
 ><B
@@ -391,13 +594,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltTemplate"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltApplyTemplates"
 ></A
 ><B
@@ -405,13 +618,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltApplyTemplates"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltApplyImports"
 ></A
 ><B
@@ -419,13 +642,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltApplyImports"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltCallTemplate"
 ></A
 ><B
@@ -433,13 +666,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltCallTemplate"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltVariable"
 ></A
 ><B
@@ -447,13 +690,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltVariable"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltParam"
 ></A
 ><B
@@ -461,13 +714,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltWithParam"
 ></A
 ><B
@@ -475,13 +738,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltWithParam"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltAttributeSet"
 ></A
 ><B
@@ -489,13 +762,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltAttributeSet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltCopy"
 ></A
 ><B
@@ -503,13 +786,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltCopy"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltCopyOf"
 ></A
 ><B
@@ -517,13 +810,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltCopyOf"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltSort"
 ></A
 ><B
@@ -531,13 +834,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltSort"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltStripSpace"
 ></A
 ><B
@@ -545,13 +858,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltStripSpace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltPreserveSpace"
 ></A
 ><B
@@ -559,13 +882,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltPreserveSpace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltNamespaceAlias"
 ></A
 ><B
@@ -573,13 +906,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltNamespaceAlias"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltTerminate"
 ></A
 ><B
@@ -587,13 +930,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltTerminate"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltSelect"
 ></A
 ><B
@@ -601,13 +954,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltSelect"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltTest"
 ></A
 ><B
@@ -615,13 +978,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltTest"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltName"
 ></A
 ><B
@@ -629,13 +1002,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltName"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltNamespace"
 ></A
 ><B
@@ -643,13 +1026,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltNamespace"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltUseAttributeSets"
 ></A
 ><B
@@ -657,13 +1050,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltUseAttributeSets"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltHRef"
 ></A
 ><B
@@ -671,13 +1074,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltHRef"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltMatch"
 ></A
 ><B
@@ -685,13 +1098,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltMatch"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltPriority"
 ></A
 ><B
@@ -699,13 +1122,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltPriority"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltMode"
 ></A
 ><B
@@ -713,13 +1146,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltMode"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltDataType"
 ></A
 ><B
@@ -727,13 +1170,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltDataType"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltOrder"
 ></A
 ><B
@@ -741,13 +1194,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltOrder"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltElements"
 ></A
 ><B
@@ -755,13 +1218,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltElements"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltStylesheetPrefix"
 ></A
 ><B
@@ -769,13 +1242,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltStylesheetPrefix"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltResultPrefix"
 ></A
 ><B
@@ -783,13 +1266,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltResultPrefix"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltVersion"
 ></A
 ><B
@@ -797,13 +1290,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltVersion"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltExlcudeResultPrefixes"
 ></A
 ><B
@@ -811,13 +1314,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltExlcudeResultPrefixes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltExtensionElementPrefixes"
 ></A
 ><B
@@ -825,13 +1338,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltExtensionElementPrefixes"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltUseAttributeSetsLRE"
 ></A
 ><B
@@ -839,13 +1362,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltUseAttributeSetsLRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltVersionLRE"
 ></A
 ><B
@@ -853,13 +1386,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltVersionLRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltExlcudeResultPrefixesLRE"
 ></A
 ><B
@@ -867,13 +1410,23 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltExlcudeResultPrefixesLRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltExtensionElementPrefixesLRE"
 ></A
 ><B
@@ -881,19 +1434,36 @@
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltExtensionElementPrefixesLRE"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxmlSpace"
 ></A
 ><B
 >xmlSpace</B
 > :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-Names.html#xmlSpace"
+>Source</A
+></TD
+></TR
+></TABLE
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html b/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
@@ -19,9 +19,9 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/XsltArrows.hs"
+><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html"
 >Source code</A
 ></TD
 ><TD CLASS="topbut"
@@ -198,7 +198,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltCompileStylesheet"
 ></A
 ><B
@@ -210,7 +213,14 @@
 > <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
 >CompiledStylesheet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltCompileStylesheet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -228,7 +238,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltCompileStylesheetFromURI"
 ></A
 ><B
@@ -238,7 +251,14 @@
 > String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
 >CompiledStylesheet</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltCompileStylesheetFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -255,7 +275,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltApplyStylesheet"
 ></A
 ><B
@@ -269,7 +292,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltApplyStylesheet"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -294,7 +324,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><A NAME="v%3AxsltApplyStylesheetFromURI"
 ></A
 ><B
@@ -306,7 +339,14 @@
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltApplyStylesheetFromURI"
+>Source</A
+></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="doc"
 ><P
@@ -325,7 +365,10 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3ACompiledStylesheet"
@@ -333,6 +376,13 @@
 ><B
 >CompiledStylesheet</B
 > </TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#CompiledStylesheet"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
 ></TR
 ><TR
 ><TD CLASS="body"
diff --git a/doc/hdoc/doc-index-36.html b/doc/hdoc/doc-index-36.html
--- a/doc/hdoc/doc-index-36.html
+++ b/doc/hdoc/doc-index-36.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -182,20 +182,32 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >$$</TD
+></TR
+><TR
+><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
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
+><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
 ><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
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -203,7 +215,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -211,7 +223,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -219,7 +231,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -227,7 +239,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -235,7 +247,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-38.html b/doc/hdoc/doc-index-38.html
--- a/doc/hdoc/doc-index-38.html
+++ b/doc/hdoc/doc-index-38.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc/doc-index-43.html b/doc/hdoc/doc-index-43.html
--- a/doc/hdoc/doc-index-43.html
+++ b/doc/hdoc/doc-index-43.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,35 +187,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->++=</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >+=</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-46.html b/doc/hdoc/doc-index-46.html
--- a/doc/hdoc/doc-index-46.html
+++ b/doc/hdoc/doc-index-46.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -195,7 +195,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-47.html b/doc/hdoc/doc-index-47.html
--- a/doc/hdoc/doc-index-47.html
+++ b/doc/hdoc/doc-index-47.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -183,7 +183,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -191,7 +191,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-58.html b/doc/hdoc/doc-index-58.html
--- a/doc/hdoc/doc-index-58.html
+++ b/doc/hdoc/doc-index-58.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -183,7 +183,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -191,7 +191,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-60.html b/doc/hdoc/doc-index-60.html
--- a/doc/hdoc/doc-index-60.html
+++ b/doc/hdoc/doc-index-60.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -191,7 +191,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -199,7 +199,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-62.html b/doc/hdoc/doc-index-62.html
--- a/doc/hdoc/doc-index-62.html
+++ b/doc/hdoc/doc-index-62.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-A.html b/doc/hdoc/doc-index-A.html
--- a/doc/hdoc/doc-index-A.html
+++ b/doc/hdoc/doc-index-A.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -275,7 +275,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -299,7 +299,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -307,7 +307,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -315,7 +315,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
 >Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -323,7 +323,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -331,7 +331,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -339,7 +339,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -347,7 +347,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -399,7 +399,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -415,7 +415,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AaName"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -455,7 +455,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -463,7 +463,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -471,7 +471,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -487,7 +487,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -495,7 +495,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_column"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -503,7 +503,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -511,7 +511,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -519,7 +519,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default_baseuri"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -543,7 +543,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -551,7 +551,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_namespaces"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -559,7 +559,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -567,7 +567,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -575,7 +575,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -583,7 +583,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -591,7 +591,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_preserve_comment"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -599,7 +599,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_remove_whitespace"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -607,7 +607,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -615,7 +615,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -623,7 +623,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -631,7 +631,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -639,7 +639,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -647,7 +647,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -655,7 +655,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -679,7 +679,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -687,7 +687,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -695,7 +695,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -703,7 +703,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -711,7 +711,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_kind"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -719,7 +719,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_line"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -727,7 +727,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_modifier"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -735,7 +735,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -743,7 +743,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_name"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -759,7 +759,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -775,7 +775,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -783,7 +783,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -791,7 +791,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -799,7 +799,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -807,7 +807,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -815,7 +815,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -831,7 +831,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -839,7 +839,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -847,7 +847,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -855,7 +855,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_peref"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -879,7 +879,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -887,7 +887,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_propagate_errors"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -895,7 +895,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -911,7 +911,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -919,7 +919,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -935,7 +935,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -943,7 +943,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -951,7 +951,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -959,7 +959,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_standalone"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -967,7 +967,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -975,7 +975,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -983,7 +983,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -991,7 +991,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_type"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -999,7 +999,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_url"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1007,7 +1007,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1015,7 +1015,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1023,7 +1023,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1031,7 +1031,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1039,7 +1039,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_value"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1047,7 +1047,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1055,7 +1055,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1063,7 +1063,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1071,7 +1071,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xmlns"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1079,15 +1079,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"
 >Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->add1Attr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1115,51 +1107,23 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AaddAttr"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AaddAttr"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->addAttrInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrInt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >addAttrl</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1171,14 +1135,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->addDTDAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddDTDAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >addDoctypeDecl</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddDoctypeDecl"
@@ -1191,7 +1147,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -1199,37 +1155,17 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
->addFatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AaddFatal"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >addHeadlineToXmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddHeadlineToXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >addXHtmlDoctypeFrameset</TD
 ><TD CLASS="indexlinks"
@@ -1271,19 +1207,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->addXmlPiToDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddXmlPiToDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1307,7 +1235,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1315,7 +1243,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1359,7 +1287,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xhtml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1367,7 +1295,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1375,7 +1303,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_dtd"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1383,7 +1311,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_external_parsed_entity"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1391,7 +1319,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1415,7 +1343,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1423,7 +1351,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1431,7 +1359,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1439,7 +1367,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1447,7 +1375,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1495,7 +1423,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1503,7 +1431,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1531,14 +1459,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->atag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >attachNsEnv</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AattachNsEnv"
@@ -1554,24 +1474,12 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >attr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1587,7 +1495,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1595,7 +1503,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -1615,7 +1523,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1623,7 +1531,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1631,7 +1539,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT%27"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1648,14 +1556,6 @@
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Aattributes"
 >Text.XML.HXT.Arrow.Pickle.Xml</A
 ></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->attrlOfDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AattrlOfDTD"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-B.html b/doc/hdoc/doc-index-B.html
--- a/doc/hdoc/doc-index-B.html
+++ b/doc/hdoc/doc-index-B.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-C.html b/doc/hdoc/doc-index-C.html
--- a/doc/hdoc/doc-index-C.html
+++ b/doc/hdoc/doc-index-C.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -267,7 +267,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -369,7 +369,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -377,7 +377,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -385,7 +385,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -393,7 +393,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -401,29 +401,17 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >canonicalizeAllNodes</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >canonicalizeContents</TD
 ><TD CLASS="indexlinks"
@@ -432,40 +420,20 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >canonicalizeForXPath</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->canonicalizeTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >cardNTree</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AcardNTree"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -473,7 +441,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -481,7 +449,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -489,7 +457,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -497,31 +465,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->chain</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->chain'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain%27"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -533,14 +477,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -549,7 +493,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrValue"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -561,14 +505,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -589,7 +533,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -597,7 +541,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -609,22 +553,22 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeCmt"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeCmt"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >changeDTDAttrl</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeDTDAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeDTDAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -637,22 +581,22 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeElemName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeElemName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >changeName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -665,7 +609,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -673,7 +617,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -685,14 +629,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangePiName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangePiName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -701,35 +645,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeQName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >changeState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"
 >Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AchangeState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -740,22 +664,6 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->changeSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeSysStateAttrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysStateAttrs"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >changeText</TD
 ></TR
@@ -765,14 +673,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeText"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeText"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -789,7 +697,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -797,7 +705,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData%27"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -809,7 +717,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -817,7 +725,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -825,7 +733,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -841,7 +749,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -879,8 +787,8 @@
 ><TD CLASS="indexentry"
 >checkAttributeValue</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AcheckAttributeValue"
->Text.XML.HXT.Validator.AttributeValueValidation</A
+><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AcheckAttributeValue"
+>Text.XML.HXT.DTDValidation.AttributeValueValidation</A
 ></TD
 ></TR
 ><TR
@@ -911,22 +819,14 @@
 ><TD CLASS="indexentry"
 >checkRE</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3AcheckRE"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AcheckRE"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
->checkResult</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckResult"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >checkRngName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AcheckRngName"
@@ -935,22 +835,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->checkStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckStatus"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkWellformedDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >checkWith</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckWith"
@@ -971,7 +855,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -983,7 +867,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -999,7 +883,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1007,7 +891,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1027,39 +911,19 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->clearStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AclearStatus"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >closesHtmlTag</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >cmt</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Acmt"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1070,46 +934,22 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >collapseAllXText</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseAllXText"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >collapseXText</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >collectNamespaceDecl</TD
 ><TD CLASS="indexlinks"
@@ -1139,7 +979,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1147,7 +987,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1347,7 +1187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1363,7 +1203,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1371,7 +1211,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -1383,7 +1223,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -1391,7 +1231,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1399,7 +1239,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1415,7 +1255,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1423,7 +1263,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-D.html b/doc/hdoc/doc-index-D.html
--- a/doc/hdoc/doc-index-D.html
+++ b/doc/hdoc/doc-index-D.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -195,7 +195,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -401,7 +401,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -461,7 +461,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -469,7 +469,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -497,7 +497,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -505,7 +505,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -517,19 +517,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->del1Attr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adel1Attr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -537,12 +529,24 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >delta</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Adelta"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Adelta"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -553,7 +557,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AdepthNTree"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -561,7 +565,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -585,7 +589,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -593,7 +597,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -601,7 +605,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument%27"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -617,7 +621,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -633,7 +637,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -693,14 +697,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->dtd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adtd"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >dtdChars</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdChars"
@@ -753,6 +749,54 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdToken"
 >Text.XML.HXT.Parser.XmlDTDTokenParser</A
+></TD
+></TR
+><TR
+><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
+><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
+><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
+><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
+><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
+><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
 ></TABLE
diff --git a/doc/hdoc/doc-index-E.html b/doc/hdoc/doc-index-E.html
--- a/doc/hdoc/doc-index-E.html
+++ b/doc/hdoc/doc-index-E.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -319,7 +319,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aeelem"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -351,7 +351,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -383,7 +383,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AemptyHtmlTags"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -395,14 +395,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->emptyRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >emptySt</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AemptySt"
@@ -415,7 +407,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -447,7 +439,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -455,7 +447,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -475,7 +467,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -483,7 +475,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -491,7 +483,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -499,7 +491,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -507,7 +499,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -515,7 +507,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -523,7 +515,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -539,7 +531,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -547,7 +539,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -555,7 +547,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -563,35 +555,15 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >err</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aerr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aerr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errClass</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrClass"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -643,14 +615,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->errorMsgHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >errorMsgIgnore</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgIgnore"
@@ -659,22 +623,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->errorMsgLogging</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLogging"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errorMsgLoggingAndToStderr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLoggingAndToStderr"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >errorMsgParam</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgParam"
@@ -699,14 +647,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->errorMsgToStderr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgToStderr"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >escapeHtmlDoc</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeHtmlDoc"
@@ -719,51 +659,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->escapeXmlAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >escapeXmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->escapeXmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->etag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-F.html b/doc/hdoc/doc-index-F.html
--- a/doc/hdoc/doc-index-F.html
+++ b/doc/hdoc/doc-index-F.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -246,24 +246,12 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >fatal</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Afatal"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Afatal"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -323,6 +311,14 @@
 ></TR
 ><TR
 ><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
+><TD CLASS="indexentry"
 >filterErrorMsg</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AfilterErrorMsg"
@@ -359,7 +355,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AfoldNTree"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -367,7 +363,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -391,7 +387,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AformatNTree"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -399,7 +395,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Data.NavTree, Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -455,7 +451,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -463,7 +459,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"
 >Text.XML.HXT.DOM.FormatXmlTree</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -471,7 +467,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"
 >Text.XML.HXT.DOM.FormatXmlTree</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -483,14 +479,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->fromAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromAttrl"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >fromJustErr</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfromJustErr"
@@ -503,7 +491,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"
 >Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -511,15 +499,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"
 >Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fromTreel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromTreel"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-G.html b/doc/hdoc/doc-index-G.html
--- a/doc/hdoc/doc-index-G.html
+++ b/doc/hdoc/doc-index-G.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -211,15 +211,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AgeneralOptions"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getAbsolutURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetAbsolutURI"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -255,14 +247,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -271,7 +263,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -279,7 +271,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue0"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -299,25 +291,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >getAttrl'</TD
 ><TD CLASS="indexlinks"
@@ -326,26 +310,14 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >getBaseURI</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >getCdata</TD
 ></TR
@@ -355,14 +327,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCdata"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCdata"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -375,14 +347,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCharRef"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCharRef"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -395,7 +367,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -403,7 +375,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -439,14 +411,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCmt"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCmt"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -487,14 +459,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getContentLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetContentLength"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >getConvFct</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetConvFct"
@@ -507,9 +471,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrValue"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
+><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
 ><TD CLASS="indexentry" COLSPAN="2"
 >getDTDAttrl</TD
 ></TR
@@ -519,14 +491,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -539,31 +511,23 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDPart"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDPart"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >getDTDSubset</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AgetDTDSubset"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getDTDValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetDTDValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AgetDTDSubset"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -615,14 +579,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetElemName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetElemName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -651,14 +615,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetEntityRef"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetEntityRef"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -679,14 +643,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorLevel"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorLevel"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -707,25 +671,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorMsg"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorMsg"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >getErrors</TD
 ><TD CLASS="indexlinks"
@@ -735,14 +691,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getFileContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html#v%3AgetFileContents"
->Text.XML.HXT.Parser.ProtocolHandlerFile</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >getFragmentFromURI</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetFragmentFromURI"
@@ -759,38 +707,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getHtmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AgetHtmlDoc"
->Text.XML.HXT.Parser.HtmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHttpContentsNativeOrWithCurl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html#v%3AgetHttpContentsNativeOrWithCurl"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHttpContentsWithCurl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html#v%3AgetHttpContentsWithCurl"
->Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHttpContentsWithHttp</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html#v%3AgetHttpContentsWithHttp"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >getKeyTab</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetKeyTab"
@@ -807,14 +723,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetLocalPart"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetLocalPart"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -835,25 +751,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >getNameClassFromPattern</TD
 ><TD CLASS="indexlinks"
@@ -871,14 +779,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamePrefix"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamePrefix"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -907,14 +815,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamespaceUri"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamespaceUri"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -927,7 +835,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -935,15 +843,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getNsValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -1011,14 +911,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiContent"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiContent"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -1031,14 +931,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -1051,19 +951,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getProtocolHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html#v%3AgetProtocolHandler"
->Text.XML.HXT.Parser.ProtocolHandler</A
-></TD
-></TR
-><TR
-><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.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1071,7 +963,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue0"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1079,14 +971,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >getQualifiedName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetQualifiedName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetQualifiedName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -1210,32 +1102,12 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >getState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"
 >Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AgetState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1255,65 +1127,13 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getSysErrorHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysErrorHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >getSysParam</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParam"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParamInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamInt"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParamTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamTree"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParamWithDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >getText</TD
 ></TR
@@ -1323,37 +1143,25 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetText"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetText"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >getTraceLevel</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetTraceLevel"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >getURIContents</TD
 ><TD CLASS="indexlinks"
@@ -1371,14 +1179,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -1391,14 +1199,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalUri"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalUri"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -1411,14 +1219,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getUrlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetUrlContents"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >getUserInfoFromURI</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserInfoFromURI"
@@ -1435,22 +1235,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getValidatedDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-Validation.html#v%3AgetValidatedDoc"
->Text.XML.HXT.Validator.Validation</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >getVarName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarName"
@@ -1475,30 +1259,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->getWellformedDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >getXP</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXP"
@@ -1654,54 +1414,22 @@
 >, Text.XML.HXT.XPath</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >getXmlContents</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->getXmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >getXmlEntityContents</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlEntityContents"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >group</TD
 ><TD CLASS="indexlinks"
@@ -1715,7 +1443,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -1727,7 +1455,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -1735,7 +1463,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1751,7 +1479,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1759,15 +1487,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guessDocEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AguessDocEncoding"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-H.html b/doc/hdoc/doc-index-H.html
--- a/doc/hdoc/doc-index-H.html
+++ b/doc/hdoc/doc-index-H.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -175,47 +175,11 @@
 ><TABLE CELLPADDING="0" CELLSPACING="5"
 ><TR
 ><TD CLASS="indexentry"
->hPutXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hPutXmlSource</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlSource"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hPutXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlTree"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >hasAttr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -223,7 +187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttrValue"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -239,35 +203,31 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasDTDAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><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
+><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >hasLocalPart</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasLocalPart"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -275,7 +235,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -283,7 +243,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamePrefix"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -291,15 +251,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNameWith"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -307,31 +259,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamespaceUri"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasNsAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasOption</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasOption"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -339,7 +267,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -347,7 +275,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttrValue"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -355,7 +283,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -427,15 +355,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasText"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -446,32 +366,20 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >haskellRepOfXmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -487,7 +395,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AhttpPrefix"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-I.html b/doc/hdoc/doc-index-I.html
--- a/doc/hdoc/doc-index-I.html
+++ b/doc/hdoc/doc-index-I.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -239,7 +239,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -247,7 +247,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -263,7 +263,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -271,7 +271,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -279,7 +279,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -287,29 +287,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >indentDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >initialState</TD
 ><TD CLASS="indexlinks"
@@ -318,32 +306,20 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >initialSysState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AinitialSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -355,7 +331,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -363,7 +339,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -375,7 +351,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -383,7 +359,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -391,7 +367,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -415,15 +391,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->intValueOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AintValueOf"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -434,56 +402,20 @@
 >, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
->io</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Aio"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Aio"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >isA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttlist</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlist"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >isAttlistOfElement</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistOfElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttlistParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisAttlistOfElement"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -495,34 +427,18 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisAttr"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisAttr"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->isAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisAttrNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isAttrType</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisAttrType"
@@ -571,14 +487,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCdata"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCdata"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -591,14 +507,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCharRef"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCharRef"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -627,25 +543,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCmt"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCmt"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->isCondSect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisCondSect"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >isDTD</TD
 ></TR
@@ -655,14 +563,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisDTD"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisDTD"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -671,15 +579,23 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDAttlist"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><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
+><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.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -687,23 +603,31 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDContent"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><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
+><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.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isDTDElemNode</TD
+>isDTDDoctypeNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisDTDElemNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDDoctypeNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -711,35 +635,39 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDElement"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><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
+><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.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >isDTDName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
+><TD CLASS="indexentry"
+>isDTDNameNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDTDName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDNameNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -747,7 +675,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDNotation"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -755,7 +683,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPERef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -763,7 +691,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPEntity"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -771,15 +699,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >isDefaultAttrKind</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDefaultAttrKind"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDefaultAttrKind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -790,14 +718,6 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->isDoctype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDoctype"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >isElem</TD
 ></TR
@@ -807,23 +727,23 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisElem"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisElem"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isElemContentParamEntity</TD
+>isElemNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemContentParamEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisElemNode"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -835,27 +755,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isElemWithContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemWithContent"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isEmptyElement</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEmptyElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEmptyElement"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -863,15 +767,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisEmptyHtmlTag"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -883,23 +779,23 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisEntityRef"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisEntityRef"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >isEnumAttrType</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEnumAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEnumAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -911,42 +807,18 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisError"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisError"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->isErrorNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisErrorNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isExternalParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisExternalParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isExternalRefInclude</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisExternalRefInclude"
@@ -955,19 +827,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isFatalError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFatalError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isFixedAttrKind</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFixedAttrKind"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisFixedAttrKind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -983,7 +847,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisHtmlMimeType"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -997,17 +861,17 @@
 ><TD CLASS="indexentry"
 >isIdAttrType</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >isIdRefAttrType</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdRefAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdRefAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1015,7 +879,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -1023,15 +887,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisInnerHtmlTagOf"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isInternalParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisInternalParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1039,7 +895,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -1053,9 +909,9 @@
 ><TD CLASS="indexentry"
 >isMixedContentElement</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisMixedContentElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisMixedContentElement"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1063,7 +919,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisNCName"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1099,14 +955,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isNamespaceDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AisNamespaceDecl"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isNamespaceDeclAttr</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"
@@ -1131,50 +979,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isNotation</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotation"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isNotationAttrType</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotationAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisNotationAttrType"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >isNsAttr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisNsAttr"
 >Text.XML.HXT.XSLT.Common</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isNsTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isNumber</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNumber"
@@ -1187,23 +1007,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfAttrNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1211,55 +1015,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfPiNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfPiNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfTagNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTagNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTextNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1270,22 +1026,6 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->isParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isPeRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPeRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >isPi</TD
 ></TR
@@ -1295,34 +1035,18 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisPi"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisPi"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->isPiNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisPiNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isRelaxAfter</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAfter"
@@ -1445,9 +1169,9 @@
 ><TD CLASS="indexentry"
 >isRequiredAttrKind</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRequiredAttrKind"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisRequiredAttrKind"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1763,34 +1487,18 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisRoot"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisRoot"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRoot"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->isRootNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisRootNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isScAttr</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScAttr"
@@ -1870,30 +1578,6 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->isStandaloneDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AisStandaloneDocument"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isTagNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTagNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >isText</TD
 ></TR
@@ -1903,34 +1587,18 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisText"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisText"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->isTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTextNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isUnicodeC</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeC"
@@ -2221,17 +1889,9 @@
 ><TD CLASS="indexentry"
 >isUnparsedEntity</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisUnparsedEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isWarning</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWarning"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisUnparsedEntity"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2239,7 +1899,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2247,7 +1907,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2255,27 +1915,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >isWhiteSpace</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisWhiteSpace"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWhiteSpace"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2287,166 +1935,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->isXAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXAttrNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCdataNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCdataNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCharRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCharRefNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCharRefNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCmtNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCmtNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXDTD"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXDTDNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXDTDNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXEntityRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXEntityRefNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXEntityRefNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXErrorNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXErrorNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXPiNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXPiNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXTagNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTagNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTextNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >isXml11SpaceChar</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"
@@ -2531,7 +2019,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisXmlMimeType"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2566,24 +2054,12 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >isXmlPi</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisXmlPi"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXmlPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2607,7 +2083,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_1"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2615,7 +2091,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_10"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2623,7 +2099,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_11"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2631,7 +2107,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_13"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2639,7 +2115,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_14"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2647,7 +2123,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_15"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2655,7 +2131,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_16"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2663,7 +2139,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_2"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2671,7 +2147,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_3"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2679,7 +2155,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_4"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2687,7 +2163,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_5"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2695,7 +2171,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_6"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2703,7 +2179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_7"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2711,7 +2187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_8"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2719,7 +2195,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_9"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2727,7 +2203,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2842,72 +2318,28 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >issueErr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->issueError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >issueFatal</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueFatal"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >issueWarn</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueWarn"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-K.html b/doc/hdoc/doc-index-K.html
--- a/doc/hdoc/doc-index-K.html
+++ b/doc/hdoc/doc-index-K.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -187,7 +187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_any"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -195,7 +195,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_cdata"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -203,7 +203,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_default"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -211,7 +211,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_empty"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -219,7 +219,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -227,7 +227,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entity"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -235,7 +235,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enumeration"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -243,7 +243,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_fixed"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -251,7 +251,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_id"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -259,7 +259,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idref"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -267,7 +267,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idrefs"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -275,7 +275,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ignore"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -283,7 +283,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_implied"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -291,7 +291,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_include"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -299,7 +299,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ndata"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -307,7 +307,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtoken"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -315,7 +315,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtokens"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -323,7 +323,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_notation"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -331,7 +331,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_pcdata"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -339,7 +339,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_peref"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -347,7 +347,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_public"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -355,7 +355,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_required"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -363,7 +363,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_system"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -371,7 +371,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -379,7 +379,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-L.html b/doc/hdoc/doc-index-L.html
--- a/doc/hdoc/doc-index-L.html
+++ b/doc/hdoc/doc-index-L.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -183,7 +183,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ListArrow.html#t%3ALA"
 >Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -191,7 +191,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ListArrow.html#v%3ALA"
 >Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -303,19 +303,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->liftF</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AliftF"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >liftMf</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -331,7 +323,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -339,15 +331,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->localPartOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -355,7 +339,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -371,7 +355,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -403,7 +387,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -411,7 +395,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-M.html b/doc/hdoc/doc-index-M.html
--- a/doc/hdoc/doc-index-M.html
+++ b/doc/hdoc/doc-index-M.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -247,7 +247,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmapNTree"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -263,7 +263,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -274,6 +274,22 @@
 ></TD
 ></TR
 ><TR
+><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
+><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
 ><TD CLASS="indexentry" COLSPAN="2"
 >matches</TD
 ></TR
@@ -281,16 +297,16 @@
 ><TD CLASS="indexannot"
 >1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Amatches"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Amatches"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Amatches"
->Text.XML.HXT.Validator.XmlRE</A
+><A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Amatches"
+>Text.XML.HXT.DTDValidation.XmlRE</A
 ></TD
 ></TR
 ><TR
@@ -311,26 +327,18 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->maybeString2XText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmaybeString2XText"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >mergeA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mergeAttrl</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmergeAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmergeAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -347,7 +355,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -366,9 +374,21 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkAlt</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkAlt"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkAlt"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -383,22 +403,22 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttr"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttr"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mkAttrNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttrNode"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttrNode"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ></TR
 ><TR
@@ -419,14 +439,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCdata"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCdata"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -439,14 +459,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCharRef"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCharRef"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -459,14 +479,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCmt"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCmt"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -483,7 +503,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDDoctype"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -495,14 +515,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDElem"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDElem"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ></TR
 ><TR
@@ -511,7 +531,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElement"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -519,14 +539,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDEntity"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mkDTDNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDNode"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDNode"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ></TR
 ><TR
@@ -535,7 +555,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDPEntity"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -546,9 +566,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkDot</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkDot"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDot"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -563,22 +595,22 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElement"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElement"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mkElementNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElementNode"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElementNode"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ></TR
 ><TR
@@ -591,14 +623,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkEntityRef"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkEntityRef"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -611,14 +643,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkError"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkError"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -635,7 +667,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -643,7 +675,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -659,7 +691,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -667,7 +699,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -675,7 +707,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmkNode"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -683,12 +715,24 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkOpt</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkOpt"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkOpt"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -703,14 +747,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkPi"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkPi"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -719,23 +763,23 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
->mkQAttr</TD
+>mkPrim</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrim"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->mkQAttrTree</TD
+>mkPrimA</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQAttrTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrimA"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -743,36 +787,44 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
-><TD CLASS="indexentry"
->mkQTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><TD CLASS="indexentry" COLSPAN="2"
+>mkRep</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->mkQTagTree</TD
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQTagTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRep"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->mkRep</TD
+><TD CLASS="indexannot"
+>2 (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
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkRng</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRng"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRng"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -893,38 +945,54 @@
 ><TD CLASS="indexentry"
 >mkRoot</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkRoot"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkRoot"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->mkRootTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkRootTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkSeq</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkSeq"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (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
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkStar</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkStar"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkStar"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -971,14 +1039,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkText"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkText"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -987,7 +1055,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -998,220 +1066,24 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkUnit</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
-><TD CLASS="indexentry"
->mkXAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXAttrTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCdataTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCdataTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCharRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCharRefTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCharRefTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCmtTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCmtTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXDTD"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXDTDTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXEntityRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXEntityRefTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXEntityRefTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXErrorTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXErrorTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsAttrTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsAttrTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsTagTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXPERefTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPERefTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXPiTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPiTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXTagTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXTextTree</TD
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTextTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkUnit"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
->mkXmlDeclTree</TD
+><TD CLASS="indexannot"
+>2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXmlDeclTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkUnit"
+>Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1230,9 +1102,21 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >mkZero</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkZero"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkZero"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
 ></TD
@@ -1243,7 +1127,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1251,15 +1135,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkqelem"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1267,7 +1143,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1275,7 +1151,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1283,23 +1159,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyQName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->modifyText</TD
+>msgToErr</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AmsgToErr"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -1311,7 +1179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -1319,7 +1187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-N.html b/doc/hdoc/doc-index-N.html
--- a/doc/hdoc/doc-index-N.html
+++ b/doc/hdoc/doc-index-N.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -203,7 +203,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -239,7 +239,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Data.NavTree, Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -247,7 +247,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Data.NavTree, Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -255,7 +255,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Data.NavTree, Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -359,14 +359,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->NamespaceTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >NavTree</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Data-NavTree.html#t%3ANavTree"
@@ -443,7 +435,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -475,7 +467,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AnTreeToList"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -515,7 +507,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -527,19 +519,27 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->nameOf</TD
+>nameOfAttr</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfAttr"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><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
+><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -547,7 +547,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -555,15 +555,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->namespaceOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -571,7 +563,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -579,7 +571,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -591,7 +583,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -599,31 +591,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->newDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->newDocument'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument%27"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->newRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -631,7 +599,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"
 >Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -639,7 +607,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -647,7 +615,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -655,7 +623,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -663,7 +631,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -679,7 +647,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -691,7 +659,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -699,7 +667,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -707,14 +675,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >normalizeAttributeValue</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AnormalizeAttributeValue"
->Text.XML.HXT.Validator.AttributeValueValidation</A
+><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AnormalizeAttributeValue"
+>Text.XML.HXT.DTDValidation.AttributeValueValidation</A
 ></TD
 ></TR
 ><TR
@@ -723,7 +691,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeBlanks"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -747,7 +715,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -755,7 +723,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -771,7 +739,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -815,7 +783,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -823,7 +791,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -855,7 +823,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -865,19 +833,27 @@
 ><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
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Anullable"
+>Text.XML.HXT.Arrow.XmlRegex</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Anullable"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Anullable"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
+><TD CLASS="indexannot"
+>3 (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
 ><TD CLASS="indexentry"
 >numParamValid</TD
 ><TD CLASS="indexlinks"
@@ -887,31 +863,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->numberLines</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLines"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >numberLinesInXmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-O.html b/doc/hdoc/doc-index-O.html
--- a/doc/hdoc/doc-index-O.html
+++ b/doc/hdoc/doc-index-O.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -211,7 +211,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -223,14 +223,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->ofDTDequals</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AofDTDequals"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >ok</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aok"
@@ -251,7 +243,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoptionIsSet"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -263,7 +255,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -271,7 +263,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -279,7 +271,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoutputOptions"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-P.html b/doc/hdoc/doc-index-P.html
--- a/doc/hdoc/doc-index-P.html
+++ b/doc/hdoc/doc-index-P.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -323,7 +323,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -343,14 +343,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->parseDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >parseExName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AparseExName"
@@ -375,29 +367,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >parseHtmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlDoc"
 >Text.XML.HXT.Arrow.ParserInterface</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"
->Text.XML.HXT.Parser.HtmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >parseHtmlDocument</TD
 ></TR
@@ -415,7 +395,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -443,7 +423,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"
 >Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -451,7 +431,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -467,7 +447,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -511,7 +491,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -531,7 +511,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -571,7 +551,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -614,26 +594,14 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >parseXmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDoc"
 >Text.XML.HXT.Arrow.ParserInterface</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"
->Text.XML.HXT.Parser.XmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >parseXmlDocEncodingSpec</TD
 ></TR
@@ -651,7 +619,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -671,7 +639,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -679,7 +647,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -699,7 +667,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -719,7 +687,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -727,7 +695,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -735,7 +703,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -743,7 +711,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -751,7 +719,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3ApartitionEither"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -787,7 +755,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -795,7 +763,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -811,7 +779,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -819,7 +787,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -873,14 +841,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->prefixOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AprefixOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >preorderNT</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Data-NavTree.html#v%3ApreorderNT"
@@ -907,47 +867,19 @@
 ><TD CLASS="indexentry"
 >printRE</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3AprintRE"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AprintRE"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
->processAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processAttrM</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AprocessAttrM"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >processAttrl</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -959,7 +891,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -967,7 +899,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -975,7 +907,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -983,7 +915,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -991,7 +923,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -1003,7 +935,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -1011,7 +943,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1019,29 +951,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >processDTD</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html#v%3AprocessDTD"
 >Text.XML.HXT.Arrow.DTDProcessing</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessDTD"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >processFromNodeSet</TD
 ><TD CLASS="indexlinks"
@@ -1050,26 +970,14 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >processGeneralEntities</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessGeneralEntities"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >processTopDown</TD
 ></TR
@@ -1079,7 +987,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -1087,7 +995,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1095,7 +1003,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -1107,7 +1015,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -1115,7 +1023,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1123,7 +1031,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessTopDownWithAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1163,52 +1071,20 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >propagateAndValidateNamespaces</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Namespace.html#v%3ApropagateAndValidateNamespaces"
->Text.XML.HXT.DOM.Namespace</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->propagateNamespaceEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >propagateNamespaces</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"
 >Text.XML.HXT.Arrow.Namespace</A
 >, <A HREF="Text-XML-HXT-Arrow.html#v%3ApropagateNamespaces"
@@ -1221,83 +1097,31 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->putXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->putXmlDocToFile</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDocToFile"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >putXmlDocument</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >putXmlSource</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlSource"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >putXmlTree</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlTree"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-Q.html b/doc/hdoc/doc-index-Q.html
--- a/doc/hdoc/doc-index-Q.html
+++ b/doc/hdoc/doc-index-Q.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -187,7 +187,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -195,43 +195,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >qattr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqattr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->qetag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqetag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->qtag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqtag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -239,7 +211,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -247,7 +219,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-R.html b/doc/hdoc/doc-index-R.html
--- a/doc/hdoc/doc-index-R.html
+++ b/doc/hdoc/doc-index-R.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -177,82 +177,82 @@
 ><TD CLASS="indexentry"
 >RE</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >RE_ALT</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ALT"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ALT"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_DOT</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_DOT"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_DOT"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_OPT</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_OPT"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_OPT"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_PLUS</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_PLUS"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_PLUS"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_REP</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_REP"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_REP"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_SEQ</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SEQ"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SEQ"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_SYM</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SYM"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SYM"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_UNIT</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_UNIT"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_UNIT"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >RE_ZERO</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ZERO"
->Text.XML.HXT.Validator.RE</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ZERO"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ></TR
 ><TR
@@ -291,90 +291,90 @@
 ><TD CLASS="indexentry"
 >re_alt</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_alt"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_alt"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_dot</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_dot"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_dot"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_opt</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_opt"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_opt"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_plus</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_plus"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_plus"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_rep</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_rep"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_rep"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_seq</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_seq"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_seq"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_sym</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_sym"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_sym"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_unit</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_unit"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_unit"
->Text.XML.HXT.Validator.XmlRE</A
+><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
 ><TD CLASS="indexentry"
 >re_zero</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_zero"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_zero"
->Text.XML.HXT.Validator.XmlRE</A
+><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
@@ -431,7 +431,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -439,7 +439,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -447,7 +447,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3ArelaxNamespace"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -455,7 +455,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3ArelaxOptions"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -530,94 +530,46 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >removeAllComment</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllComment"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >removeAllWhiteSpace</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><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.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >removeComment</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveComment"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >removeDocWhiteSpace</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >removeDoublicateDefs</TD
 ></TR
@@ -625,17 +577,17 @@
 ><TD CLASS="indexannot"
 >1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AremoveDoublicateDefs"
->Text.XML.HXT.Validator.DTDValidation</A
+><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AremoveDoublicateDefs"
+>Text.XML.HXT.DTDValidation.DTDValidation</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AremoveDoublicateDefs"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AremoveDoublicateDefs"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -655,7 +607,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -663,7 +615,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AremoveOptions"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -671,37 +623,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveQAttr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >removeWhiteSpace</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >replaceChildren</TD
 ></TR
@@ -711,7 +643,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -719,7 +651,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -727,15 +659,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceQName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -815,15 +739,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->rootTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3ArootTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -831,54 +747,10 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->run</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Arun"
->Control.Monad.MonadStateIO</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->run'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun%27"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->run0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun0"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->runHtmlParser</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"
->Text.XML.HXT.Parser.HtmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >runIOLA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-IOListArrow.html#v%3ArunIOLA"
@@ -894,40 +766,20 @@
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >runInLocalURIContext</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInLocalURIContext"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->runInNewURIContext</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInNewURIContext"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >runLA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"
 >Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -935,7 +787,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"
 >Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-S.html b/doc/hdoc/doc-index-S.html
--- a/doc/hdoc/doc-index-S.html
+++ b/doc/hdoc/doc-index-S.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -183,7 +183,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
 >Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -191,15 +191,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"
 >Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->STIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3ASTIO"
->Control.Monad.MonadStateIO</A
-></TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -295,14 +287,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->StateIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >Step</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AStep"
@@ -338,40 +322,12 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
->SysState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3ASysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->SysStateAttrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >sDDecl</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -379,7 +335,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -387,7 +343,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -395,27 +351,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >sattr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asattr"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -675,11 +619,27 @@
 ></TR
 ><TR
 ><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
+><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
+><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.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -687,7 +647,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aselem"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -703,7 +663,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -711,7 +671,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -719,7 +679,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -727,7 +687,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -735,7 +695,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -747,14 +707,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetAttrName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetAttrName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -771,29 +731,17 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrl"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >setBaseURI</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >setChildren</TD
 ></TR
@@ -803,7 +751,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -811,14 +759,14 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
 >setCmt</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetCmt"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetCmt"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -827,14 +775,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetDTDAttrValue"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >setDTDAttrl</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetDTDAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetDTDAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -847,14 +795,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->setDefaultURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DefaultURI.html#v%3AsetDefaultURI"
->Text.XML.HXT.Parser.DefaultURI</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >setDocumentStatus</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"
@@ -873,8 +813,8 @@
 ><TD CLASS="indexentry"
 >setElemAttrl</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemAttrl"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -887,14 +827,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -923,18 +863,10 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->setErrorMsgLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetErrorMsgLevel"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >setName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -943,7 +875,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AsetNamespace"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -955,7 +887,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"
 >Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -963,7 +895,7 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common</TD
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
 ><TD CLASS="indexentry"
@@ -1007,14 +939,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetPiName"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetPiName"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -1023,7 +955,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetQName"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1050,118 +982,30 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >setState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"
 >Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AsetState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->3 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysErrorHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysErrorHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysParamInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysParamTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSystemParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSystemParams"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >setText</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetText"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetText"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >setTraceLevel</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetTraceLevel"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >setUriMap</TD
 ><TD CLASS="indexlinks"
@@ -1179,38 +1023,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->showApos</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowApos"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowAttr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showBlank</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowBlank"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowContent"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >showDatatype</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AshowDatatype"
@@ -1221,81 +1033,9 @@
 ><TD CLASS="indexentry"
 >showElemType</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowElemType"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntity"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showEntityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntityValue"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showEq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEq"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showExternalId</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowExternalId"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showGt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowGt"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showLpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLpar"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showLt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLt"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showNData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNData"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showNL</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNL"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3AshowElemType"
+>Text.XML.HXT.DOM.ShowXml</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1303,55 +1043,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AshowOptions"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showPEAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowPEAttr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQName"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showQuot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuot"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showQuoteString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuoteString"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showRpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowRpar"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showSlash</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowSlash"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1363,75 +1055,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->showXCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXCharRef"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXEntityRef"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXErrors"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXText"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlDTD"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlTrees'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees%27"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >single</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1439,7 +1067,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1447,7 +1075,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1455,7 +1083,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1463,7 +1091,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1471,7 +1099,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1479,7 +1107,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1487,27 +1115,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >spi</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aspi"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aspi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1527,35 +1143,35 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->sq</TD
+>splitRegexA</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitRegexA"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->sqattr</TD
+>splitXmlRegex</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asqattr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitXmlRegex"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->stag</TD
+>sq</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"
+>Text.XML.HXT.Parser.XmlTokenParser</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->statusOk</TD
+>sqattr</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AstatusOk"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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
 ><TD CLASS="indexentry"
@@ -1579,7 +1195,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1587,7 +1203,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AstringProtocol"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1595,7 +1211,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1603,7 +1219,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1611,7 +1227,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1619,7 +1235,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1675,7 +1291,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1687,14 +1303,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->substHtmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AsubstHtmlEntities"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >substHtmlEntityRefs</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"
@@ -1703,14 +1311,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->substXmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AsubstXmlEntities"
->Text.XML.HXT.Parser.XmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >substXmlEntityRefs</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"
@@ -1731,31 +1331,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3Aswap"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sysStateAttrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateAttrs"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sysStateErrorHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateErrorHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1763,7 +1339,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-T.html b/doc/hdoc/doc-index-T.html
--- a/doc/hdoc/doc-index-T.html
+++ b/doc/hdoc/doc-index-T.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -195,7 +195,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -367,9 +367,9 @@
 ><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.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
+>, Data.Tree.NTree.TypeDefs, Data.NavTree, Data.Tree.NTree.Filter, 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
->, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -385,7 +385,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AtName"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -393,7 +393,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_root"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -401,15 +401,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_xml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->tag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -417,7 +409,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -425,7 +417,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -433,15 +425,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->textOfXNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtextOfXNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -449,7 +433,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_html"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -457,7 +441,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -465,7 +449,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml_external_parsed_entity"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -495,7 +479,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3Athis"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -503,7 +487,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -527,7 +511,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -535,15 +519,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->toAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoAttrl"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -551,7 +527,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtoMaybe"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -571,14 +547,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->toTreel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoTreel"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >toXPathTree</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AtoXPathTree"
@@ -594,35 +562,15 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >trace</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Atrace"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->traceCmd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceCmd"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >traceDoc</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceDoc"
@@ -631,73 +579,29 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->traceF</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceF"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >traceMsg</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceMsg"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >traceSource</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceSource"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >traceState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >traceString</TD
 ><TD CLASS="indexlinks"
@@ -706,136 +610,52 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >traceTree</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceTree"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->trans</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Atrans"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >transfAllCdata</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdata"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->transfAllCdataEscaped</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdataEscaped"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >transfAllCharRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCharRef"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >transfCdata</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdata"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
->transfCdataEscaped</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdataEscaped"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >transfCharRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCharRef"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >transferDefaultURI</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferDefaultURI"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -843,7 +663,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferEncoding"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -851,7 +671,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMessage"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -859,7 +679,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMimeType"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -867,7 +687,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferPrefix"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -875,7 +695,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -883,7 +703,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferStatus"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -891,7 +711,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferURI"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -899,7 +719,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferVersion"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -909,17 +729,17 @@
 ><TD CLASS="indexannot"
 >1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DocTransformation.html#v%3Atransform"
->Text.XML.HXT.Validator.DocTransformation</A
+><A HREF="Text-XML-HXT-DTDValidation-DocTransformation.html#v%3Atransform"
+>Text.XML.HXT.DTDValidation.DocTransformation</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Atransform"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Atransform"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -931,33 +751,13 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->trcState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AtrcState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
 >treeRepOfXmlDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
 ><TD CLASS="indexentry"
 >tryFetchAttribute</TD
 ><TD CLASS="indexlinks"
@@ -974,24 +774,12 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >txt</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Atxt"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atxt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-U.html b/doc/hdoc/doc-index-U.html
--- a/doc/hdoc/doc-index-U.html
+++ b/doc/hdoc/doc-index-U.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -271,7 +271,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aucs2"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -303,7 +303,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry3"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -311,7 +311,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry4"
 >Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -343,7 +343,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AunicodeString"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -399,15 +399,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->universalNameOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AuniversalNameOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -415,7 +407,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -423,15 +415,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unparseXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AunparseXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -489,15 +473,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->userState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AuserState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -505,7 +481,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -513,7 +489,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16be"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -529,7 +505,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16le"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -545,7 +521,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-V.html b/doc/hdoc/doc-index-V.html
--- a/doc/hdoc/doc-index-V.html
+++ b/doc/hdoc/doc-index-V.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -219,7 +219,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_0"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -227,7 +227,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -235,7 +235,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_any"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -243,7 +243,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_children"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -251,7 +251,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_choice"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -259,7 +259,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_empty"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -267,7 +267,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_mixed"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -275,7 +275,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_no"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -283,7 +283,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_null"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -291,7 +291,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_option"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -299,7 +299,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_pcdata"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -307,7 +307,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_plus"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -315,7 +315,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_seq"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -323,7 +323,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_star"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -331,7 +331,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_yes"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -341,25 +341,17 @@
 ><TD CLASS="indexannot"
 >1 (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
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Avalidate"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Avalidate"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validate1Namespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
+>Text.XML.HXT.RelaxNG.Validator</A
+>, Text.XML.HXT.RelaxNG</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -369,17 +361,17 @@
 ><TD CLASS="indexannot"
 >1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AvalidateDTD"
->Text.XML.HXT.Validator.DTDValidation</A
+><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AvalidateDTD"
+>Text.XML.HXT.DTDValidation.DTDValidation</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDTD"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDTD"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -397,17 +389,17 @@
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DocValidation.html#v%3AvalidateDoc"
->Text.XML.HXT.Validator.DocValidation</A
+><A HREF="Text-XML-HXT-DTDValidation-DocValidation.html#v%3AvalidateDoc"
+>Text.XML.HXT.DTDValidation.DocValidation</A
 ></TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >3 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDoc"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDoc"
+>Text.XML.HXT.DTDValidation.Validation</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -445,26 +437,14 @@
 ><TD CLASS="indexentry"
 >validateIds</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-IdValidation.html#v%3AvalidateIds"
->Text.XML.HXT.Validator.IdValidation</A
+><A HREF="Text-XML-HXT-DTDValidation-IdValidation.html#v%3AvalidateIds"
+>Text.XML.HXT.DTDValidation.IdValidation</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >validateNamespaces</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"
 >Text.XML.HXT.Arrow.Namespace</A
 >, <A HREF="Text-XML-HXT-Arrow.html#v%3AvalidateNamespaces"
@@ -531,17 +511,17 @@
 ><TD CLASS="indexentry"
 >valueOf</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AvalueOf"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOf"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >valueOfDTD</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AvalueOfDTD"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOfDTD"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -557,7 +537,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -565,7 +545,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"
 >Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -573,7 +553,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AversionOptions"
 >Text.XML.HXT.DOM.XmlOptions</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-W.html b/doc/hdoc/doc-index-W.html
--- a/doc/hdoc/doc-index-W.html
+++ b/doc/hdoc/doc-index-W.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -206,24 +206,12 @@
 ></TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >warn</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Awarn"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Awarn"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -235,7 +223,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -243,7 +231,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -251,7 +239,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -263,7 +251,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
@@ -271,7 +259,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -279,7 +267,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
 >Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -287,7 +275,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -295,7 +283,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"
 >Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -303,7 +291,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"
 >Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -330,24 +318,12 @@
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry" COLSPAN="2"
+><TD CLASS="indexentry"
 >writeDocument</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</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
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-X.html b/doc/hdoc/doc-index-X.html
--- a/doc/hdoc/doc-index-X.html
+++ b/doc/hdoc/doc-index-X.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -179,7 +179,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -187,7 +187,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -195,7 +195,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -203,7 +203,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -211,7 +211,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -219,7 +219,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -227,7 +227,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -279,7 +279,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -287,7 +287,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -415,15 +415,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -439,7 +431,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -447,22 +439,38 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><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
+><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
+><TD CLASS="indexentry"
 >XmlFilter</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >XmlNode</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"
+>Text.XML.HXT.DOM.XmlNode</A
 >, Text.XML.HXT.XSLT.Common</TD
 ></TR
 ><TR
@@ -471,7 +479,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -485,39 +493,19 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->XmlSFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->XmlState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
+>XmlRegex</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AXmlState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"
+>Text.XML.HXT.Arrow.XmlRegex</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->XmlStateFilter</TD
+>XmlSFilter</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
+>Text.XML.HXT.DOM.XmlTreeTypes</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -525,7 +513,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, 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
 ><TD CLASS="indexentry"
@@ -533,7 +521,7 @@
 ><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.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -549,7 +537,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -557,7 +545,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl%27"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -641,14 +629,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->xattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axattr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >xboolean</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axboolean"
@@ -657,22 +637,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->xcmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axcmt"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xerr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axerr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >xhtmlEntities</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html#v%3AxhtmlEntities"
@@ -777,14 +741,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->xmlContentModelToString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlContentModelToString"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >xmlEntities</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlEntities.html#v%3AxmlEntities"
@@ -837,7 +793,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlNamespace"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -881,27 +837,11 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->xmlTreesToString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToString"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xmlTreesToText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >xmlnsNamespace</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlnsNamespace"
 >Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -909,7 +849,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AxmlnsQN"
 >Text.XML.HXT.DOM.NamespacePredicates</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -941,6 +881,14 @@
 ></TR
 ><TR
 ><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
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xpAddFixedAttr</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAddFixedAttr"
@@ -1259,7 +1207,7 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
 >Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1519,15 +1467,15 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"
 >Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow</TD
+>, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexannot"
 >2 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"
+>Text.XML.HXT.DOM.ShowXml</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -2003,22 +1951,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->xtag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtag"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xtext</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtext"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >xunpickleDocument</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxunpickleDocument"
@@ -2032,14 +1964,6 @@
 ><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxunpickleVal"
 >Text.XML.HXT.Arrow.Pickle</A
 >, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xwarn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axwarn"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-Z.html b/doc/hdoc/doc-index-Z.html
--- a/doc/hdoc/doc-index-Z.html
+++ b/doc/hdoc/doc-index-Z.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</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,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+>hxt-8.0.0: A collection of tools for processing XML with Haskell. (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc/hxt.haddock b/doc/hdoc/hxt.haddock
new file mode 100644
Binary files /dev/null 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
->Haskell Xml Toolbox 7.5: The complete API</TITLE
+>hxt-8.0.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"
->Haskell Xml Toolbox 7.5: The complete API</TD
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -34,6 +34,15 @@
 ></TR
 ><TR
 ><TD CLASS="section1"
+>hxt-8.0.0: A collection of tools for processing XML with Haskell.</TD
+></TR
+><TR
+><TD CLASS="doc"
+>The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but introduces a more general approach for processing XML with Haskell. The Haskell XML Toolbox uses a generic data model for representing XML documents, including the DTD subset and the document subset, in Haskell. It contains a validating XML parser, a HTML parser, namespace support, an XPath expression evaluator, an XSLT library, a RelaxNG schema validator and funtions for serialization and deserialization of user defined data. The libraray make extensive use of the arrow approach for processing XML.
+</TD
+></TR
+><TR
+><TD CLASS="section1"
 >Modules</TD
 ></TR
 ><TR
@@ -179,31 +188,6 @@
 ><TR
 ><TD STYLE="width: 48em"
 ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"
->Monad</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Monad-MonadStateIO.html"
->Control.Monad.MonadStateIO</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"
 >Strategies</TD
 ><TD
 ></TD
@@ -212,7 +196,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 46em"
 ><A HREF="Control-Strategies-DeepSeq.html"
@@ -231,7 +215,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"
 >Data</TD
 ><TD
 ></TD
@@ -240,7 +224,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 48em"
 ><A HREF="Data-AssocList.html"
@@ -253,7 +237,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"
 >Char</TD
 ><TD
 ></TD
@@ -262,7 +246,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 46em"
 ><A HREF="Data-Char-UTF8.html"
@@ -288,7 +272,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"
 >Tree</TD
 ><TD
 ></TD
@@ -297,7 +281,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 46em"
 ><A HREF="Data-Tree-Class.html"
@@ -310,7 +294,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"
 >NTree</TD
 ><TD
 ></TD
@@ -319,7 +303,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 44em"
 ><A HREF="Data-Tree-NTree-Filter.html"
@@ -351,7 +335,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"
 >System</TD
 ><TD
 ></TD
@@ -360,7 +344,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 48em"
 ><A HREF="System-PipeOpen.html"
@@ -376,7 +360,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"
 >Text</TD
 ><TD
 ></TD
@@ -385,10 +369,10 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"
 ><TR
 ><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"
 >XML</TD
 ><TD
 ></TD
@@ -397,10 +381,10 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"
 ><TR
 ><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"
 >HXT</TD
 ><TD
 ></TD
@@ -409,10 +393,10 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"
 ><TR
 ><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"
 ><A HREF="Text-XML-HXT-Arrow.html"
 >Text.XML.HXT.Arrow</A
 ></TD
@@ -423,17 +407,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-DOMInterface.html"
->Text.XML.HXT.Arrow.DOMInterface</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html"
@@ -506,7 +480,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 42em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"
 ><A HREF="Text-XML-HXT-Arrow-Pickle.html"
 >Text.XML.HXT.Arrow.Pickle</A
 ></TD
@@ -517,7 +491,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 40em"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html"
@@ -623,8 +597,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-Arrow-XmlRegex.html"
+>Text.XML.HXT.Arrow.XmlRegex</A
 ></TD
 ><TD
 ></TD
@@ -636,10 +610,8 @@
 ></TR
 ><TR
 ><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:14')" ALT="show/hide"
-><A HREF="Text-XML-HXT-DOM.html"
->Text.XML.HXT.DOM</A
-></TD
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"
+>DOM</TD
 ><TD
 ></TD
 ><TD
@@ -647,17 +619,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:14" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html"
->Text.XML.HXT.DOM.EditFilters</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"
@@ -670,8 +632,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html"
->Text.XML.HXT.DOM.IsoLatinTables</A
+><A HREF="Text-XML-HXT-DOM-Interface.html"
+>Text.XML.HXT.DOM.Interface</A
 ></TD
 ><TD
 ></TD
@@ -680,8 +642,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-Namespace.html"
->Text.XML.HXT.DOM.Namespace</A
+><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html"
+>Text.XML.HXT.DOM.IsoLatinTables</A
 ></TD
 ><TD
 ></TD
@@ -690,8 +652,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"
->Text.XML.HXT.DOM.NamespaceFilter</A
+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
+>Text.XML.HXT.DOM.NamespacePredicates</A
 ></TD
 ><TD
 ></TD
@@ -700,8 +662,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
->Text.XML.HXT.DOM.NamespacePredicates</A
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
 ></TD
 ><TD
 ></TD
@@ -710,8 +672,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html"
->Text.XML.HXT.DOM.QualifiedName</A
+><A HREF="Text-XML-HXT-DOM-ShowXml.html"
+>Text.XML.HXT.DOM.ShowXml</A
 ></TD
 ><TD
 ></TD
@@ -770,38 +732,8 @@
 ></TR
 ><TR
 ><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-XmlState.html"
->Text.XML.HXT.DOM.XmlState</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTree.html"
->Text.XML.HXT.DOM.XmlTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"
->Text.XML.HXT.DOM.XmlTreeFilter</A
+><A HREF="Text-XML-HXT-DOM-XmlNode.html"
+>Text.XML.HXT.DOM.XmlNode</A
 ></TD
 ><TD
 ></TD
@@ -810,8 +742,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
+><A HREF="Text-XML-HXT-DOM-XmlOptions.html"
+>Text.XML.HXT.DOM.XmlOptions</A
 ></TD
 ><TD
 ></TD
@@ -833,8 +765,8 @@
 ></TR
 ><TR
 ><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:15')" ALT="show/hide"
->IO</TD
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:14')" ALT="show/hide"
+>DTDValidation</TD
 ><TD
 ></TD
 ><TD
@@ -842,11 +774,11 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:15" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:14" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-IO-GetFILE.html"
->Text.XML.HXT.IO.GetFILE</A
+><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html"
+>Text.XML.HXT.DTDValidation.AttributeValueValidation</A
 ></TD
 ><TD
 ></TD
@@ -855,8 +787,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-IO-GetHTTPCurl.html"
->Text.XML.HXT.IO.GetHTTPCurl</A
+><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html"
+>Text.XML.HXT.DTDValidation.DTDValidation</A
 ></TD
 ><TD
 ></TD
@@ -865,22 +797,18 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-IO-GetHTTPNative.html"
->Text.XML.HXT.IO.GetHTTPNative</A
+><A HREF="Text-XML-HXT-DTDValidation-DocTransformation.html"
+>Text.XML.HXT.DTDValidation.DocTransformation</A
 ></TD
 ><TD
 ></TD
 ><TD
 ></TD
 ></TR
-></TABLE
-></TD
-></TR
 ><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:16')" ALT="show/hide"
-><A HREF="Text-XML-HXT-Parser.html"
->Text.XML.HXT.Parser</A
+><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-DTDValidation-DocValidation.html"
+>Text.XML.HXT.DTDValidation.DocValidation</A
 ></TD
 ><TD
 ></TD
@@ -888,12 +816,9 @@
 ></TD
 ></TR
 ><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:16" STYLE="display:block;"
-><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html"
->Text.XML.HXT.Parser.DTDProcessing</A
+><A HREF="Text-XML-HXT-DTDValidation-IdValidation.html"
+>Text.XML.HXT.DTDValidation.IdValidation</A
 ></TD
 ><TD
 ></TD
@@ -902,8 +827,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-DefaultURI.html"
->Text.XML.HXT.Parser.DefaultURI</A
+><A HREF="Text-XML-HXT-DTDValidation-RE.html"
+>Text.XML.HXT.DTDValidation.RE</A
 ></TD
 ><TD
 ></TD
@@ -912,8 +837,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html"
->Text.XML.HXT.Parser.HtmlParsec</A
+><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html"
+>Text.XML.HXT.DTDValidation.TypeDefs</A
 ></TD
 ><TD
 ></TD
@@ -922,8 +847,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html"
->Text.XML.HXT.Parser.HtmlParser</A
+><A HREF="Text-XML-HXT-DTDValidation-Validation.html"
+>Text.XML.HXT.DTDValidation.Validation</A
 ></TD
 ><TD
 ></TD
@@ -932,28 +857,33 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html"
->Text.XML.HXT.Parser.MainFunctions</A
+><A HREF="Text-XML-HXT-DTDValidation-XmlRE.html"
+>Text.XML.HXT.DTDValidation.XmlRE</A
 ></TD
 ><TD
 ></TD
 ><TD
 ></TD
 ></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html"
->Text.XML.HXT.Parser.ProtocolHandler</A
+></TABLE
 ></TD
+></TR
+><TR
+><TD STYLE="width: 44em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:15')" ALT="show/hide"
+>IO</TD
 ><TD
 ></TD
 ><TD
 ></TD
 ></TR
 ><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:15" STYLE="display:block;"
+><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html"
->Text.XML.HXT.Parser.ProtocolHandlerFile</A
+><A HREF="Text-XML-HXT-IO-GetFILE.html"
+>Text.XML.HXT.IO.GetFILE</A
 ></TD
 ><TD
 ></TD
@@ -962,8 +892,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html"
->Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A
+><A HREF="Text-XML-HXT-IO-GetHTTPCurl.html"
+>Text.XML.HXT.IO.GetHTTPCurl</A
 ></TD
 ><TD
 ></TD
@@ -972,18 +902,33 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A
+><A HREF="Text-XML-HXT-IO-GetHTTPNative.html"
+>Text.XML.HXT.IO.GetHTTPNative</A
 ></TD
 ><TD
 ></TD
 ><TD
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
+><TD STYLE="width: 44em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:16')" ALT="show/hide"
+>Parser</TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:16" STYLE="display:block;"
+><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html"
+>Text.XML.HXT.Parser.HtmlParsec</A
 ></TD
 ><TD
 ></TD
@@ -1062,26 +1007,6 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html"
->Text.XML.HXT.Parser.XmlInput</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html"
->Text.XML.HXT.Parser.XmlOutput</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html"
 >Text.XML.HXT.Parser.XmlParsec</A
 ></TD
@@ -1092,16 +1017,6 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlParser.html"
->Text.XML.HXT.Parser.XmlParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"
 >Text.XML.HXT.Parser.XmlTokenParser</A
 ></TD
@@ -1353,111 +1268,6 @@
 ><TR
 ><TD STYLE="width: 44em"
 ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:20')" ALT="show/hide"
->Validator</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:20" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html"
->Text.XML.HXT.Validator.AttributeValueValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-DTDValidation.html"
->Text.XML.HXT.Validator.DTDValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-DocTransformation.html"
->Text.XML.HXT.Validator.DocTransformation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-DocValidation.html"
->Text.XML.HXT.Validator.DocValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-IdValidation.html"
->Text.XML.HXT.Validator.IdValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-RE.html"
->Text.XML.HXT.Validator.RE</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-Validation.html"
->Text.XML.HXT.Validator.Validation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html"
->Text.XML.HXT.Validator.ValidationFilter</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-XmlRE.html"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:21')" ALT="show/hide"
 ><A HREF="Text-XML-HXT-XPath.html"
 >Text.XML.HXT.XPath</A
 ></TD
@@ -1468,7 +1278,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:21" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:20" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-XPath-NavTree.html"
@@ -1564,7 +1374,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:22')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:21')" ALT="show/hide"
 >XSLT</TD
 ><TD
 ></TD
@@ -1573,7 +1383,7 @@
 ></TR
 ><TR
 ><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:22" STYLE="display:block;"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:21" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-XSLT-Application.html"
diff --git a/doc/hdoc/src/Control-Arrow-ArrowIO.html b/doc/hdoc/src/Control-Arrow-ArrowIO.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ArrowIO.html
@@ -0,0 +1,81 @@
+<!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     : Control.Arrow.ArrowIO
+<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: ArrowIO.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Lifting of IO actions to 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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='conid'>ArrowIO</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='conid'>ArrowIOIf</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</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>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='comment'>-- | the interface for converting an IO action into an arrow</span>
+<a name="line-28"></a>
+<a name="line-29"></a><a name="ArrowIO"></a><span class='keyword'>class</span> <span class='conid'>Arrow</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowIO</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-30"></a>
+<a name="line-31"></a>    <span class='comment'>-- | construct an arrow from an IO action</span>
+<a name="line-32"></a>    <span class='varid'>arrIO</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</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>
+<a name="line-33"></a>
+<a name="line-34"></a>    <span class='comment'>-- | construct an arrow from an IO action without any parameter</span>
+<a name="line-35"></a>    <span class='varid'>arrIO0</span>		<span class='keyglyph'>::</span> <span class='conid'>IO</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'>arrIO0</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-37"></a>
+<a name="line-38"></a>    <span class='comment'>-- | construction of a 2 argument arrow from a binary IO action</span>
+<a name="line-39"></a>    <span class='comment'>-- |</span>
+<a name="line-40"></a>    <span class='comment'>-- | example: @ a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f @</span>
+<a name="line-41"></a>
+<a name="line-42"></a>    <span class='varid'>arrIO2</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b2</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='varid'>b2</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-43"></a>    <span class='varid'>arrIO2</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</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='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span><span class='layout'>)</span>
+<a name="line-44"></a>
+<a name="line-45"></a>    <span class='comment'>-- | construction of a 3 argument arrow from a 3-ary IO action</span>
+<a name="line-46"></a>    <span class='comment'>-- |</span>
+<a name="line-47"></a>    <span class='comment'>-- | example: @ a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f @</span>
+<a name="line-48"></a>
+<a name="line-49"></a>    <span class='varid'>arrIO3</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b3</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='varid'>b3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-50"></a>    <span class='varid'>arrIO3</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='varid'>x3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span><span class='layout'>)</span>
+<a name="line-51"></a>
+<a name="line-52"></a>    <span class='comment'>-- | construction of a 4 argument arrow from a 4-ary IO action</span>
+<a name="line-53"></a>    <span class='comment'>-- |</span>
+<a name="line-54"></a>    <span class='comment'>-- | example: @ a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f @</span>
+<a name="line-55"></a>
+<a name="line-56"></a>    <span class='varid'>arrIO4</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b3</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b4</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b3</span><span class='layout'>,</span> <span class='varid'>b4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-57"></a>    <span class='varid'>arrIO4</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x3</span><span class='layout'>,</span> <span class='varid'>x4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span> <span class='varid'>x4</span><span class='layout'>)</span>
+<a name="line-58"></a>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- | the interface for converting an IO predicate into a list arrow</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="ArrowIOIf"></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='conid'>ArrowIO</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowIOIf</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-63"></a>
+<a name="line-64"></a>    <span class='comment'>-- | builds an arrow from an IO predicate</span>
+<a name="line-65"></a>    <span class='comment'>--</span>
+<a name="line-66"></a>    <span class='comment'>-- if the predicate holds, the single list containing the input is returned, else the empty list,</span>
+<a name="line-67"></a>    <span class='comment'>-- similar to 'Control.Arrow.ArrowList.isA'</span>
+<a name="line-68"></a>
+<a name="line-69"></a>    <span class='varid'>isIOA</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-70"></a>
+<a name="line-71"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ArrowIf.html b/doc/hdoc/src/Control-Arrow-ArrowIf.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ArrowIf.html
@@ -0,0 +1,168 @@
+<!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     : Control.Arrow.ArrowIf
+<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: ArrowIf.hs,v 1.8 2006/05/04 14:17:53 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Conditionals for List Arrows
+<a name="line-14"></a>
+<a name="line-15"></a>This module defines conditional combinators for list arrows.
+<a name="line-16"></a>
+<a name="line-17"></a>The empty list as result represents False, none empty lists True.
+<a name="line-18"></a>
+<a name="line-19"></a>-}</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='keyword'>module</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-24"></a>    <span class='layout'>(</span> <span class='keyword'>module</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='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>where</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</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'>ArrowList</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-32"></a>    <span class='layout'>(</span> <span class='varid'>partition</span> <span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='comment'>-- | The interface for arrows as conditionals.</span>
+<a name="line-37"></a><span class='comment'>--</span>
+<a name="line-38"></a><span class='comment'>-- Requires list arrows because False is represented as empty list, True as none empty lists.</span>
+<a name="line-39"></a><span class='comment'>--</span>
+<a name="line-40"></a><span class='comment'>-- Only 'ifA' and 'orElse' don't have default implementations</span>
+<a name="line-41"></a>
+<a name="line-42"></a><a name="ArrowIf"></a><span class='keyword'>class</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowIf</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-43"></a>
+<a name="line-44"></a>    <span class='comment'>-- | if lifted to arrows</span>
+<a name="line-45"></a>
+<a name="line-46"></a>    <span class='varid'>ifA</span>			<span class='keyglyph'>::</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'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-47"></a>
+<a name="line-48"></a>    <span class='comment'>-- | shortcut: @ ifP p = ifA (isA p) @</span>
+<a name="line-49"></a>
+<a name="line-50"></a>    <span class='varid'>ifP</span>			<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-51"></a>    <span class='varid'>ifP</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-52"></a>
+<a name="line-53"></a>    <span class='comment'>-- | negation: @ neg f = ifA f none this @</span>
+<a name="line-54"></a>
+<a name="line-55"></a>    <span class='varid'>neg</span>			<span class='keyglyph'>::</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'>b</span>
+<a name="line-56"></a>    <span class='varid'>neg</span>	<span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>f</span> <span class='varid'>none</span> <span class='varid'>this</span>
+<a name="line-57"></a>
+<a name="line-58"></a>    <span class='comment'>-- | @ f \`when\` g @ : when the predicate g holds, f is applied, else the identity filter this</span>
+<a name="line-59"></a>
+<a name="line-60"></a>    <span class='varid'>when</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</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'>b</span>
+<a name="line-61"></a>    <span class='varid'>f</span> <span class='varop'>`when`</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>this</span>
+<a name="line-62"></a>
+<a name="line-63"></a>    <span class='comment'>-- | shortcut: @ f \`whenP\` p = f \`when\` (isA p) @</span>
+<a name="line-64"></a>
+<a name="line-65"></a>    <span class='varid'>whenP</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</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='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-66"></a>    <span class='varid'>f</span> <span class='varop'>`whenP`</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>this</span>
+<a name="line-67"></a>
+<a name="line-68"></a>    <span class='comment'>-- | @ f \`whenNot\` g @ : when the predicate g does not hold, f is applied, else the identity filter this</span>
+<a name="line-69"></a>
+<a name="line-70"></a>    <span class='varid'>whenNot</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</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'>b</span>
+<a name="line-71"></a>    <span class='varid'>f</span> <span class='varop'>`whenNot`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>this</span> <span class='varid'>f</span>
+<a name="line-72"></a>
+<a name="line-73"></a>    <span class='comment'>-- | like 'whenP'</span>
+<a name="line-74"></a>
+<a name="line-75"></a>    <span class='varid'>whenNotP</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</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='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-76"></a>    <span class='varid'>f</span> <span class='varop'>`whenNotP`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='varid'>g</span> <span class='varid'>this</span> <span class='varid'>f</span>
+<a name="line-77"></a>
+<a name="line-78"></a>    <span class='comment'>-- | @ g \`guards\` f @ : when the predicate g holds, f is applied, else none</span>
+<a name="line-79"></a>
+<a name="line-80"></a>    <span class='varid'>guards</span>		<span class='keyglyph'>::</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'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-81"></a>    <span class='varid'>f</span> <span class='varop'>`guards`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>f</span> <span class='varid'>g</span> <span class='varid'>none</span>
+<a name="line-82"></a>
+<a name="line-83"></a>    <span class='comment'>-- | like 'whenP'</span>
+<a name="line-84"></a>
+<a name="line-85"></a>    <span class='varid'>guardsP</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-86"></a>    <span class='varid'>f</span> <span class='varop'>`guardsP`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='varid'>f</span> <span class='varid'>g</span> <span class='varid'>none</span>
+<a name="line-87"></a>
+<a name="line-88"></a>    <span class='comment'>-- | shortcut for @ f `guards` this @</span>
+<a name="line-89"></a>
+<a name="line-90"></a>    <span class='varid'>filterA</span>		<span class='keyglyph'>::</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'>b</span>
+<a name="line-91"></a>    <span class='varid'>filterA</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>f</span> <span class='varid'>this</span> <span class='varid'>none</span>
+<a name="line-92"></a>
+<a name="line-93"></a>    <span class='comment'>-- | @ f \`containing\` g @ : keep only those results from f for which g holds</span>
+<a name="line-94"></a>    <span class='comment'>--</span>
+<a name="line-95"></a>    <span class='comment'>-- definition: @ f \`containing\` g = f &gt;&gt;&gt; g \`guards\` this @</span>
+<a name="line-96"></a>
+<a name="line-97"></a>    <span class='varid'>containing</span>		<span class='keyglyph'>::</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'>c</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-98"></a>    <span class='varid'>f</span> <span class='varop'>`containing`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>g</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-99"></a>
+<a name="line-100"></a>    <span class='comment'>-- | @ f \`notContaining\` g @ : keep only those results from f for which g does not hold</span>
+<a name="line-101"></a>    <span class='comment'>--</span>
+<a name="line-102"></a>    <span class='comment'>-- definition: @ f \`notContaining\` g = f &gt;&gt;&gt; ifA g none this @</span>
+<a name="line-103"></a>
+<a name="line-104"></a>    <span class='varid'>notContaining</span>	<span class='keyglyph'>::</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'>c</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-105"></a>    <span class='varid'>f</span> <span class='varop'>`notContaining`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>none</span> <span class='varid'>this</span>
+<a name="line-106"></a>
+<a name="line-107"></a>    <span class='comment'>-- | @ f \`orElse\` g @ : directional choice: if f succeeds, the result of f is the result, else g is applied</span>
+<a name="line-108"></a>    <span class='varid'>orElse</span>		<span class='keyglyph'>::</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> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-109"></a>
+<a name="line-110"></a>    <span class='comment'>-- | generalisation of 'orElse' for multi way branches like in case expressions.</span>
+<a name="line-111"></a>    <span class='comment'>--</span>
+<a name="line-112"></a>    <span class='comment'>-- An auxiliary data type 'IfThen' with an infix constructor ':-&gt;' is used for writing multi way branches</span>
+<a name="line-113"></a>    <span class='comment'>--</span>
+<a name="line-114"></a>    <span class='comment'>-- example: @ choiceA [ p1 :-&gt; e1, p2 :-&gt; e2, this :-&gt; default ] @</span>
+<a name="line-115"></a>    <span class='varid'>choiceA</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='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-116"></a>    <span class='varid'>choiceA</span> 		<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>ifA'</span> <span class='varid'>none</span>
+<a name="line-117"></a>			  <span class='keyword'>where</span>
+<a name="line-118"></a>			  <span class='varid'>ifA'</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='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>f</span>
+<a name="line-119"></a>
+<a name="line-120"></a>
+<a name="line-121"></a>    <span class='comment'>-- | tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right</span>
+<a name="line-122"></a>    <span class='varid'>tagA</span>		<span class='keyglyph'>::</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='layout'>(</span><span class='conid'>Either</span> <span class='varid'>b</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-123"></a>    <span class='varid'>tagA</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='conid'>Left</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='conid'>Right</span><span class='layout'>)</span>
+<a name="line-124"></a>
+<a name="line-125"></a>
+<a name="line-126"></a>    <span class='comment'>-- | split a list value with an arrow and returns a pair of lists.</span>
+<a name="line-127"></a>    <span class='comment'>-- This is the arrow version of 'span'. The arrow is deterministic.</span>
+<a name="line-128"></a>    <span class='comment'>--</span>
+<a name="line-129"></a>    <span class='comment'>-- example: @ runLA (spanA (isA (\/= \'-\'))) \"abc-def\" @ gives @ [(\"abc\",\"-def\")] @ as result</span>
+<a name="line-130"></a>
+<a name="line-131"></a>    <span class='varid'>spanA</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-132"></a>    <span class='varid'>spanA</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='layout'>(</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'>p</span> <span class='layout'>)</span>
+<a name="line-133"></a>			  <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>head</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>tail</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>spanA</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-134"></a>			    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-135"></a>			    <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>xs</span><span class='layout'>,</span><span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>ys</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-136"></a>			  <span class='layout'>)</span>
+<a name="line-137"></a>                          <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span><span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-138"></a>
+<a name="line-139"></a>    <span class='comment'>-- | partition a list of values into a pair of lists</span>
+<a name="line-140"></a>    <span class='comment'>--</span>
+<a name="line-141"></a>    <span class='comment'>-- This is the arrow Version of 'Data.List.partition'</span>
+<a name="line-142"></a>
+<a name="line-143"></a>    <span class='varid'>partitionA</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-144"></a>    <span class='varid'>partitionA</span>	<span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>id</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>tagA</span> <span class='varid'>p</span> <span class='layout'>)</span>
+<a name="line-145"></a>			  <span class='varop'>&gt;&gt;^</span>
+<a name="line-146"></a>			  <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>l1</span><span class='layout'>,</span> <span class='varid'>l2</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>unTag</span> <span class='varid'>l1</span><span class='layout'>,</span> <span class='varid'>unTag</span> <span class='varid'>l2</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isLeft</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-147"></a>	                  <span class='keyword'>where</span>
+<a name="line-148"></a>			  <span class='varid'>isLeft</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-149"></a>			  <span class='varid'>isLeft</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-150"></a>			  <span class='varid'>unTag</span>	<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>id</span> <span class='varid'>id</span><span class='layout'>)</span>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-153"></a>
+<a name="line-154"></a><span class='comment'>-- | an auxiliary data type for 'choiceA'</span>
+<a name="line-155"></a>
+<a name="line-156"></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-157"></a>
+<a name="line-158"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ArrowList.html b/doc/hdoc/src/Control-Arrow-ArrowList.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ArrowList.html
@@ -0,0 +1,356 @@
+<!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     : Control.Arrow.ArrowList
+<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: ArrowList.hs,v 1.11 2006/06/01 12:59:04 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>The List Arrow Class
+<a name="line-14"></a>
+<a name="line-15"></a>This module defines the interface for list arrows.
+<a name="line-16"></a>
+<a name="line-17"></a>A list arrow is a function, that gives a list of results
+<a name="line-18"></a>for a given argument. A single element result represents a normal function.
+<a name="line-19"></a>An empty list oven indicates, the function is undefined for the given argument.
+<a name="line-20"></a>The empty list may also represent False, none empty lists True.
+<a name="line-21"></a>A list with more than one element gives all results for a nondeterministic function.
+<a name="line-22"></a>
+<a name="line-23"></a>-}</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='keyword'>module</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='layout'>(</span> <span class='conid'>ArrowList</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a><span class='keyword'>where</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>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>infixl</span> <span class='num'>8</span> <span class='varop'>&gt;&gt;.</span><span class='layout'>,</span> <span class='varop'>&gt;.</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='keyword'>infixl</span> <span class='num'>2</span> <span class='varop'>$&lt;</span><span class='layout'>,</span> <span class='varop'>$&lt;&lt;</span><span class='layout'>,</span> <span class='varop'>$&lt;&lt;&lt;</span><span class='layout'>,</span> <span class='varop'>$&lt;&lt;&lt;&lt;</span>
+<a name="line-37"></a><span class='keyword'>infixl</span> <span class='num'>2</span> <span class='varop'>$&lt;$</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'>-- | The interface for list arrows</span>
+<a name="line-42"></a><span class='comment'>--</span>
+<a name="line-43"></a><span class='comment'>-- Only 'mkA', 'arr2A', 'isA' '(&gt;&gt;.)' don't have default implementations</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="ArrowList"></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='conid'>ArrowPlus</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowZero</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowApply</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-46"></a>
+<a name="line-47"></a>    <span class='comment'>-- | construction of a 2 argument arrow from a binary function</span>
+<a name="line-48"></a>    <span class='comment'>-- |</span>
+<a name="line-49"></a>    <span class='comment'>-- | example: @ a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f @</span>
+<a name="line-50"></a>
+<a name="line-51"></a>    <span class='varid'>arr2</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='varid'>b2</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-52"></a>    <span class='varid'>arr2</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>.</span> <span class='varid'>uncurry</span>
+<a name="line-53"></a>
+<a name="line-54"></a>    <span class='comment'>-- | construction of a 3 argument arrow from a 3-ary function</span>
+<a name="line-55"></a>    <span class='comment'>-- |</span>
+<a name="line-56"></a>    <span class='comment'>-- | example: @ a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f @</span>
+<a name="line-57"></a>
+<a name="line-58"></a>    <span class='varid'>arr3</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b3</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='varid'>b3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-59"></a>    <span class='varid'>arr3</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='varid'>x3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span><span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></a>    <span class='comment'>-- | construction of a 4 argument arrow from a 4-ary function</span>
+<a name="line-62"></a>    <span class='comment'>-- |</span>
+<a name="line-63"></a>    <span class='comment'>-- | example: @ a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f @</span>
+<a name="line-64"></a>
+<a name="line-65"></a>    <span class='varid'>arr4</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b3</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b4</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b3</span><span class='layout'>,</span> <span class='varid'>b4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-66"></a>    <span class='varid'>arr4</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x3</span><span class='layout'>,</span> <span class='varid'>x4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span> <span class='varid'>x4</span><span class='layout'>)</span>
+<a name="line-67"></a>
+<a name="line-68"></a>    <span class='comment'>-- | construction of a 2 argument arrow from a singe argument arrow</span>
+<a name="line-69"></a>
+<a name="line-70"></a>    <span class='varid'>arr2A</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='varid'>c</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='comment'>-- | constructor for a list arrow from a function with a list as result</span>
+<a name="line-73"></a>
+<a name="line-74"></a>    <span class='varid'>arrL</span>		<span class='keyglyph'>::</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='varid'>b</span> <span class='varid'>c</span>
+<a name="line-75"></a>
+<a name="line-76"></a>    <span class='comment'>-- | constructor for a list arrow with 2 arguments</span>
+<a name="line-77"></a>
+<a name="line-78"></a>    <span class='varid'>arr2L</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</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='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>
+<a name="line-79"></a>    <span class='varid'>arr2L</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>.</span> <span class='varid'>uncurry</span>
+<a name="line-80"></a>
+<a name="line-81"></a>    <span class='comment'>-- | constructor for a const arrow: @ constA = arr . const @</span>
+<a name="line-82"></a>
+<a name="line-83"></a>    <span class='varid'>constA</span>		<span class='keyglyph'>::</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-84"></a>    <span class='varid'>constA</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>.</span> <span class='varid'>const</span>
+<a name="line-85"></a>
+<a name="line-86"></a>    <span class='comment'>-- | constructor for a const arrow: @ constL = arrL . const @</span>
+<a name="line-87"></a>
+<a name="line-88"></a>    <span class='varid'>constL</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-89"></a>    <span class='varid'>constL</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>.</span> <span class='varid'>const</span>
+<a name="line-90"></a>
+<a name="line-91"></a>    <span class='comment'>-- | builds an arrow from a predicate.</span>
+<a name="line-92"></a>    <span class='comment'>-- If the predicate holds, the single list containing the input is returned, else the empty list</span>
+<a name="line-93"></a>
+<a name="line-94"></a>    <span class='varid'>isA</span>			<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-95"></a>
+<a name="line-96"></a>    <span class='comment'>-- | combinator for converting the result of a list arrow into another list</span>
+<a name="line-97"></a>    <span class='comment'>--</span>
+<a name="line-98"></a>    <span class='comment'>-- example: @ foo &gt;&gt;. reverse @ reverses the the result of foo</span>
+<a name="line-99"></a>    <span class='comment'>--</span>
+<a name="line-100"></a>    <span class='comment'>-- example: @ foo &gt;&gt;. take 1 @ constructs a deterministic version of foo by deleting all further results</span>
+<a name="line-101"></a>
+<a name="line-102"></a>    <span class='layout'>(</span><span class='varop'>&gt;&gt;.</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</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='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-103"></a>
+<a name="line-104"></a>    <span class='comment'>-- | combinator for converting the result of an arrow into a single element result</span>
+<a name="line-105"></a>
+<a name="line-106"></a>    <span class='layout'>(</span><span class='varop'>&gt;.</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span>  <span class='varid'>d</span> <span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-107"></a>    <span class='varid'>af</span> <span class='varop'>&gt;.</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>af</span> <span class='varop'>&gt;&gt;.</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='layout'>)</span>
+<a name="line-108"></a>
+<a name="line-109"></a>    <span class='comment'>-- | combinator for converting an arrow into a determinstic version with all results collected in a single element list</span>
+<a name="line-110"></a>    <span class='comment'>--</span>
+<a name="line-111"></a>    <span class='comment'>-- @ listA af = af &gt;&gt;. (:[]) @</span>
+<a name="line-112"></a>    <span class='comment'>--</span>
+<a name="line-113"></a>    <span class='comment'>-- this is useful when the list of results computed by an arrow must be manipulated (e.g. sorted)</span>
+<a name="line-114"></a>    <span class='comment'>--</span>
+<a name="line-115"></a>    <span class='comment'>-- example for sorting the results of a filter</span>
+<a name="line-116"></a>    <span class='comment'>--</span>
+<a name="line-117"></a>    <span class='comment'>-- &gt; collectAndSort         :: a b c -&gt; a b c</span>
+<a name="line-118"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-119"></a>    <span class='comment'>-- &gt; collectAndSort collect = listA collect &gt;&gt;&gt; arrL sort</span>
+<a name="line-120"></a>
+<a name="line-121"></a>    <span class='varid'>listA</span>		<span class='keyglyph'>::</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='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-122"></a>    <span class='varid'>listA</span> <span class='varid'>af</span>		<span class='keyglyph'>=</span> <span class='varid'>af</span> <span class='varop'>&gt;&gt;.</span>  <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-123"></a>
+<a name="line-124"></a>    <span class='comment'>-- | the inverse of 'listA'</span>
+<a name="line-125"></a>    <span class='comment'>--</span>
+<a name="line-126"></a>    <span class='comment'>-- @ listA af &gt;&gt;&gt; unlistA = af @</span>
+<a name="line-127"></a>    <span class='comment'>--</span>
+<a name="line-128"></a>    <span class='comment'>-- unlistA is defined as @ arrL id @</span>
+<a name="line-129"></a>
+<a name="line-130"></a>    <span class='varid'>unlistA</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='varid'>b</span>
+<a name="line-131"></a>    <span class='varid'>unlistA</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varid'>id</span>
+<a name="line-132"></a>
+<a name="line-133"></a>    <span class='comment'>-- | the identity arrow, alias for returnA</span>
+<a name="line-134"></a>
+<a name="line-135"></a>    <span class='varid'>this</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-136"></a>    <span class='varid'>this</span>		<span class='keyglyph'>=</span> <span class='varid'>returnA</span>
+<a name="line-137"></a>
+<a name="line-138"></a>    <span class='comment'>-- | the zero arrow, alias for zeroArrow</span>
+<a name="line-139"></a>
+<a name="line-140"></a>    <span class='varid'>none</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-141"></a>    <span class='varid'>none</span>		<span class='keyglyph'>=</span> <span class='varid'>zeroArrow</span>
+<a name="line-142"></a>
+<a name="line-143"></a>    <span class='comment'>-- | converts an arrow, that may fail, into an arrow that always succeeds</span>
+<a name="line-144"></a>    <span class='comment'>--</span>
+<a name="line-145"></a>    <span class='comment'>-- example: @ withDefault none \"abc\" @ is equivalent to @ constA \"abc\" @</span>
+<a name="line-146"></a>
+<a name="line-147"></a>    <span class='varid'>withDefault</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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-148"></a>    <span class='varid'>withDefault</span>	<span class='varid'>a</span> <span class='varid'>d</span>	<span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>&gt;&gt;.</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='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>x</span>
+<a name="line-149"></a>
+<a name="line-150"></a>    <span class='comment'>-- | makes a list arrow deterministic, the number of results is at most 1</span>
+<a name="line-151"></a>    <span class='comment'>--</span>
+<a name="line-152"></a>    <span class='comment'>-- definition</span>
+<a name="line-153"></a>    <span class='comment'>--</span>
+<a name="line-154"></a>    <span class='comment'>-- &gt; single f = f &gt;&gt;. take 1</span>
+<a name="line-155"></a>    <span class='comment'>--</span>
+<a name="line-156"></a>    <span class='comment'>-- examples with strings:</span>
+<a name="line-157"></a>    <span class='comment'>--</span>
+<a name="line-158"></a>    <span class='comment'>-- &gt; runLA ( single none ) "x" == []</span>
+<a name="line-159"></a>    <span class='comment'>-- &gt; runLA ( single this ) "x" == ["x"]</span>
+<a name="line-160"></a>    <span class='comment'>-- &gt; runLA ( single</span>
+<a name="line-161"></a>    <span class='comment'>-- &gt;         (constA "y"</span>
+<a name="line-162"></a>    <span class='comment'>-- &gt;          &lt;+&gt; this ) ) "x" == ["y"]</span>
+<a name="line-163"></a>
+<a name="line-164"></a>    <span class='varid'>single</span>		<span class='keyglyph'>::</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-165"></a>    <span class='varid'>single</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>take</span> <span class='num'>1</span>
+<a name="line-166"></a>
+<a name="line-167"></a>    <span class='comment'>-- | compute an arrow from the input and apply the arrow to this input</span>
+<a name="line-168"></a>    <span class='comment'>--</span>
+<a name="line-169"></a>    <span class='comment'>-- definition: @ (f &amp;&amp;&amp; this) &gt;&gt;&gt; app @</span>
+<a name="line-170"></a>    <span class='comment'>--</span>
+<a name="line-171"></a>    <span class='comment'>-- in a point free style, there is no way to use an argument in 2 places,</span>
+<a name="line-172"></a>    <span class='comment'>-- this is a combinator for simulating this. first the argument is used to compute an arrow,</span>
+<a name="line-173"></a>    <span class='comment'>-- then this new arrow is applied to the input</span>
+<a name="line-174"></a>    <span class='comment'>--</span>
+<a name="line-175"></a>    <span class='comment'>-- applyA coresponds to: @ apply f x = let g = f x in g x @</span>
+<a name="line-176"></a>    <span class='comment'>--</span>
+<a name="line-177"></a>    <span class='comment'>-- see also: '$&lt;', '$&lt;&lt;', '$&lt;&lt;&lt;', '$&lt;&lt;&lt;&lt;', '$&lt;$'</span>
+<a name="line-178"></a>
+<a name="line-179"></a>    <span class='varid'>applyA</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</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>
+<a name="line-180"></a>    <span class='varid'>applyA</span> <span class='varid'>f</span>            <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>app</span>
+<a name="line-181"></a>
+<a name="line-182"></a>    <span class='comment'>-- | compute the parameter for an arrow with extra parameters from the input</span>
+<a name="line-183"></a>    <span class='comment'>-- and apply the arrow for all parameter values to the input</span>
+<a name="line-184"></a>    <span class='comment'>--</span>
+<a name="line-185"></a>    <span class='comment'>-- a kind of \"function call\" for arrows, useful for joining arrows</span>
+<a name="line-186"></a>    <span class='comment'>--</span>
+<a name="line-187"></a>    <span class='comment'>-- &gt; infixl 2 ($&lt;)</span>
+<a name="line-188"></a>    <span class='comment'>--</span>
+<a name="line-189"></a>    <span class='comment'>-- definition:</span>
+<a name="line-190"></a>    <span class='comment'>--</span>
+<a name="line-191"></a>    <span class='comment'>-- &gt; g $&lt; f = applyA (f &gt;&gt;&gt; arr g)</span>
+<a name="line-192"></a>    <span class='comment'>--</span>
+<a name="line-193"></a>    <span class='comment'>-- if @f@ fails, the whole arrow fails, e.g. @ g \$\&lt; none == none @</span>
+<a name="line-194"></a>    <span class='comment'>--</span>
+<a name="line-195"></a>    <span class='comment'>-- if @f@ computes n values and @g@ is deterministic, the whole arrow computes n values</span>
+<a name="line-196"></a>    <span class='comment'>--</span>
+<a name="line-197"></a>    <span class='comment'>-- examples with simple list arrows with strings</span>
+<a name="line-198"></a>    <span class='comment'>--</span>
+<a name="line-199"></a>    <span class='comment'>-- &gt; prefixString   :: String -&gt; a String String</span>
+<a name="line-200"></a>    <span class='comment'>-- &gt; prefixString s =  arr (s++)</span>
+<a name="line-201"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-202"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt; none           ) "x" == []</span>
+<a name="line-203"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt; constA "y"     ) "x" == ["yx"]</span>
+<a name="line-204"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt; this           ) "x" == ["xx"]</span>
+<a name="line-205"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt; constA "y"</span>
+<a name="line-206"></a>    <span class='comment'>-- &gt;                         &lt;+&gt; constA "z" ) "x" == ["yx","zx"]</span>
+<a name="line-207"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt; constA "y"</span>
+<a name="line-208"></a>    <span class='comment'>-- &gt;                         &lt;+&gt; this</span>
+<a name="line-209"></a>    <span class='comment'>-- &gt;                         &lt;+&gt; constA "z" ) "x" == ["yx","xx","zx"]</span>
+<a name="line-210"></a>    <span class='comment'>--</span>
+<a name="line-211"></a>    <span class='comment'>-- see also: 'applyA', '$&lt;&lt;', '$&lt;&lt;&lt;', '$&lt;&lt;&lt;&lt;', '$&lt;$'</span>
+<a name="line-212"></a>
+<a name="line-213"></a>    <span class='layout'>(</span><span class='varop'>$&lt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</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'>d</span>
+<a name="line-214"></a>    <span class='varid'>g</span> <span class='varop'>$&lt;</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>g</span><span class='layout'>)</span>
+<a name="line-215"></a>
+<a name="line-216"></a>    <span class='comment'>-- | binary version of '$&lt;'</span>
+<a name="line-217"></a>    <span class='comment'>--</span>
+<a name="line-218"></a>    <span class='comment'>-- example with simple list arrows with strings</span>
+<a name="line-219"></a>    <span class='comment'>--</span>
+<a name="line-220"></a>    <span class='comment'>-- &gt; infixString    :: String -&gt; String -&gt; a String String</span>
+<a name="line-221"></a>    <span class='comment'>-- &gt; infixString s1 s2</span>
+<a name="line-222"></a>    <span class='comment'>-- &gt;                = arr (\ s -&gt; s1 ++ s ++ s2)</span>
+<a name="line-223"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-224"></a>    <span class='comment'>-- &gt; runLA ( infixString $&lt;&lt; constA "y" &amp;&amp;&amp; constA "z" ) "x" = ["yxz"]</span>
+<a name="line-225"></a>    <span class='comment'>-- &gt; runLA ( infixString $&lt;&lt; this &amp;&amp;&amp; this             ) "x" = ["xxx"]</span>
+<a name="line-226"></a>    <span class='comment'>-- &gt; runLA ( infixString $&lt;&lt; constA "y"</span>
+<a name="line-227"></a>    <span class='comment'>-- &gt;                         &amp;&amp;&amp; (constA "z" &lt;+&gt; this) ) "x" = ["yxz", "yxx"]</span>
+<a name="line-228"></a>
+<a name="line-229"></a>    <span class='layout'>(</span><span class='varop'>$&lt;&lt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>c1</span><span class='layout'>,</span> <span class='varid'>c2</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-230"></a>    <span class='varid'>f</span> <span class='varop'>$&lt;&lt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-231"></a>
+<a name="line-232"></a>    <span class='comment'>-- | version of '$&lt;' for arrows with 3 extra parameters</span>
+<a name="line-233"></a>    <span class='comment'>--</span>
+<a name="line-234"></a>    <span class='comment'>-- typical usage</span>
+<a name="line-235"></a>    <span class='comment'>--</span>
+<a name="line-236"></a>    <span class='comment'>-- &gt; f $&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3</span>
+<a name="line-237"></a>
+<a name="line-238"></a>    <span class='layout'>(</span><span class='varop'>$&lt;&lt;&lt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c3</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>c1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c2</span><span class='layout'>,</span> <span class='varid'>c3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-239"></a>    <span class='varid'>f</span> <span class='varop'>$&lt;&lt;&lt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr3</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-240"></a>
+<a name="line-241"></a>    <span class='comment'>-- | version of '$&lt;' for arrows with 4 extra parameters</span>
+<a name="line-242"></a>    <span class='comment'>--</span>
+<a name="line-243"></a>    <span class='comment'>-- typical usage</span>
+<a name="line-244"></a>    <span class='comment'>--</span>
+<a name="line-245"></a>    <span class='comment'>-- &gt; f $&lt;&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3 &amp;&amp;&amp; g4</span>
+<a name="line-246"></a>
+<a name="line-247"></a>    <span class='layout'>(</span><span class='varop'>$&lt;&lt;&lt;&lt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c2</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c3</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c4</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>c1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c2</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c3</span><span class='layout'>,</span> <span class='varid'>c4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>
+<a name="line-248"></a>    <span class='varid'>f</span> <span class='varop'>$&lt;&lt;&lt;&lt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr4</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-249"></a>
+<a name="line-250"></a>    <span class='comment'>-- | compute the parameter for an arrow @f@ with an extra parameter by an arrow @g@</span>
+<a name="line-251"></a>    <span class='comment'>-- and apply all the results from @g@ sequentially to the input</span>
+<a name="line-252"></a>    <span class='comment'>--</span>
+<a name="line-253"></a>    <span class='comment'>-- &gt; infixl 2 ($&lt;$)</span>
+<a name="line-254"></a>    <span class='comment'>--</span>
+<a name="line-255"></a>    <span class='comment'>-- typical usage:</span>
+<a name="line-256"></a>    <span class='comment'>--</span>
+<a name="line-257"></a>    <span class='comment'>-- &gt; g :: a b c</span>
+<a name="line-258"></a>    <span class='comment'>-- &gt; g = ...</span>
+<a name="line-259"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-260"></a>    <span class='comment'>-- &gt; f :: c -&gt; a b b</span>
+<a name="line-261"></a>    <span class='comment'>-- &gt; f x = ... x ...</span>
+<a name="line-262"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-263"></a>    <span class='comment'>-- &gt; f $&lt;$ g</span>
+<a name="line-264"></a>    <span class='comment'>--</span>
+<a name="line-265"></a>    <span class='comment'>-- @f@ computes the extra parameters for @g@ from the input of type @b@ and @g@ is applied with this</span>
+<a name="line-266"></a>    <span class='comment'>-- parameter to the input. This allows programming in a point wise style in @g@, which becomes</span>
+<a name="line-267"></a>    <span class='comment'>-- neccessary, when a value is needed more than once.</span>
+<a name="line-268"></a>    <span class='comment'>--</span>
+<a name="line-269"></a>    <span class='comment'>-- this combinator is useful, when transforming a single value (document) step by step,</span>
+<a name="line-270"></a>    <span class='comment'>-- with @g@ for collecting the data for all steps, and @f@ for transforming the input step by step</span>
+<a name="line-271"></a>    <span class='comment'>--</span>
+<a name="line-272"></a>    <span class='comment'>-- if @g@ is deterministic (computes exactly one result),</span>
+<a name="line-273"></a>    <span class='comment'>-- @ g $\&lt;$ f == g $\&lt; f @ holds</span>
+<a name="line-274"></a>    <span class='comment'>--</span>
+<a name="line-275"></a>    <span class='comment'>-- if @g@ fails, @ f $&lt;$ g == this @</span>
+<a name="line-276"></a>    <span class='comment'>--</span>
+<a name="line-277"></a>    <span class='comment'>-- if @g@ computes more than one result, @f@ is applied sequentially to the input for every result from @g@</span>
+<a name="line-278"></a>    <span class='comment'>--</span>
+<a name="line-279"></a>    <span class='comment'>-- examples with simple list arrows with strings</span>
+<a name="line-280"></a>    <span class='comment'>--</span>
+<a name="line-281"></a>    <span class='comment'>-- &gt; prefixString   :: String -&gt; a String String</span>
+<a name="line-282"></a>    <span class='comment'>-- &gt; prefixString s =  arr (s++)</span>
+<a name="line-283"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-284"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt;$ none                      ) "x" == ["x"]</span>
+<a name="line-285"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt;$ constA "y"                ) "x" == ["yx"]</span>
+<a name="line-286"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt;$ constA "y" &lt;+&gt; constA "z" ) "x" == ["zyx"]</span>
+<a name="line-287"></a>    <span class='comment'>-- &gt; runLA ( prefixString $&lt;$ constA "y" &lt;+&gt; this</span>
+<a name="line-288"></a>    <span class='comment'>-- &gt;                          &lt;+&gt; constA "z"            ) "x" == ["zxyx"]</span>
+<a name="line-289"></a>    <span class='comment'>--</span>
+<a name="line-290"></a>    <span class='comment'>-- example with two extra parameter</span>
+<a name="line-291"></a>    <span class='comment'>--</span>
+<a name="line-292"></a>    <span class='comment'>-- &gt; g1 :: a b c1</span>
+<a name="line-293"></a>    <span class='comment'>-- &gt; g2 :: a b c2</span>
+<a name="line-294"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-295"></a>    <span class='comment'>-- &gt; f          :: (c1, c2) -&gt; a b b</span>
+<a name="line-296"></a>    <span class='comment'>-- &gt; f (x1, x2) =  ... x1 ... x2 ... </span>
+<a name="line-297"></a>    <span class='comment'>-- &gt;</span>
+<a name="line-298"></a>    <span class='comment'>-- &gt; f $&lt;$ g1 &amp;&amp;&amp; g2</span>
+<a name="line-299"></a>    <span class='comment'>--</span>
+<a name="line-300"></a>    <span class='comment'>-- see also: 'applyA', '$&lt;'</span>
+<a name="line-301"></a>
+<a name="line-302"></a>    <span class='layout'>(</span><span class='varop'>$&lt;$</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span><span class='layout'>)</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'>b</span>
+<a name="line-303"></a>    <span class='varid'>g</span> <span class='varop'>$&lt;$</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>seqA</span><span class='layout'>)</span>
+<a name="line-304"></a>
+<a name="line-305"></a>    <span class='comment'>-- | merge the result pairs of an arrow with type @a a1 (b1, b2)@</span>
+<a name="line-306"></a>    <span class='comment'>-- by combining the tuple components with the @op@ arrow</span>
+<a name="line-307"></a>    <span class='comment'>--</span>
+<a name="line-308"></a>    <span class='comment'>-- examples with simple list arrows working on strings and XmlTrees</span>
+<a name="line-309"></a>    <span class='comment'>--</span>
+<a name="line-310"></a>    <span class='comment'>-- &gt;     a1 :: a String (XmlTree, XmlTree)</span>
+<a name="line-311"></a>    <span class='comment'>-- &gt;     a1 = selem "foo" [this &gt;&gt;&gt; mkText]</span>
+<a name="line-312"></a>    <span class='comment'>-- &gt; 	  &amp;&amp;&amp;</span>
+<a name="line-313"></a>    <span class='comment'>-- &gt; 	  selem "bar" [arr (++"0") &gt;&gt;&gt; mkText]</span>
+<a name="line-314"></a>    <span class='comment'>-- &gt; </span>
+<a name="line-315"></a>    <span class='comment'>-- &gt;     runLA (a1 &gt;&gt;&gt; mergeA (&lt;+&gt;) &gt;&gt;&gt; xshow this) "42" == ["&lt;foo&gt;42&lt;/foo&gt;","&lt;bar&gt;420&lt;/bar&gt;"]</span>
+<a name="line-316"></a>    <span class='comment'>-- &gt;     runLA (a1 &gt;&gt;&gt; mergeA (+=)  &gt;&gt;&gt; xshow this) "42" == ["&lt;foo&gt;42&lt;bar&gt;420&lt;/bar&gt;&lt;/foo&gt;"]</span>
+<a name="line-317"></a>    <span class='comment'>--</span>
+<a name="line-318"></a>    <span class='comment'>-- see also: 'applyA', '$&lt;' and '+=' in class 'Text.XML.HXT.Arrow.ArrowXml'</span>
+<a name="line-319"></a>
+<a name="line-320"></a>    <span class='varid'>mergeA</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>a1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>b1</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-321"></a>			   <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-322"></a>    <span class='varid'>mergeA</span> <span class='varid'>op</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'>arr</span> <span class='varid'>fst</span> <span class='varop'>`op`</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
+<a name="line-323"></a>
+<a name="line-324"></a>    <span class='comment'>-- | useful only for arrows with side effects: perform applies an arrow to the input</span>
+<a name="line-325"></a>    <span class='comment'>-- ignores the result and returns the input</span>
+<a name="line-326"></a>    <span class='comment'>--</span>
+<a name="line-327"></a>    <span class='comment'>-- example: @ ... &gt;&gt;&gt; perform someTraceArrow &gt;&gt;&gt; ... @</span>
+<a name="line-328"></a>
+<a name="line-329"></a>    <span class='varid'>perform</span>		<span class='keyglyph'>::</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'>b</span>
+<a name="line-330"></a>    <span class='varid'>perform</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>snd</span>
+<a name="line-331"></a>
+<a name="line-332"></a>    <span class='comment'>-- | generalization of arrow combinator '&lt;+&gt;'</span>
+<a name="line-333"></a>    <span class='comment'>--</span>
+<a name="line-334"></a>    <span class='comment'>-- definition: @ catA = foldl (&lt;+&gt;) none @</span>
+<a name="line-335"></a>
+<a name="line-336"></a>    <span class='varid'>catA</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-337"></a>    <span class='varid'>catA</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'>&lt;+&gt;</span><span class='layout'>)</span> <span class='varid'>none</span>
+<a name="line-338"></a>
+<a name="line-339"></a>    <span class='comment'>-- | generalization of arrow combinator '&gt;&gt;&gt;'</span>
+<a name="line-340"></a>    <span class='comment'>--</span>
+<a name="line-341"></a>    <span class='comment'>-- definition: @ seqA = foldl (&gt;&gt;&gt;) this @</span>
+<a name="line-342"></a>
+<a name="line-343"></a>    <span class='varid'>seqA</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-344"></a>    <span class='varid'>seqA</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>this</span>
+<a name="line-345"></a>
+<a name="line-346"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ArrowState.html b/doc/hdoc/src/Control-Arrow-ArrowState.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ArrowState.html
@@ -0,0 +1,89 @@
+<!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     : Control.Arrow.ArrowState
+<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: ArrowState.hs,v 1.5 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Arrows for managing an explicit state
+<a name="line-14"></a>
+<a name="line-15"></a>   State arrows work similar to state monads.
+<a name="line-16"></a>   A state value is threaded through the application of arrows.
+<a name="line-17"></a>
+<a name="line-18"></a>-}</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-21"></a>
+<a name="line-22"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>
+<a name="line-23"></a>    <span class='layout'>(</span> <span class='conid'>ArrowState</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-24"></a>    <span class='layout'>)</span>
+<a name="line-25"></a><span class='keyword'>where</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>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- | The interface for accessing and changing the state component.</span>
+<a name="line-30"></a><span class='comment'>--</span>
+<a name="line-31"></a><span class='comment'>-- Multi parameter classes and functional dependencies are required.</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="ArrowState"></a><span class='keyword'>class</span> <span class='conid'>Arrow</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowState</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='keyword'>where</span>
+<a name="line-34"></a>
+<a name="line-35"></a>    <span class='comment'>-- | change the state of a state arrow by applying a function</span>
+<a name="line-36"></a>    <span class='comment'>-- for computing a new state from the old and the arrow input.</span>
+<a name="line-37"></a>    <span class='comment'>-- Result is the arrow input</span>
+<a name="line-38"></a>
+<a name="line-39"></a>    <span class='varid'>changeState</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-40"></a>
+<a name="line-41"></a>    <span class='comment'>-- | access the state with a function using the arrow input</span>
+<a name="line-42"></a>    <span class='comment'>-- as data for selecting state components.</span>
+<a name="line-43"></a>
+<a name="line-44"></a>    <span class='varid'>accessState</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>s</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'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-45"></a>
+<a name="line-46"></a>    <span class='comment'>-- | read the complete state, ignore arrow input</span>
+<a name="line-47"></a>    <span class='comment'>--</span>
+<a name="line-48"></a>    <span class='comment'>-- definition: @ getState = accessState (\\ s x -&gt; s) @ </span>
+<a name="line-49"></a>
+<a name="line-50"></a>    <span class='varid'>getState</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>s</span>
+<a name="line-51"></a>    <span class='varid'>getState</span>		<span class='keyglyph'>=</span> <span class='varid'>accessState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='sel'>_x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-52"></a>
+<a name="line-53"></a>    <span class='comment'>-- | overwrite the old state</span>
+<a name="line-54"></a>    <span class='comment'>--</span>
+<a name="line-55"></a>    <span class='comment'>-- definition: @ setState = changeState (\\ s x -&gt; x) @</span>
+<a name="line-56"></a>    <span class='varid'>setState</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>s</span> <span class='varid'>s</span>
+<a name="line-57"></a>    <span class='varid'>setState</span>		<span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='sel'>_s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span><span class='layout'>)</span>	<span class='comment'>-- changeState (const id)</span>
+<a name="line-58"></a>
+<a name="line-59"></a>    <span class='comment'>-- | change state (and ignore input) and return new state</span>
+<a name="line-60"></a>    <span class='comment'>--</span>
+<a name="line-61"></a>    <span class='comment'>-- convenience function,</span>
+<a name="line-62"></a>    <span class='comment'>-- usefull for generating e.g. unique identifiers:</span>
+<a name="line-63"></a>    <span class='comment'>--</span>
+<a name="line-64"></a>    <span class='comment'>-- example with SLA state list arrows</span>
+<a name="line-65"></a>    <span class='comment'>--</span>
+<a name="line-66"></a>    <span class='comment'>-- &gt; newId :: SLA Int b String</span>
+<a name="line-67"></a>    <span class='comment'>-- &gt; newId = nextState (+1)</span>
+<a name="line-68"></a>    <span class='comment'>-- &gt;         &gt;&gt;&gt;</span>
+<a name="line-69"></a>    <span class='comment'>-- &gt;         arr (('#':) . show)</span>
+<a name="line-70"></a>    <span class='comment'>-- &gt; </span>
+<a name="line-71"></a>    <span class='comment'>-- &gt; runSLA 0 (newId &lt;+&gt; newId &lt;+&gt; newId) undefined</span>
+<a name="line-72"></a>    <span class='comment'>-- &gt;   = ["#1", "#2", "#3"]</span>
+<a name="line-73"></a>
+<a name="line-74"></a>    <span class='varid'>nextState</span>		<span class='keyglyph'>::</span> <span class='layout'>(</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='varid'>a</span> <span class='varid'>b</span> <span class='varid'>s</span>
+<a name="line-75"></a>    <span class='varid'>nextState</span> <span class='varid'>sf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>sf</span> <span class='varid'>s</span><span class='layout'>)</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'>getState</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ArrowStrict.html b/doc/hdoc/src/Control-Arrow-ArrowStrict.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ArrowStrict.html
@@ -0,0 +1,44 @@
+<!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     : Control.Arrow.ArrowStrict
+<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>   Arrows for complete evaluation of result
+<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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowStrict</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>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Strategies</span><span class='varop'>.</span><span class='conid'>DeepSeq</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='comment'>-- |</span>
+<a name="line-26"></a><span class='comment'>-- complete evaluation of an arrow result using 'Control.Strategies.DeepSeq.deepSeq'</span>
+<a name="line-27"></a><span class='comment'>-- and 'Control.Strategies.DeepSeq.strict'</span>
+<a name="line-28"></a><span class='comment'>--</span>
+<a name="line-29"></a><span class='comment'>-- this is sometimes useful for preventing space leaks, especially after reading</span>
+<a name="line-30"></a><span class='comment'>-- and validation of a document, all DTD stuff is not longer in use and can be</span>
+<a name="line-31"></a><span class='comment'>-- recycled by the GC.</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="strictA"></a><span class='definition'>strictA</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-34"></a><span class='definition'>strictA</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>strict</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ArrowTree.html b/doc/hdoc/src/Control-Arrow-ArrowTree.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ArrowTree.html
@@ -0,0 +1,301 @@
+<!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     : Control.Arrow.ArrowTree
+<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: ArrowTree.hs,v 1.12 2006/11/30 16:05:24 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>List arrows for tree processing.
+<a name="line-14"></a>
+<a name="line-15"></a>Trees that implement the "Data.Tree.Class" interface, can be processed
+<a name="line-16"></a>with these arrows.
+<a name="line-17"></a>
+<a name="line-18"></a>-}</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-21"></a>
+<a name="line-22"></a><span class='keyword'>module</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-23"></a>    <span class='layout'>(</span> <span class='conid'>ArrowTree</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='conid'>Tree</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>where</span>
+<a name="line-27"></a>
+<a name="line-28"></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> <span class='layout'>(</span><span class='conid'>Tree</span><span class='layout'>)</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'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> <span class='keyword'>as</span> <span class='conid'>T</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Tree</span><span class='layout'>)</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</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'>ArrowList</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'>ArrowIf</span>
+<a name="line-34"></a>
+<a name="line-35"></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>
+<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='comment'>-- | The interface for tree arrows</span>
+<a name="line-40"></a><span class='comment'>--</span>
+<a name="line-41"></a><span class='comment'>-- all functions have default implementations</span>
+<a name="line-42"></a>
+<a name="line-43"></a><a name="ArrowTree"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>ArrowPlus</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowIf</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowTree</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-44"></a>
+<a name="line-45"></a>    <span class='comment'>-- | select the children of the root of a tree</span>
+<a name="line-46"></a>
+<a name="line-47"></a>    <span class='varid'>getChildren</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-48"></a>    <span class='varid'>getChildren</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getChildren</span>
+<a name="line-49"></a>
+<a name="line-50"></a>    <span class='comment'>-- | select the attribute of the root of a tree</span>
+<a name="line-51"></a>
+<a name="line-52"></a>    <span class='varid'>getNode</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>b</span>
+<a name="line-53"></a>    <span class='varid'>getNode</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getNode</span>
+<a name="line-54"></a>
+<a name="line-55"></a>    <span class='comment'>-- | substitute the children of the root of a tree</span>
+<a name="line-56"></a>
+<a name="line-57"></a>    <span class='varid'>setChildren</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span>            <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-58"></a>    <span class='varid'>setChildren</span> <span class='varid'>cs</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>setChildren</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-59"></a>
+<a name="line-60"></a>    <span class='comment'>-- | substitute the attribute of the root of a tree</span>
+<a name="line-61"></a>
+<a name="line-62"></a>    <span class='varid'>setNode</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span>                <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-63"></a>    <span class='varid'>setNode</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>setNode</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-64"></a>
+<a name="line-65"></a>    <span class='comment'>-- | edit the children of the root of a tree</span>
+<a name="line-66"></a>
+<a name="line-67"></a>    <span class='varid'>changeChildren</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='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>t</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='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-68"></a>    <span class='varid'>changeChildren</span> <span class='varid'>csf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>changeChildren</span> <span class='varid'>csf</span><span class='layout'>)</span>
+<a name="line-69"></a>
+<a name="line-70"></a>    <span class='comment'>-- | edit the attribute of the root of a tree</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='varid'>changeNode</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'>b</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-73"></a>    <span class='varid'>changeNode</span> <span class='varid'>nf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>changeNode</span> <span class='varid'>nf</span><span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a>								<span class='comment'>-- compound arrows</span>
+<a name="line-76"></a>
+<a name="line-77"></a>    <span class='comment'>-- | apply an arrow element wise to all children of the root of a tree</span>
+<a name="line-78"></a>    <span class='comment'>-- collect these results and substitute the children with this result</span>
+<a name="line-79"></a>    <span class='comment'>--</span>
+<a name="line-80"></a>    <span class='comment'>-- example: @ processChildren isText @ deletes all subtrees, for which isText does not hold</span>
+<a name="line-81"></a>    <span class='comment'>--</span>
+<a name="line-82"></a>    <span class='comment'>-- example: @ processChildren (none \`when\` isCmt) @ removes all children, for which isCmt holds</span>
+<a name="line-83"></a>
+<a name="line-84"></a>    <span class='varid'>processChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-85"></a>    <span class='varid'>processChildren</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getNode</span>
+<a name="line-86"></a>			  <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-87"></a>			  <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='comment'>-- new children, deterministic filter: single element result</span>
+<a name="line-88"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-89"></a>			  <span class='varid'>arr2</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>mkTree</span>
+<a name="line-90"></a>
+<a name="line-91"></a>    <span class='comment'>-- | similar to processChildren, but the new children are computed by processing</span>
+<a name="line-92"></a>    <span class='comment'>-- the whole input tree</span>
+<a name="line-93"></a>    <span class='comment'>--</span>
+<a name="line-94"></a>    <span class='comment'>-- example: @ replaceChildren (deep isText) @ selects all subtrees for which isText holds</span>
+<a name="line-95"></a>    <span class='comment'>-- and substitutes the children component of the root node with this list</span>
+<a name="line-96"></a>
+<a name="line-97"></a>    <span class='varid'>replaceChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-98"></a>    <span class='varid'>replaceChildren</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getNode</span>
+<a name="line-99"></a>			  <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-100"></a>			  <span class='varid'>listA</span> <span class='varid'>f</span>				<span class='comment'>-- compute new children</span>
+<a name="line-101"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-102"></a>			  <span class='varid'>arr2</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>mkTree</span>
+<a name="line-103"></a>
+<a name="line-104"></a>    <span class='comment'>-- |</span>
+<a name="line-105"></a>    <span class='comment'>-- pronounced \"slash\", meaning g inside f</span>
+<a name="line-106"></a>    <span class='comment'>--</span>
+<a name="line-107"></a>    <span class='comment'>-- defined as @ f \/&gt; g = f &gt;&gt;&gt; getChildren &gt;&gt;&gt; g @</span>
+<a name="line-108"></a>    <span class='comment'>--</span>
+<a name="line-109"></a>    <span class='comment'>-- example: @ hasName \"html\" \/&gt; hasName \"body\" \/&gt; hasName \"h1\" @</span>
+<a name="line-110"></a>    <span class='comment'>--</span>
+<a name="line-111"></a>    <span class='comment'>-- This expression selects</span>
+<a name="line-112"></a>    <span class='comment'>-- all \"h1\" elements in the \"body\" element of an \"html\" element, an expression, that</span>
+<a name="line-113"></a>    <span class='comment'>-- corresponds 1-1 to the XPath selection path \"html\/body\/h1\" </span>
+<a name="line-114"></a>
+<a name="line-115"></a>    <span class='layout'>(</span><span class='varop'>/&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-116"></a>    <span class='varid'>f</span> <span class='varop'>/&gt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>g</span>
+<a name="line-117"></a>
+<a name="line-118"></a>
+<a name="line-119"></a>    <span class='comment'>-- |</span>
+<a name="line-120"></a>    <span class='comment'>-- pronounced \"outside\" meaning f containing g</span>
+<a name="line-121"></a>    <span class='comment'>--</span>
+<a name="line-122"></a>    <span class='comment'>-- defined as @ f \&lt;\/ g = f \`containing\` (getChildren &gt;&gt;&gt; g) @</span>
+<a name="line-123"></a>
+<a name="line-124"></a>    <span class='layout'>(</span><span class='varop'>&lt;/</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-125"></a>    <span class='varid'>f</span> <span class='varop'>&lt;/</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`containing`</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>g</span><span class='layout'>)</span>
+<a name="line-126"></a>
+<a name="line-127"></a>
+<a name="line-128"></a>    <span class='comment'>-- | recursively searches a whole tree for subtrees, for which a predicate holds.</span>
+<a name="line-129"></a>    <span class='comment'>-- The search is performed top down. When a tree is found, this becomes an element of the result</span>
+<a name="line-130"></a>    <span class='comment'>-- list. The tree found is not further examined for any subtress, for which the predicate also could hold.</span>
+<a name="line-131"></a>    <span class='comment'>-- See 'multi' for this kind of search.</span>
+<a name="line-132"></a>    <span class='comment'>--</span>
+<a name="line-133"></a>    <span class='comment'>-- example: @ deep isHtmlTable @ selects all top level table elements in a document</span>
+<a name="line-134"></a>    <span class='comment'>-- (with an appropriate definition for isHtmlTable) but no tables occuring within a table cell.</span>
+<a name="line-135"></a>
+<a name="line-136"></a>    <span class='varid'>deep</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-137"></a>    <span class='varid'>deep</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>f</span>					<span class='comment'>-- success when applying f</span>
+<a name="line-138"></a>			  <span class='varop'>`orElse`</span>
+<a name="line-139"></a>			  <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deep</span> <span class='varid'>f</span><span class='layout'>)</span>		<span class='comment'>-- seach children</span>
+<a name="line-140"></a>
+<a name="line-141"></a>
+<a name="line-142"></a>    <span class='comment'>-- | recursively searches a whole tree for subrees, for which a predicate holds.</span>
+<a name="line-143"></a>    <span class='comment'>-- The search is performed bottom up.</span>
+<a name="line-144"></a>    <span class='comment'>--</span>
+<a name="line-145"></a>    <span class='comment'>-- example: @ deepest isHtmlTable @ selects all innermost table elements in a document</span>
+<a name="line-146"></a>    <span class='comment'>-- but no table elements containing tables. See 'deep' and 'multi' for other search strategies.</span>
+<a name="line-147"></a>
+<a name="line-148"></a>    <span class='varid'>deepest</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-149"></a>    <span class='varid'>deepest</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deepest</span> <span class='varid'>f</span><span class='layout'>)</span>		<span class='comment'>-- seach children</span>
+<a name="line-150"></a>			  <span class='varop'>`orElse`</span>
+<a name="line-151"></a>			  <span class='varid'>f</span>					<span class='comment'>-- no success: apply f to root</span>
+<a name="line-152"></a>
+<a name="line-153"></a>
+<a name="line-154"></a>    <span class='comment'>-- | recursively searches a whole tree for subtrees, for which a predicate holds.</span>
+<a name="line-155"></a>    <span class='comment'>-- The search is performed top down. All nodes of the tree are searched, even within the</span>
+<a name="line-156"></a>    <span class='comment'>-- subtrees of trees for which the predicate holds.</span>
+<a name="line-157"></a>    <span class='comment'>--</span>
+<a name="line-158"></a>    <span class='comment'>-- example: @ multy isHtmlTable @ selects all table elements, even nested ones.</span>
+<a name="line-159"></a>
+<a name="line-160"></a>    <span class='varid'>multi</span>		<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>c</span>
+<a name="line-161"></a>    <span class='varid'>multi</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>f</span>					<span class='comment'>-- combine result for root</span>
+<a name="line-162"></a>			  <span class='varop'>&lt;+&gt;</span>
+<a name="line-163"></a>			  <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>multi</span> <span class='varid'>f</span><span class='layout'>)</span>		<span class='comment'>-- with result for all descendants</span>
+<a name="line-164"></a>
+<a name="line-165"></a>    <span class='comment'>-- | recursively transforms a whole tree by applying an arrow to all subtrees,</span>
+<a name="line-166"></a>    <span class='comment'>-- this is done bottom up depth first, leaves first, root as last tree</span>
+<a name="line-167"></a>    <span class='comment'>--</span>
+<a name="line-168"></a>    <span class='comment'>-- example: @ processBottomUp (getChildren \`when\` isHtmlFont) @ removes all font tags in a HTML document, even nested ones</span>
+<a name="line-169"></a>    <span class='comment'>-- (with an appropriate definition of isHtmlFont)</span>
+<a name="line-170"></a>
+<a name="line-171"></a>    <span class='varid'>processBottomUp</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-172"></a>    <span class='varid'>processBottomUp</span> <span class='varid'>f</span>	<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='comment'>-- process all descendants first</span>
+<a name="line-173"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-174"></a>			  <span class='varid'>f</span>					<span class='comment'>-- then process root</span>
+<a name="line-175"></a>
+<a name="line-176"></a>    <span class='comment'>-- | similar to 'processBottomUp', but recursively transforms a whole tree by applying an arrow to all subtrees</span>
+<a name="line-177"></a>    <span class='comment'>-- with a top down depth first traversal strategie. In many cases 'processBottomUp' and 'processTopDown'</span>
+<a name="line-178"></a>    <span class='comment'>-- give same results.</span>
+<a name="line-179"></a>
+<a name="line-180"></a>    <span class='varid'>processTopDown</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-181"></a>    <span class='varid'>processTopDown</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span>					<span class='comment'>-- first process root</span>
+<a name="line-182"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-183"></a>			  <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='comment'>-- then process all descendants of new root</span>
+<a name="line-184"></a>
+<a name="line-185"></a>
+<a name="line-186"></a>    <span class='comment'>-- | recursively transforms a whole tree by applying an arrow to all subtrees,</span>
+<a name="line-187"></a>    <span class='comment'>-- but transformation stops when a predicte does not hold for a subtree,</span>
+<a name="line-188"></a>    <span class='comment'>-- leaves are transformed first</span>
+<a name="line-189"></a>
+<a name="line-190"></a>    <span class='varid'>processBottomUpWhenNot</span>
+<a name="line-191"></a>			<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-192"></a>    <span class='varid'>processBottomUpWhenNot</span> <span class='varid'>f</span> <span class='varid'>p</span>
+<a name="line-193"></a>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processBottomUpWhenNot</span> <span class='varid'>f</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-194"></a>			    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-195"></a>			    <span class='varid'>f</span>
+<a name="line-196"></a>			  <span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>p</span>
+<a name="line-197"></a>
+<a name="line-198"></a>    <span class='comment'>-- | recursively transforms a whole tree by applying an arrow to all subtrees,</span>
+<a name="line-199"></a>    <span class='comment'>-- but transformation stops when a tree is successfully transformed.</span>
+<a name="line-200"></a>    <span class='comment'>-- the transformation is done top down</span>
+<a name="line-201"></a>    <span class='comment'>--</span>
+<a name="line-202"></a>    <span class='comment'>-- example: @ processTopDownUntil (isHtmlTable \`guards\` tranformTable) @</span>
+<a name="line-203"></a>    <span class='comment'>-- transforms all top level table elements into something else, but inner tables remain unchanged</span>
+<a name="line-204"></a>
+<a name="line-205"></a>    <span class='varid'>processTopDownUntil</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-206"></a>    <span class='varid'>processTopDownUntil</span> <span class='varid'>f</span>
+<a name="line-207"></a>			<span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-208"></a>			  <span class='varop'>`orElse`</span>
+<a name="line-209"></a>			  <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDownUntil</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-210"></a>
+<a name="line-211"></a>    <span class='comment'>-- | computes a list of trees by applying an arrow to the input</span>
+<a name="line-212"></a>    <span class='comment'>-- and inserts this list in front of index i in the list of children</span>
+<a name="line-213"></a>    <span class='comment'>--</span>
+<a name="line-214"></a>    <span class='comment'>-- example: @ insertChildrenAt 0 (deep isCmt) @ selects all subtrees for which isCmt holds</span>
+<a name="line-215"></a>    <span class='comment'>-- and copies theses in front of the existing children</span>
+<a name="line-216"></a>
+<a name="line-217"></a>    <span class='varid'>insertChildrenAt</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span>           <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-218"></a>    <span class='varid'>insertChildrenAt</span> <span class='varid'>i</span> <span class='varid'>f</span>
+<a name="line-219"></a>			<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='varid'>insertAt</span>
+<a name="line-220"></a>			  <span class='keyword'>where</span>
+<a name="line-221"></a>			  <span class='varid'>insertAt</span> <span class='varid'>newcs</span>
+<a name="line-222"></a>			      <span class='keyglyph'>=</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>changeChildren</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cs</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-223"></a>						          <span class='layout'>(</span><span class='varid'>cs1</span><span class='layout'>,</span> <span class='varid'>cs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='varid'>i</span> <span class='varid'>cs</span>
+<a name="line-224"></a>						          <span class='keyword'>in</span>
+<a name="line-225"></a>						          <span class='varid'>cs1</span> <span class='varop'>++</span> <span class='varid'>newcs</span> <span class='varop'>++</span> <span class='varid'>cs2</span>
+<a name="line-226"></a>						 <span class='layout'>)</span>
+<a name="line-227"></a>
+<a name="line-228"></a>    <span class='comment'>-- | similar to 'insertChildrenAt', but the insertion position is searched with a predicate</span>
+<a name="line-229"></a>
+<a name="line-230"></a>    <span class='varid'>insertChildrenAfter</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-231"></a>    <span class='varid'>insertChildrenAfter</span> <span class='varid'>p</span> <span class='varid'>f</span>
+<a name="line-232"></a>			<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>
+<a name="line-233"></a>			  <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span>
+<a name="line-234"></a>				<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-235"></a>				<span class='varid'>spanA</span> <span class='varid'>p</span>
+<a name="line-236"></a>			      <span class='layout'>)</span>
+<a name="line-237"></a>			      <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-238"></a>			      <span class='varid'>listA</span> <span class='varid'>f</span>
+<a name="line-239"></a>			    <span class='layout'>)</span>
+<a name="line-240"></a>			    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2L</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>xs1</span><span class='layout'>,</span> <span class='varid'>xs2</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xs1</span> <span class='varop'>++</span> <span class='varid'>xs</span> <span class='varop'>++</span> <span class='varid'>xs2</span><span class='layout'>)</span>
+<a name="line-241"></a>			  <span class='layout'>)</span>
+<a name="line-242"></a>			  
+<a name="line-243"></a>    <span class='comment'>-- | an arrow for inserting a whole subtree with some holes in it (a template)</span>
+<a name="line-244"></a>    <span class='comment'>-- into a document. The holes can be filled with contents from the input.</span>
+<a name="line-245"></a>    <span class='comment'>--</span>
+<a name="line-246"></a>    <span class='comment'>-- Example</span>
+<a name="line-247"></a>    <span class='comment'>--</span>
+<a name="line-248"></a>    <span class='comment'>-- &gt; insertTreeTemplateTest	:: ArrowXml a =&gt; a b XmlTree</span>
+<a name="line-249"></a>    <span class='comment'>-- &gt; insertTreeTemplateTest</span>
+<a name="line-250"></a>    <span class='comment'>-- &gt;     = doc</span>
+<a name="line-251"></a>    <span class='comment'>-- &gt;       &gt;&gt;&gt;</span>
+<a name="line-252"></a>    <span class='comment'>-- &gt;       insertTemplate template pattern</span>
+<a name="line-253"></a>    <span class='comment'>-- &gt;     where</span>
+<a name="line-254"></a>    <span class='comment'>-- &gt;     doc								-- the input data</span>
+<a name="line-255"></a>    <span class='comment'>-- &gt; 	= constA "&lt;x&gt;&lt;y&gt;The Title&lt;/y&gt;&lt;z&gt;The content&lt;/z&gt;&lt;/x&gt;"</span>
+<a name="line-256"></a>    <span class='comment'>-- &gt; 	  &gt;&gt;&gt; xread</span>
+<a name="line-257"></a>    <span class='comment'>-- &gt;     template								-- the output template with 2 holes: xxx and yyy</span>
+<a name="line-258"></a>    <span class='comment'>-- &gt; 	= constA "&lt;html&gt;&lt;head&gt;&lt;title&gt;xxx&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;yyy&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;"</span>
+<a name="line-259"></a>    <span class='comment'>-- &gt; 	  &gt;&gt;&gt; xread</span>
+<a name="line-260"></a>    <span class='comment'>-- &gt;     pattern</span>
+<a name="line-261"></a>    <span class='comment'>-- &gt; 	= [ hasText (== "xxx")						-- fill the xxx hole with the input contents from element "x/y"</span>
+<a name="line-262"></a>    <span class='comment'>-- &gt; 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName "y" &gt;&gt;&gt; deep isText )</span>
+<a name="line-263"></a>    <span class='comment'>-- &gt; </span>
+<a name="line-264"></a>    <span class='comment'>-- &gt; 	  , hasText (== "yyy")						-- fill the yyy hole with the input contents from element "x/z"</span>
+<a name="line-265"></a>    <span class='comment'>-- &gt; 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName "z" &gt;&gt;&gt; getChildren )</span>
+<a name="line-266"></a>    <span class='comment'>-- &gt; 	  ]</span>
+<a name="line-267"></a>    <span class='comment'>--</span>
+<a name="line-268"></a>    <span class='comment'>-- computes the XML tree for the following document</span>
+<a name="line-269"></a>    <span class='comment'>--</span>
+<a name="line-270"></a>    <span class='comment'>-- &gt; "&lt;html&gt;&lt;head&gt;&lt;title&gt;The Title&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;The content&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;"</span>
+<a name="line-271"></a>
+<a name="line-272"></a>    <span class='varid'>insertTreeTemplate</span>	<span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span>
+<a name="line-273"></a>			   <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>					<span class='comment'>-- the the template</span>
+<a name="line-274"></a>			   <span class='keyglyph'>[</span><span class='conid'>IfThen</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</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='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span>		<span class='comment'>-- the list of nodes in the template to be substituted</span>
+<a name="line-275"></a>			   <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-276"></a>    <span class='varid'>insertTreeTemplate</span> <span class='varid'>template</span> <span class='varid'>choices</span>
+<a name="line-277"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertTree</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
+<a name="line-278"></a>	  <span class='keyword'>where</span>
+<a name="line-279"></a>	  <span class='varid'>insertTree</span> <span class='varid'>t</span>
+<a name="line-280"></a>	      <span class='keyglyph'>=</span> <span class='varid'>template</span>					<span class='comment'>-- swap input and template</span>
+<a name="line-281"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-282"></a>		<span class='varid'>processTemplate</span>
+<a name="line-283"></a>	      <span class='keyword'>where</span>
+<a name="line-284"></a>	      <span class='varid'>processTemplate</span>
+<a name="line-285"></a>		  <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='varid'>choices'</span>				<span class='comment'>-- check whether node is a "hole" within the template</span>
+<a name="line-286"></a>		    <span class='varop'>`orElse`</span>
+<a name="line-287"></a>		    <span class='varid'>processChildren</span> <span class='varid'>processTemplate</span>		<span class='comment'>-- else descent into template tree</span>
+<a name="line-288"></a>	      <span class='varid'>choices'</span>
+<a name="line-289"></a>		  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>feedTree</span> <span class='varid'>choices</span>			<span class='comment'>-- modify choices, such that the input is feed into the action arrows</span>
+<a name="line-290"></a>	      <span class='varid'>feedTree</span> <span class='layout'>(</span><span class='varid'>cond</span> <span class='conop'>:-&gt;</span> <span class='varid'>action</span><span class='layout'>)</span>
+<a name="line-291"></a>		  <span class='keyglyph'>=</span> <span class='varid'>cond</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>t</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>action</span><span class='layout'>)</span>		<span class='comment'>-- the real input becomes the input at the holes</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-IOListArrow.html b/doc/hdoc/src/Control-Arrow-IOListArrow.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-IOListArrow.html
@@ -0,0 +1,128 @@
+<!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     : Control.Arrow.IOListArrow
+<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>
+<a name="line-12"></a>   Implementation of pure list arrows with IO
+<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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='conid'>IOLA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-20"></a>    <span class='layout'>)</span>
+<a name="line-21"></a><span class='keyword'>where</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</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'>ArrowList</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'>ArrowIf</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'>ArrowTree</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'>ArrowIO</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='comment'>-- | list arrow combined with IO monad</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="IOLA"></a><span class='keyword'>newtype</span> <span class='conid'>IOLA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='layout'>{</span> <span class='varid'>runIOLA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>}</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-36"></a>    <span class='varid'>arr</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span>
+<a name="line-37"></a>
+<a name="line-38"></a>    <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='conid'>IOLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-39"></a>					<span class='varid'>ys</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-40"></a>					<span class='varid'>zs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>sequence</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>g</span> <span class='varop'>$</span> <span class='varid'>ys</span>
+<a name="line-41"></a>					<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>zs</span><span class='layout'>)</span>
+<a name="line-42"></a>
+<a name="line-43"></a>    <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='keyword'>do</span>
+<a name="line-44"></a>					        <span class='varid'>ys1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x1</span>
+<a name="line-45"></a>					        <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span> <span class='keyglyph'>]</span>
+<a name="line-46"></a>
+<a name="line-47"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-48"></a>    <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>g</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='keyword'>do</span>
+<a name="line-49"></a>					        <span class='varid'>ys2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x2</span>
+<a name="line-50"></a>					        <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span>
+<a name="line-51"></a>
+<a name="line-52"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-53"></a>    <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>IOLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='keyword'>do</span>
+<a name="line-54"></a>						<span class='varid'>ys1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x1</span>
+<a name="line-55"></a>					        <span class='varid'>ys2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x2</span>
+<a name="line-56"></a>					        <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span>
+<a name="line-57"></a>
+<a name="line-58"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-59"></a>    <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='conid'>IOLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-60"></a>					<span class='varid'>ys1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-61"></a>					<span class='varid'>ys2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x</span>
+<a name="line-62"></a>					<span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span>
+<a name="line-63"></a>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-66"></a>    <span class='varid'>zeroArrow</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-67"></a>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-70"></a>    <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>&lt;+&gt;</span> <span class='conid'>IOLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-71"></a>					<span class='varid'>rs1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-72"></a>					<span class='varid'>rs2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x</span>
+<a name="line-73"></a>					<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>rs1</span> <span class='varop'>++</span> <span class='varid'>rs2</span><span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-77"></a>    <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>either</span>
+<a name="line-78"></a>			           <span class='layout'>(</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'>&gt;&gt;=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Left</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-79"></a>                                   <span class='layout'>(</span><span class='varid'>return</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>Right</span><span class='layout'>)</span>
+<a name="line-80"></a>    <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>either</span>
+<a name="line-81"></a>                                   <span class='layout'>(</span><span class='varid'>return</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>Left</span><span class='layout'>)</span>
+<a name="line-82"></a>			           <span class='layout'>(</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'>&gt;&gt;=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>y</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Right</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-85"></a>    <span class='varid'>app</span>			<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-86"></a>
+<a name="line-87"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-88"></a>    <span class='varid'>arrL</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-89"></a>    <span class='varid'>arr2A</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='varid'>runIOLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>y</span>
+<a name="line-90"></a>    <span class='varid'>constA</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-91"></a>    <span class='varid'>isA</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-92"></a>    <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-93"></a>				       <span class='varid'>ys</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-94"></a>				       <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varid'>ys</span><span class='layout'>)</span>
+<a name="line-95"></a>
+<a name="line-96"></a>
+<a name="line-97"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-98"></a>    <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>ta</span> <span class='varid'>ea</span>	<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-99"></a>				       <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span> <span class='varid'>x</span>
+<a name="line-100"></a>				       <span class='varid'>runIOLA</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='varid'>ea</span> <span class='keyword'>else</span> <span class='varid'>ta</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-101"></a>    <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>
+<a name="line-102"></a>			<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-103"></a>				       <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-104"></a>				       <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='varid'>runIOLA</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIO</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-107"></a>    <span class='varid'>arrIO</span> <span class='varid'>cmd</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-108"></a>			       	       <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd</span> <span class='varid'>x</span>
+<a name="line-109"></a>				       <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>res</span><span class='keyglyph'>]</span>
+<a name="line-110"></a>
+<a name="line-111"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIOIf</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>
+<a name="line-112"></a>    <span class='varid'>isIOA</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-113"></a>				       <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span> <span class='varid'>x</span>
+<a name="line-114"></a>				       <span class='varid'>return</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='conid'>IOLA</span>
+<a name="line-117"></a>
+<a name="line-118"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-IOStateListArrow.html b/doc/hdoc/src/Control-Arrow-IOStateListArrow.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-IOStateListArrow.html
@@ -0,0 +1,189 @@
+<!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     : Control.Arrow.IOStateListArrow
+<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: IOStateListArrow.hs,v 1.7 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Implementation of arrows with IO and a state
+<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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='conid'>IOSLA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>liftSt</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>runSt</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>
+<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><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'>ArrowState</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'>ArrowIO</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- | list arrow combined with a state and the IO monad</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="IOSLA"></a><span class='keyword'>newtype</span> <span class='conid'>IOSLA</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='layout'>{</span> <span class='varid'>runIOSLA</span> <span class='keyglyph'>::</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-40"></a>    <span class='varid'>arr</span> <span class='varid'>f</span>		<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> <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'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-41"></a>
+<a name="line-42"></a>    <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='conid'>IOSLA</span> <span class='varid'>g</span>	<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> <span class='keyword'>do</span>
+<a name="line-43"></a>					   <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-44"></a>					   <span class='varid'>sequence'</span> <span class='varid'>s1</span> <span class='varid'>ys</span>
+<a name="line-45"></a>					   <span class='keyword'>where</span>
+<a name="line-46"></a>					   <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='conid'>[]</span>	 <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-47"></a>					   <span class='varid'>sequence'</span> <span class='varid'>s'</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='keyword'>do</span>
+<a name="line-48"></a>								   <span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys'</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>s'</span> <span class='varid'>x'</span>
+<a name="line-49"></a>								   <span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>zs'</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>sequence'</span> <span class='varid'>s1'</span> <span class='varid'>xs'</span>
+<a name="line-50"></a>								   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>ys'</span> <span class='varop'>++</span> <span class='varid'>zs'</span><span class='layout'>)</span>
+<a name="line-51"></a>
+<a name="line-52"></a>    <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='keyword'>do</span>
+<a name="line-53"></a>					           <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x1</span>
+<a name="line-54"></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='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-55"></a>
+<a name="line-56"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-57"></a>    <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>g</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='keyword'>do</span>
+<a name="line-58"></a>					          <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>s</span> <span class='varid'>x2</span>
+<a name="line-59"></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='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-62"></a>    <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>IOSLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='keyword'>do</span>
+<a name="line-63"></a>						   <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span>  <span class='varid'>x1</span>
+<a name="line-64"></a>					           <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x2</span>
+<a name="line-65"></a>					           <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-66"></a>
+<a name="line-67"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-68"></a>    <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='conid'>IOSLA</span> <span class='varid'>g</span>	<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> <span class='keyword'>do</span>
+<a name="line-69"></a>					   <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span>  <span class='varid'>x</span>
+<a name="line-70"></a>					   <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-71"></a>					   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-72"></a>
+<a name="line-73"></a>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-76"></a>    <span class='varid'>zeroArrow</span>		<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-77"></a>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-80"></a>    <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>&lt;+&gt;</span> <span class='conid'>IOSLA</span> <span class='varid'>g</span>	<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> <span class='keyword'>do</span>
+<a name="line-81"></a>					   <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>rs1</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span>  <span class='varid'>x</span>
+<a name="line-82"></a>					   <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs2</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-83"></a>					   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs1</span> <span class='varop'>++</span> <span class='varid'>rs2</span><span class='layout'>)</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-86"></a>    <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>either</span>
+<a name="line-87"></a>			                 <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-88"></a>					         <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-89"></a>					         <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Left</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-90"></a>					 <span class='layout'>)</span>
+<a name="line-91"></a>                                         <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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='conid'>Right</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-92"></a>
+<a name="line-93"></a>    <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>either</span>
+<a name="line-94"></a>                                         <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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='conid'>Left</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-95"></a>			                 <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-96"></a>					         <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-97"></a>					         <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-98"></a>					 <span class='layout'>)</span>
+<a name="line-99"></a>
+<a name="line-100"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-101"></a>    <span class='varid'>app</span>			<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-104"></a>    <span class='varid'>arrL</span> <span class='varid'>f</span>		<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> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-105"></a>    <span class='varid'>arr2A</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='varid'>y</span>
+<a name="line-106"></a>    <span class='varid'>constA</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span>   <span class='keyglyph'>-&gt;</span> <span class='varid'>const</span> <span class='layout'>(</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'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-107"></a>    <span class='varid'>isA</span> <span class='varid'>p</span>		<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> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-108"></a>    <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>g</span>	<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> <span class='keyword'>do</span>
+<a name="line-109"></a>				           <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-110"></a>					   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>g</span> <span class='varid'>ys</span><span class='layout'>)</span>
+<a name="line-111"></a>    <span class='comment'>-- just for efficency</span>
+<a name="line-112"></a>    <span class='varid'>perform</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<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> <span class='keyword'>do</span>
+<a name="line-113"></a>					   <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='sel'>_ys</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-114"></a>					   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-117"></a>    <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>ta</span> <span class='varid'>ea</span>	<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> <span class='keyword'>do</span>
+<a name="line-118"></a>				           <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-119"></a>					   <span class='varid'>runIOSLA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-120"></a>						      <span class='keyword'>then</span> <span class='varid'>ea</span>
+<a name="line-121"></a>						      <span class='keyword'>else</span> <span class='varid'>ta</span>
+<a name="line-122"></a>						    <span class='layout'>)</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-123"></a>
+<a name="line-124"></a>    <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>
+<a name="line-125"></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> <span class='keyword'>do</span>
+<a name="line-126"></a>				           <span class='varid'>r</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-127"></a>					   <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-128"></a>					      <span class='keyword'>then</span> <span class='varid'>runIOSLA</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-129"></a>					      <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-130"></a>
+<a name="line-131"></a>
+<a name="line-132"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIO</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-133"></a>    <span class='varid'>arrIO</span> <span class='varid'>cmd</span>		<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> <span class='keyword'>do</span>
+<a name="line-134"></a>					   <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd</span> <span class='varid'>x</span>
+<a name="line-135"></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'>res</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-136"></a>
+<a name="line-137"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIOIf</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-138"></a>    <span class='varid'>isIOA</span> <span class='varid'>p</span>		<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> <span class='keyword'>do</span>
+<a name="line-139"></a>					   <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span> <span class='varid'>x</span>
+<a name="line-140"></a>					   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-141"></a>
+<a name="line-142"></a><span class='keyword'>instance</span> <span class='conid'>ArrowState</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-143"></a>    <span class='varid'>changeState</span> <span class='varid'>cf</span>	<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> <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>cf</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>seq</span> <span class='varid'>s'</span> <span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-144"></a>    <span class='varid'>accessState</span>	<span class='varid'>af</span>	<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> <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'>af</span> <span class='varid'>s</span> <span class='varid'>x</span><span class='keyglyph'>]</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'>-- lift the state of an IOSLA arrow to a state with an additional component.</span>
+<a name="line-150"></a><span class='comment'>--</span>
+<a name="line-151"></a><span class='comment'>-- This is uesful, when running predefined IO arrows, e.g. for document input,</span>
+<a name="line-152"></a><span class='comment'>-- in a context with a more complex state component.</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="liftSt"></a><span class='definition'>liftSt</span>		<span class='keyglyph'>::</span> <span class='conid'>IOSLA</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-155"></a><span class='definition'>liftSt</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-156"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-157"></a>			      <span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-158"></a>			      <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a>
+<a name="line-161"></a><span class='comment'>-- |</span>
+<a name="line-162"></a><span class='comment'>-- run an arrow with augmented state in the context of a simple state arrow.</span>
+<a name="line-163"></a><span class='comment'>-- An initial value for the new state component is needed.</span>
+<a name="line-164"></a><span class='comment'>--</span>
+<a name="line-165"></a><span class='comment'>-- This is useful, when running an arrow with an extra environment component, e.g.</span>
+<a name="line-166"></a><span class='comment'>-- for namespace handling in XML.</span>
+<a name="line-167"></a>
+<a name="line-168"></a><a name="runSt"></a><span class='definition'>runSt</span>		<span class='keyglyph'>::</span> <span class='varid'>s2</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSLA</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-169"></a><span class='definition'>runSt</span> <span class='varid'>s2</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-170"></a>    <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s1</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-171"></a>			<span class='layout'>(</span><span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='sel'>_s2'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-172"></a>			<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span>
+<a name="line-173"></a>
+<a name="line-174"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-175"></a>
+<a name="line-176"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-177"></a>
+<a name="line-178"></a>
+<a name="line-179"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ListArrow.html b/doc/hdoc/src/Control-Arrow-ListArrow.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ListArrow.html
@@ -0,0 +1,116 @@
+<!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     : Control.Arrow.ListArrow
+<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: ListArrow.hs,v 1.7 2006/05/04 14:17:53 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Implementation of pure list 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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='conid'>LA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>fromLA</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>
+<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'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-31"></a>    <span class='layout'>(</span> <span class='varid'>partition</span> <span class='layout'>)</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- | pure list arrow data type</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="LA"></a><span class='keyword'>newtype</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='layout'>{</span> <span class='varid'>runLA</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='layout'>}</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-40"></a>    <span class='varid'>arr</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span>
+<a name="line-41"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='conid'>LA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>concatMap</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='varid'>f</span>
+<a name="line-42"></a>    <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='keyglyph'>]</span>
+<a name="line-43"></a>
+<a name="line-44"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-45"></a>
+<a name="line-46"></a>    <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>g</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x2</span> <span class='keyglyph'>]</span>
+<a name="line-47"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>LA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x2</span><span class='keyglyph'>]</span>
+<a name="line-48"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='conid'>LA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span>         <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='keyglyph'>]</span>
+<a name="line-49"></a>
+<a name="line-50"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-51"></a>    <span class='varid'>zeroArrow</span>		<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='conid'>[]</span>
+<a name="line-52"></a>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-55"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>&lt;+&gt;</span> <span class='conid'>LA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</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>
+<a name="line-56"></a>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-59"></a>    <span class='varid'>left</span>  <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</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='conid'>Right</span><span class='layout'>)</span>
+<a name="line-60"></a>    <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</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='conid'>Left</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-61"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>+++</span> <span class='conid'>LA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>g</span><span class='layout'>)</span>
+<a name="line-62"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>|||</span> <span class='conid'>LA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='varid'>f</span> <span class='varid'>g</span>
+<a name="line-63"></a>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-66"></a>    <span class='varid'>app</span>			<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-69"></a>    <span class='varid'>arrL</span>			<span class='keyglyph'>=</span> <span class='conid'>LA</span>
+<a name="line-70"></a>    <span class='varid'>arr2A</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</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='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>y</span>
+<a name="line-71"></a>    <span class='varid'>isA</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-72"></a>    <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='varid'>f</span>
+<a name="line-73"></a>    <span class='varid'>withDefault</span>	<span class='varid'>a</span> <span class='varid'>d</span>	<span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>&gt;&gt;.</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='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>x</span>
+<a name="line-74"></a>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='conid'>LA</span> <span class='keyword'>where</span>
+<a name="line-77"></a>    <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>t</span> <span class='varid'>e</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-78"></a>					      <span class='keyword'>then</span> <span class='varid'>e</span>
+<a name="line-79"></a>					      <span class='keyword'>else</span> <span class='varid'>t</span>
+<a name="line-80"></a>					    <span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-81"></a>
+<a name="line-82"></a>    <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>g</span><span class='layout'>)</span>
+<a name="line-83"></a>			<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='keyword'>let</span>
+<a name="line-84"></a>					<span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-85"></a>					<span class='keyword'>in</span>
+<a name="line-86"></a>					<span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-87"></a>					<span class='keyword'>then</span> <span class='varid'>g</span> <span class='varid'>x</span>
+<a name="line-88"></a>					<span class='keyword'>else</span> <span class='varid'>res</span>
+<a name="line-89"></a>				      <span class='layout'>)</span>
+<a name="line-90"></a>
+<a name="line-91"></a>    <span class='varid'>spanA</span> <span class='varid'>p</span>             <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</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'>runLA</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-92"></a>
+<a name="line-93"></a>    <span class='varid'>partitionA</span>	<span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>partition</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'>runLA</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-94"></a>
+<a name="line-95"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='conid'>LA</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><span class='comment'>-- | conversion of pure list arrows into other possibly more complex</span>
+<a name="line-100"></a><span class='comment'>-- list arrows</span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="fromLA"></a><span class='definition'>fromLA</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>LA</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-103"></a><span class='definition'>fromLA</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-104"></a>
+<a name="line-105"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-106"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-ListArrows.html b/doc/hdoc/src/Control-Arrow-ListArrows.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-ListArrows.html
@@ -0,0 +1,58 @@
+<!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     : Control.Arrow.ListArrows
+<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: ListArrows.hs,v 1.1 2005/09/30 14:41:44 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Module for importing all list 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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</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>			<span class='comment'>-- arrow classes</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowStrict</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-23"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-24"></a>    <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='keyword'>module</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='layout'>,</span> <span class='keyword'>module</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='layout'>,</span> <span class='keyword'>module</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-29"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-30"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-31"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-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'>ArrowStrict</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'>ArrowList</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'>ArrowIf</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'>ArrowState</span>
+<a name="line-40"></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-41"></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-42"></a>
+<a name="line-43"></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-44"></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-45"></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-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'>IOStateListArrow</span>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Arrow-StateListArrow.html b/doc/hdoc/src/Control-Arrow-StateListArrow.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Arrow-StateListArrow.html
@@ -0,0 +1,180 @@
+<!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     : Control.Arrow.StateListArrow
+<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: StateListArrow.hs,v 1.7 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Implementation of list arrows with a state
+<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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='conid'>SLA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>fromSLA</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>
+<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><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'>ArrowState</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><span class='comment'>-- | list arrow combined with a state</span>
+<a name="line-34"></a>
+<a name="line-35"></a><a name="SLA"></a><span class='keyword'>newtype</span> <span class='conid'>SLA</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='layout'>{</span> <span class='varid'>runSLA</span> <span class='keyglyph'>::</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-38"></a>    <span class='varid'>arr</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-39"></a>
+<a name="line-40"></a>    <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='conid'>SLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-41"></a>					 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-42"></a>					 <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='conid'>[]</span>
+<a name="line-43"></a>					     <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-44"></a>					 <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='layout'>(</span><span class='varid'>x'</span><span class='conop'>:</span><span class='varid'>xs'</span><span class='layout'>)</span>
+<a name="line-45"></a>					     <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-46"></a>					       <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s'</span> <span class='varid'>x'</span>
+<a name="line-47"></a>					       <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>zs'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sequence'</span> <span class='varid'>s1'</span> <span class='varid'>xs'</span>
+<a name="line-48"></a>					       <span class='keyword'>in</span>
+<a name="line-49"></a>					       <span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>ys'</span> <span class='varop'>++</span> <span class='varid'>zs'</span><span class='layout'>)</span>
+<a name="line-50"></a>					 <span class='keyword'>in</span>
+<a name="line-51"></a>					 <span class='varid'>sequence'</span> <span class='varid'>s1</span> <span class='varid'>ys</span>
+<a name="line-52"></a>	                                 
+<a name="line-53"></a>								 
+<a name="line-54"></a>    <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='keyword'>let</span>
+<a name="line-55"></a>						 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x1</span>
+<a name="line-56"></a>						 <span class='keyword'>in</span>
+<a name="line-57"></a>						 <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-58"></a>
+<a name="line-59"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-60"></a>    <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>g</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='keyword'>let</span>
+<a name="line-61"></a>						 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s</span> <span class='varid'>x2</span>
+<a name="line-62"></a>						 <span class='keyword'>in</span>
+<a name="line-63"></a>						 <span class='layout'>(</span><span class='varid'>s'</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'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-64"></a>
+<a name="line-65"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-66"></a>    <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>SLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='keyword'>let</span>
+<a name="line-67"></a>						 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span>  <span class='varid'>x1</span>
+<a name="line-68"></a>						 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x2</span>
+<a name="line-69"></a>						 <span class='keyword'>in</span>
+<a name="line-70"></a>						 <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='comment'>-- just for efficiency</span>
+<a name="line-73"></a>    <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='conid'>SLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-74"></a>					 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span>  <span class='varid'>x</span>
+<a name="line-75"></a>					 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-76"></a>					 <span class='keyword'>in</span>
+<a name="line-77"></a>					 <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-78"></a>
+<a name="line-79"></a>
+<a name="line-80"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-81"></a>    <span class='varid'>zeroArrow</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-82"></a>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-85"></a>    <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>&lt;+&gt;</span> <span class='conid'>SLA</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-86"></a>					 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>rs1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span>  <span class='varid'>x</span>
+<a name="line-87"></a>					 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-88"></a>					 <span class='keyword'>in</span>
+<a name="line-89"></a>					 <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs1</span> <span class='varop'>++</span> <span class='varid'>rs2</span><span class='layout'>)</span>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-92"></a>    <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-93"></a>			               <span class='varid'>lf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Left</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-94"></a>					      <span class='keyword'>where</span>
+<a name="line-95"></a>					      <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-96"></a>                                       <span class='varid'>rf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Right</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-97"></a>				       <span class='keyword'>in</span>
+<a name="line-98"></a>				       <span class='varid'>either</span> <span class='varid'>lf</span> <span class='varid'>rf</span>
+<a name="line-99"></a>
+<a name="line-100"></a>    <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-101"></a>				       <span class='varid'>lf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Left</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-102"></a>			               <span class='varid'>rf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-103"></a>					      <span class='keyword'>where</span>
+<a name="line-104"></a>					      <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-105"></a>				       <span class='keyword'>in</span>
+<a name="line-106"></a>				       <span class='varid'>either</span> <span class='varid'>lf</span> <span class='varid'>rf</span>
+<a name="line-107"></a>
+<a name="line-108"></a>
+<a name="line-109"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-110"></a>    <span class='varid'>app</span>			<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-111"></a>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-114"></a>    <span class='varid'>arrL</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-115"></a>    <span class='varid'>arr2A</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</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='varid'>runSLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='varid'>y</span>
+<a name="line-116"></a>    <span class='varid'>constA</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span>   <span class='keyglyph'>-&gt;</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-117"></a>    <span class='varid'>isA</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-118"></a>    <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-119"></a>				         <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-120"></a>					 <span class='keyword'>in</span>
+<a name="line-121"></a>					 <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>g</span> <span class='varid'>ys</span><span class='layout'>)</span>
+<a name="line-122"></a>    <span class='comment'>-- just for efficency</span>
+<a name="line-123"></a>    <span class='varid'>perform</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-124"></a>					 <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='sel'>_ys</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-125"></a>					 <span class='keyword'>in</span>
+<a name="line-126"></a>					 <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-127"></a>
+<a name="line-128"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-129"></a>    <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>ta</span> <span class='varid'>ea</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-130"></a>				         <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-131"></a>					 <span class='keyword'>in</span>
+<a name="line-132"></a>					 <span class='varid'>runSLA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-133"></a>						  <span class='keyword'>then</span> <span class='varid'>ea</span>
+<a name="line-134"></a>						  <span class='keyword'>else</span> <span class='varid'>ta</span>
+<a name="line-135"></a>						<span class='layout'>)</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-136"></a>
+<a name="line-137"></a>    <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>
+<a name="line-138"></a>			<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span>  <span class='keyword'>let</span>
+<a name="line-139"></a>				          <span class='varid'>r</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>
+<a name="line-140"></a>					  <span class='keyword'>in</span>
+<a name="line-141"></a>					  <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-142"></a>					  <span class='keyword'>then</span> <span class='varid'>runSLA</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>
+<a name="line-143"></a>					  <span class='keyword'>else</span> <span class='varid'>r</span>
+<a name="line-144"></a>
+<a name="line-145"></a>
+<a name="line-146"></a><span class='keyword'>instance</span> <span class='conid'>ArrowState</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-147"></a>    <span class='varid'>changeState</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>s</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-148"></a>    <span class='varid'>accessState</span>	<span class='varid'>af</span>	<span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>af</span> <span class='varid'>s</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-149"></a>
+<a name="line-150"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-153"></a>
+<a name="line-154"></a><span class='comment'>-- | conversion of state list arrows into arbitray other</span>
+<a name="line-155"></a><span class='comment'>-- list arrows.</span>
+<a name="line-156"></a><span class='comment'>--</span>
+<a name="line-157"></a><span class='comment'>-- allows running a state list arrow within another arrow:</span>
+<a name="line-158"></a><span class='comment'>--</span>
+<a name="line-159"></a><span class='comment'>-- example:</span>
+<a name="line-160"></a><span class='comment'>--</span>
+<a name="line-161"></a><span class='comment'>-- &gt; ... &gt;&gt;&gt; fromSLA 0 (... setState ... getState ... ) &gt;&gt;&gt; ...</span>
+<a name="line-162"></a><span class='comment'>--</span>
+<a name="line-163"></a><span class='comment'>-- runs a state arrow with initial state 0 (e..g. an Int) within</span>
+<a name="line-164"></a><span class='comment'>-- another arrow sequence</span>
+<a name="line-165"></a>
+<a name="line-166"></a><a name="fromSLA"></a><span class='definition'>fromSLA</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='varid'>s</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-167"></a><span class='definition'>fromSLA</span> <span class='varid'>s</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>runSLA</span> <span class='varid'>f</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-168"></a>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Monad-MonadStateIO.html b/doc/hdoc/src/Control-Monad-MonadStateIO.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Monad-MonadStateIO.html
@@ -0,0 +1,104 @@
+<!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'>-- general usefull state monad for a local state and IO</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- Version : $Id: MonadStateIO.hs,v 1.1 2004/09/02 19:11:55 hxml Exp $</span>
+<a name="line-5"></a>
+<a name="line-6"></a>
+<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span><span class='varop'>.</span><span class='conid'>MonadStateIO</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span><span class='varop'>.</span><span class='conid'>MonadStateIO</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'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-13"></a>
+<a name="line-14"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-15"></a>
+<a name="line-16"></a><a name="StateIO"></a><span class='keyword'>newtype</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='conid'>STIO</span> <span class='layout'>{</span> <span class='varid'>trans</span> <span class='keyglyph'>::</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>state</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>instance</span> <span class='conid'>Monad</span> <span class='layout'>(</span><span class='conid'>StateIO</span> <span class='varid'>state</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-19"></a>    <span class='varid'>return</span> <span class='varid'>v</span>
+<a name="line-20"></a>	<span class='keyglyph'>=</span> <span class='conid'>STIO</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>v</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-21"></a>
+<a name="line-22"></a>    <span class='conid'>STIO</span> <span class='varid'>cmd</span> <span class='varop'>&gt;&gt;=</span> <span class='varid'>f</span>
+<a name="line-23"></a>	<span class='keyglyph'>=</span> <span class='conid'>STIO</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-24"></a>		  <span class='varid'>cmd</span> <span class='varid'>s</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>rl</span><span class='layout'>,</span> <span class='varid'>s'</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-25"></a>		  <span class='layout'>(</span><span class='varid'>trans</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>rl</span> <span class='varid'>s'</span>
+<a name="line-26"></a>		<span class='layout'>)</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'>-- lift IO command to 'StateIO'</span>
+<a name="line-31"></a>
+<a name="line-32"></a><a name="io"></a><span class='definition'>io</span> <span class='keyglyph'>::</span> <span class='conid'>IO</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='varid'>a</span>
+<a name="line-33"></a><span class='definition'>io</span> <span class='varid'>iocmd</span>
+<a name="line-34"></a>    <span class='keyglyph'>=</span> <span class='conid'>STIO</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-35"></a>	     <span class='keyword'>do</span>
+<a name="line-36"></a>	     <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>iocmd</span>
+<a name="line-37"></a>	     <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-38"></a>	   <span class='layout'>)</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><span class='comment'>-- |</span>
+<a name="line-43"></a><span class='comment'>-- state inspection command: a \"show\"-like function is applied to the state</span>
+<a name="line-44"></a><span class='comment'>-- and the result is written to stderr.</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="trcState"></a><span class='definition'>trcState</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-47"></a><span class='definition'>trcState</span> <span class='varid'>fct</span>
+<a name="line-48"></a>    <span class='keyglyph'>=</span> <span class='conid'>STIO</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-49"></a>	      <span class='keyword'>do</span>
+<a name="line-50"></a>	      <span class='varid'>hPutStr</span> <span class='varid'>stderr</span> <span class='varop'>$</span> <span class='varid'>fct</span> <span class='varid'>s</span>
+<a name="line-51"></a>	      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>()</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-52"></a>	    <span class='layout'>)</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-55"></a><span class='comment'>--</span>
+<a name="line-56"></a><span class='comment'>-- state access commands</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='comment'>-- |</span>
+<a name="line-59"></a><span class='comment'>-- change the state with a given function and return the new state</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="changeState"></a><span class='definition'>changeState</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>state</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='varid'>state</span>
+<a name="line-62"></a><span class='definition'>changeState</span> <span class='varid'>f</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='conid'>STIO</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-64"></a>	     <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span>
+<a name="line-65"></a>	     <span class='keyword'>in</span>
+<a name="line-66"></a>	     <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>s'</span><span class='layout'>)</span>
+<a name="line-67"></a>	    <span class='layout'>)</span>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='comment'>-- |</span>
+<a name="line-70"></a><span class='comment'>-- set the state</span>
+<a name="line-71"></a>
+<a name="line-72"></a><a name="setState"></a><span class='definition'>setState</span>	<span class='keyglyph'>::</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='varid'>state</span>
+<a name="line-73"></a><span class='definition'>setState</span> <span class='varid'>s</span>
+<a name="line-74"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>)</span>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='comment'>-- |</span>
+<a name="line-77"></a><span class='comment'>-- read the state</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="getState"></a><span class='definition'>getState</span>	<span class='keyglyph'>::</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='varid'>state</span>
+<a name="line-80"></a><span class='definition'>getState</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='varid'>id</span>
+<a name="line-82"></a>
+<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'>-- run a 'StateIO' command with an initial state</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="run"></a><span class='definition'>run</span> <span class='keyglyph'>::</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StateIO</span> <span class='varid'>state</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='varid'>res</span>
+<a name="line-88"></a><span class='definition'>run</span> <span class='varid'>initialState</span> <span class='layout'>(</span><span class='conid'>STIO</span> <span class='varid'>cmd</span><span class='layout'>)</span>
+<a name="line-89"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-90"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='sel'>_finalState</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd</span> <span class='varid'>initialState</span>
+<a name="line-91"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-92"></a>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Control-Strategies-DeepSeq.html b/doc/hdoc/src/Control-Strategies-DeepSeq.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Control-Strategies-DeepSeq.html
@@ -0,0 +1,83 @@
+<!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'>{- |
+<a name="line-2"></a>
+<a name="line-3"></a>stolen from comp.lang.functional from Dean Herington
+<a name="line-4"></a>
+<a name="line-5"></a>DeepSeq.lhs  --  deep strict evaluation support
+<a name="line-6"></a>
+<a name="line-7"></a>The `DeepSeq` class provides a method `deepSeq` that is similar to
+<a name="line-8"></a>`seq` except that it forces deep evaluation of its first argument
+<a name="line-9"></a>before returning its second argument.
+<a name="line-10"></a>
+<a name="line-11"></a>Instances of `DeepSeq` are provided for Prelude types.  Other
+<a name="line-12"></a>instances must be supplied by users of this module.
+<a name="line-13"></a>
+<a name="line-14"></a>$Id: DeepSeq.lhs,v 1.5 2002/04/01 20:58:24 heringto Exp $
+<a name="line-15"></a>-}</span>
+<a name="line-16"></a>
+<a name="line-17"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Strategies</span><span class='varop'>.</span><span class='conid'>DeepSeq</span>
+<a name="line-18"></a><span class='keyword'>where</span>
+<a name="line-19"></a>
+<a name="line-20"></a><a name="DeepSeq"></a><span class='keyword'>class</span>  <span class='conid'>DeepSeq</span> <span class='varid'>a</span>  <span class='keyword'>where</span>
+<a name="line-21"></a>    <span class='varid'>deepSeq</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span>
+<a name="line-22"></a>    <span class='varid'>deepSeq</span> <span class='keyglyph'>=</span> <span class='varid'>seq</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='keyword'>infixr</span> <span class='num'>0</span> <span class='varop'>`deepSeq`</span><span class='layout'>,</span> <span class='varop'>$!!</span>
+<a name="line-25"></a>
+<a name="line-26"></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'>DeepSeq</span> <span class='varid'>a</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='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span>
+<a name="line-27"></a>
+<a name="line-28"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>$!!</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>`deepSeq`</span> <span class='varid'>f</span> <span class='varid'>x</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="strict"></a><span class='definition'>strict</span>	<span class='keyglyph'>::</span> <span class='conid'>DeepSeq</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-31"></a><span class='definition'>strict</span> <span class='varid'>x</span>
+<a name="line-32"></a>    <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>`deepSeq`</span> <span class='varid'>x</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>()</span>
+<a name="line-35"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Bool</span>
+<a name="line-36"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Char</span>
+<a name="line-37"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Ordering</span>
+<a name="line-38"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Int</span>
+<a name="line-39"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Integer</span>
+<a name="line-40"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Float</span>
+<a name="line-41"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='conid'>Double</span>
+<a name="line-42"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-43"></a><span class='keyword'>instance</span>  <span class='conid'>DeepSeq</span> <span class='layout'>(</span><span class='conid'>IO</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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-46"></a>    <span class='varid'>deepSeq</span> <span class='conid'>Nothing</span>  <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>y</span>
+<a name="line-47"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>x</span> <span class='varid'>y</span>
+<a name="line-48"></a>
+<a name="line-49"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span>  <span class='keyword'>where</span>
+<a name="line-50"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>Left</span>  <span class='varid'>a</span><span class='layout'>)</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varid'>y</span>
+<a name="line-51"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varid'>y</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>  <span class='keyword'>where</span>
+<a name="line-54"></a>  <span class='varid'>deepSeq</span> <span class='conid'>[]</span>     <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>y</span>
+<a name="line-55"></a>  <span class='varid'>deepSeq</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'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>x</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>xs</span> <span class='varid'>y</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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-58"></a>  <span class='varid'>deepSeq</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'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varid'>y</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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-61"></a>  <span class='varid'>deepSeq</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'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>c</span> <span class='varid'>y</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>c</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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-64"></a>  <span class='varid'>deepSeq</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'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>d</span> <span class='varid'>y</span>
+<a name="line-65"></a>
+<a name="line-66"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>c</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>d</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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-67"></a>  <span class='varid'>deepSeq</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'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>e</span> <span class='varid'>y</span>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>c</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>d</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>e</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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='keyword'>where</span>
+<a name="line-70"></a>  <span class='varid'>deepSeq</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='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>e</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>f</span> <span class='varid'>y</span>
+<a name="line-71"></a>
+<a name="line-72"></a><span class='keyword'>instance</span>  <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>b</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>c</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>d</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>e</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>f</span><span class='layout'>,</span><span class='conid'>DeepSeq</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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='varid'>g</span><span class='layout'>)</span>  <span class='keyword'>where</span>
+<a name="line-73"></a>  <span class='varid'>deepSeq</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='varid'>g</span><span class='layout'>)</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>a</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>e</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>f</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>g</span> <span class='varid'>y</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Data-AssocList.html b/doc/hdoc/src/Data-AssocList.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Data-AssocList.html
@@ -0,0 +1,71 @@
+<!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'>-- simple key value assocciation list</span>
+<a name="line-3"></a><span class='comment'>-- implemented as unordered list of pairs</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: AssocList.hs,v 1.2 2005/05/27 13:15:23 hxml Exp $</span>
+<a name="line-6"></a>
+<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</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'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-13"></a>
+<a name="line-14"></a><a name="AssocList"></a><span class='keyword'>type</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-15"></a>
+<a name="line-16"></a><span class='comment'>-- lookup 	= lookup from Prelude</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='comment'>-- | lookup with default value</span>
+<a name="line-19"></a>
+<a name="line-20"></a><a name="lookupDef"></a><span class='definition'>lookupDef</span>	<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>v</span>
+<a name="line-21"></a><span class='definition'>lookupDef</span> <span class='varid'>d</span> <span class='varid'>k</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>d</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='comment'>-- | lookup with empty list (empty string) as default value</span>
+<a name="line-24"></a>
+<a name="line-25"></a><a name="lookup1"></a><span class='definition'>lookup1</span>		<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span>
+<a name="line-26"></a><span class='definition'>lookup1</span> <span class='varid'>k</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='comment'>-- | test for existence of a key</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="hasEntry"></a><span class='definition'>hasEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-31"></a><span class='definition'>hasEntry</span> <span class='varid'>k</span>	<span class='keyglyph'>=</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- | add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict</span>
+<a name="line-34"></a>
+<a name="line-35"></a><a name="addEntry"></a><span class='definition'>addEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>
+<a name="line-36"></a><span class='definition'>addEntry</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='varid'>l</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span><span class='varid'>v</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='varop'>$!</span> <span class='varid'>delEntry</span> <span class='varid'>k</span> <span class='varid'>l</span>
+<a name="line-37"></a>
+<a name="line-38"></a> <span class='comment'>-- let l' = delEntry k l in seq l' ((k, v) : l')</span>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='comment'>-- | add a whole list of entries with 'addEntry'</span>
+<a name="line-41"></a>
+<a name="line-42"></a><a name="addEntries"></a><span class='definition'>addEntries</span>	<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>
+<a name="line-43"></a><span class='definition'>addEntries</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='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addEntry</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>reverse</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="delEntry"></a><span class='comment'>-- | delete an entry, delEntry is strict</span>
+<a name="line-46"></a><span class='definition'>delEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>
+<a name="line-47"></a><span class='definition'>delEntry</span> <span class='keyword'>_</span> <span class='conid'>[]</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-48"></a><span class='definition'>delEntry</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='varid'>x</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>k1</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-49"></a>    <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k1</span>	<span class='keyglyph'>=</span> <span class='varid'>rest</span>
+<a name="line-50"></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='conop'>:</span> <span class='layout'>)</span> <span class='varop'>$!</span> <span class='varid'>delEntry</span> <span class='varid'>k</span> <span class='varid'>rest</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='comment'>-- delEntry k	= filter ((/= k) . fst)</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='comment'>-- | delete a list of entries with 'delEntry'</span>
+<a name="line-55"></a>
+<a name="line-56"></a><a name="delEntries"></a><span class='definition'>delEntries</span>	<span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>k</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>
+<a name="line-57"></a><span class='definition'>delEntries</span>	<span class='keyglyph'>=</span> <span class='varid'>foldl</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'>delEntry</span>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-60"></a>
+<a name="line-61"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Data-Char-UTF8.html b/doc/hdoc/src/Data-Char-UTF8.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Data-Char-UTF8.html
@@ -0,0 +1,373 @@
+<!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'>{-
+<a name="line-2"></a>
+<a name="line-3"></a>Copyright (c) 2002, members of the Haskell Internationalisation Working
+<a name="line-4"></a>Group All rights reserved.
+<a name="line-5"></a>
+<a name="line-6"></a>Redistribution and use in source and binary forms, with or without
+<a name="line-7"></a>modification, are permitted provided that the following conditions are met:
+<a name="line-8"></a>
+<a name="line-9"></a>* Redistributions of source code must retain the above copyright notice,
+<a name="line-10"></a>   this list of conditions and the following disclaimer.
+<a name="line-11"></a>* Redistributions in binary form must reproduce the above copyright notice,
+<a name="line-12"></a>   this list of conditions and the following disclaimer in the
+<a name="line-13"></a>   documentation and/or other materials provided with the distribution.
+<a name="line-14"></a>* Neither the name of the Haskell Internationalisation Working Group nor
+<a name="line-15"></a>   the names of its contributors may be used to endorse or promote products
+<a name="line-16"></a>   derived from this software without specific prior written permission.
+<a name="line-17"></a>
+<a name="line-18"></a>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+<a name="line-19"></a>AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+<a name="line-20"></a>IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+<a name="line-21"></a>ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+<a name="line-22"></a>LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+<a name="line-23"></a>CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+<a name="line-24"></a>SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+<a name="line-25"></a>INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+<a name="line-26"></a>CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+<a name="line-27"></a>ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+<a name="line-28"></a>POSSIBILITY OF SUCH DAMAGE.
+<a name="line-29"></a>
+<a name="line-30"></a>This module provides lazy stream encoding/decoding facilities for UTF-8,
+<a name="line-31"></a>the Unicode Transformation Format with 8-bit words.
+<a name="line-32"></a>
+<a name="line-33"></a>2002-09-02  Sven Moritz Hallberg &lt;pesco@gmx.de&gt;
+<a name="line-34"></a>
+<a name="line-35"></a>-}</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='comment'>{-
+<a name="line-38"></a>
+<a name="line-39"></a>2007-04-30 Henning Thielemann:
+<a name="line-40"></a>Slight changes to make decode lazy.
+<a name="line-41"></a>The calls of 'reverse' in the original version have broken laziness
+<a name="line-42"></a>and thus had memory leaks.
+<a name="line-43"></a>
+<a name="line-44"></a>-}</span>
+<a name="line-45"></a>
+<a name="line-46"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='varop'>.</span><span class='conid'>UTF8</span>
+<a name="line-47"></a>  <span class='layout'>(</span> <span class='varid'>encode</span><span class='layout'>,</span> <span class='varid'>decode</span><span class='layout'>,</span>
+<a name="line-48"></a>    <span class='varid'>decodeEmbedErrors</span><span class='layout'>,</span>
+<a name="line-49"></a>    <span class='varid'>encodeOne</span><span class='layout'>,</span> <span class='varid'>decodeOne</span><span class='layout'>,</span>
+<a name="line-50"></a>    <span class='conid'>Error</span><span class='layout'>,</span> <span class='comment'>-- Haddock does not want to document signatures with private types</span>
+<a name="line-51"></a>    <span class='comment'>-- these functions should be moved to a utility module</span>
+<a name="line-52"></a>  <span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-53"></a>
+<a name="line-54"></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'>ord</span><span class='layout'>,</span> <span class='varid'>chr</span><span class='layout'>)</span>
+<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Word</span> <span class='layout'>(</span><span class='conid'>Word8</span><span class='layout'>,</span> <span class='conid'>Word16</span><span class='layout'>,</span> <span class='conid'>Word32</span><span class='layout'>)</span>
+<a name="line-56"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Bits</span> <span class='layout'>(</span><span class='conid'>Bits</span><span class='layout'>,</span> <span class='varid'>shiftL</span><span class='layout'>,</span> <span class='varid'>shiftR</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&amp;.</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.|.</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-57"></a>
+<a name="line-58"></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'>unfoldr</span><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'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span> <span class='layout'>(</span><span class='varid'>partitionEither</span><span class='layout'>,</span> <span class='varid'>swap</span><span class='layout'>,</span> <span class='varid'>toMaybe</span><span class='layout'>)</span>
+<a name="line-61"></a>
+<a name="line-62"></a>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='comment'>-- - UTF-8 in General -</span>
+<a name="line-65"></a>
+<a name="line-66"></a><span class='comment'>-- Adapted from the Unicode standard, version 3.2,</span>
+<a name="line-67"></a><span class='comment'>-- Table 3.1 "UTF-8 Bit Distribution" (excluded are UTF-16 encodings):</span>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='comment'>--   Scalar                    1st Byte  2nd Byte  3rd Byte  4th Byte</span>
+<a name="line-70"></a><span class='comment'>--           000000000xxxxxxx  0xxxxxxx</span>
+<a name="line-71"></a><span class='comment'>--           00000yyyyyxxxxxx  110yyyyy  10xxxxxx</span>
+<a name="line-72"></a><span class='comment'>--           zzzzyyyyyyxxxxxx  1110zzzz  10yyyyyy  10xxxxxx</span>
+<a name="line-73"></a><span class='comment'>--   000uuuzzzzzzyyyyyyxxxxxx  11110uuu  10zzzzzz  10yyyyyy  10xxxxxx</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='comment'>-- Also from the Unicode standard, version 3.2,</span>
+<a name="line-76"></a><span class='comment'>-- Table 3.1B "Legal UTF-8 Byte Sequences":</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='comment'>--   Code Points         1st Byte  2nd Byte  3rd Byte  4th Byte</span>
+<a name="line-79"></a><span class='comment'>--     U+0000..U+007F    00..7F</span>
+<a name="line-80"></a><span class='comment'>--     U+0080..U+07FF    C2..DF    80..BF</span>
+<a name="line-81"></a><span class='comment'>--     U+0800..U+0FFF    E0        A0..BF    80..BF</span>
+<a name="line-82"></a><span class='comment'>--     U+1000..U+CFFF    E1..EC    80..BF    80..BF</span>
+<a name="line-83"></a><span class='comment'>--     U+D000..U+D7FF    ED        80..9F    80..BF</span>
+<a name="line-84"></a><span class='comment'>--     U+D800..U+DFFF    ill-formed</span>
+<a name="line-85"></a><span class='comment'>--     U+E000..U+FFFF    EE..EF    80..BF    80..BF</span>
+<a name="line-86"></a><span class='comment'>--    U+10000..U+3FFFF   F0        90..BF    80..BF    80..BF</span>
+<a name="line-87"></a><span class='comment'>--    U+40000..U+FFFFF   F1..F3    80..BF    80..BF    80..BF</span>
+<a name="line-88"></a><span class='comment'>--   U+100000..U+10FFFF  F4        80..8F    80..BF    80..BF</span>
+<a name="line-89"></a>
+<a name="line-90"></a>
+<a name="line-91"></a>
+<a name="line-92"></a><span class='comment'>-- - Encoding Functions -</span>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='comment'>-- Must the encoder ensure that no illegal byte sequences are output or</span>
+<a name="line-95"></a><span class='comment'>-- can we trust the Haskell system to supply only legal values?</span>
+<a name="line-96"></a><span class='comment'>-- For now I include error case for the surrogate values U+D800..U+DFFF and</span>
+<a name="line-97"></a><span class='comment'>-- out-of-range scalars.</span>
+<a name="line-98"></a>
+<a name="line-99"></a><span class='comment'>-- The function is pretty much a transscript of table 3.1B with error checks.</span>
+<a name="line-100"></a><span class='comment'>-- It dispatches the actual encoding to functions specific to the number of</span>
+<a name="line-101"></a><span class='comment'>-- required bytes.</span>
+<a name="line-102"></a>
+<a name="line-103"></a><a name="encodeOne"></a><span class='definition'>encodeOne</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-104"></a><span class='definition'>encodeOne</span> <span class='varid'>c</span>
+<a name="line-105"></a>    <span class='comment'>-- The report guarantees in (6.1.2) that this won't happen:</span>
+<a name="line-106"></a>    <span class='comment'>--   | n &lt; 0       = error "encodeUTF8: ord returned a negative value"</span>
+<a name="line-107"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>&lt;</span> <span class='num'>0x0080</span>  <span class='keyglyph'>=</span> <span class='varid'>encodeOne_onebyte</span> <span class='varid'>n8</span>
+<a name="line-108"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>&lt;</span> <span class='num'>0x0800</span>  <span class='keyglyph'>=</span> <span class='varid'>encodeOne_twobyte</span> <span class='varid'>n16</span>
+<a name="line-109"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>&lt;</span> <span class='num'>0xD800</span>  <span class='keyglyph'>=</span> <span class='varid'>encodeOne_threebyte</span> <span class='varid'>n16</span>
+<a name="line-110"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>&lt;</span> <span class='num'>0xE000</span>  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"encodeUTF8: ord returned a surrogate value"</span>
+<a name="line-111"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>&lt;</span> <span class='num'>0x10000</span>       <span class='keyglyph'>=</span> <span class='varid'>encodeOne_threebyte</span> <span class='varid'>n16</span>
+<a name="line-112"></a>    <span class='comment'>-- Haskell 98 only talks about 16 bit characters, but ghc handles 20.1.</span>
+<a name="line-113"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>&lt;</span> <span class='num'>0x10FFFF</span>      <span class='keyglyph'>=</span> <span class='varid'>encodeOne_fourbyte</span> <span class='varid'>n32</span>
+<a name="line-114"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"encodeUTF8: ord returned a value above 0x10FFFF"</span>
+<a name="line-115"></a>    <span class='keyword'>where</span>
+<a name="line-116"></a>    <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>ord</span> <span class='varid'>c</span>            <span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-117"></a>    <span class='varid'>n8</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='varid'>n</span>  <span class='keyglyph'>::</span> <span class='conid'>Word8</span>
+<a name="line-118"></a>    <span class='varid'>n16</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Word16</span>
+<a name="line-119"></a>    <span class='varid'>n32</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>
+<a name="line-120"></a>
+<a name="line-121"></a>
+<a name="line-122"></a><span class='comment'>-- With the above, a stream decoder is trivial:</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="encode"></a><span class='definition'>encode</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='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-125"></a><span class='definition'>encode</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>encodeOne</span>
+<a name="line-126"></a>
+<a name="line-127"></a>
+<a name="line-128"></a><span class='comment'>-- Now follow the individual encoders for certain numbers of bytes...</span>
+<a name="line-129"></a><span class='comment'>--           _</span>
+<a name="line-130"></a><span class='comment'>--          / |  __  ___  __ __</span>
+<a name="line-131"></a><span class='comment'>--         / ^| //  /__/ // //</span>
+<a name="line-132"></a><span class='comment'>--        /.==| \\ //_  // //</span>
+<a name="line-133"></a><span class='comment'>-- It's  //  || // \_/_//_//_  and it's here to stay!</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="encodeOne_onebyte"></a><span class='definition'>encodeOne_onebyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-136"></a><span class='definition'>encodeOne_onebyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>cp</span><span class='keyglyph'>]</span>
+<a name="line-137"></a>
+<a name="line-138"></a>
+<a name="line-139"></a><span class='comment'>-- 00000yyyyyxxxxxx -&gt; 110yyyyy 10xxxxxx</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="encodeOne_twobyte"></a><span class='definition'>encodeOne_twobyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word16</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-142"></a><span class='definition'>encodeOne_twobyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0xC0</span><span class='varop'>.|.</span><span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>xs</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-143"></a>    <span class='keyword'>where</span>
+<a name="line-144"></a>    <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>
+<a name="line-145"></a>    <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>6</span><span class='layout'>)</span>
+<a name="line-146"></a>    <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varid'>cp</span><span class='layout'>)</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span>
+<a name="line-147"></a>
+<a name="line-148"></a>
+<a name="line-149"></a><span class='comment'>-- zzzzyyyyyyxxxxxx -&gt; 1110zzzz 10yyyyyy 10xxxxxx</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="encodeOne_threebyte"></a><span class='definition'>encodeOne_threebyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word16</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-152"></a><span class='definition'>encodeOne_threebyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0xE0</span><span class='varop'>.|.</span><span class='varid'>zs</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>xs</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-153"></a>    <span class='keyword'>where</span>
+<a name="line-154"></a>    <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>
+<a name="line-155"></a>    <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varid'>cp</span><span class='layout'>)</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span>
+<a name="line-156"></a>    <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>6</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span>
+<a name="line-157"></a>    <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>12</span><span class='layout'>)</span>
+<a name="line-158"></a>
+<a name="line-159"></a>
+<a name="line-160"></a><span class='comment'>-- 000uuuzzzzzzyyyyyyxxxxxx -&gt; 11110uuu 10zzzzzz 10yyyyyy 10xxxxxx</span>
+<a name="line-161"></a>
+<a name="line-162"></a><a name="encodeOne_fourbyte"></a><span class='definition'>encodeOne_fourbyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-163"></a><span class='definition'>encodeOne_fourbyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='num'>0xF0</span><span class='varop'>.|.</span><span class='varid'>us</span><span class='layout'>,</span> <span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>zs</span><span class='layout'>,</span> <span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>ys</span><span class='layout'>,</span> <span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>xs</span><span class='keyglyph'>]</span>
+<a name="line-164"></a>    <span class='keyword'>where</span>
+<a name="line-165"></a>    <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span><span class='layout'>,</span> <span class='varid'>us</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>
+<a name="line-166"></a>    <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varid'>cp</span><span class='layout'>)</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span>
+<a name="line-167"></a>    <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>6</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span>
+<a name="line-168"></a>    <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>12</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span>
+<a name="line-169"></a>    <span class='varid'>us</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>18</span><span class='layout'>)</span>
+<a name="line-170"></a>
+<a name="line-171"></a>
+<a name="line-172"></a>
+<a name="line-173"></a><span class='comment'>-- - Decoding -</span>
+<a name="line-174"></a>
+<a name="line-175"></a><span class='comment'>-- The decoding is a bit more involved. The byte sequence could contain all</span>
+<a name="line-176"></a><span class='comment'>-- sorts of corruptions. The user must be able to either notice or ignore these</span>
+<a name="line-177"></a><span class='comment'>-- errors.</span>
+<a name="line-178"></a>
+<a name="line-179"></a><span class='comment'>-- I will first look at the decoding of a single character. The process</span>
+<a name="line-180"></a><span class='comment'>-- consumes a certain number of bytes from the input. It returns the</span>
+<a name="line-181"></a><span class='comment'>-- remaining input and either an error and the index of its occurance in the</span>
+<a name="line-182"></a><span class='comment'>-- byte sequence or the decoded character.</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="Error"></a><span class='keyword'>data</span> <span class='conid'>Error</span>
+<a name="line-185"></a>
+<a name="line-186"></a><span class='comment'>-- The first byte in a sequence starts with either zero, two, three, or four</span>
+<a name="line-187"></a><span class='comment'>-- ones and one zero to indicate the length of the sequence. If it doesn't,</span>
+<a name="line-188"></a><span class='comment'>-- it is invalid. It is dropped and the next byte interpreted as the start</span>
+<a name="line-189"></a><span class='comment'>-- of a new sequence.</span>
+<a name="line-190"></a>
+<a name="line-191"></a>    <span class='keyglyph'>=</span> <span class='conid'>InvalidFirstByte</span>
+<a name="line-192"></a>
+<a name="line-193"></a><span class='comment'>-- All bytes in the sequence except the first match the bit pattern 10xxxxxx.</span>
+<a name="line-194"></a><span class='comment'>-- If one doesn't, it is invalid. The sequence up to that point is dropped</span>
+<a name="line-195"></a><span class='comment'>-- and the "invalid" byte interpreted as the start of a new sequence. The error</span>
+<a name="line-196"></a><span class='comment'>-- includes the length of the partial sequence and the number of expected bytes.</span>
+<a name="line-197"></a>
+<a name="line-198"></a>    <span class='keyglyph'>|</span> <span class='conid'>InvalidLaterByte</span> <span class='conid'>Int</span>      <span class='comment'>-- the byte at relative index n was invalid</span>
+<a name="line-199"></a>
+<a name="line-200"></a><span class='comment'>-- If a sequence ends prematurely, it has been truncated. It dropped and</span>
+<a name="line-201"></a><span class='comment'>-- decoding stops. The error reports the actual and expected lengths of the</span>
+<a name="line-202"></a><span class='comment'>-- sequence.</span>
+<a name="line-203"></a>
+<a name="line-204"></a>    <span class='keyglyph'>|</span> <span class='conid'>Truncated</span> <span class='conid'>Int</span> <span class='conid'>Int</span>         <span class='comment'>-- only n of m expected bytes were present</span>
+<a name="line-205"></a>
+<a name="line-206"></a><span class='comment'>-- Some sequences would represent code points which would be encoded as a</span>
+<a name="line-207"></a><span class='comment'>-- shorter sequence by a conformant encoder. Such non-shortest sequences are</span>
+<a name="line-208"></a><span class='comment'>-- considered erroneous and dropped. The error reports the actual and</span>
+<a name="line-209"></a><span class='comment'>-- expected number of bytes used.</span>
+<a name="line-210"></a>
+<a name="line-211"></a>    <span class='keyglyph'>|</span> <span class='conid'>NonShortest</span> <span class='conid'>Int</span> <span class='conid'>Int</span>       <span class='comment'>-- n instead of m bytes were used</span>
+<a name="line-212"></a>
+<a name="line-213"></a><span class='comment'>-- Unicode code points are in the range of [0..0x10FFFF]. Any values outside</span>
+<a name="line-214"></a><span class='comment'>-- of those bounds are simply invalid.</span>
+<a name="line-215"></a>
+<a name="line-216"></a>    <span class='keyglyph'>|</span> <span class='conid'>ValueOutOfBounds</span>
+<a name="line-217"></a>
+<a name="line-218"></a><span class='comment'>-- There is no such thing as "surrogate pairs" any more in UTF-8. The</span>
+<a name="line-219"></a><span class='comment'>-- corresponding code points now form illegal byte sequences.</span>
+<a name="line-220"></a>
+<a name="line-221"></a>    <span class='keyglyph'>|</span> <span class='conid'>Surrogate</span>
+<a name="line-222"></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>
+<a name="line-223"></a>
+<a name="line-224"></a>
+<a name="line-225"></a><span class='comment'>-- Second, third, and fourth bytes share the common requirement to start</span>
+<a name="line-226"></a><span class='comment'>-- with the bit sequence 10. So, here's the function to check that property.</span>
+<a name="line-227"></a>
+<a name="line-228"></a><a name="first_bits_not_10"></a><span class='definition'>first_bits_not_10</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-229"></a><span class='definition'>first_bits_not_10</span> <span class='varid'>b</span>
+<a name="line-230"></a>    <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>b</span><span class='varop'>.&amp;.</span><span class='num'>0xC0</span><span class='layout'>)</span> <span class='varop'>/=</span> <span class='num'>0x80</span>  <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-231"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-232"></a>
+<a name="line-233"></a>
+<a name="line-234"></a><span class='comment'>-- Erm, OK, the single-character decoding function's return type is a bit</span>
+<a name="line-235"></a><span class='comment'>-- longish. It is a tripel:</span>
+<a name="line-236"></a>
+<a name="line-237"></a><span class='comment'>--  - The first component contains the decoded character or an error</span>
+<a name="line-238"></a><span class='comment'>--    if the byte sequence was erroneous.</span>
+<a name="line-239"></a><span class='comment'>--  - The second component contains the number of bytes that were consumed</span>
+<a name="line-240"></a><span class='comment'>--    from the input.</span>
+<a name="line-241"></a><span class='comment'>--  - The third component contains the remaining bytes of input.</span>
+<a name="line-242"></a>
+<a name="line-243"></a><a name="decodeOne"></a><span class='definition'>decodeOne</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-244"></a><span class='definition'>decodeOne</span> <span class='varid'>bs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-245"></a>    <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'>&lt;</span> <span class='num'>0x80</span>   <span class='keyglyph'>=</span> <span class='varid'>decodeOne_onebyte</span> <span class='varid'>bs</span>
+<a name="line-246"></a>    <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'>&lt;</span> <span class='num'>0xC0</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>InvalidFirstByte</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-247"></a>    <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'>&lt;</span> <span class='num'>0xE0</span>   <span class='keyglyph'>=</span> <span class='varid'>decodeOne_twobyte</span> <span class='varid'>bs</span>
+<a name="line-248"></a>    <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'>&lt;</span> <span class='num'>0xF0</span>   <span class='keyglyph'>=</span> <span class='varid'>decodeOne_threebyte</span> <span class='varid'>bs</span>
+<a name="line-249"></a>    <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'>&lt;</span> <span class='num'>0xF5</span>   <span class='keyglyph'>=</span> <span class='varid'>decodeOne_fourbyte</span> <span class='varid'>bs</span>
+<a name="line-250"></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='conid'>ValueOutOfBounds</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-251"></a><span class='definition'>decodeOne</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne: No input"</span>
+<a name="line-252"></a>
+<a name="line-253"></a>
+<a name="line-254"></a><span class='comment'>-- 0xxxxxxx -&gt; 000000000xxxxxxx</span>
+<a name="line-255"></a>
+<a name="line-256"></a><a name="decodeOne_onebyte"></a><span class='definition'>decodeOne_onebyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-257"></a><span class='definition'>decodeOne_onebyte</span> <span class='layout'>(</span><span class='varid'>b</span><span class='conop'>:</span><span class='varid'>bs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-258"></a><span class='definition'>decodeOne_onebyte</span><span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_onebyte: No input (can't happen)"</span>
+<a name="line-259"></a>
+<a name="line-260"></a><a name="cpToChar"></a><span class='definition'>cpToChar</span> <span class='keyglyph'>::</span> <span class='conid'>Integral</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span>
+<a name="line-261"></a><span class='definition'>cpToChar</span> <span class='keyglyph'>=</span> <span class='varid'>chr</span> <span class='varop'>.</span> <span class='varid'>fromIntegral</span>
+<a name="line-262"></a>
+<a name="line-263"></a>
+<a name="line-264"></a><span class='comment'>-- 110yyyyy 10xxxxxx -&gt; 00000yyyyyxxxxxx</span>
+<a name="line-265"></a>
+<a name="line-266"></a><a name="decodeOne_twobyte"></a><span class='definition'>decodeOne_twobyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-267"></a><span class='definition'>decodeOne_twobyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-268"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>Truncated</span> <span class='num'>1</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-269"></a><span class='definition'>decodeOne_twobyte</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-270"></a>    <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'>&lt;</span> <span class='num'>0xC2</span>            <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>2</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-271"></a>    <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b2</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>bs</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-272"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>            <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>result</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-273"></a>    <span class='keyword'>where</span>
+<a name="line-274"></a>    <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>result</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>
+<a name="line-275"></a>    <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='varop'>.&amp;.</span><span class='num'>0x3F</span><span class='layout'>)</span>
+<a name="line-276"></a>    <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='varop'>.&amp;.</span><span class='num'>0x1F</span><span class='layout'>)</span>
+<a name="line-277"></a>    <span class='varid'>result</span> <span class='keyglyph'>=</span> <span class='varid'>shiftL</span> <span class='varid'>ys</span> <span class='num'>6</span> <span class='varop'>.|.</span> <span class='varid'>xs</span>
+<a name="line-278"></a><span class='definition'>decodeOne_twobyte</span><span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_twobyte: No input (can't happen)"</span>
+<a name="line-279"></a>
+<a name="line-280"></a>
+<a name="line-281"></a><span class='comment'>-- 1110zzzz 10yyyyyy 10xxxxxx -&gt; zzzzyyyyyyxxxxxx</span>
+<a name="line-282"></a>
+<a name="line-283"></a><a name="decodeOne_threebyte"></a><span class='definition'>decodeOne_threebyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-284"></a><span class='definition'>decodeOne_threebyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>threebyte_truncated</span> <span class='num'>1</span>
+<a name="line-285"></a><span class='definition'>decodeOne_threebyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>threebyte_truncated</span> <span class='num'>2</span>
+<a name="line-286"></a><span class='definition'>decodeOne_threebyte</span> <span class='varid'>bs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>b3</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-287"></a>    <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b2</span>
+<a name="line-288"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-289"></a>    <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b3</span>
+<a name="line-290"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>2</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-291"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&lt;</span> <span class='num'>0x0080</span>
+<a name="line-292"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>3</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-293"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&lt;</span> <span class='num'>0x0800</span>
+<a name="line-294"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>3</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-295"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&gt;=</span> <span class='num'>0xD800</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>result</span> <span class='varop'>&lt;</span> <span class='num'>0xE000</span>
+<a name="line-296"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>Surrogate</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-297"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-298"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>result</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-299"></a>    <span class='keyword'>where</span>
+<a name="line-300"></a>    <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span><span class='layout'>,</span> <span class='varid'>result</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>
+<a name="line-301"></a>    <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b3</span><span class='varop'>.&amp;.</span><span class='num'>0x3F</span><span class='layout'>)</span>
+<a name="line-302"></a>    <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='varop'>.&amp;.</span><span class='num'>0x3F</span><span class='layout'>)</span>
+<a name="line-303"></a>    <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='varop'>.&amp;.</span><span class='num'>0x0F</span><span class='layout'>)</span>
+<a name="line-304"></a>    <span class='varid'>result</span> <span class='keyglyph'>=</span> <span class='varid'>shiftL</span> <span class='varid'>zs</span> <span class='num'>12</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>ys</span> <span class='num'>6</span> <span class='varop'>.|.</span> <span class='varid'>xs</span>
+<a name="line-305"></a><span class='definition'>decodeOne_threebyte</span><span class='conid'>[]</span>
+<a name="line-306"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_threebyte: No input (can't happen)"</span>
+<a name="line-307"></a>
+<a name="line-308"></a><a name="threebyte_truncated"></a><span class='definition'>threebyte_truncated</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-309"></a><span class='definition'>threebyte_truncated</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>Truncated</span> <span class='varid'>n</span> <span class='num'>3</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-310"></a>
+<a name="line-311"></a>
+<a name="line-312"></a><span class='comment'>-- 11110uuu 10zzzzzz 10yyyyyy 10xxxxxx -&gt; 000uuuzzzzzzyyyyyyxxxxxx</span>
+<a name="line-313"></a>
+<a name="line-314"></a><a name="decodeOne_fourbyte"></a><span class='definition'>decodeOne_fourbyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-315"></a><span class='definition'>decodeOne_fourbyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>fourbyte_truncated</span> <span class='num'>1</span>
+<a name="line-316"></a><span class='definition'>decodeOne_fourbyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>fourbyte_truncated</span> <span class='num'>2</span>
+<a name="line-317"></a><span class='definition'>decodeOne_fourbyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fourbyte_truncated</span> <span class='num'>3</span>
+<a name="line-318"></a><span class='definition'>decodeOne_fourbyte</span> <span class='varid'>bs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>b3</span><span class='conop'>:</span><span class='varid'>b4</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-319"></a>    <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b2</span>
+<a name="line-320"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-321"></a>    <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b3</span>
+<a name="line-322"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>2</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-323"></a>    <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b4</span>
+<a name="line-324"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>3</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>3</span> <span class='varid'>bs</span><span class='layout'>)</span>
+<a name="line-325"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&lt;</span> <span class='num'>0x0080</span>
+<a name="line-326"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>4</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-327"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&lt;</span> <span class='num'>0x0800</span>
+<a name="line-328"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>4</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-329"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&lt;</span> <span class='num'>0x10000</span>
+<a name="line-330"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>4</span> <span class='num'>3</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-331"></a>    <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>&gt;</span> <span class='num'>0x10FFFF</span>
+<a name="line-332"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>ValueOutOfBounds</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-333"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-334"></a>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>result</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-335"></a>    <span class='keyword'>where</span>
+<a name="line-336"></a>    <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span><span class='layout'>,</span> <span class='varid'>us</span><span class='layout'>,</span> <span class='varid'>result</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>
+<a name="line-337"></a>    <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b4</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span><span class='layout'>)</span>
+<a name="line-338"></a>    <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b3</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span><span class='layout'>)</span>
+<a name="line-339"></a>    <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b2</span> <span class='varop'>.&amp;.</span> <span class='num'>0x3F</span><span class='layout'>)</span>
+<a name="line-340"></a>    <span class='varid'>us</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='varop'>.&amp;.</span> <span class='num'>0x07</span><span class='layout'>)</span>
+<a name="line-341"></a>    <span class='varid'>result</span> <span class='keyglyph'>=</span> <span class='varid'>xs</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>ys</span> <span class='num'>6</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>zs</span> <span class='num'>12</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>us</span> <span class='num'>18</span>
+<a name="line-342"></a><span class='definition'>decodeOne_fourbyte</span><span class='conid'>[]</span>
+<a name="line-343"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_fourbyte: No input (can't happen)"</span>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="fourbyte_truncated"></a><span class='definition'>fourbyte_truncated</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-346"></a><span class='definition'>fourbyte_truncated</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>Truncated</span> <span class='varid'>n</span> <span class='num'>4</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-347"></a>
+<a name="line-348"></a>
+<a name="line-349"></a><span class='comment'>-- The decoder examines all input, recording decoded characters as well as</span>
+<a name="line-350"></a><span class='comment'>-- error-index pairs along the way.</span>
+<a name="line-351"></a>
+<a name="line-352"></a><a name="decode"></a><span class='definition'>decode</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Error</span><span class='layout'>,</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-353"></a><span class='definition'>decode</span> <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'>decodeEmbedErrors</span>
+<a name="line-354"></a>
+<a name="line-355"></a><a name="decodeEmbedErrors"></a><span class='definition'>decodeEmbedErrors</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='layout'>(</span><span class='conid'>Error</span><span class='layout'>,</span><span class='conid'>Int</span><span class='layout'>)</span> <span class='conid'>Char</span><span class='keyglyph'>]</span>
+<a name="line-356"></a><span class='definition'>decodeEmbedErrors</span> <span class='keyglyph'>=</span>
+<a name="line-357"></a>   <span class='varid'>unfoldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-358"></a>       <span class='varid'>toMaybe</span>
+<a name="line-359"></a>          <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>null</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-360"></a>          <span class='layout'>(</span><span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>decodeOne</span> <span class='varid'>xs</span>
+<a name="line-361"></a>           <span class='keyword'>in</span>  <span class='layout'>(</span><span class='varid'>either</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>err</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>err</span><span class='layout'>,</span><span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>,</span>
+<a name="line-362"></a>                <span class='layout'>(</span><span class='varid'>pos</span><span class='varop'>+</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.</span>
+<a name="line-363"></a>   <span class='conid'>(,)</span> <span class='num'>0</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Data-NavTree.html b/doc/hdoc/src/Data-NavTree.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Data-NavTree.html
@@ -0,0 +1,127 @@
+<!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'>-- Navigable tree structure which allow a program to traverse</span>
+<a name="line-3"></a><span class='comment'>-- up the tree as well as down.</span>
+<a name="line-4"></a><span class='comment'>-- copied and modified from HXML (&lt;<a href="http://www.flightlab.com/~joe/hxml/">http://www.flightlab.com/~joe/hxml/</a>&gt;)</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'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>
+<a name="line-8"></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-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'>TypeDefs</span>
+<a name="line-10"></a>    <span class='layout'>)</span>
+<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'>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-14"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</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='comment'>-- NavTree</span>
+<a name="line-19"></a><span class='comment'>--</span>
+<a name="line-20"></a><span class='comment'>-- | navigable tree with nodes of type node</span>
+<a name="line-21"></a><span class='comment'>--</span>
+<a name="line-22"></a><span class='comment'>-- a navigable tree consists of a n-ary tree for the current fragment tree,</span>
+<a name="line-23"></a><span class='comment'>-- a navigable tree for all ancestors, and two n-ary trees for</span>
+<a name="line-24"></a><span class='comment'>-- the previous- and following siblings</span>
+<a name="line-25"></a>
+<a name="line-26"></a><a name="NavTree"></a><span class='keyword'>data</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>NT</span>
+<a name="line-27"></a>    <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='layout'>)</span>		<span class='comment'>-- self</span>
+<a name="line-28"></a>    <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>		<span class='comment'>-- ancestors</span>
+<a name="line-29"></a>    <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>		<span class='comment'>-- previous siblings (in reverse order)</span>
+<a name="line-30"></a>    <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>		<span class='comment'>-- following siblings</span>
+<a name="line-31"></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-32"></a>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-35"></a>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='comment'>-- |</span>
+<a name="line-38"></a><span class='comment'>-- converts a n-ary tree in a navigable tree</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="ntree"></a><span class='definition'>ntree</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavTree</span> <span class='varid'>a</span>
+<a name="line-41"></a><span class='definition'>ntree</span> <span class='varid'>nd</span>
+<a name="line-42"></a>    <span class='keyglyph'>=</span> <span class='conid'>NT</span> <span class='varid'>nd</span> <span class='conid'>[]</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-43"></a>
+<a name="line-44"></a><span class='comment'>-- |</span>
+<a name="line-45"></a><span class='comment'>-- converts a navigable tree in a n-ary tree</span>
+<a name="line-46"></a>
+<a name="line-47"></a><a name="subtreeNT"></a><span class='definition'>subtreeNT</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>a</span>
+<a name="line-48"></a><span class='definition'>subtreeNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>nd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-49"></a>    <span class='keyglyph'>=</span> <span class='varid'>nd</span>
+<a name="line-50"></a>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='comment'>-- |</span>
+<a name="line-53"></a><span class='comment'>-- function for selecting the value of the current fragment tree</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="dataNT"></a><span class='definition'>dataNT</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-56"></a><span class='definition'>dataNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-57"></a>    <span class='keyglyph'>=</span> <span class='varid'>a</span>
+<a name="line-58"></a>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='comment'>-- functions for traversing up, down, left and right in a navigable tree</span>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="upNT"></a><span class='definition'>upNT</span>
+<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>downNT</span>
+<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>leftNT</span>
+<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>rightNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='definition'>upNT</span>	  <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>p</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>p</span>
+<a name="line-70"></a><span class='definition'>upNT</span>	  <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> 		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-71"></a><a name="downNT"></a><span class='definition'>downNT</span>	<span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>cs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>u</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>c</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>u</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-72"></a><span class='definition'>downNT</span> 	  <span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='conid'>[]</span>    <span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-73"></a><a name="leftNT"></a><span class='definition'>leftNT</span>	  <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>s</span> <span class='varid'>u</span> <span class='layout'>(</span><span class='varid'>l</span><span class='conop'>:</span><span class='varid'>ls</span><span class='layout'>)</span> <span class='varid'>r</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>ls</span> <span class='layout'>(</span><span class='varid'>s</span><span class='conop'>:</span><span class='varid'>r</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-74"></a><span class='definition'>leftNT</span>	  <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span>     <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-75"></a><a name="rightNT"></a><span class='definition'>rightNT</span>   <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>s</span> <span class='varid'>u</span> <span class='varid'>l</span> <span class='layout'>(</span><span class='varid'>r</span><span class='conop'>:</span><span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>r</span> <span class='varid'>u</span> <span class='layout'>(</span><span class='varid'>s</span><span class='conop'>:</span><span class='varid'>l</span><span class='layout'>)</span> <span class='varid'>rs</span><span class='layout'>)</span>
+<a name="line-76"></a><span class='definition'>rightNT</span>   <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span>    <span class='layout'>)</span> 		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-77"></a>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- preorderNT t = t : concatMap preorderNT (children t)</span>
+<a name="line-80"></a><span class='comment'>-- where children = maybe [] (maybeStar rightNT) . downNT</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="preorderNT"></a><span class='definition'>preorderNT</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-83"></a><span class='definition'>preorderNT</span>
+<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='varid'>visit</span> <span class='conid'>[]</span>
+<a name="line-85"></a>    <span class='keyword'>where</span>
+<a name="line-86"></a>    <span class='varid'>visit</span>  <span class='varid'>k</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>maybe</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='varid'>visit'</span> <span class='varid'>k</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>downNT</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-87"></a>    <span class='varid'>visit'</span> <span class='varid'>k</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>visit</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='varid'>visit'</span> <span class='varid'>k</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rightNT</span> <span class='varid'>t</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="revPreorderNT"></a><span class='definition'>revPreorderNT</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-90"></a><span class='definition'>revPreorderNT</span> <span class='varid'>t</span>
+<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>concatMap</span> <span class='varid'>revPreorderNT</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>children</span> <span class='varid'>t</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-92"></a>      <span class='keyword'>where</span>
+<a name="line-93"></a>      <span class='varid'>children</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>rightNT</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>downNT</span>
+<a name="line-94"></a>
+<a name="line-95"></a><a name="getChildrenNT"></a><span class='definition'>getChildrenNT</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-96"></a><span class='definition'>getChildrenNT</span> <span class='varid'>node</span>
+<a name="line-97"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>follow</span> <span class='layout'>(</span><span class='varid'>downNT</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-98"></a>      <span class='keyword'>where</span>
+<a name="line-99"></a>      <span class='varid'>follow</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='conop'>:</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>follow</span> <span class='layout'>(</span><span class='varid'>rightNT</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-100"></a>
+<a name="line-101"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-102"></a><span class='comment'>-- Miscellaneous useful combinators</span>
+<a name="line-103"></a>
+<a name="line-104"></a><span class='comment'>-- |</span>
+<a name="line-105"></a><span class='comment'>-- Kleisli composition:</span>
+<a name="line-106"></a>
+<a name="line-107"></a><a name="o'"></a><span class='definition'>o'</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='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='varid'>c</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='varid'>b</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='varid'>c</span><span class='layout'>)</span>
+<a name="line-108"></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='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='varop'>&gt;&gt;=</span> <span class='varid'>f</span>
+<a name="line-109"></a>
+<a name="line-110"></a>
+<a name="line-111"></a><span class='comment'>-- Some useful anamorphisms:</span>
+<a name="line-112"></a>
+<a name="line-113"></a><a name="maybeStar"></a><span class='definition'>maybeStar</span><span class='layout'>,</span> <span class='varid'>maybePlus</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'>a</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-114"></a><span class='definition'>maybeStar</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='conop'>:</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-115"></a><a name="maybePlus"></a><span class='definition'>maybePlus</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span>     <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-116"></a>
+<a name="line-117"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Data-Tree-Class.html b/doc/hdoc/src/Data-Tree-Class.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Data-Tree-Class.html
@@ -0,0 +1,102 @@
+<!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.Class
+<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>
+<a name="line-12"></a>   Interface definition for trees
+<a name="line-13"></a>-}</span>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-16"></a>
+<a name="line-17"></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'>Class</span>
+<a name="line-18"></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> <span class='layout'>)</span>
+<a name="line-19"></a><span class='keyword'>where</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- | The interface for trees</span>
+<a name="line-22"></a>
+<a name="line-23"></a><a name="Tree"></a><span class='keyword'>class</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyword'>where</span>
+<a name="line-24"></a>    <span class='comment'>-- | tree construction: a new tree is constructed by a node attribute and a list of children</span>
+<a name="line-25"></a>    <span class='varid'>mkTree</span>		<span class='keyglyph'>::</span>              <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span>
+<a name="line-26"></a>
+<a name="line-27"></a>    <span class='comment'>-- | leaf construction: leafs don't have any children</span>
+<a name="line-28"></a>    <span class='comment'>--</span>
+<a name="line-29"></a>    <span class='comment'>-- definition: @ mkLeaf n = mkTree n [] @</span>
+<a name="line-30"></a>
+<a name="line-31"></a>    <span class='varid'>mkLeaf</span>		<span class='keyglyph'>::</span>                       <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span>
+<a name="line-32"></a>    <span class='varid'>mkLeaf</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='varid'>n</span> <span class='conid'>[]</span>
+<a name="line-33"></a>
+<a name="line-34"></a>    <span class='comment'>-- | leaf test: list of children empty?</span>
+<a name="line-35"></a>
+<a name="line-36"></a>    <span class='varid'>isLeaf</span>		<span class='keyglyph'>::</span>		       <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-37"></a>    <span class='varid'>isLeaf</span>		<span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>
+<a name="line-38"></a>
+<a name="line-39"></a>    <span class='comment'>-- | innner node test: @ not . isLeaf @</span>
+<a name="line-40"></a>
+<a name="line-41"></a>    <span class='varid'>isInner</span>		<span class='keyglyph'>::</span>		       <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-42"></a>    <span class='varid'>isInner</span>		<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isLeaf</span>
+<a name="line-43"></a>
+<a name="line-44"></a>    <span class='comment'>-- | select node attribute</span>
+<a name="line-45"></a>
+<a name="line-46"></a>    <span class='varid'>getNode</span>		<span class='keyglyph'>::</span>                     <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-47"></a>
+<a name="line-48"></a>    <span class='comment'>-- | select children</span>
+<a name="line-49"></a>
+<a name="line-50"></a>    <span class='varid'>getChildren</span>		<span class='keyglyph'>::</span>                     <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-51"></a>
+<a name="line-52"></a>    <span class='comment'>-- | edit node attribute</span>
+<a name="line-53"></a>
+<a name="line-54"></a>    <span class='varid'>changeNode</span>		<span class='keyglyph'>::</span>         <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</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'>a</span>
+<a name="line-55"></a>
+<a name="line-56"></a>    <span class='comment'>-- | edit children</span>
+<a name="line-57"></a>
+<a name="line-58"></a>    <span class='varid'>changeChildren</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</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'>a</span>
+<a name="line-59"></a>
+<a name="line-60"></a>    <span class='comment'>-- | substitute node: @ setNode n = changeNode (const n) @</span>
+<a name="line-61"></a>
+<a name="line-62"></a>    <span class='varid'>setNode</span>		<span class='keyglyph'>::</span>                <span class='varid'>a</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'>a</span>
+<a name="line-63"></a>    <span class='varid'>setNode</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-64"></a>
+<a name="line-65"></a>    <span class='comment'>-- | substitute children: @ setChildren cl = changeChildren (const cl) @</span>
+<a name="line-66"></a>
+<a name="line-67"></a>    <span class='varid'>setChildren</span>		<span class='keyglyph'>::</span>            <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</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'>a</span>
+<a name="line-68"></a>    <span class='varid'>setChildren</span> <span class='varid'>cl</span>	<span class='keyglyph'>=</span> <span class='varid'>changeChildren</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-69"></a>
+<a name="line-70"></a>    <span class='comment'>-- | fold for trees</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='varid'>foldTree</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='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span>
+<a name="line-73"></a>
+<a name="line-74"></a>    <span class='comment'>-- | all nodes of a tree</span>
+<a name="line-75"></a>
+<a name="line-76"></a>    <span class='varid'>nodesTree</span>		<span class='keyglyph'>::</span>		       <span class='varid'>t</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-77"></a>
+<a name="line-78"></a>    <span class='comment'>-- | depth of a tree</span>
+<a name="line-79"></a>
+<a name="line-80"></a>    <span class='varid'>depthTree</span>		<span class='keyglyph'>::</span>		       <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-81"></a>
+<a name="line-82"></a>    <span class='comment'>-- | number of nodes in a tree</span>
+<a name="line-83"></a>
+<a name="line-84"></a>    <span class='varid'>cardTree</span>		<span class='keyglyph'>::</span>                     <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-85"></a>
+<a name="line-86"></a>    <span class='comment'>-- | format tree for readable trace output</span>
+<a name="line-87"></a>    <span class='comment'>--</span>
+<a name="line-88"></a>    <span class='comment'>-- a /graphical/ representation of the tree in text format</span>
+<a name="line-89"></a>
+<a name="line-90"></a>    <span class='varid'>formatTree</span>		<span class='keyglyph'>::</span>    <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</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'>String</span>
+<a name="line-91"></a>
+<a name="line-92"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Data-Tree-NTree-Filter.html
@@ -0,0 +1,923 @@
+<!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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Data-Tree-NTree-TypeDefs.html
@@ -0,0 +1,124 @@
+<!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.TypeDefs
+<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: TypeDefs.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Interface definition for trees
+<a name="line-14"></a>
+<a name="line-15"></a>n-ary tree structure (rose trees)
+<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'>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-22"></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-23"></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-24"></a>    <span class='layout'>)</span>
+<a name="line-25"></a><span class='keyword'>where</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'>Strategies</span><span class='varop'>.</span><span class='conid'>DeepSeq</span>
+<a name="line-28"></a>
+<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'>Class</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='comment'>-- | n-ary ordered tree (rose trees)</span>
+<a name="line-33"></a><span class='comment'>--</span>
+<a name="line-34"></a><span class='comment'>-- a tree consists of a node and a possible empty list of children.</span>
+<a name="line-35"></a><span class='comment'>-- If the list of children is empty, the node is a leaf, else it's</span>
+<a name="line-36"></a><span class='comment'>-- an inner node.</span>
+<a name="line-37"></a><span class='comment'>--</span>
+<a name="line-38"></a><span class='comment'>-- NTree implements Eq, Ord, Show and Read</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="NTree"></a><span class='keyword'>data</span> <span class='conid'>NTree</span>  <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>NTrees</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-41"></a>    <span class='keyword'>deriving</span>
+<a name="line-42"></a>    <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'>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-43"></a>
+<a name="line-44"></a><span class='comment'>-- | shortcut for a sequence of n-ary trees</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="NTrees"></a><span class='keyword'>type</span> <span class='conid'>NTrees</span>   <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</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'>-- |</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-53"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varid'>y</span>		<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>cl</span> <span class='varid'>y</span>
+<a name="line-54"></a>
+<a name="line-55"></a><span class='comment'>-- | NTree implements class Functor</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='keyword'>instance</span> <span class='conid'>Functor</span> <span class='conid'>NTree</span> <span class='keyword'>where</span>
+<a name="line-58"></a>    <span class='varid'>fmap</span> <span class='varid'>f</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>fmap</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-59"></a>
+<a name="line-60"></a>
+<a name="line-61"></a><span class='comment'>-- | Implementation of "Data.Tree.Class" interface for rose trees</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='keyword'>instance</span> <span class='conid'>Tree</span> <span class='conid'>NTree</span> <span class='keyword'>where</span>
+<a name="line-64"></a>    <span class='varid'>mkTree</span> <span class='varid'>n</span> <span class='varid'>cl</span>				<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span>
+<a name="line-65"></a>
+<a name="line-66"></a>    <span class='varid'>getNode</span>           <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='keyword'>_</span> <span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-67"></a>    <span class='varid'>getChildren</span>       <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='varid'>cl</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>cl</span>
+<a name="line-68"></a>
+<a name="line-69"></a>    <span class='varid'>changeNode</span>     <span class='varid'>cf</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>cl</span>
+<a name="line-70"></a>    <span class='varid'>changeChildren</span> <span class='varid'>cf</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='varid'>foldTree</span>        <span class='varid'>f</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>foldTree</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-73"></a>
+<a name="line-74"></a>    <span class='varid'>nodesTree</span>		<span class='keyglyph'>=</span> <span class='varid'>foldTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>rs</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='conop'>:</span> <span class='varid'>concat</span> <span class='varid'>rs</span><span class='layout'>)</span>
+<a name="line-75"></a>    <span class='varid'>depthTree</span>		<span class='keyglyph'>=</span> <span class='varid'>foldTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>rs</span> <span class='keyglyph'>-&gt;</span> <span class='num'>1</span> <span class='varop'>+</span> <span class='varid'>maximum</span> <span class='layout'>(</span><span class='num'>0</span> <span class='conop'>:</span> <span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-76"></a>    <span class='varid'>cardTree</span>		<span class='keyglyph'>=</span> <span class='varid'>foldTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>rs</span> <span class='keyglyph'>-&gt;</span> <span class='num'>1</span> <span class='varop'>+</span> <span class='varid'>sum</span> <span class='varid'>rs</span><span class='layout'>)</span>
+<a name="line-77"></a>    <span class='varid'>formatTree</span> <span class='varid'>nf</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>formatNTreeF</span> <span class='varid'>nf</span> <span class='layout'>(</span><span class='varid'>showString</span> <span class='str'>"---"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>showString</span> <span class='str'>"   "</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='str'>""</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-80"></a><span class='comment'>-- |</span>
+<a name="line-81"></a><span class='comment'>-- convert a tree into a pseudo graphical string reprsentation</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="formatNTreeF"></a><span class='definition'>formatNTreeF</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='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='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'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='definition'>formatNTreeF</span> <span class='varid'>node2String</span> <span class='varid'>pf1</span> <span class='varid'>pf2</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>l</span><span class='layout'>)</span>
+<a name="line-86"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatNode</span>
+<a name="line-87"></a>      <span class='varop'>.</span> <span class='varid'>formatChildren</span> <span class='varid'>pf2</span> <span class='varid'>l</span>
+<a name="line-88"></a>    <span class='keyword'>where</span>
+<a name="line-89"></a>    <span class='varid'>formatNode</span>	<span class='keyglyph'>=</span> <span class='varid'>pf1</span> <span class='varop'>.</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='layout'>(</span><span class='varid'>map</span> <span class='varid'>trNL</span> <span class='layout'>(</span><span class='varid'>node2String</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showNL</span>
+<a name="line-90"></a>    <span class='varid'>trNL</span> <span class='chr'>'\n'</span>	<span class='keyglyph'>=</span> <span class='varid'>showNL</span> <span class='varop'>.</span> <span class='varid'>pf2</span>
+<a name="line-91"></a>    <span class='varid'>trNL</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='varid'>c</span>
+<a name="line-92"></a>    <span class='varid'>showNL</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\n'</span>
+<a name="line-93"></a>    <span class='varid'>formatChildren</span> <span class='keyword'>_</span> <span class='conid'>[]</span>
+<a name="line-94"></a>	<span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-95"></a>    <span class='varid'>formatChildren</span> <span class='varid'>pf</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-96"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ts</span>
+<a name="line-97"></a>	    <span class='keyglyph'>=</span> <span class='varid'>pfl'</span>
+<a name="line-98"></a>	      <span class='varop'>.</span> <span class='varid'>formatTr</span> <span class='varid'>pf2'</span> <span class='varid'>t</span>
+<a name="line-99"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-100"></a>	    <span class='keyglyph'>=</span> <span class='varid'>pfl'</span>
+<a name="line-101"></a>	      <span class='varop'>.</span> <span class='varid'>formatTr</span> <span class='varid'>pf1'</span> <span class='varid'>t</span>
+<a name="line-102"></a>	      <span class='varop'>.</span> <span class='varid'>formatChildren</span> <span class='varid'>pf</span> <span class='varid'>ts</span>
+<a name="line-103"></a>	<span class='keyword'>where</span>
+<a name="line-104"></a>	<span class='varid'>pf0'</span>	<span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent1</span>
+<a name="line-105"></a>	<span class='varid'>pf1'</span>	<span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent2</span>
+<a name="line-106"></a>	<span class='varid'>pf2'</span>	<span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent3</span>
+<a name="line-107"></a>	<span class='varid'>pfl'</span>	<span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent4</span>
+<a name="line-108"></a>	<span class='varid'>formatTr</span>	<span class='keyglyph'>=</span> <span class='varid'>formatNTreeF</span> <span class='varid'>node2String</span> <span class='varid'>pf0'</span>
+<a name="line-109"></a>	<span class='varid'>indent1</span> <span class='keyglyph'>=</span> <span class='str'>"+---"</span>
+<a name="line-110"></a>	<span class='varid'>indent2</span> <span class='keyglyph'>=</span> <span class='str'>"|   "</span>
+<a name="line-111"></a>	<span class='varid'>indent3</span> <span class='keyglyph'>=</span> <span class='str'>"    "</span>
+<a name="line-112"></a>	<span class='varid'>indent4</span> <span class='keyglyph'>=</span> <span class='str'>"|\n"</span>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- eof ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/System-PipeOpen.html b/doc/hdoc/src/System-PipeOpen.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/System-PipeOpen.html
@@ -0,0 +1,70 @@
+<!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     : System.PipeOpen
+<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: none portable
+<a name="line-11"></a>   Version    : $Id: PipeOpen.hs,v 1.2 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>pipe open implemented with System.Process 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'>System</span><span class='varop'>.</span><span class='conid'>PipeOpen</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>popen</span> <span class='layout'>)</span>
+<a name="line-21"></a><span class='keyword'>where</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>IO</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>hGetContents</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>hClose</span>
+<a name="line-26"></a>    <span class='layout'>)</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'>Exit</span>
+<a name="line-29"></a>    <span class='layout'>(</span> <span class='conid'>ExitCode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</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'>System</span><span class='varop'>.</span><span class='conid'>Process</span>
+<a name="line-33"></a>    <span class='layout'>(</span> <span class='varid'>runInteractiveProcess</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>waitForProcess</span>
+<a name="line-35"></a>    <span class='layout'>)</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='comment'>-- | call an external program with a list of command line arguments</span>
+<a name="line-38"></a><span class='comment'>-- and return content of stdout, content of stderr and return code</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="popen"></a><span class='definition'>popen</span>	<span class='keyglyph'>::</span> <span class='conid'>String</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'>IO</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'>Int</span><span class='layout'>)</span>
+<a name="line-41"></a><span class='definition'>popen</span> <span class='varid'>prg</span> <span class='varid'>argl</span>
+<a name="line-42"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-43"></a>      <span class='layout'>(</span><span class='varid'>inpH</span><span class='layout'>,</span> <span class='varid'>outH</span><span class='layout'>,</span> <span class='varid'>errH</span><span class='layout'>,</span> <span class='varid'>pH</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runInteractiveProcess</span> <span class='varid'>prg</span> <span class='varid'>argl</span> <span class='conid'>Nothing</span> <span class='conid'>Nothing</span>
+<a name="line-44"></a>      <span class='varid'>hClose</span> <span class='varid'>inpH</span>
+<a name="line-45"></a>      <span class='varid'>res</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>hGetContents</span> <span class='varid'>outH</span>
+<a name="line-46"></a>      <span class='varid'>errs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hGetContents</span> <span class='varid'>errH</span>
+<a name="line-47"></a>
+<a name="line-48"></a>      <span class='comment'>-- hack: stdout and stderr must be read completely, otherwise waitForProcess blocks</span>
+<a name="line-49"></a>      <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>res</span>  <span class='varop'>==</span> <span class='num'>0</span><span class='layout'>)</span> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='conid'>()</span> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-50"></a>      <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>errs</span> <span class='varop'>==</span> <span class='num'>0</span><span class='layout'>)</span> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='conid'>()</span> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-51"></a>
+<a name="line-52"></a>      <span class='varid'>rc</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>waitForProcess</span> <span class='varid'>pH</span>
+<a name="line-53"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>res</span>
+<a name="line-54"></a>	     <span class='layout'>,</span> <span class='varid'>errs</span>
+<a name="line-55"></a>	     <span class='layout'>,</span> <span class='keyword'>case</span> <span class='varid'>rc</span> <span class='keyword'>of</span>
+<a name="line-56"></a>	       <span class='conid'>ExitSuccess</span> <span class='keyglyph'>-&gt;</span> <span class='num'>0</span>
+<a name="line-57"></a>	       <span class='conid'>ExitFailure</span> <span class='varid'>i</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>i</span>
+<a name="line-58"></a>	     <span class='layout'>)</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- eof ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-DTDProcessing.html b/doc/hdoc/src/Text-XML-HXT-Arrow-DTDProcessing.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-DTDProcessing.html
@@ -0,0 +1,523 @@
+<!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     : Text.XML.HXT.Arrow.DTDProcessing
+<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: DTDProcessing.hs,v 1.9 2006/05/11 14:47:19 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   DTD processing function for
+<a name="line-14"></a>   including external parts of a DTD
+<a name="line-15"></a>   parameter entity substitution and general entity substitution
+<a name="line-16"></a>
+<a name="line-17"></a>   Implemtation completely done with arrows
+<a name="line-18"></a>
+<a name="line-19"></a>-}</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></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'>DTDProcessing</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>processDTD</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>where</span>
+<a name="line-27"></a>
+<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='comment'>-- arrow classes</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'>ArrowList</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'>ArrowIf</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'>ArrowTree</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'>Interface</span>
+<a name="line-34"></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-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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-38"></a>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>
+<a name="line-40"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDdeclPart</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDEntityValue</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDPart</span>
+<a name="line-44"></a>    <span class='layout'>)</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'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
+<a name="line-47"></a>    <span class='layout'>(</span> <span class='varid'>transfCharRef</span>
+<a name="line-48"></a>    <span class='layout'>)</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'>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'>DocumentInput</span>
+<a name="line-51"></a>    <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-52"></a>    <span class='layout'>)</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-55"></a>
+<a name="line-56"></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-57"></a>    <span class='layout'>(</span> <span class='conid'>Map</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>empty</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>lookup</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>insert</span>
+<a name="line-61"></a>    <span class='layout'>)</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-64"></a><span class='comment'>--</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="DTDPart"></a><span class='keyword'>data</span> <span class='conid'>DTDPart</span>		<span class='keyglyph'>=</span> <span class='conid'>Internal</span>
+<a name="line-67"></a>			<span class='keyglyph'>|</span> <span class='conid'>External</span>
+<a name="line-68"></a>			  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>)</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="RecList"></a><span class='keyword'>type</span> <span class='conid'>RecList</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-71"></a>
+<a name="line-72"></a><a name="DTDStateArrow"></a><span class='keyword'>type</span> <span class='conid'>DTDStateArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>PEEnv</span> <span class='varid'>b</span> <span class='varid'>c</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="PEEnv"></a><span class='keyword'>newtype</span> <span class='conid'>PEEnv</span>		<span class='keyglyph'>=</span> <span class='conid'>PEEnv</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-77"></a>
+<a name="line-78"></a><a name="emptyPeEnv"></a><span class='definition'>emptyPeEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>PEEnv</span>
+<a name="line-79"></a><span class='definition'>emptyPeEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>PEEnv</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="lookupPeEnv"></a><span class='definition'>lookupPeEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PEEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>
+<a name="line-82"></a><span class='definition'>lookupPeEnv</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='conid'>PEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-83"></a>    <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varid'>env</span>
+<a name="line-84"></a>
+<a name="line-85"></a><a name="addPeEntry"></a><span class='definition'>addPeEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PEEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PEEnv</span>
+<a name="line-86"></a><span class='definition'>addPeEntry</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>PEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-87"></a>    <span class='keyglyph'>=</span> <span class='conid'>PEEnv</span> <span class='varop'>$</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='varid'>env</span>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="getPeValue"></a><span class='definition'>getPeValue</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-90"></a><span class='definition'>getPeValue</span>
+<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>this</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getUserState</span><span class='layout'>)</span>
+<a name="line-92"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-93"></a>      <span class='varid'>arrL</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'>env</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>lookupPeEnv</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-94"></a>
+<a name="line-95"></a><a name="addPe"></a><span class='definition'>addPe</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-96"></a><span class='definition'>addPe</span> <span class='varid'>n</span>
+<a name="line-97"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"substParamEntity: add entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" to env"</span><span class='layout'>)</span>
+<a name="line-98"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-99"></a>      <span class='varid'>changeUserState</span> <span class='varid'>ins</span>
+<a name="line-100"></a>    <span class='keyword'>where</span>
+<a name="line-101"></a>    <span class='varid'>ins</span> <span class='varid'>t</span> <span class='varid'>peEnv</span> <span class='keyglyph'>=</span> <span class='varid'>addPeEntry</span> <span class='varid'>n</span> <span class='varid'>t</span> <span class='varid'>peEnv</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-104"></a>
+<a name="line-105"></a><span class='comment'>-- |</span>
+<a name="line-106"></a><span class='comment'>-- a filter for DTD processing</span>
+<a name="line-107"></a><span class='comment'>--</span>
+<a name="line-108"></a><span class='comment'>-- inclusion of external parts of DTD,</span>
+<a name="line-109"></a><span class='comment'>-- parameter entity substitution</span>
+<a name="line-110"></a><span class='comment'>-- conditional section evaluation</span>
+<a name="line-111"></a><span class='comment'>--</span>
+<a name="line-112"></a><span class='comment'>-- input tree must represent a complete document including root node</span>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="processDTD"></a><span class='definition'>processDTD</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'>processDTD</span>
+<a name="line-116"></a>    <span class='keyglyph'>=</span> <span class='varid'>runInLocalURIContext</span>
+<a name="line-117"></a>         <span class='layout'>(</span> <span class='varid'>processRoot</span>
+<a name="line-118"></a>	   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-119"></a>	   <span class='varid'>traceTree</span>
+<a name="line-120"></a>	   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-121"></a>	   <span class='varid'>traceSource</span>
+<a name="line-122"></a>	 <span class='layout'>)</span>
+<a name="line-123"></a>      <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-124"></a>      <span class='keyword'>where</span>
+<a name="line-125"></a>
+<a name="line-126"></a>      <span class='varid'>processRoot</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-127"></a>      <span class='varid'>processRoot</span>
+<a name="line-128"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"processDTD: process parameter entities"</span><span class='layout'>)</span>
+<a name="line-129"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-130"></a>	      <span class='varid'>setParamString</span> <span class='varid'>a_standalone</span> <span class='str'>""</span>
+<a name="line-131"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>	      <span class='layout'>(</span> <span class='varid'>addDocType</span>
+<a name="line-133"></a>		<span class='varop'>`whenNot`</span>
+<a name="line-134"></a>		<span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDDoctype</span> <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'>processChildren</span> <span class='varid'>substParamEntities</span>
+<a name="line-138"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-139"></a>	      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"in XML DTD processing"</span>
+<a name="line-140"></a>	    <span class='layout'>)</span>
+<a name="line-141"></a>            <span class='varop'>`when`</span>
+<a name="line-142"></a>	    <span class='varid'>documentStatusOk</span>
+<a name="line-143"></a>	  <span class='keyword'>where</span>
+<a name="line-144"></a>	  <span class='varid'>addDocType</span>
+<a name="line-145"></a>	      <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>
+<a name="line-146"></a>				  <span class='varop'>&lt;+&gt;</span>
+<a name="line-147"></a>				  <span class='varid'>mkDTDDoctype</span> <span class='conid'>[]</span> <span class='varid'>none</span>
+<a name="line-148"></a>				  <span class='varop'>&lt;+&gt;</span>
+<a name="line-149"></a>				  <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>
+<a name="line-150"></a>				<span class='layout'>)</span>
+<a name="line-151"></a>
+<a name="line-152"></a><a name="substParamEntities"></a><span class='definition'>substParamEntities</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-153"></a><span class='definition'>substParamEntities</span>
+<a name="line-154"></a>    <span class='keyglyph'>=</span> <span class='varid'>withOtherUserState</span> <span class='varid'>emptyPeEnv</span> <span class='varid'>processParamEntities</span>
+<a name="line-155"></a>      <span class='varop'>`when`</span>
+<a name="line-156"></a>      <span class='varid'>isDTDDoctype</span>
+<a name="line-157"></a>      <span class='keyword'>where</span>
+<a name="line-158"></a>
+<a name="line-159"></a>      <span class='varid'>processParamEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-160"></a>      <span class='varid'>processParamEntities</span>
+<a name="line-161"></a>	  <span class='keyglyph'>=</span> <span class='varid'>mergeEntities</span> <span class='varop'>$&lt;&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>processPredef</span>
+<a name="line-162"></a>				 <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-163"></a>				 <span class='varid'>listA</span> <span class='varid'>processInt</span>
+<a name="line-164"></a>				 <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-165"></a>				 <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>runInLocalURIContext</span> <span class='varid'>processExt</span><span class='layout'>)</span>
+<a name="line-166"></a>			       <span class='layout'>)</span>
+<a name="line-167"></a>	  <span class='keyword'>where</span>
+<a name="line-168"></a>	  <span class='varid'>mergeEntities</span> <span class='varid'>dtdPre</span> <span class='varid'>dtdInt</span> <span class='varid'>dtdExt</span>
+<a name="line-169"></a>	      <span class='keyglyph'>=</span>  <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>foldl1</span> <span class='varid'>mergeDTDs</span> <span class='keyglyph'>[</span><span class='varid'>dtdPre</span><span class='layout'>,</span> <span class='varid'>dtdInt</span><span class='layout'>,</span> <span class='varid'>dtdExt</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-170"></a>
+<a name="line-171"></a>	  <span class='varid'>processPredef</span>
+<a name="line-172"></a>	      <span class='keyglyph'>=</span> <span class='varid'>predefDTDPart</span>   <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>substParamEntity</span> <span class='conid'>Internal</span> <span class='conid'>[]</span>
+<a name="line-173"></a>
+<a name="line-174"></a>	  <span class='varid'>processInt</span>
+<a name="line-175"></a>	      <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>     <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>substParamEntity</span> <span class='conid'>Internal</span> <span class='conid'>[]</span>
+<a name="line-176"></a>
+<a name="line-177"></a>	  <span class='varid'>processExt</span>
+<a name="line-178"></a>	      <span class='keyglyph'>=</span> <span class='varid'>externalDTDPart</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>substParamEntity</span> <span class='conid'>External</span> <span class='conid'>[]</span>
+<a name="line-179"></a>
+<a name="line-180"></a>	  <span class='varid'>mergeDTDs</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'>XmlTrees</span>
+<a name="line-181"></a>	  <span class='varid'>mergeDTDs</span> <span class='varid'>dtdInt</span> <span class='varid'>dtdExt</span>
+<a name="line-182"></a>	      <span class='keyglyph'>=</span> <span class='varid'>dtdInt</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>filterDTDNodes</span> <span class='varid'>dtdInt</span><span class='layout'>)</span> <span class='varid'>dtdExt</span><span class='layout'>)</span>
+<a name="line-183"></a>
+<a name="line-184"></a>	  <span class='varid'>filterDTDNodes</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-185"></a>	  <span class='varid'>filterDTDNodes</span> <span class='varid'>dtdPart</span> <span class='varid'>t</span>
+<a name="line-186"></a>	      <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>filterDTDNode</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-187"></a>
+<a name="line-188"></a>	  <span class='varid'>filterDTDNode</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-189"></a>
+<a name="line-190"></a>	  <span class='varid'>filterDTDNode</span>	<span class='varid'>t1</span> <span class='varid'>t2</span>
+<a name="line-191"></a>	      <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>False</span> <span class='varop'>$</span>
+<a name="line-192"></a>	        <span class='keyword'>do</span>
+<a name="line-193"></a>		<span class='varid'>dp1</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span> <span class='varid'>t1</span>
+<a name="line-194"></a>		<span class='varid'>dp2</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span> <span class='varid'>t2</span>
+<a name="line-195"></a>		<span class='varid'>al1</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span> <span class='varid'>t1</span>
+<a name="line-196"></a>		<span class='varid'>al2</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span> <span class='varid'>t2</span>
+<a name="line-197"></a>		<span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>dp1</span> <span class='varop'>==</span> <span class='varid'>dp2</span>
+<a name="line-198"></a>			 <span class='varop'>&amp;&amp;</span>
+<a name="line-199"></a>			 <span class='layout'>(</span> <span class='varid'>dp1</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>ELEMENT</span><span class='layout'>,</span> <span class='conid'>NOTATION</span><span class='layout'>,</span> <span class='conid'>ENTITY</span><span class='layout'>,</span> <span class='conid'>ATTLIST</span><span class='keyglyph'>]</span> <span class='layout'>)</span>
+<a name="line-200"></a>			 <span class='varop'>&amp;&amp;</span>
+<a name="line-201"></a>			 <span class='layout'>(</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varid'>al1</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varid'>al2</span> <span class='layout'>)</span>
+<a name="line-202"></a>			 <span class='varop'>&amp;&amp;</span>
+<a name="line-203"></a>			 <span class='layout'>(</span> <span class='varid'>dp1</span> <span class='varop'>/=</span> <span class='conid'>ATTLIST</span>
+<a name="line-204"></a>			   <span class='varop'>||</span>
+<a name="line-205"></a>			   <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al1</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al2</span>
+<a name="line-206"></a>			 <span class='layout'>)</span>
+<a name="line-207"></a>		       <span class='layout'>)</span>
+<a name="line-208"></a>
+<a name="line-209"></a><a name="substParamEntity"></a><span class='definition'>substParamEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDPart</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-210"></a><span class='definition'>substParamEntity</span> <span class='varid'>loc</span> <span class='varid'>recList</span>
+<a name="line-211"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-212"></a>      <span class='keyglyph'>[</span> <span class='varid'>isDTDEntity</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>traceDTD</span> <span class='str'>"ENTITY declaration before DTD declaration parsing"</span>
+<a name="line-213"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-214"></a>			      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>recList</span><span class='layout'>)</span>
+<a name="line-215"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-216"></a>			      <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-217"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-218"></a>			      <span class='varid'>substRefsInEntityValue</span>
+<a name="line-219"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-220"></a>			      <span class='varid'>processEntityDecl</span>
+<a name="line-221"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-222"></a>			      <span class='varid'>traceDTD</span> <span class='str'>"ENTITY declaration after DTD declaration parsing"</span>
+<a name="line-223"></a>			    <span class='layout'>)</span>
+<a name="line-224"></a>      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isDTDElement</span>
+<a name="line-225"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-226"></a>	  <span class='varid'>isDTDAttlist</span>
+<a name="line-227"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-228"></a>	  <span class='varid'>isDTDNotation</span>
+<a name="line-229"></a>	<span class='layout'>)</span>		<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>traceDTD</span> <span class='str'>"DTD declaration before PE substitution"</span>
+<a name="line-230"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-231"></a>			      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>recList</span><span class='layout'>)</span>
+<a name="line-232"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-233"></a>			      <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-234"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-235"></a>			      <span class='varid'>traceDTD</span> <span class='str'>"DTD declaration after DTD declaration parsing"</span>
+<a name="line-236"></a>			    <span class='layout'>)</span>
+<a name="line-237"></a>      <span class='layout'>,</span> <span class='varid'>isDTDPERef</span>	<span class='conop'>:-&gt;</span> <span class='varid'>substPeRefsInDTDpart</span> <span class='varid'>recList</span>
+<a name="line-238"></a>
+<a name="line-239"></a>      <span class='layout'>,</span> <span class='varid'>isDTDCondSect</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>Internal</span>
+<a name="line-240"></a>			      <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='str'>"conditional sections in internal part of the DTD is not allowed"</span>
+<a name="line-241"></a>			      <span class='keyword'>else</span> <span class='varid'>evalCondSect</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_value</span>
+<a name="line-242"></a>			    <span class='layout'>)</span>
+<a name="line-243"></a>      <span class='layout'>,</span> <span class='varid'>isCmt</span>		<span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-244"></a>      <span class='layout'>,</span> <span class='varid'>this</span>		<span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-245"></a>      <span class='keyglyph'>]</span>
+<a name="line-246"></a>    <span class='keyword'>where</span>
+<a name="line-247"></a>    <span class='varid'>processEntityDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-248"></a>    <span class='varid'>processEntityDecl</span>
+<a name="line-249"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-250"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isDTDEntity</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span><span class='layout'>)</span>
+<a name="line-251"></a>			      <span class='varid'>processExternalEntity</span>
+<a name="line-252"></a>			      <span class='varid'>processInternalEntity</span>
+<a name="line-253"></a>			    <span class='layout'>)</span>
+<a name="line-254"></a>	  <span class='layout'>,</span> <span class='varid'>isDTDPEntity</span>
+<a name="line-255"></a>			<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>processParamEntity</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span> <span class='layout'>)</span>
+<a name="line-256"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-257"></a>	  <span class='keyglyph'>]</span>
+<a name="line-258"></a>	<span class='keyword'>where</span>
+<a name="line-259"></a>	<span class='varid'>processExternalEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>	<span class='comment'>-- processing external entities is delayed until first usage</span>
+<a name="line-260"></a>	<span class='varid'>processExternalEntity</span>						<span class='comment'>-- only the current base uri must be remembered</span>
+<a name="line-261"></a>	    <span class='keyglyph'>=</span> <span class='varid'>setDTDAttrValue</span> <span class='varid'>a_url</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>k_system</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkAbsURI</span> <span class='layout'>)</span>
+<a name="line-262"></a>
+<a name="line-263"></a>	<span class='varid'>processInternalEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>	<span class='comment'>-- just combine all parts of the entity value</span>
+<a name="line-264"></a>	<span class='varid'>processInternalEntity</span>						<span class='comment'>-- into one string</span>
+<a name="line-265"></a>	    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span>
+<a name="line-266"></a>
+<a name="line-267"></a>	<span class='varid'>processParamEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-268"></a>	<span class='varid'>processParamEntity</span> <span class='varid'>peName</span>
+<a name="line-269"></a>	    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>peName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getPeValue</span><span class='layout'>)</span>
+<a name="line-270"></a>	      <span class='layout'>(</span> <span class='varid'>issueWarn</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" already defined"</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-271"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span> <span class='layout'>)</span>				<span class='comment'>-- is external param entity ?</span>
+<a name="line-272"></a>		  <span class='layout'>(</span> <span class='varid'>runInLocalURIContext</span> <span class='varid'>getExternalParamEntityValue</span> <span class='layout'>)</span>
+<a name="line-273"></a>		  <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='layout'>)</span>	<span class='comment'>-- just combine all parts of the entity value into one string</span>
+<a name="line-274"></a>		<span class='layout'>)</span>
+<a name="line-275"></a>                <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-276"></a>                <span class='varid'>addPe</span> <span class='varid'>peName</span>
+<a name="line-277"></a>	      <span class='layout'>)</span>
+<a name="line-278"></a>
+<a name="line-279"></a>    <span class='varid'>substPERef</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-280"></a>    <span class='varid'>substPERef</span> <span class='varid'>pn</span>
+<a name="line-281"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-282"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isInternalRef</span>	<span class='conop'>:-&gt;</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"a parameter entity reference of "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pn</span> <span class='varop'>++</span> <span class='str'>" occurs in the internal subset of the DTD"</span><span class='layout'>)</span>
+<a name="line-283"></a>	  <span class='layout'>,</span> <span class='varid'>isUndefinedRef</span>	<span class='conop'>:-&gt;</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pn</span> <span class='varop'>++</span> <span class='str'>" not found (forward reference?)"</span><span class='layout'>)</span>
+<a name="line-284"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>		<span class='conop'>:-&gt;</span> <span class='varid'>substPE</span>
+<a name="line-285"></a>	  <span class='keyglyph'>]</span>
+<a name="line-286"></a>	  <span class='varop'>`when`</span>
+<a name="line-287"></a>	  <span class='varid'>isDTDPERef</span>
+<a name="line-288"></a>	<span class='keyword'>where</span>
+<a name="line-289"></a>	<span class='varid'>isInternalRef</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>Internal</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-290"></a>	<span class='varid'>peVal</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>pn</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getPeValue</span>
+<a name="line-291"></a>	<span class='varid'>isUndefinedRef</span>	<span class='keyglyph'>=</span> <span class='varid'>neg</span> <span class='varid'>peVal</span>
+<a name="line-292"></a>	<span class='varid'>substPE</span>
+<a name="line-293"></a>	    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>peVal</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>			<span class='comment'>-- store PE value in children component</span>
+<a name="line-294"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-295"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>setBase</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>peVal</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_url</span><span class='layout'>)</span> <span class='layout'>)</span>	<span class='comment'>-- store base uri for external refs</span>
+<a name="line-296"></a>		<span class='varop'>`orElse`</span>
+<a name="line-297"></a>		<span class='varid'>this</span>
+<a name="line-298"></a>	      <span class='layout'>)</span>
+<a name="line-299"></a>	    <span class='keyword'>where</span>
+<a name="line-300"></a>	    <span class='varid'>setBase</span> <span class='varid'>uri</span>	<span class='keyglyph'>=</span> <span class='varid'>setDTDAttrValue</span> <span class='varid'>a_url</span> <span class='varid'>uri</span>
+<a name="line-301"></a>
+<a name="line-302"></a>    <span class='varid'>substRefsInEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-303"></a>    <span class='varid'>substRefsInEntityValue</span>
+<a name="line-304"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>transfCharRef</span>
+<a name="line-305"></a>				<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-306"></a>				<span class='varid'>substPeRefsInValue</span> <span class='conid'>[]</span>
+<a name="line-307"></a>			      <span class='layout'>)</span>
+<a name="line-308"></a>	    <span class='layout'>)</span>
+<a name="line-309"></a>	    <span class='varop'>`whenNot`</span>
+<a name="line-310"></a>	    <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span>						<span class='comment'>-- only apply for internal entities</span>
+<a name="line-311"></a>	  <span class='layout'>)</span>
+<a name="line-312"></a>	  <span class='varop'>`when`</span> 
+<a name="line-313"></a>	  <span class='layout'>(</span> <span class='varid'>isDTDEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='layout'>)</span>				<span class='comment'>-- only apply for entity declarations</span>
+<a name="line-314"></a>
+<a name="line-315"></a>    <span class='varid'>substPeRefsInDTDpart</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-316"></a>    <span class='varid'>substPeRefsInDTDpart</span> <span class='varid'>rl</span>
+<a name="line-317"></a>	<span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"DTD part"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>
+<a name="line-318"></a>	<span class='keyword'>where</span>
+<a name="line-319"></a>	<span class='varid'>subst</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-320"></a>	<span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>
+<a name="line-321"></a>	    <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>
+<a name="line-322"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-323"></a>	      <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: before parseXmlDTDPart"</span>
+<a name="line-324"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-325"></a>	      <span class='layout'>(</span> <span class='varid'>runInPeContext</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-326"></a>				 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-327"></a>				 <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='layout'>(</span><span class='str'>"parameter entity: "</span> <span class='varop'>++</span> <span class='varid'>pn</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-328"></a>				 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-329"></a>				 <span class='varid'>parseXmlDTDPart</span>
+<a name="line-330"></a>				 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-331"></a>				 <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDpart: after parseXmlDTDPart"</span>
+<a name="line-332"></a>				 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-333"></a>				 <span class='varid'>substParamEntity</span> <span class='varid'>loc</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</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'>isDTDPERef</span>
+<a name="line-337"></a>	      <span class='layout'>)</span>
+<a name="line-338"></a>
+<a name="line-339"></a>    <span class='varid'>substPeRefsInDTDdecl</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-340"></a>    <span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>rl</span>
+<a name="line-341"></a>	<span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"DTD declaration"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>
+<a name="line-342"></a>	<span class='keyword'>where</span>
+<a name="line-343"></a>	<span class='varid'>subst</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-344"></a>	<span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>
+<a name="line-345"></a>	    <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>
+<a name="line-346"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-347"></a>	      <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: before parseXmlDTDdeclPart"</span>
+<a name="line-348"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-349"></a>	      <span class='layout'>(</span> <span class='varid'>runInPeContext</span> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdeclPart</span>
+<a name="line-350"></a>				 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-351"></a>				 <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: after parseXmlDTDdeclPart"</span>
+<a name="line-352"></a>				 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-353"></a>				 <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>substPeRefsInDTDdecl</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-354"></a>			       <span class='layout'>)</span>
+<a name="line-355"></a>		<span class='varop'>`when`</span>
+<a name="line-356"></a>		<span class='varid'>isDTDPERef</span>
+<a name="line-357"></a>	      <span class='layout'>)</span>
+<a name="line-358"></a>
+<a name="line-359"></a>    <span class='varid'>substPeRefsInValue</span>		<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-360"></a>    <span class='varid'>substPeRefsInValue</span> <span class='varid'>rl</span>
+<a name="line-361"></a>	<span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"entity value"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>
+<a name="line-362"></a>	<span class='keyword'>where</span>
+<a name="line-363"></a>	<span class='varid'>subst</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-364"></a>	<span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>
+<a name="line-365"></a>	    <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>
+<a name="line-366"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-367"></a>	      <span class='varid'>parseXmlDTDEntityValue</span>
+<a name="line-368"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-369"></a>	      <span class='varid'>transfCharRef</span>
+<a name="line-370"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-371"></a>	      <span class='varid'>substPeRefsInValue</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span>
+<a name="line-372"></a>
+<a name="line-373"></a>    <span class='varid'>substPeRefsInCondSect</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-374"></a>    <span class='varid'>substPeRefsInCondSect</span> <span class='varid'>rl</span>
+<a name="line-375"></a>	<span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"conditional section"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>
+<a name="line-376"></a>	<span class='keyword'>where</span>
+<a name="line-377"></a>	<span class='varid'>subst</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-378"></a>	<span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>
+<a name="line-379"></a>	    <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>
+<a name="line-380"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-381"></a>	      <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInCondSect: parseXmlDTDdeclPart"</span>
+<a name="line-382"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-383"></a>	      <span class='varid'>runInPeContext</span> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdeclPart</span>
+<a name="line-384"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-385"></a>			       <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInCondSect: after parseXmlDTDdeclPart"</span>
+<a name="line-386"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-387"></a>			       <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>substPeRefsInCondSect</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-388"></a>			     <span class='layout'>)</span>
+<a name="line-389"></a>
+<a name="line-390"></a>    <span class='varid'>recursionCheck</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-391"></a>    <span class='varid'>recursionCheck</span> <span class='varid'>wher</span> <span class='varid'>rl</span> <span class='varid'>subst</span>
+<a name="line-392"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>recusiveSubst</span>  <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_peref</span> <span class='layout'>)</span>
+<a name="line-393"></a>	  <span class='varop'>`when`</span>
+<a name="line-394"></a>	  <span class='varid'>isDTDPERef</span>
+<a name="line-395"></a>	<span class='keyword'>where</span>
+<a name="line-396"></a>	<span class='varid'>recusiveSubst</span> <span class='varid'>name</span>
+<a name="line-397"></a>	    <span class='keyglyph'>|</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>rl</span>
+<a name="line-398"></a>		<span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive call of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" in "</span> <span class='varop'>++</span> <span class='varid'>wher</span><span class='layout'>)</span>
+<a name="line-399"></a>            <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-400"></a>		<span class='keyglyph'>=</span> <span class='varid'>subst</span> <span class='varid'>rl</span> <span class='varid'>name</span>
+<a name="line-401"></a>
+<a name="line-402"></a>    <span class='varid'>runInPeContext</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-403"></a>    <span class='varid'>runInPeContext</span> <span class='varid'>f</span>
+<a name="line-404"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>runWithNewBase</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_url</span> <span class='layout'>)</span>
+<a name="line-405"></a>	  <span class='varop'>`orElse`</span>
+<a name="line-406"></a>	  <span class='varid'>f</span>
+<a name="line-407"></a>	<span class='keyword'>where</span>
+<a name="line-408"></a>	<span class='varid'>runWithNewBase</span> <span class='varid'>base</span>
+<a name="line-409"></a>	    <span class='keyglyph'>=</span> <span class='varid'>runInLocalURIContext</span>
+<a name="line-410"></a>	      <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>base</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>setBaseURI</span><span class='layout'>)</span>
+<a name="line-411"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-412"></a>		<span class='varid'>f</span>
+<a name="line-413"></a>	      <span class='layout'>)</span>
+<a name="line-414"></a>
+<a name="line-415"></a>    <span class='varid'>evalCondSect</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-416"></a>    <span class='varid'>evalCondSect</span> <span class='varid'>content</span>
+<a name="line-417"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceDTD</span> <span class='str'>"evalCondSect: process conditional section"</span>
+<a name="line-418"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-419"></a>	  <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>substPeRefsInCondSect</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-420"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-421"></a>	  <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-422"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-423"></a>	  <span class='layout'>(</span> <span class='varid'>hasText</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_include</span><span class='layout'>)</span>
+<a name="line-424"></a>	    <span class='varop'>`guards`</span>
+<a name="line-425"></a>	    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='str'>"conditional section"</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>txt</span> <span class='varid'>content</span> <span class='layout'>)</span>
+<a name="line-426"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-427"></a>	      <span class='varid'>parseXmlDTDPart</span>
+<a name="line-428"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-429"></a>	      <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"evalCond: include DTD part"</span>
+<a name="line-430"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-431"></a>	      <span class='varid'>substParamEntity</span> <span class='conid'>External</span> <span class='varid'>recList</span>
+<a name="line-432"></a>	    <span class='layout'>)</span>
+<a name="line-433"></a>	  <span class='layout'>)</span>
+<a name="line-434"></a>
+<a name="line-435"></a><a name="predefDTDPart"></a><span class='definition'>predefDTDPart</span>		<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-436"></a><span class='definition'>predefDTDPart</span>
+<a name="line-437"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='str'>"predefined entities"</span>
+<a name="line-438"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-439"></a>	<span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>predefinedEntities</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span>
+<a name="line-440"></a>      <span class='layout'>)</span>
+<a name="line-441"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-442"></a>      <span class='varid'>parseXmlDTDPart</span>
+<a name="line-443"></a>    <span class='keyword'>where</span>
+<a name="line-444"></a>    <span class='varid'>predefinedEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-445"></a>    <span class='varid'>predefinedEntities</span>
+<a name="line-446"></a>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='str'>"&lt;!ENTITY lt   '&amp;#38;#60;'&gt;"</span>
+<a name="line-447"></a>		 <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY gt   '&amp;#62;'&gt;"</span>
+<a name="line-448"></a>		 <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY amp  '&amp;#38;#38;'&gt;"</span>
+<a name="line-449"></a>		 <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY apos '&amp;#39;'&gt;"</span>
+<a name="line-450"></a>		 <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY quot '&amp;#34;'&gt;"</span>
+<a name="line-451"></a>		 <span class='keyglyph'>]</span>
+<a name="line-452"></a>
+<a name="line-453"></a><a name="externalDTDPart"></a><span class='definition'>externalDTDPart</span>		<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-454"></a><span class='definition'>externalDTDPart</span>
+<a name="line-455"></a>    <span class='keyglyph'>=</span> <span class='varid'>isDTDDoctype</span>
+<a name="line-456"></a>      <span class='varop'>`guards`</span>
+<a name="line-457"></a>      <span class='layout'>(</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span>
+<a name="line-458"></a>	<span class='varop'>`guards`</span>
+<a name="line-459"></a>	<span class='layout'>(</span> <span class='varid'>getExternalDTDPart</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>k_system</span> <span class='layout'>)</span>
+<a name="line-460"></a>      <span class='layout'>)</span>
+<a name="line-461"></a>
+<a name="line-462"></a><a name="getExternalDTDPart"></a><span class='definition'>getExternalDTDPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-463"></a><span class='definition'>getExternalDTDPart</span> <span class='varid'>src</span>
+<a name="line-464"></a>    <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='varid'>a_source</span> <span class='varid'>src</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-465"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-466"></a>      <span class='varid'>getXmlEntityContents</span>
+<a name="line-467"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-468"></a>      <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>src</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-469"></a>			<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-470"></a>			<span class='varid'>parseXmlDTDPart</span>
+<a name="line-471"></a>		      <span class='layout'>)</span>
+<a name="line-472"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-473"></a>      <span class='varid'>traceDoc</span> <span class='str'>"processExternalDTD: parsing DTD part done"</span>
+<a name="line-474"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-475"></a>      <span class='varid'>getChildren</span>
+<a name="line-476"></a>
+<a name="line-477"></a><a name="getExternalParamEntityValue"></a><span class='definition'>getExternalParamEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-478"></a><span class='definition'>getExternalParamEntityValue</span>
+<a name="line-479"></a>    <span class='keyglyph'>=</span> <span class='varid'>isDTDPEntity</span>
+<a name="line-480"></a>      <span class='varop'>`guards`</span>
+<a name="line-481"></a>      <span class='layout'>(</span> <span class='varid'>setEntityValue</span> <span class='varop'>$&lt;&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrl</span>
+<a name="line-482"></a>			      <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-483"></a>			      <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getEntityValue</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span> <span class='layout'>)</span>
+<a name="line-484"></a>			      <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-485"></a>			      <span class='varid'>getBaseURI</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'>getEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-490"></a>    <span class='varid'>getEntityValue</span> <span class='varid'>al</span>
+<a name="line-491"></a>	<span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='varid'>a_source</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>k_system</span> <span class='varid'>al</span><span class='layout'>)</span><span class='comment'>{- &lt;+&gt; catA (map (uncurry sattr) al)-}</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-492"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-493"></a>	  <span class='varid'>getXmlEntityContents</span>
+<a name="line-494"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-495"></a>	  <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"getExternalParamEntityValue: contents read"</span>
+<a name="line-496"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-497"></a>	  <span class='varid'>getChildren</span>
+<a name="line-498"></a>
+<a name="line-499"></a>    <span class='varid'>setEntityValue</span>	<span class='keyglyph'>::</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'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-500"></a>    <span class='varid'>setEntityValue</span> <span class='varid'>al</span> <span class='varid'>res</span> <span class='varid'>base</span>
+<a name="line-501"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-502"></a>	    <span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"illegal external parameter entity value for entity %"</span> <span class='varop'>++</span> <span class='varid'>peName</span> <span class='varop'>++</span><span class='str'>";"</span><span class='layout'>)</span>
+<a name="line-503"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-504"></a>	    <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>PENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_url</span><span class='layout'>,</span> <span class='varid'>base</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='varid'>res</span><span class='layout'>)</span>
+<a name="line-505"></a>	<span class='keyword'>where</span>
+<a name="line-506"></a>	<span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-507"></a>
+<a name="line-508"></a><a name="traceDTD"></a><span class='definition'>traceDTD</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-509"></a><span class='definition'>traceDTD</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>3</span> <span class='varid'>msg</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>traceTree</span>
+<a name="line-510"></a>
+<a name="line-511"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-512"></a>
+<a name="line-513"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html
@@ -0,0 +1,374 @@
+<!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     : Text.XML.HXT.Arrow.DocumentInput
+<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>   State arrows for document input
+<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'>DocumentInput</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>getURIContents</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>getXmlContents</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>getEncoding</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>decodeDocument</span>
+<a name="line-24"></a>    <span class='layout'>)</span>
+<a name="line-25"></a><span class='keyword'>where</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'>-- arrow 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><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-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'>Unicode</span>
+<a name="line-34"></a>    <span class='layout'>(</span> <span class='varid'>getDecodingFct</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>guessEncoding</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNL</span>
+<a name="line-37"></a>    <span class='layout'>)</span>
+<a name="line-38"></a>
+<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'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</span>	<span class='keyword'>as</span> <span class='conid'>FILE</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'>IO</span><span class='varop'>.</span><span class='conid'>GetHTTPNative</span>	<span class='keyword'>as</span> <span class='conid'>HTTP</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'>IO</span><span class='varop'>.</span><span class='conid'>GetHTTPCurl</span>	<span class='keyword'>as</span> <span class='conid'>CURL</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<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'>XmlArrow</span>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-46"></a>
+<a name="line-47"></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'>ParserInterface</span>
+<a name="line-48"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</span>
+<a name="line-51"></a>    <span class='layout'>)</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-54"></a>    <span class='layout'>(</span> <span class='varid'>isPrefixOf</span>
+<a name="line-55"></a>    <span class='layout'>)</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-58"></a>    <span class='layout'>(</span> <span class='varid'>toLower</span>
+<a name="line-59"></a>    <span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</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><a name="protocolHandlers"></a><span class='definition'>protocolHandlers</span>	<span class='keyglyph'>::</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='layout'>(</span><span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-66"></a><span class='definition'>protocolHandlers</span>
+<a name="line-67"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"file"</span><span class='layout'>,</span>	<span class='varid'>getFileContents</span><span class='layout'>)</span>
+<a name="line-68"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"http"</span><span class='layout'>,</span>	<span class='varid'>getHttpContents</span><span class='layout'>)</span>
+<a name="line-69"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"stdin"</span><span class='layout'>,</span>	<span class='varid'>getStdinContents</span><span class='layout'>)</span>
+<a name="line-70"></a>      <span class='keyglyph'>]</span>
+<a name="line-71"></a>
+<a name="line-72"></a><a name="getProtocolHandler"></a><span class='definition'>getProtocolHandler</span>	<span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='layout'>(</span><span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>
+<a name="line-73"></a><span class='definition'>getProtocolHandler</span>
+<a name="line-74"></a>    <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>lookupDef</span> <span class='varid'>getUnsupported</span> <span class='varid'>s</span> <span class='varid'>protocolHandlers</span><span class='layout'>)</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="getUnsupported"></a><span class='definition'>getUnsupported</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-77"></a><span class='definition'>getUnsupported</span>
+<a name="line-78"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
+<a name="line-79"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-80"></a>		<span class='varid'>arr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"unsupported protocol in URI "</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-81"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-82"></a>		<span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>issueFatal</span><span class='layout'>)</span>
+<a name="line-83"></a>	      <span class='layout'>)</span>
+<a name="line-84"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-85"></a>      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>
+<a name="line-86"></a>	
+<a name="line-87"></a><a name="getStringContents"></a><span class='definition'>getStringContents</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-88"></a><span class='definition'>getStringContents</span>
+<a name="line-89"></a>    <span class='keyglyph'>=</span> <span class='varid'>setCont</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
+<a name="line-90"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-91"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>
+<a name="line-92"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-93"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>
+<a name="line-94"></a>    <span class='keyword'>where</span>
+<a name="line-95"></a>    <span class='varid'>setCont</span> <span class='varid'>contents</span>
+<a name="line-96"></a>	<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>contents'</span><span class='layout'>)</span>
+<a name="line-97"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-98"></a>	  <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>7</span> <span class='varid'>contents</span><span class='layout'>)</span>			<span class='comment'>-- the "string:" prefix is stored, this is required by setBaseURIFromDoc</span>
+<a name="line-99"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-100"></a>	  <span class='varid'>addAttr</span> <span class='varid'>a_source</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>prefix</span> <span class='num'>48</span> <span class='varop'>$</span> <span class='varid'>contents'</span><span class='layout'>)</span>	<span class='comment'>-- a quoted prefix of the content, max 48 chars is taken as source name</span>
+<a name="line-101"></a>	<span class='keyword'>where</span>
+<a name="line-102"></a>	<span class='varid'>contents'</span>  <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span> <span class='varid'>contents</span>
+<a name="line-103"></a>	<span class='varid'>prefix</span> <span class='varid'>l</span> <span class='varid'>s</span>
+<a name="line-104"></a>	    <span class='keyglyph'>|</span> <span class='varid'>length</span> <span class='varid'>s'</span> <span class='varop'>&gt;</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='comment'>-</span> <span class='num'>3</span><span class='layout'>)</span> <span class='varid'>s'</span> <span class='varop'>++</span> <span class='str'>"..."</span>
+<a name="line-105"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>     <span class='keyglyph'>=</span> <span class='varid'>s'</span>
+<a name="line-106"></a>	    <span class='keyword'>where</span>
+<a name="line-107"></a>	    <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-108"></a>
+<a name="line-109"></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-110"></a><span class='definition'>getFileContents</span>
+<a name="line-111"></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-112"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-113"></a>	       <span class='varid'>getPathFromURI</span>
+<a name="line-114"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-115"></a>	       <span class='varid'>arrIO</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getCont</span>
+<a name="line-116"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-117"></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-118"></a>		 <span class='varop'>|||</span>
+<a name="line-119"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>		<span class='comment'>-- content read</span>
+<a name="line-120"></a>	       <span class='layout'>)</span>
+<a name="line-121"></a>	     <span class='layout'>)</span>
+<a name="line-122"></a>
+<a name="line-123"></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-124"></a><span class='definition'>getStdinContents</span>
+<a name="line-125"></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-126"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-127"></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-128"></a>		 <span class='varop'>|||</span>
+<a name="line-129"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>		<span class='comment'>-- content read</span>
+<a name="line-130"></a>	       <span class='layout'>)</span>
+<a name="line-131"></a>	     <span class='layout'>)</span>
+<a name="line-132"></a>
+<a name="line-133"></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-134"></a><span class='definition'>addError</span> <span class='varid'>e</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='varid'>e</span>
+<a name="line-136"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-137"></a>      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>
+<a name="line-138"></a>
+<a name="line-139"></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-140"></a><span class='definition'>addTxtContent</span> <span class='varid'>c</span>
+<a name="line-141"></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-142"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-143"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>
+<a name="line-144"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-145"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>
+<a name="line-146"></a>
+<a name="line-147"></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-148"></a><span class='definition'>getHttpContents</span>
+<a name="line-149"></a>    <span class='keyglyph'>=</span> <span class='varid'>getCont</span> <span class='varop'>$&lt;&lt;&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-150"></a>		      <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-151"></a>		      <span class='varid'>getOpt</span> <span class='varid'>a_proxy</span>
+<a name="line-152"></a>		      <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-153"></a>		      <span class='varid'>getOpt</span> <span class='varid'>a_use_curl</span>
+<a name="line-154"></a>		      <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-155"></a>		      <span class='varid'>getOpt</span> <span class='varid'>a_options_curl</span>
+<a name="line-156"></a>		    <span class='layout'>)</span>
+<a name="line-157"></a>      <span class='keyword'>where</span>
+<a name="line-158"></a>      <span class='varid'>getOpt</span> <span class='varid'>opt</span>
+<a name="line-159"></a>	  <span class='keyglyph'>=</span> <span class='varid'>getAttrValue0</span> <span class='varid'>opt</span>
+<a name="line-160"></a>	    <span class='varop'>`orElse`</span>
+<a name="line-161"></a>	    <span class='varid'>getParamString</span> <span class='varid'>opt</span>
+<a name="line-162"></a>
+<a name="line-163"></a>      <span class='varid'>getCont</span> <span class='varid'>uri</span> <span class='varid'>proxy</span> <span class='varid'>curl</span> <span class='varid'>curlOpt</span>
+<a name="line-164"></a>	  <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>curl</span> <span class='varop'>==</span> <span class='varid'>v_1</span>
+<a name="line-165"></a>		       <span class='keyword'>then</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 "</span>
+<a name="line-166"></a>					   <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span> <span class='str'>"curl "</span>
+<a name="line-167"></a>						     <span class='varop'>++</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>proxy</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='str'>"--proxy "</span> <span class='varop'>++</span> <span class='varid'>proxy</span><span class='layout'>)</span>
+<a name="line-168"></a>						     <span class='varop'>++</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>curlOpt</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>curlOpt</span><span class='layout'>)</span>
+<a name="line-169"></a>						     <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>uri</span>
+<a name="line-170"></a>						   <span class='layout'>)</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'>arrIO0</span> <span class='layout'>(</span> <span class='conid'>CURL</span><span class='varop'>.</span><span class='varid'>getCont</span> <span class='varid'>curlOpt</span> <span class='varid'>uri</span> <span class='varid'>proxy</span> <span class='layout'>)</span>
+<a name="line-174"></a>			    <span class='layout'>)</span>
+<a name="line-175"></a>		       <span class='keyword'>else</span> <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='conid'>HTTP</span><span class='varop'>.</span><span class='varid'>getCont</span>         <span class='varid'>uri</span> <span class='varid'>proxy</span> <span class='layout'>)</span>
+<a name="line-176"></a>		     <span class='layout'>)</span>
+<a name="line-177"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-178"></a>		     <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>
+<a name="line-179"></a>		       <span class='varop'>|||</span>
+<a name="line-180"></a>		       <span class='varid'>arr</span> <span class='varid'>addContent</span>
+<a name="line-181"></a>		     <span class='layout'>)</span>
+<a name="line-182"></a>		   <span class='layout'>)</span>
+<a name="line-183"></a>
+<a name="line-184"></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-185"></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-186"></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-187"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-188"></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-189"></a>
+<a name="line-190"></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-191"></a><span class='definition'>getURIContents</span>
+<a name="line-192"></a>    <span class='keyglyph'>=</span> <span class='varid'>getContentsFromString</span>
+<a name="line-193"></a>      <span class='varop'>`orElse`</span>
+<a name="line-194"></a>      <span class='varid'>getContentsFromDoc</span>
+<a name="line-195"></a>    <span class='keyword'>where</span>
+<a name="line-196"></a>    <span class='varid'>getContentsFromString</span>
+<a name="line-197"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
+<a name="line-198"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-199"></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-200"></a>	  <span class='layout'>)</span>
+<a name="line-201"></a>	  <span class='varop'>`guards`</span>
+<a name="line-202"></a>	  <span class='varid'>getStringContents</span>
+<a name="line-203"></a>	  
+<a name="line-204"></a>    <span class='varid'>getContentsFromDoc</span>
+<a name="line-205"></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-206"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-207"></a>	      <span class='varid'>getCont</span>
+<a name="line-208"></a>	    <span class='layout'>)</span>
+<a name="line-209"></a>	    <span class='varop'>`when`</span>
+<a name="line-210"></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-211"></a>			     <span class='varop'>&gt;&gt;^</span>
+<a name="line-212"></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-213"></a>			   <span class='layout'>)</span>
+<a name="line-214"></a>	    <span class='layout'>)</span>
+<a name="line-215"></a>	  <span class='layout'>)</span>
+<a name="line-216"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-217"></a>          <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"getURIContents"</span>
+<a name="line-218"></a>
+<a name="line-219"></a>    <span class='varid'>setAbsURI</span> <span class='varid'>src</span>
+<a name="line-220"></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-221"></a>	  <span class='varid'>this</span>
+<a name="line-222"></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-223"></a>
+<a name="line-224"></a>    <span class='varid'>addTransferURI</span> <span class='varid'>uri</span>
+<a name="line-225"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='varid'>uri</span>
+<a name="line-226"></a>
+<a name="line-227"></a>    <span class='varid'>getCont</span>
+<a name="line-228"></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-229"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-230"></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-231"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-232"></a>		   <span class='varid'>getSchemeFromURI</span>
+<a name="line-233"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-234"></a>		   <span class='varid'>getProtocolHandler</span>
+<a name="line-235"></a>		 <span class='layout'>)</span>
+<a name="line-236"></a>	  <span class='varop'>`orElse`</span>
+<a name="line-237"></a>	  <span class='varid'>this</span>						<span class='comment'>-- don't change tree, when no handler can be found</span>
+<a name="line-238"></a>	  
+<a name="line-239"></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-240"></a><span class='definition'>setBaseURIFromDoc</span>
+<a name="line-241"></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-242"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-243"></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-244"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-245"></a>		<span class='varid'>setBaseURI</span>
+<a name="line-246"></a>	      <span class='layout'>)</span>
+<a name="line-247"></a>
+<a name="line-248"></a><span class='comment'>{- |
+<a name="line-249"></a>   Read the content of a document.
+<a name="line-250"></a>
+<a name="line-251"></a>   This routine is usually called from 'Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents'.
+<a name="line-252"></a>
+<a name="line-253"></a>   The input must be a root node (constructed with 'Text.XML.HXT.Arrow.XmlArrow.root'), usually without children.
+<a name="line-254"></a>   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...
+<a name="line-255"></a>   If the source name is empty, the input is read from standard input.
+<a name="line-256"></a>
+<a name="line-257"></a>   The source is transformed into an absolute URI. If the source is a relative URI, or a file name,
+<a name="line-258"></a>   it is expanded into an absolut URI with respect to the current base URI.
+<a name="line-259"></a>   The default base URI is of protocol \"file\" and points to the current working directory.
+<a name="line-260"></a>
+<a name="line-261"></a>   The currently supported protocols are \"http\", \"file\", \"stdin\" and \"string\".
+<a name="line-262"></a>
+<a name="line-263"></a>   The latter two are internal protocols. An uri of the form \"stdin:\" stands for the content of
+<a name="line-264"></a>   the standard input stream.
+<a name="line-265"></a>
+<a name="line-266"></a>   \"string:some text\" means, that \"some text\" is taken as input.
+<a name="line-267"></a>   This internal protocol is used for reading from normal 'String' values.
+<a name="line-268"></a>
+<a name="line-269"></a>-}</span>
+<a name="line-270"></a>
+<a name="line-271"></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-272"></a><span class='definition'>getXmlContents</span>
+<a name="line-273"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-274"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-275"></a>      <span class='varid'>setBaseURIFromDoc</span>
+<a name="line-276"></a>
+<a name="line-277"></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-278"></a><span class='definition'>getXmlEntityContents</span>
+<a name="line-279"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-280"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-281"></a>      <span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span>
+<a name="line-282"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-283"></a>      <span class='varid'>setBaseURIFromDoc</span>
+<a name="line-284"></a>
+<a name="line-285"></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-286"></a><span class='definition'>getXmlContents'</span> <span class='varid'>parseEncodingSpec</span>
+<a name="line-287"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getURIContents</span>
+<a name="line-288"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-289"></a>	<span class='varid'>parseEncodingSpec</span>
+<a name="line-290"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-291"></a>	<span class='varid'>filterErrorMsg</span>
+<a name="line-292"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-293"></a>	<span class='varid'>decodeDocument</span>
+<a name="line-294"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-295"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>
+<a name="line-296"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-297"></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-298"></a>		<span class='layout'>)</span>
+<a name="line-299"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-300"></a>	<span class='varid'>traceTree</span>
+<a name="line-301"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-302"></a>	<span class='varid'>traceSource</span>
+<a name="line-303"></a>      <span class='layout'>)</span>
+<a name="line-304"></a>      <span class='varop'>`when`</span>
+<a name="line-305"></a>      <span class='varid'>isRoot</span>
+<a name="line-306"></a>
+<a name="line-307"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-308"></a>
+<a name="line-309"></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-310"></a><span class='definition'>getEncoding</span>
+<a name="line-311"></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-312"></a>	     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-313"></a>	     <span class='varid'>arr</span> <span class='varid'>guessEncoding</span>
+<a name="line-314"></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-315"></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-316"></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-317"></a>	   <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>
+<a name="line-318"></a>	   <span class='keyglyph'>]</span>
+<a name="line-319"></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-320"></a>
+<a name="line-321"></a>
+<a name="line-322"></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-323"></a><span class='definition'>decodeDocument</span>
+<a name="line-324"></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-325"></a>      <span class='varop'>`when`</span>
+<a name="line-326"></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-327"></a>    <span class='keyword'>where</span>
+<a name="line-328"></a>    <span class='varid'>isXmlOrHtmlDoc</span>
+<a name="line-329"></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-330"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-331"></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-332"></a>
+<a name="line-333"></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-334"></a>    <span class='varid'>decodeArr</span> <span class='varid'>enc</span>
+<a name="line-335"></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-336"></a>	<span class='keyword'>where</span>
+<a name="line-337"></a>	<span class='varid'>found</span> <span class='varid'>df</span>
+<a name="line-338"></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-339"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-340"></a>	      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>decodeText</span> <span class='varid'>df</span><span class='layout'>)</span>
+<a name="line-341"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-342"></a>	      <span class='varid'>addAttr</span> <span class='varid'>transferEncoding</span> <span class='varid'>enc</span>
+<a name="line-343"></a>
+<a name="line-344"></a>	<span class='varid'>notFound</span>
+<a name="line-345"></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-346"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-347"></a>	      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"decoding document"</span>
+<a name="line-348"></a>
+<a name="line-349"></a>	<span class='varid'>decodeText</span> <span class='varid'>df</span>
+<a name="line-350"></a>	    <span class='keyglyph'>=</span> <span class='varid'>getText</span>
+<a name="line-351"></a>	      <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>df</span>					<span class='comment'>-- result is (string, [errMsg])</span>
+<a name="line-352"></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 string, normalize newline and build text node</span>
+<a name="line-353"></a>		    <span class='varop'>&lt;+&gt;</span>
+<a name="line-354"></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-355"></a>		      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-356"></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-357"></a>		      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-358"></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-359"></a>		      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-360"></a>		      <span class='varid'>none</span>					<span class='comment'>-- neccessary for type match with &lt;+&gt;</span>
+<a name="line-361"></a>		    <span class='layout'>)</span>
+<a name="line-362"></a>		  <span class='layout'>)</span>
+<a name="line-363"></a>      
+<a name="line-364"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html
@@ -0,0 +1,177 @@
+<!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'>-- 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>
+<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-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-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-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-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>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html
@@ -0,0 +1,760 @@
+<!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     : 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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>   Version    : $Id: Edit.hs,v 1.8 2006/11/12 14:52:59 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   common edit 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'>Edit</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeContents</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>collapseAllXText</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>collapseXText</span>
+<a name="line-25"></a>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>escapeHtmlDoc</span>
+<a name="line-28"></a>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-32"></a>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>
+<a name="line-35"></a> 
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>removeComment</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>removeAllComment</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>removeAllWhiteSpace</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>
+<a name="line-41"></a>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>transfCdata</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCdata</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>transfCharRef</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCharRef</span>
+<a name="line-46"></a>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>hasXmlPi</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>
+<a name="line-50"></a>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>addDoctypeDecl</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeStrict</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>
+<a name="line-55"></a>    <span class='layout'>)</span>
+<a name="line-56"></a><span class='keyword'>where</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
+<a name="line-59"></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-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'>ArrowIf</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'>ArrowTree</span>
+<a name="line-62"></a>
+<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'>ListArrow</span>
+<a name="line-64"></a>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span>
+<a name="line-70"></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-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'>Unicode</span>
+<a name="line-73"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></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-76"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>
+<a name="line-77"></a>
+<a name="line-78"></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-79"></a>    <span class='layout'>(</span> <span class='varid'>xmlEntities</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'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>
+<a name="line-82"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span> <span class='layout'>)</span>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-85"></a>
+<a name="line-86"></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-87"></a>
+<a name="line-88"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-89"></a>
+<a name="line-90"></a><span class='comment'>-- |</span>
+<a name="line-91"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>
+<a name="line-92"></a><span class='comment'>--</span>
+<a name="line-93"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>
+<a name="line-96"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>
+<a name="line-97"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>
+<a name="line-98"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>
+<a name="line-99"></a><span class='comment'>--</span>
+<a name="line-100"></a><span class='comment'>--</span>
+<a name="line-101"></a><span class='comment'>-- Not implemented yet:</span>
+<a name="line-102"></a><span class='comment'>--</span>
+<a name="line-103"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>
+<a name="line-104"></a><span class='comment'>--</span>
+<a name="line-105"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>
+<a name="line-106"></a><span class='comment'>--</span>
+<a name="line-107"></a><span class='comment'>-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'</span>
+<a name="line-108"></a>
+<a name="line-109"></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-110"></a><span class='definition'>canonicalizeTree'</span> <span class='varid'>toBeRemoved</span>
+<a name="line-111"></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-112"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-113"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>
+<a name="line-114"></a>      <span class='keyword'>where</span>
+<a name="line-115"></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-116"></a>      <span class='varid'>canonicalize1Node</span>
+<a name="line-117"></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-118"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-119"></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-120"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-121"></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-122"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-123"></a>			     <span class='varid'>collapseXText</span>
+<a name="line-124"></a>			   <span class='layout'>)</span>
+<a name="line-125"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</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'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>
+<a name="line-129"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-130"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>
+<a name="line-131"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>
+<a name="line-133"></a>
+<a name="line-134"></a>
+<a name="line-135"></a><span class='comment'>-- |</span>
+<a name="line-136"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>
+<a name="line-137"></a><span class='comment'>--</span>
+<a name="line-138"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>
+<a name="line-139"></a><span class='comment'>--</span>
+<a name="line-140"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>
+<a name="line-141"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>
+<a name="line-142"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>
+<a name="line-143"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>
+<a name="line-144"></a><span class='comment'>--</span>
+<a name="line-145"></a><span class='comment'>-- Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute</span>
+<a name="line-146"></a><span class='comment'>-- values and text</span>
+<a name="line-147"></a><span class='comment'>--</span>
+<a name="line-148"></a><span class='comment'>-- Not implemented yet:</span>
+<a name="line-149"></a><span class='comment'>--</span>
+<a name="line-150"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>
+<a name="line-151"></a><span class='comment'>--</span>
+<a name="line-152"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>
+<a name="line-153"></a>
+<a name="line-154"></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-155"></a><span class='definition'>canonicalizeAllNodes</span>
+<a name="line-156"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-157"></a>      <span class='varid'>canonicalizeTree'</span> <span class='layout'>(</span> <span class='varid'>isCmt</span>		<span class='comment'>-- remove comment</span>
+<a name="line-158"></a>			  <span class='varop'>&lt;+&gt;</span>
+<a name="line-159"></a>			  <span class='varid'>isXmlPi</span>	<span class='comment'>-- remove xml declaration</span>
+<a name="line-160"></a>			<span class='layout'>)</span>
+<a name="line-161"></a>
+<a name="line-162"></a><span class='comment'>-- |</span>
+<a name="line-163"></a><span class='comment'>-- Canonicalize a tree for XPath</span>
+<a name="line-164"></a><span class='comment'>-- Like 'canonicalizeAllNodes' but comment nodes are not removed</span>
+<a name="line-165"></a><span class='comment'>--</span>
+<a name="line-166"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>
+<a name="line-167"></a>
+<a name="line-168"></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-169"></a><span class='definition'>canonicalizeForXPath</span>
+<a name="line-170"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-171"></a>      <span class='varid'>canonicalizeTree'</span> <span class='varid'>isXmlPi</span>
+<a name="line-172"></a>
+<a name="line-173"></a><span class='comment'>-- |</span>
+<a name="line-174"></a><span class='comment'>-- Canonicalize the contents of a document</span>
+<a name="line-175"></a><span class='comment'>--</span>
+<a name="line-176"></a><span class='comment'>-- substitutes all char refs in text and attribute values,</span>
+<a name="line-177"></a><span class='comment'>-- removes CDATA section and combines all sequences of resulting text</span>
+<a name="line-178"></a><span class='comment'>-- nodes into a single text node</span>
+<a name="line-179"></a><span class='comment'>--</span>
+<a name="line-180"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>
+<a name="line-181"></a>
+<a name="line-182"></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-183"></a><span class='definition'>canonicalizeContents</span>
+<a name="line-184"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-185"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>
+<a name="line-186"></a>      <span class='keyword'>where</span>
+<a name="line-187"></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-188"></a>      <span class='varid'>canonicalize1Node</span>
+<a name="line-189"></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-190"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-191"></a>			     <span class='varid'>collapseXText</span>
+<a name="line-192"></a>			   <span class='layout'>)</span>
+<a name="line-193"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-194"></a>	    <span class='layout'>)</span>
+<a name="line-195"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-196"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>
+<a name="line-197"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-198"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>
+<a name="line-199"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-200"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>
+<a name="line-201"></a>
+<a name="line-202"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-203"></a>
+<a name="line-204"></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-205"></a><span class='definition'>collapseXText'</span>
+<a name="line-206"></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-207"></a>    <span class='keyword'>where</span>
+<a name="line-208"></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-209"></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-210"></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-211"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-212"></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-213"></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-214"></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-215"></a>	      <span class='keyword'>in</span>
+<a name="line-216"></a>	      <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>ts2</span>
+<a name="line-217"></a>    <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='varid'>ts</span>
+<a name="line-218"></a>	<span class='keyglyph'>=</span> <span class='varid'>t1</span> <span class='conop'>:</span> <span class='varid'>ts</span>
+<a name="line-219"></a>
+<a name="line-220"></a><span class='comment'>-- |</span>
+<a name="line-221"></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-222"></a><span class='comment'>-- This is useful, e.g. after char and entity reference substitution</span>
+<a name="line-223"></a>
+<a name="line-224"></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-225"></a><span class='definition'>collapseXText</span>
+<a name="line-226"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-227"></a>      <span class='varid'>collapseXText'</span>
+<a name="line-228"></a>
+<a name="line-229"></a><span class='comment'>-- |</span>
+<a name="line-230"></a><span class='comment'>-- Applies collapseXText recursively.</span>
+<a name="line-231"></a><span class='comment'>--</span>
+<a name="line-232"></a><span class='comment'>--</span>
+<a name="line-233"></a><span class='comment'>-- see also : 'collapseXText'</span>
+<a name="line-234"></a>
+<a name="line-235"></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-236"></a><span class='definition'>collapseAllXText</span>
+<a name="line-237"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-238"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>collapseXText'</span>
+<a name="line-239"></a>
+<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-241"></a>
+<a name="line-242"></a><span class='comment'>-- |</span>
+<a name="line-243"></a><span class='comment'>-- escape XmlText,</span>
+<a name="line-244"></a><span class='comment'>-- transform all special XML chars into char- or entity- refs</span>
+<a name="line-245"></a>
+<a name="line-246"></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-247"></a>
+<a name="line-248"></a><a name="xmlEntityRefTable"></a><span class='definition'>xmlEntityRefTable</span>
+<a name="line-249"></a> <span class='layout'>,</span> <span class='varid'>xhtmlEntityRefTable</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span>
+<a name="line-250"></a>
+<a name="line-251"></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-252"></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-253"></a>
+<a name="line-254"></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-255"></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-256"></a>
+<a name="line-257"></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-258"></a><span class='definition'>escapeText''</span> <span class='varid'>escChar</span> <span class='varid'>isEsc</span> <span class='varid'>t</span>
+<a name="line-259"></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-260"></a>    <span class='keyword'>where</span>
+<a name="line-261"></a>    <span class='varid'>escape</span> <span class='conid'>[]</span>
+<a name="line-262"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-263"></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-264"></a>	<span class='keyglyph'>|</span> <span class='varid'>isEsc</span> <span class='varid'>c</span>
+<a name="line-265"></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-266"></a>    <span class='varid'>escape</span> <span class='varid'>s</span>
+<a name="line-267"></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-268"></a>	<span class='keyword'>where</span>
+<a name="line-269"></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-270"></a>
+<a name="line-271"></a><span class='comment'>{-
+<a name="line-272"></a>escapeCharRef	:: Char -&gt; XmlTree
+<a name="line-273"></a>escapeCharRef	= XN.mkCharRef . fromEnum
+<a name="line-274"></a>-}</span>
+<a name="line-275"></a>
+<a name="line-276"></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-277"></a><span class='definition'>escapeEntityRef</span> <span class='varid'>entityTable</span> <span class='varid'>c</span>
+<a name="line-278"></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-279"></a>    <span class='keyword'>where</span>
+<a name="line-280"></a>    <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>
+<a name="line-281"></a>
+<a name="line-282"></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-283"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xmlEntityRefTable</span>
+<a name="line-284"></a>
+<a name="line-285"></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-286"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xhtmlEntityRefTable</span>
+<a name="line-287"></a>
+<a name="line-288"></a><span class='comment'>-- |</span>
+<a name="line-289"></a><span class='comment'>-- escape all special XML chars into XML entity references or char references</span>
+<a name="line-290"></a><span class='comment'>--</span>
+<a name="line-291"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; in text nodes into prefefiened XML entity references,</span>
+<a name="line-292"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>
+<a name="line-293"></a><span class='comment'>-- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).</span>
+<a name="line-294"></a>
+<a name="line-295"></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-296"></a><span class='definition'>escapeXmlDoc</span>
+<a name="line-297"></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-298"></a>    <span class='keyword'>where</span>
+<a name="line-299"></a>    <span class='varid'>escXmlText</span>
+<a name="line-300"></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-301"></a>    <span class='varid'>escXmlAttrValue</span>
+<a name="line-302"></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-303"></a>
+<a name="line-304"></a>
+<a name="line-305"></a><span class='comment'>-- |</span>
+<a name="line-306"></a><span class='comment'>-- escape all special HTML chars into XHTML entity references or char references</span>
+<a name="line-307"></a><span class='comment'>--</span>
+<a name="line-308"></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-309"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>
+<a name="line-310"></a><span class='comment'>-- in comments nothing is converted</span>
+<a name="line-311"></a>
+<a name="line-312"></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-313"></a><span class='definition'>escapeHtmlDoc</span>
+<a name="line-314"></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-315"></a>    <span class='keyword'>where</span>
+<a name="line-316"></a>    <span class='varid'>escHtmlText</span>
+<a name="line-317"></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-318"></a>    <span class='varid'>escHtmlAttrValue</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'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlAttrEsc</span>
+<a name="line-320"></a>
+<a name="line-321"></a>    <span class='varid'>isHtmlTextEsc</span> <span class='varid'>c</span>
+<a name="line-322"></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-323"></a>    <span class='varid'>isHtmlAttrEsc</span> <span class='varid'>c</span>
+<a name="line-324"></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-325"></a>
+<a name="line-326"></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-327"></a><span class='definition'>escapeDoc</span> <span class='varid'>escText</span> <span class='varid'>escAttr</span>
+<a name="line-328"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span>
+<a name="line-329"></a>    <span class='keyword'>where</span>
+<a name="line-330"></a>    <span class='varid'>escape</span>
+<a name="line-331"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-332"></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-333"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-334"></a>			  <span class='varid'>processAttrl</span> <span class='varid'>escVal</span>
+<a name="line-335"></a>			<span class='layout'>)</span>
+<a name="line-336"></a>	  <span class='layout'>,</span> <span class='varid'>isText</span>  <span class='conop'>:-&gt;</span> <span class='varid'>escText</span>
+<a name="line-337"></a>	  <span class='comment'>-- , isCmt   :-&gt; escCmt</span>
+<a name="line-338"></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-339"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>    <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-340"></a>	  <span class='keyglyph'>]</span>
+<a name="line-341"></a>    <span class='varid'>escVal</span>   <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>escAttr</span>
+<a name="line-342"></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-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'>-- convert a document into a Haskell representation (with show).</span>
+<a name="line-348"></a><span class='comment'>--</span>
+<a name="line-349"></a><span class='comment'>-- Useful for debugging and trace output.</span>
+<a name="line-350"></a><span class='comment'>-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'</span>
+<a name="line-351"></a>
+<a name="line-352"></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-353"></a><span class='definition'>haskellRepOfXmlDoc</span>
+<a name="line-354"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-355"></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-356"></a>
+<a name="line-357"></a><span class='comment'>-- |</span>
+<a name="line-358"></a><span class='comment'>-- convert a document into a text and add line numbers to the text representation.</span>
+<a name="line-359"></a><span class='comment'>-- </span>
+<a name="line-360"></a><span class='comment'>-- Result is a root node with a single text node as child.</span>
+<a name="line-361"></a><span class='comment'>-- Useful for debugging and trace output.</span>
+<a name="line-362"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'</span>
+<a name="line-363"></a>
+<a name="line-364"></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-365"></a><span class='definition'>numberLinesInXmlDoc</span>
+<a name="line-366"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-367"></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-368"></a>    <span class='keyword'>where</span>
+<a name="line-369"></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-370"></a>    <span class='varid'>numberLines</span> <span class='varid'>str</span>
+<a name="line-371"></a>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>
+<a name="line-372"></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-373"></a>	<span class='keyword'>where</span>
+<a name="line-374"></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-375"></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-376"></a>
+<a name="line-377"></a><span class='comment'>-- |</span>
+<a name="line-378"></a><span class='comment'>-- convert a document into a text representation in tree form.</span>
+<a name="line-379"></a><span class='comment'>--</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', 'numberLinesInXmlDoc'</span>
+<a name="line-382"></a>
+<a name="line-383"></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-384"></a><span class='definition'>treeRepOfXmlDoc</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'>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-387"></a>
+<a name="line-388"></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-389"></a><span class='definition'>addHeadlineToXmlDoc</span>
+<a name="line-390"></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-391"></a>    <span class='keyword'>where</span>
+<a name="line-392"></a>    <span class='varid'>addTitle</span> <span class='varid'>str</span>
+<a name="line-393"></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-394"></a>    <span class='varid'>formatTitle</span> <span class='varid'>str</span>
+<a name="line-395"></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-396"></a>	<span class='keyword'>where</span>
+<a name="line-397"></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-398"></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-399"></a>
+<a name="line-400"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-401"></a>
+<a name="line-402"></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-403"></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-404"></a>
+<a name="line-405"></a><span class='comment'>-- |</span>
+<a name="line-406"></a><span class='comment'>-- remove Comments: @none `when` isCmt@</span>
+<a name="line-407"></a>
+<a name="line-408"></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-409"></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-410"></a>
+<a name="line-411"></a><span class='comment'>-- |</span>
+<a name="line-412"></a><span class='comment'>-- remove all comments recursively</span>
+<a name="line-413"></a>
+<a name="line-414"></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-415"></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-416"></a>
+<a name="line-417"></a><span class='comment'>-- ----------</span>
+<a name="line-418"></a>
+<a name="line-419"></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-420"></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-421"></a>
+<a name="line-422"></a><span class='comment'>-- |</span>
+<a name="line-423"></a><span class='comment'>-- simple filter for removing whitespace.</span>
+<a name="line-424"></a><span class='comment'>--</span>
+<a name="line-425"></a><span class='comment'>-- no check on sigificant whitespace, e.g. in HTML \&lt;pre\&gt;-elements, is done.</span>
+<a name="line-426"></a><span class='comment'>--</span>
+<a name="line-427"></a><span class='comment'>--</span>
+<a name="line-428"></a><span class='comment'>-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'</span>
+<a name="line-429"></a>
+<a name="line-430"></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-431"></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-432"></a>
+<a name="line-433"></a><span class='comment'>-- |</span>
+<a name="line-434"></a><span class='comment'>-- simple recursive filter for removing all whitespace.</span>
+<a name="line-435"></a><span class='comment'>--</span>
+<a name="line-436"></a><span class='comment'>-- removes all text nodes in a tree that consist only of whitespace.</span>
+<a name="line-437"></a><span class='comment'>--</span>
+<a name="line-438"></a><span class='comment'>--</span>
+<a name="line-439"></a><span class='comment'>-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'</span>
+<a name="line-440"></a>
+<a name="line-441"></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-442"></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-443"></a>
+<a name="line-444"></a><span class='comment'>-- |</span>
+<a name="line-445"></a><span class='comment'>-- filter for removing all not significant whitespace.</span>
+<a name="line-446"></a><span class='comment'>--</span>
+<a name="line-447"></a><span class='comment'>-- the tree traversed for removing whitespace between elements,</span>
+<a name="line-448"></a><span class='comment'>-- that was inserted for indentation and readability.</span>
+<a name="line-449"></a><span class='comment'>-- whitespace is only removed at places, where it's not significat</span>
+<a name="line-450"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>
+<a name="line-451"></a><span class='comment'>-- by a tag attribute @xml:space@</span>
+<a name="line-452"></a><span class='comment'>--</span>
+<a name="line-453"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@</span>
+<a name="line-454"></a><span class='comment'>--</span>
+<a name="line-455"></a><span class='comment'>-- input is root node of the document to be cleaned up,</span>
+<a name="line-456"></a><span class='comment'>-- output the semantically equivalent simplified tree</span>
+<a name="line-457"></a><span class='comment'>--</span>
+<a name="line-458"></a><span class='comment'>--</span>
+<a name="line-459"></a><span class='comment'>-- see also : 'indentDoc', 'removeAllWhiteSpace'</span>
+<a name="line-460"></a>
+<a name="line-461"></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-462"></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-463"></a>
+<a name="line-464"></a>
+<a name="line-465"></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-466"></a><span class='definition'>removeRootWhiteSpace</span>
+<a name="line-467"></a>    <span class='keyglyph'>=</span>  <span class='varid'>processChildren</span> <span class='varid'>processRootElement</span>
+<a name="line-468"></a>       <span class='varop'>`when`</span>
+<a name="line-469"></a>       <span class='varid'>isRoot</span>
+<a name="line-470"></a>    <span class='keyword'>where</span>
+<a name="line-471"></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-472"></a>    <span class='varid'>processRootElement</span>
+<a name="line-473"></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-474"></a>	<span class='keyword'>where</span>
+<a name="line-475"></a>	<span class='varid'>processChild</span>
+<a name="line-476"></a>	    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTD</span>
+<a name="line-477"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>removeAllWhiteSpace</span>			<span class='comment'>-- whitespace in DTD is redundant</span>
+<a name="line-478"></a>		      <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-479"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-480"></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-481"></a>					    <span class='layout'>)</span>
+<a name="line-482"></a>		      <span class='keyglyph'>]</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><span class='comment'>-- |</span>
+<a name="line-487"></a><span class='comment'>-- filter for indenting a document tree for pretty printing.</span>
+<a name="line-488"></a><span class='comment'>--</span>
+<a name="line-489"></a><span class='comment'>-- the tree is traversed for inserting whitespace for tag indentation.</span>
+<a name="line-490"></a><span class='comment'>--</span>
+<a name="line-491"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it isn't significant,</span>
+<a name="line-492"></a><span class='comment'>-- is's not inserted between tags and text containing non whitespace chars.</span>
+<a name="line-493"></a><span class='comment'>--</span>
+<a name="line-494"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it's not significant.</span>
+<a name="line-495"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>
+<a name="line-496"></a><span class='comment'>-- by a tag attribute @xml:space@</span>
+<a name="line-497"></a><span class='comment'>--</span>
+<a name="line-498"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@.</span>
+<a name="line-499"></a><span class='comment'>--</span>
+<a name="line-500"></a><span class='comment'>-- input is a complete document tree or a document fragment</span>
+<a name="line-501"></a><span class='comment'>-- result is the semantically equivalent formatted tree.</span>
+<a name="line-502"></a><span class='comment'>--</span>
+<a name="line-503"></a><span class='comment'>--</span>
+<a name="line-504"></a><span class='comment'>-- see also : 'removeDocWhiteSpace'</span>
+<a name="line-505"></a>
+<a name="line-506"></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-507"></a><span class='definition'>indentDoc</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-508"></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-509"></a>			    <span class='varop'>`orElse`</span>
+<a name="line-510"></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-511"></a>			  <span class='layout'>)</span>
+<a name="line-512"></a>
+<a name="line-513"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-514"></a>
+<a name="line-515"></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-516"></a><span class='definition'>indentRoot</span>		<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>indentRootChildren</span>
+<a name="line-517"></a>    <span class='keyword'>where</span>
+<a name="line-518"></a>    <span class='varid'>indentRootChildren</span>
+<a name="line-519"></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-520"></a>	<span class='keyword'>where</span>
+<a name="line-521"></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-522"></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-523"></a>	<span class='varid'>indentChild</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
+<a name="line-524"></a>			    <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-525"></a>			      <span class='varop'>&gt;&gt;.</span>
+<a name="line-526"></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-527"></a>			    <span class='layout'>)</span>
+<a name="line-528"></a>			    <span class='varop'>`whenNot`</span> <span class='varid'>isDTD</span>
+<a name="line-529"></a>			  <span class='layout'>)</span>
+<a name="line-530"></a>
+<a name="line-531"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-532"></a><span class='comment'>--</span>
+<a name="line-533"></a><span class='comment'>-- copied from EditFilter and rewritten for arrows</span>
+<a name="line-534"></a><span class='comment'>-- to remove dependency to the filter module</span>
+<a name="line-535"></a>
+<a name="line-536"></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-537"></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-538"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-539"></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-540"></a>    <span class='keyglyph'>=</span> <span class='varid'>runLAs</span> <span class='varid'>lsf</span> <span class='varid'>ls</span>
+<a name="line-541"></a>      <span class='varop'>++</span>
+<a name="line-542"></a>      <span class='varid'>indentRest</span> <span class='varid'>rs</span>
+<a name="line-543"></a>      <span class='keyword'>where</span>
+<a name="line-544"></a>      <span class='varid'>runLAs</span> <span class='varid'>f</span> <span class='varid'>l</span>
+<a name="line-545"></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-546"></a>
+<a name="line-547"></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-548"></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-549"></a>
+<a name="line-550"></a>      <span class='varid'>isSignificant</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>
+<a name="line-551"></a>      <span class='varid'>isSignificant</span>
+<a name="line-552"></a>	  <span class='keyglyph'>=</span> <span class='varid'>preserveSpace</span>
+<a name="line-553"></a>	    <span class='varop'>||</span>
+<a name="line-554"></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-555"></a>
+<a name="line-556"></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-557"></a>      <span class='varid'>isSignificantPart</span>
+<a name="line-558"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span>
+<a name="line-559"></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-560"></a>	    <span class='layout'>,</span> <span class='varid'>isCdata</span>
+<a name="line-561"></a>	    <span class='layout'>,</span> <span class='varid'>isCharRef</span>
+<a name="line-562"></a>	    <span class='layout'>,</span> <span class='varid'>isEntityRef</span>
+<a name="line-563"></a>	    <span class='keyglyph'>]</span>
+<a name="line-564"></a>
+<a name="line-565"></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-566"></a>      <span class='varid'>lsf</span>
+<a name="line-567"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>
+<a name="line-568"></a>	      <span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-569"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-570"></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-571"></a>                <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-572"></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-573"></a>
+<a name="line-574"></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-575"></a>      <span class='varid'>indentRest</span> <span class='conid'>[]</span>
+<a name="line-576"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>
+<a name="line-577"></a>	      <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-578"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-579"></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-580"></a>
+<a name="line-581"></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-582"></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-583"></a>		      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-584"></a>		      <span class='varid'>lsf</span>
+<a name="line-585"></a>		    <span class='layout'>)</span>
+<a name="line-586"></a>		    <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-587"></a>		  <span class='layout'>)</span> <span class='varid'>t'</span>
+<a name="line-588"></a>            <span class='varop'>++</span>
+<a name="line-589"></a>	    <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ts'</span>
+<a name="line-590"></a>	      <span class='keyword'>then</span> <span class='varid'>indentRest</span>
+<a name="line-591"></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-592"></a>	    <span class='layout'>)</span> <span class='varid'>ts'</span>
+<a name="line-593"></a>	  <span class='keyword'>where</span>
+<a name="line-594"></a>	  <span class='varid'>indentElem</span>
+<a name="line-595"></a>	      <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>	<span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-596"></a>				  <span class='varop'>&gt;&gt;.</span>
+<a name="line-597"></a>				  <span class='varid'>indentChildren</span>
+<a name="line-598"></a>				<span class='layout'>)</span>
+<a name="line-599"></a>
+<a name="line-600"></a>	  <span class='varid'>xmlSpaceAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-601"></a>	  <span class='varid'>xmlSpaceAttrValue</span>
+<a name="line-602"></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-603"></a>
+<a name="line-604"></a>	  <span class='varid'>preserveSpace'</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>
+<a name="line-605"></a>	  <span class='varid'>preserveSpace'</span>
+<a name="line-606"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>preserveSpace</span>
+<a name="line-607"></a>		  <span class='varop'>.</span>
+<a name="line-608"></a>		  <span class='varid'>lookup</span> <span class='varid'>xmlSpaceAttrValue</span>
+<a name="line-609"></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-610"></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-611"></a>		  <span class='keyglyph'>]</span>
+<a name="line-612"></a>
+<a name="line-613"></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-614"></a>	  <span class='varid'>indentChildren</span> <span class='varid'>cs'</span>
+<a name="line-615"></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-616"></a>		  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-617"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-618"></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-619"></a>
+<a name="line-620"></a>	
+<a name="line-621"></a><span class='comment'>-- filter for indenting elements</span>
+<a name="line-622"></a>
+<a name="line-623"></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-624"></a><span class='definition'>insertIndentation</span> <span class='varid'>indentWidth</span> <span class='varid'>level</span>
+<a name="line-625"></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-626"></a>
+<a name="line-627"></a><span class='comment'>-- filter for removing all whitespace</span>
+<a name="line-628"></a>
+<a name="line-629"></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-630"></a><span class='definition'>insertNothing</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-631"></a>
+<a name="line-632"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-633"></a>
+<a name="line-634"></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-635"></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-636"></a>
+<a name="line-637"></a><span class='comment'>-- |</span>
+<a name="line-638"></a><span class='comment'>-- converts a CDATA section node into a normal text node</span>
+<a name="line-639"></a>
+<a name="line-640"></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-641"></a><span class='definition'>transfCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-642"></a>			  <span class='varid'>transfCdata'</span>
+<a name="line-643"></a>
+<a name="line-644"></a><span class='comment'>-- |</span>
+<a name="line-645"></a><span class='comment'>-- converts CDATA sections in whole document tree into normal text nodes</span>
+<a name="line-646"></a>
+<a name="line-647"></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-648"></a><span class='definition'>transfAllCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-649"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCdata'</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="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-654"></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-655"></a>		          <span class='varop'>`when`</span>
+<a name="line-656"></a>			  <span class='varid'>isCharRef</span>
+<a name="line-657"></a>
+<a name="line-658"></a><span class='comment'>-- |</span>
+<a name="line-659"></a><span class='comment'>-- converts character references to normal text</span>
+<a name="line-660"></a>
+<a name="line-661"></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-662"></a><span class='definition'>transfCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-663"></a>			  <span class='varid'>transfCharRef'</span>
+<a name="line-664"></a>
+<a name="line-665"></a><span class='comment'>-- |</span>
+<a name="line-666"></a><span class='comment'>-- recursively converts all character references to normal text</span>
+<a name="line-667"></a>
+<a name="line-668"></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-669"></a><span class='definition'>transfAllCharRef</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-670"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCharRef'</span>
+<a name="line-671"></a>
+<a name="line-672"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-673"></a>
+<a name="line-674"></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-675"></a><span class='definition'>hasXmlPi</span>
+<a name="line-676"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
+<a name="line-677"></a>      <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-678"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-679"></a>	<span class='varid'>isPi</span>
+<a name="line-680"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-681"></a>	<span class='varid'>hasName</span> <span class='varid'>t_xml</span>
+<a name="line-682"></a>      <span class='layout'>)</span>
+<a name="line-683"></a>
+<a name="line-684"></a><span class='comment'>-- | add an \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>
+<a name="line-685"></a><span class='comment'>-- if it's not already there</span>
+<a name="line-686"></a>
+<a name="line-687"></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-688"></a><span class='definition'>addXmlPi</span>
+<a name="line-689"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
+<a name="line-690"></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-691"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-692"></a>			       <span class='varid'>addAttr</span> <span class='varid'>a_version</span> <span class='str'>"1.0"</span>
+<a name="line-693"></a>			     <span class='layout'>)</span>
+<a name="line-694"></a>			     <span class='varop'>&lt;+&gt;</span>
+<a name="line-695"></a>			     <span class='varid'>txt</span> <span class='str'>"\n"</span>
+<a name="line-696"></a>			   <span class='layout'>)</span>
+<a name="line-697"></a>	<span class='varop'>`whenNot`</span>
+<a name="line-698"></a>	<span class='varid'>hasXmlPi</span>
+<a name="line-699"></a>      <span class='layout'>)</span>
+<a name="line-700"></a>
+<a name="line-701"></a><span class='comment'>-- | add an encoding spec to the \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>
+<a name="line-702"></a>
+<a name="line-703"></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-704"></a><span class='definition'>addXmlPiEncoding</span> <span class='varid'>enc</span>
+<a name="line-705"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-706"></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-707"></a>		        <span class='varop'>`when`</span>
+<a name="line-708"></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-709"></a>		      <span class='layout'>)</span>
+<a name="line-710"></a>
+<a name="line-711"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>
+<a name="line-712"></a>
+<a name="line-713"></a><a name="addXHtmlDoctypeStrict"></a><span class='definition'>addXHtmlDoctypeStrict</span>
+<a name="line-714"></a>  <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>
+<a name="line-715"></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-716"></a>
+<a name="line-717"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>
+<a name="line-718"></a>
+<a name="line-719"></a><span class='definition'>addXHtmlDoctypeStrict</span>
+<a name="line-720"></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-721"></a>
+<a name="line-722"></a><span class='comment'>-- | add an XHTML transitional doctype declaration to a document</span>
+<a name="line-723"></a>
+<a name="line-724"></a><a name="addXHtmlDoctypeTransitional"></a><span class='definition'>addXHtmlDoctypeTransitional</span>
+<a name="line-725"></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-726"></a>
+<a name="line-727"></a><span class='comment'>-- | add an XHTML frameset doctype declaration to a document</span>
+<a name="line-728"></a>
+<a name="line-729"></a><a name="addXHtmlDoctypeFrameset"></a><span class='definition'>addXHtmlDoctypeFrameset</span>
+<a name="line-730"></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-731"></a>
+<a name="line-732"></a><span class='comment'>-- | add a doctype declaration to a document</span>
+<a name="line-733"></a><span class='comment'>--</span>
+<a name="line-734"></a><span class='comment'>-- The arguments are the root element name, the PUBLIC id and the SYSTEM id</span>
+<a name="line-735"></a>
+<a name="line-736"></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-737"></a><span class='definition'>addDoctypeDecl</span> <span class='varid'>rootElem</span> <span class='varid'>public</span> <span class='varid'>system</span>
+<a name="line-738"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-739"></a>      <span class='varid'>replaceChildren</span>
+<a name="line-740"></a>      <span class='layout'>(</span> <span class='varid'>mkDTDDoctype</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>
+<a name="line-741"></a>		     <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>
+<a name="line-742"></a>		     <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>
+<a name="line-743"></a>		     <span class='keyglyph'>]</span> <span class='varid'>none</span>
+<a name="line-744"></a>	<span class='varop'>&lt;+&gt;</span>
+<a name="line-745"></a>	<span class='varid'>txt</span> <span class='str'>"\n"</span>
+<a name="line-746"></a>	<span class='varop'>&lt;+&gt;</span>
+<a name="line-747"></a>	<span class='varid'>getChildren</span>
+<a name="line-748"></a>      <span class='layout'>)</span>
+<a name="line-749"></a>
+<a name="line-750"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
@@ -0,0 +1,354 @@
+<!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     : Text.XML.HXT.Arrow.GeneralEntitySubstitution
+<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: GeneralEntitySubstitution.hs,v 1.13 2006/05/01 18:56:24 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   general entity substitution
+<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'>GeneralEntitySubstitution</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>processGeneralEntities</span> <span class='layout'>)</span>
+<a name="line-21"></a><span class='keyword'>where</span>
+<a name="line-22"></a>
+<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='comment'>-- arrow classes</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'>ArrowList</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'>ArrowIf</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'>ArrowTree</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'>Interface</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>
+<a name="line-33"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlAttrValue</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlGeneralEntityValue</span>
+<a name="line-35"></a>    <span class='layout'>)</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'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>
+<a name="line-38"></a>    <span class='layout'>(</span> <span class='varid'>transfCharRef</span>
+<a name="line-39"></a>    <span class='layout'>)</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'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>
+<a name="line-42"></a>    <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-43"></a>    <span class='layout'>)</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-46"></a>
+<a name="line-47"></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-48"></a>    <span class='layout'>(</span> <span class='conid'>Map</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>empty</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>lookup</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>insert</span><span class='layout'>)</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="GEContext"></a><span class='keyword'>data</span> <span class='conid'>GEContext</span>
+<a name="line-56"></a>    <span class='keyglyph'>=</span> <span class='conid'>ReferenceInContent</span>
+<a name="line-57"></a>    <span class='keyglyph'>|</span> <span class='conid'>ReferenceInAttributeValue</span>
+<a name="line-58"></a>    <span class='keyglyph'>|</span> <span class='conid'>ReferenceInEntityValue</span>
+<a name="line-59"></a>    <span class='comment'>-- or OccursInAttributeValue				-- not used during substitution but during validation</span>
+<a name="line-60"></a>    <span class='comment'>-- or ReferenceInDTD					-- not used: syntax check detects errors</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="GESubstArrow"></a><span class='keyword'>type</span> <span class='conid'>GESubstArrow</span>	<span class='keyglyph'>=</span> <span class='conid'>GEContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="GEArrow"></a><span class='keyword'>type</span> <span class='conid'>GEArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>GEEnv</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="RecList"></a><span class='keyword'>type</span> <span class='conid'>RecList</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="GEEnv"></a><span class='keyword'>newtype</span> <span class='conid'>GEEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>GEEnv</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>GESubstArrow</span><span class='layout'>)</span>
+<a name="line-71"></a>
+<a name="line-72"></a><a name="emptyGeEnv"></a><span class='definition'>emptyGeEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>GEEnv</span>
+<a name="line-73"></a><span class='definition'>emptyGeEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>GEEnv</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="lookupGeEnv"></a><span class='definition'>lookupGeEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>GESubstArrow</span>
+<a name="line-76"></a><span class='definition'>lookupGeEnv</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='conid'>GEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-77"></a>    <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varid'>env</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="addGeEntry"></a><span class='definition'>addGeEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GESubstArrow</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEEnv</span>
+<a name="line-80"></a><span class='definition'>addGeEntry</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>GEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='conid'>GEEnv</span> <span class='varop'>$</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='varid'>env</span>
+<a name="line-82"></a>
+<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='comment'>-- |</span>
+<a name="line-86"></a><span class='comment'>-- substitution of general entities</span>
+<a name="line-87"></a><span class='comment'>--</span>
+<a name="line-88"></a><span class='comment'>-- input: a complete document tree including root node</span>
+<a name="line-89"></a>
+<a name="line-90"></a><a name="processGeneralEntities"></a><span class='definition'>processGeneralEntities</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-91"></a><span class='definition'>processGeneralEntities</span>
+<a name="line-92"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"processGeneralEntities: collect and substitute general entities"</span>
+<a name="line-93"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-94"></a>	<span class='varid'>withOtherUserState</span> <span class='varid'>emptyGeEnv</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInContent</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-95"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-96"></a>	<span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"in general entity processing"</span>
+<a name="line-97"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-98"></a>	<span class='varid'>traceTree</span>
+<a name="line-99"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-100"></a>	<span class='varid'>traceSource</span>
+<a name="line-101"></a>      <span class='layout'>)</span>
+<a name="line-102"></a>      <span class='varop'>`when`</span>
+<a name="line-103"></a>      <span class='varid'>documentStatusOk</span>
+<a name="line-104"></a>
+<a name="line-105"></a>      
+<a name="line-106"></a><a name="processGeneralEntity"></a><span class='definition'>processGeneralEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>GESubstArrow</span>
+<a name="line-107"></a><span class='definition'>processGeneralEntity</span> <span class='varid'>context</span> <span class='varid'>recl</span>
+<a name="line-108"></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='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varid'>substEntitiesInAttrValue</span><span class='layout'>)</span>
+<a name="line-109"></a>		                      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-110"></a>		                      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='varid'>context</span> <span class='varid'>recl</span><span class='layout'>)</span>
+<a name="line-111"></a>				    <span class='layout'>)</span>
+<a name="line-112"></a>	      <span class='layout'>,</span> <span class='varid'>isDTDDoctype</span>	<span class='conop'>:-&gt;</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='varid'>context</span> <span class='varid'>recl</span><span class='layout'>)</span>
+<a name="line-113"></a>	      <span class='layout'>,</span> <span class='varid'>isDTDEntity</span>	<span class='conop'>:-&gt;</span> <span class='varid'>addEntityDecl</span>
+<a name="line-114"></a>	      <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span>	<span class='conop'>:-&gt;</span> <span class='varid'>substEntitiesInAttrDefaultValue</span>
+<a name="line-115"></a>	      <span class='layout'>,</span> <span class='varid'>isEntityRef</span>	<span class='conop'>:-&gt;</span> <span class='varid'>substEntityRef</span>
+<a name="line-116"></a>	      <span class='layout'>,</span> <span class='varid'>this</span> 		<span class='conop'>:-&gt;</span> <span class='varid'>this</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'>addEntityDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-120"></a>    <span class='varid'>addEntityDecl</span>
+<a name="line-121"></a>	<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isIntern</span>		<span class='conop'>:-&gt;</span> <span class='varid'>addInternalEntity</span>		<span class='comment'>-- don't change sequence of cases</span>
+<a name="line-122"></a>			    <span class='layout'>,</span> <span class='varid'>isExtern</span>		<span class='conop'>:-&gt;</span> <span class='varid'>addExternalEntity</span>
+<a name="line-123"></a>			    <span class='layout'>,</span> <span class='varid'>isUnparsed</span>	<span class='conop'>:-&gt;</span> <span class='varid'>addUnparsedEntity</span>
+<a name="line-124"></a>			    <span class='keyglyph'>]</span>
+<a name="line-125"></a>		  <span class='layout'>)</span>
+<a name="line-126"></a>	<span class='keyword'>where</span>
+<a name="line-127"></a>	<span class='varid'>isIntern</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span>
+<a name="line-128"></a>	<span class='varid'>isExtern</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_ndata</span>
+<a name="line-129"></a>	<span class='varid'>isUnparsed</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-130"></a>
+<a name="line-131"></a>    <span class='varid'>addInternalEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>
+<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-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>
+<a name="line-139"></a>	  <span class='layout'>)</span>
+<a name="line-140"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-141"></a>	  <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr2</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>entity</span> <span class='varid'>str</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-142"></a>		   <span class='varid'>listA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>str</span>
+<a name="line-143"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-144"></a>			       <span class='varid'>parseXmlGeneralEntityValue</span> <span class='layout'>(</span><span class='str'>"general internal entity"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>
+<a name="line-145"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-146"></a>			       <span class='varid'>filterErrorMsg</span>
+<a name="line-147"></a>			     <span class='layout'>)</span>
+<a name="line-148"></a>			     <span class='varop'>`orElse`</span> <span class='varid'>txt</span> <span class='str'>""</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'>processGeneralEntity</span> <span class='conid'>ReferenceInEntityValue</span> <span class='layout'>(</span><span class='varid'>entity</span> <span class='conop'>:</span> <span class='varid'>recl</span><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'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>insertEntity</span> <span class='layout'>(</span><span class='varid'>substInternal</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>entity</span><span class='layout'>)</span>
+<a name="line-155"></a>		 <span class='layout'>)</span>
+<a name="line-156"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-157"></a>	  <span class='varid'>none</span>
+<a name="line-158"></a>
+<a name="line-159"></a>    <span class='varid'>addExternalEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>
+<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-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>
+<a name="line-167"></a>	  <span class='layout'>)</span>
+<a name="line-168"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-169"></a>	  <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr2</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>entity</span> <span class='varid'>uri</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>insertEntity</span> <span class='layout'>(</span><span class='varid'>substExternalParsed1Time</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varid'>entity</span><span class='layout'>)</span>
+<a name="line-170"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-171"></a>	  <span class='varid'>none</span>
+<a name="line-172"></a>
+<a name="line-173"></a>    <span class='varid'>addUnparsedEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>
+<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-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>
+<a name="line-181"></a>	  <span class='varid'>none</span>
+<a name="line-182"></a>
+<a name="line-183"></a>    <span class='varid'>insertEntity</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GESubstArrow</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-184"></a>    <span class='varid'>insertEntity</span> <span class='varid'>fct</span> <span class='varid'>entity</span>
+<a name="line-185"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getUserState</span>
+<a name="line-186"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-187"></a>	    <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>checkDefined</span><span class='layout'>)</span>
+<a name="line-188"></a>	  <span class='layout'>)</span>
+<a name="line-189"></a>	  <span class='varop'>`guards`</span>
+<a name="line-190"></a>	  <span class='varid'>addEntity</span> <span class='varid'>fct</span> <span class='varid'>entity</span>
+<a name="line-191"></a>	<span class='keyword'>where</span>
+<a name="line-192"></a>	<span class='varid'>checkDefined</span> <span class='varid'>geEnv</span>
+<a name="line-193"></a>	    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>ok</span> <span class='varid'>alreadyDefined</span> <span class='varop'>.</span> <span class='varid'>lookupGeEnv</span> <span class='varid'>entity</span> <span class='varop'>$</span> <span class='varid'>geEnv</span>
+<a name="line-194"></a>	    <span class='keyword'>where</span>
+<a name="line-195"></a>	    <span class='varid'>ok</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-196"></a>	    <span class='varid'>alreadyDefined</span> <span class='keyword'>_</span>
+<a name="line-197"></a>		<span class='keyglyph'>=</span> <span class='varid'>issueWarn</span> <span class='layout'>(</span><span class='str'>"entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>" already defined, repeated definition ignored"</span><span class='layout'>)</span>
+<a name="line-198"></a>
+<a name="line-199"></a>    <span class='varid'>addEntity</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GESubstArrow</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-200"></a>    <span class='varid'>addEntity</span> <span class='varid'>fct</span> <span class='varid'>entity</span>
+<a name="line-201"></a>	<span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>ins</span>
+<a name="line-202"></a>	<span class='keyword'>where</span>
+<a name="line-203"></a>	<span class='varid'>ins</span> <span class='keyword'>_</span> <span class='varid'>geEnv</span> <span class='keyglyph'>=</span> <span class='varid'>addGeEntry</span> <span class='varid'>entity</span> <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>entity</span><span class='layout'>)</span> <span class='varid'>geEnv</span>
+<a name="line-204"></a>
+<a name="line-205"></a>    <span class='varid'>substEntitiesInAttrDefaultValue</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-206"></a>    <span class='varid'>substEntitiesInAttrDefaultValue</span>
+<a name="line-207"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_default</span>			<span class='comment'>-- parse the default value</span>
+<a name="line-208"></a>			   <span class='varop'>&gt;&gt;&gt;</span>						<span class='comment'>-- substitute entities</span>
+<a name="line-209"></a>			   <span class='varid'>mkText</span>					<span class='comment'>-- and convert value into a string</span>
+<a name="line-210"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-211"></a>			   <span class='varid'>parseXmlAttrValue</span> <span class='str'>"default value of attribute"</span>
+<a name="line-212"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-213"></a>			   <span class='varid'>filterErrorMsg</span>
+<a name="line-214"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-215"></a>			   <span class='varid'>substEntitiesInAttrValue</span>
+<a name="line-216"></a>			 <span class='layout'>)</span>
+<a name="line-217"></a>		   <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>setDTDAttrValue</span> <span class='varid'>a_default</span><span class='layout'>)</span>
+<a name="line-218"></a>		 <span class='layout'>)</span>
+<a name="line-219"></a>          <span class='varop'>`when`</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>a_default</span>
+<a name="line-220"></a>
+<a name="line-221"></a>    <span class='varid'>substEntitiesInAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-222"></a>    <span class='varid'>substEntitiesInAttrValue</span>
+<a name="line-223"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='varid'>recl</span>
+<a name="line-224"></a>	    <span class='varop'>`when`</span>
+<a name="line-225"></a>	    <span class='varid'>isEntityRef</span>
+<a name="line-226"></a>	  <span class='layout'>)</span>
+<a name="line-227"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-228"></a>	  <span class='varid'>changeText</span> <span class='varid'>normalizeWhiteSpace</span>
+<a name="line-229"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-230"></a>	  <span class='varid'>transfCharRef</span>
+<a name="line-231"></a>	<span class='keyword'>where</span>
+<a name="line-232"></a>	<span class='varid'>normalizeWhiteSpace</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"\n\t\r"</span> <span class='keyword'>then</span> <span class='chr'>' '</span> <span class='keyword'>else</span> <span class='varid'>c</span> <span class='layout'>)</span>
+<a name="line-233"></a>
+<a name="line-234"></a>
+<a name="line-235"></a>    <span class='varid'>substEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<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-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>
+<a name="line-243"></a>		     <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-244"></a>		     <span class='varid'>getUserState</span>
+<a name="line-245"></a>		   <span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-246"></a>		   <span class='varid'>arr2</span> <span class='varid'>substA</span>
+<a name="line-247"></a>		 <span class='layout'>)</span>
+<a name="line-248"></a>	  <span class='varop'>`orElse`</span> <span class='varid'>this</span>
+<a name="line-249"></a>	  <span class='keyword'>where</span>
+<a name="line-250"></a>	  <span class='varid'>substA</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-251"></a>	  <span class='varid'>substA</span> <span class='varid'>entity</span> <span class='varid'>geEnv</span>
+<a name="line-252"></a>	      <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>entityNotFound</span> <span class='varid'>entityFound</span> <span class='varop'>.</span> <span class='varid'>lookupGeEnv</span> <span class='varid'>entity</span> <span class='varop'>$</span> <span class='varid'>geEnv</span>
+<a name="line-253"></a>	      <span class='keyword'>where</span>
+<a name="line-254"></a>	      <span class='varid'>errMsg</span> <span class='varid'>msg</span>
+<a name="line-255"></a>		  <span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='varid'>msg</span>
+<a name="line-256"></a>
+<a name="line-257"></a>	      <span class='varid'>entityNotFound</span>
+<a name="line-258"></a>		  <span class='keyglyph'>=</span> <span class='varid'>errMsg</span> <span class='layout'>(</span><span class='str'>"general entity reference \"&amp;"</span> <span class='varop'>++</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>";\" not processed, no definition found, (forward reference?)"</span><span class='layout'>)</span>
+<a name="line-259"></a>
+<a name="line-260"></a>	      <span class='varid'>entityFound</span> <span class='varid'>fct</span>
+<a name="line-261"></a>		  <span class='keyglyph'>|</span> <span class='varid'>entity</span> <span class='varop'>`elem`</span> <span class='varid'>recl</span>
+<a name="line-262"></a>		      <span class='keyglyph'>=</span> <span class='varid'>errMsg</span> <span class='layout'>(</span><span class='str'>"general entity reference \"&amp;"</span> <span class='varop'>++</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>";\" not processed, cyclic definition"</span><span class='layout'>)</span>
+<a name="line-263"></a>		  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-264"></a>		      <span class='keyglyph'>=</span> <span class='varid'>fct</span> <span class='varid'>context</span> <span class='varid'>recl</span>
+<a name="line-265"></a>
+<a name="line-266"></a>    <span class='varid'>substExternalParsed1Time</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'>GESubstArrow</span>
+<a name="line-267"></a>    <span class='varid'>substExternalParsed1Time</span> <span class='varid'>uri</span> <span class='varid'>entity</span> <span class='varid'>cx</span> <span class='varid'>rl</span>
+<a name="line-268"></a> 	<span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"substExternalParsed1Time: read and parse external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>
+<a name="line-269"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-270"></a>		    <span class='varid'>runInLocalURIContext</span> <span class='layout'>(</span> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='varid'>a_source</span> <span class='varid'>uri</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>		<span class='comment'>-- uri must be an absolute uri</span>
+<a name="line-271"></a>					   <span class='varop'>&gt;&gt;&gt;</span>					<span class='comment'>-- abs uri is computed during parameter entity handling</span>
+<a name="line-272"></a>					   <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-273"></a>						   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-274"></a>						   <span class='varid'>processExternalEntityContents</span>
+<a name="line-275"></a>						 <span class='layout'>)</span>
+<a name="line-276"></a>					 <span class='layout'>)</span>
+<a name="line-277"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-278"></a>		    <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'>ts</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addEntity</span> <span class='layout'>(</span><span class='varid'>substExternalParsed</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>entity</span> <span class='layout'>)</span>
+<a name="line-279"></a>		  <span class='layout'>)</span>
+<a name="line-280"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-281"></a>	  <span class='varid'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span>
+<a name="line-282"></a>	<span class='keyword'>where</span>
+<a name="line-283"></a>	<span class='varid'>processExternalEntityContents</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-284"></a>	<span class='varid'>processExternalEntityContents</span>
+<a name="line-285"></a>	    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>documentStatusOk</span>				<span class='comment'>-- reading entity succeeded</span>
+<a name="line-286"></a>		  <span class='varop'>&gt;&gt;&gt;</span>						<span class='comment'>-- with content stored in a text node</span>
+<a name="line-287"></a>		  <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>
+<a name="line-288"></a>		<span class='layout'>)</span>
+<a name="line-289"></a>		<span class='varop'>`guards`</span>
+<a name="line-290"></a>		<span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-291"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-292"></a>		  <span class='varid'>parseXmlGeneralEntityValue</span> <span class='layout'>(</span><span class='str'>"external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>
+<a name="line-293"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-294"></a>		  <span class='varid'>filterErrorMsg</span>
+<a name="line-295"></a>		<span class='layout'>)</span>
+<a name="line-296"></a>	      <span class='layout'>)</span>
+<a name="line-297"></a>	      <span class='varop'>`orElse`</span>
+<a name="line-298"></a>	      <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"illegal value for external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>
+<a name="line-299"></a>
+<a name="line-300"></a>    <span class='varid'>substExternalParsed</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'>GESubstArrow</span>
+<a name="line-301"></a>    <span class='varid'>substExternalParsed</span>	<span class='varid'>ts</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInContent</span> <span class='varid'>rl</span>	<span class='keyglyph'>=</span> <span class='varid'>includedIfValidating</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>
+<a name="line-302"></a>    <span class='varid'>substExternalParsed</span>	<span class='keyword'>_</span>  <span class='varid'>entity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='keyword'>_</span>
+<a name="line-303"></a>                                                        <span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"external parsed general"</span> <span class='str'>"in attribute value"</span>
+<a name="line-304"></a>    <span class='varid'>substExternalParsed</span>	<span class='keyword'>_</span>  <span class='keyword'>_</span>      <span class='conid'>ReferenceInEntityValue</span> <span class='keyword'>_</span>
+<a name="line-305"></a>                                                        <span class='keyglyph'>=</span> <span class='varid'>bypassed</span>
+<a name="line-306"></a>
+<a name="line-307"></a>    <span class='varid'>substInternal</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'>GESubstArrow</span>
+<a name="line-308"></a>    <span class='varid'>substInternal</span> <span class='varid'>ts</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInContent</span> <span class='varid'>rl</span>	<span class='keyglyph'>=</span> <span class='varid'>included</span>          <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>
+<a name="line-309"></a>    <span class='varid'>substInternal</span> <span class='varid'>ts</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='varid'>rl</span><span class='keyglyph'>=</span> <span class='varid'>includedInLiteral</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>
+<a name="line-310"></a>    <span class='varid'>substInternal</span> <span class='keyword'>_</span>  <span class='keyword'>_</span>      <span class='conid'>ReferenceInEntityValue</span> <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>bypassed</span>
+<a name="line-311"></a>
+<a name="line-312"></a>    <span class='varid'>substUnparsed</span>					<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GESubstArrow</span>
+<a name="line-313"></a>    <span class='varid'>substUnparsed</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInContent</span>        <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"unparsed"</span> <span class='str'>"content"</span>
+<a name="line-314"></a>    <span class='varid'>substUnparsed</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"unparsed"</span> <span class='str'>"attribute value"</span>
+<a name="line-315"></a>    <span class='varid'>substUnparsed</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInEntityValue</span>    <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"unparsed"</span> <span class='str'>"entity value"</span>
+<a name="line-316"></a>
+<a name="line-317"></a>									<span class='comment'>-- XML 1.0 chapter 4.4.2</span>
+<a name="line-318"></a>    <span class='varid'>included</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-319"></a>    <span class='varid'>included</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>
+<a name="line-320"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-321"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-322"></a>	  <span class='varid'>processGeneralEntity</span> <span class='varid'>context</span> <span class='layout'>(</span><span class='varid'>entity</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-323"></a>
+<a name="line-324"></a>									<span class='comment'>-- XML 1.0 chapter 4.4.3</span>
+<a name="line-325"></a>    <span class='varid'>includedIfValidating</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-326"></a>    <span class='varid'>includedIfValidating</span>
+<a name="line-327"></a>	<span class='keyglyph'>=</span> <span class='varid'>included</span>
+<a name="line-328"></a>
+<a name="line-329"></a>									<span class='comment'>-- XML 1.0 chapter 4.4.4</span>
+<a name="line-330"></a>    <span class='varid'>forbidden</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'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-331"></a>    <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='varid'>msg</span> <span class='varid'>cx</span>
+<a name="line-332"></a> 	<span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"reference of "</span> <span class='varop'>++</span> <span class='varid'>msg</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>" forbidden in "</span> <span class='varop'>++</span> <span class='varid'>cx</span><span class='layout'>)</span>
+<a name="line-333"></a>
+<a name="line-334"></a>									<span class='comment'>-- XML 1.0 chapter 4.4.5</span>
+<a name="line-335"></a>    <span class='varid'>includedInLiteral</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-336"></a>    <span class='varid'>includedInLiteral</span>
+<a name="line-337"></a>	<span class='keyglyph'>=</span> <span class='varid'>included</span>
+<a name="line-338"></a>
+<a name="line-339"></a>									<span class='comment'>-- XML 1.0 chapter 4.4.7</span>
+<a name="line-340"></a>    <span class='varid'>bypassed</span>		<span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-341"></a>    <span class='varid'>bypassed</span>
+<a name="line-342"></a>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-343"></a>
+<a name="line-344"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html
@@ -0,0 +1,442 @@
+<!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     : Text.XML.HXT.Arrow.Namespace
+<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: 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-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-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-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-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-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-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-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-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-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-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-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-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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-ParserInterface.html b/doc/hdoc/src/Text-XML-HXT-Arrow-ParserInterface.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-ParserInterface.html
@@ -0,0 +1,142 @@
+<!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'>-- interface to the HXT XML and DTD parsers</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- version: $Id: ParserInterface.hs,v 1.1 2006/05/01 18:56:24 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'>ParserInterface</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'>ParserInterface</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>
+<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'>ListArrow</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'>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-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'>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-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>
+<a name="line-22"></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'>Parser</span><span class='varop'>.</span><span class='conid'>TagSoup</span>		 <span class='keyword'>as</span> <span class='conid'>TS</span>
+<a name="line-23"></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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>          <span class='keyword'>as</span> <span class='conid'>HP</span>
+<a name="line-24"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>           <span class='keyword'>as</span> <span class='conid'>XP</span>
+<a name="line-25"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDParser</span>	 <span class='keyword'>as</span> <span class='conid'>DP</span>
+<a name="line-26"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>Validation</span>   <span class='keyword'>as</span> <span class='conid'>VA</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="parseXmlDoc"></a><span class='definition'>parseXmlDoc</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'>XmlTree</span>
+<a name="line-31"></a><span class='definition'>parseXmlDoc</span>			<span class='keyglyph'>=</span>  <span class='varid'>arr2L</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlDocument</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="parseXmlDTDPart"></a><span class='definition'>parseXmlDTDPart</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'>XmlTree</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>
+<a name="line-34"></a><span class='definition'>parseXmlDTDPart</span>			<span class='keyglyph'>=</span>  <span class='varid'>arr2L</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDPart</span>
+<a name="line-35"></a>
+<a name="line-36"></a><a name="parseXmlContent"></a><span class='definition'>parseXmlContent</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-37"></a><span class='definition'>parseXmlContent</span>			<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>xread</span>
+<a name="line-38"></a>
+<a name="line-39"></a><a name="parseXmlEntityEncodingSpec"></a><span class='definition'>parseXmlEntityEncodingSpec</span>
+<a name="line-40"></a>  <span class='layout'>,</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-41"></a>  <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</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-42"></a>
+<a name="line-43"></a><a name="parseXmlDocEncodingSpec"></a><span class='definition'>parseXmlDocEncodingSpec</span>		<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-44"></a><span class='definition'>parseXmlEntityEncodingSpec</span>	<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="removeEncodingSpec"></a><span class='definition'>removeEncodingSpec</span>		<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>removeEncodingSpec</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="parseXmlDTDdeclPart"></a><span class='definition'>parseXmlDTDdeclPart</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-49"></a><span class='definition'>parseXmlDTDdeclPart</span>		<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>DP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDdeclPart</span>
+<a name="line-50"></a>
+<a name="line-51"></a><a name="parseXmlDTDdecl"></a><span class='definition'>parseXmlDTDdecl</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-52"></a><span class='definition'>parseXmlDTDdecl</span>			<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>DP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDdecl</span>
+<a name="line-53"></a>
+<a name="line-54"></a><a name="parseXmlDTDEntityValue"></a><span class='definition'>parseXmlDTDEntityValue</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-55"></a><span class='definition'>parseXmlDTDEntityValue</span>		<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='conid'>DP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDEntityValue</span>
+<a name="line-56"></a>
+<a name="line-57"></a><a name="parseXmlAttrValue"></a><span class='definition'>parseXmlAttrValue</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-58"></a><span class='definition'>parseXmlAttrValue</span> <span class='varid'>context</span>	<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlAttrValue</span> <span class='varid'>context</span><span class='layout'>)</span>
+<a name="line-59"></a>
+<a name="line-60"></a><a name="parseXmlGeneralEntityValue"></a><span class='definition'>parseXmlGeneralEntityValue</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-61"></a><span class='definition'>parseXmlGeneralEntityValue</span> <span class='varid'>context</span>
+<a name="line-62"></a>				<span class='keyglyph'>=</span>  <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlGeneralEntityValue</span> <span class='varid'>context</span><span class='layout'>)</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><a name="parseHtmlDoc"></a><span class='definition'>parseHtmlDoc</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='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>
+<a name="line-67"></a><span class='definition'>parseHtmlDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='conid'>HP</span><span class='varop'>.</span><span class='varid'>parseHtmlDocument</span>
+<a name="line-68"></a>
+<a name="line-69"></a><a name="parseHtmlContent"></a><span class='definition'>parseHtmlContent</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'>XmlTree</span>
+<a name="line-70"></a><span class='definition'>parseHtmlContent</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span>  <span class='conid'>HP</span><span class='varop'>.</span><span class='varid'>parseHtmlContent</span>
+<a name="line-71"></a>
+<a name="line-72"></a><a name="parseHtmlTagSoup"></a><span class='definition'>parseHtmlTagSoup</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='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='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'>XmlTree</span>
+<a name="line-73"></a><span class='definition'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWS</span> <span class='varid'>asHtml</span>
+<a name="line-74"></a>				<span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='layout'>(</span><span class='conid'>TS</span><span class='varop'>.</span><span class='varid'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWS</span> <span class='varid'>asHtml</span><span class='layout'>)</span>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-77"></a>
+<a name="line-78"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span>
+<a name="line-79"></a>  <span class='layout'>,</span> <span class='varid'>transformDoc</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-80"></a>
+<a name="line-81"></a><span class='definition'>validateDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='conid'>VA</span><span class='varop'>.</span><span class='varid'>validate</span>
+<a name="line-82"></a><a name="transformDoc"></a><span class='definition'>transformDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='conid'>VA</span><span class='varop'>.</span><span class='varid'>transform</span>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='comment'>-- old stuff</span>
+<a name="line-85"></a><span class='comment'>-- validateDoc			= arrL VA.validate</span>
+<a name="line-86"></a><span class='comment'>-- transformDoc			= arrL VA.transform</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'>-- | substitution of all predefined XHTMT entities for none ASCII chars</span>
+<a name="line-91"></a><span class='comment'>--</span>
+<a name="line-92"></a><span class='comment'>-- This arrow recurses through a whole XML tree and substitutes all</span>
+<a name="line-93"></a><span class='comment'>-- entity refs within text nodes and attribute values by a text node</span>
+<a name="line-94"></a><span class='comment'>-- containing of a single char corresponding to this entity.</span>
+<a name="line-95"></a><span class='comment'>--</span>
+<a name="line-96"></a><span class='comment'>-- Unknown entity refs remain unchanged</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="substHtmlEntityRefs"></a><span class='definition'>substHtmlEntityRefs</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-99"></a><span class='definition'>substHtmlEntityRefs</span>		<span class='keyglyph'>=</span> <span class='varid'>substEntityRefs</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-100"></a>
+<a name="line-101"></a>
+<a name="line-102"></a><span class='comment'>-- | substitution of the five predefined XMT entities, works like 'substHtmlEntityRefs'</span>
+<a name="line-103"></a>
+<a name="line-104"></a><a name="substXmlEntityRefs"></a><span class='definition'>substXmlEntityRefs</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-105"></a><span class='definition'>substXmlEntityRefs</span>		<span class='keyglyph'>=</span> <span class='varid'>substEntityRefs</span> <span class='varid'>xmlEntities</span>
+<a name="line-106"></a>
+<a name="line-107"></a><span class='comment'>-- | the entity substitution arrow called from 'substXmlEntityRefs' and 'substHtmlEntityRefs'</span>
+<a name="line-108"></a>
+<a name="line-109"></a><a name="substEntityRefs"></a><span class='definition'>substEntityRefs</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</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'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</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'>substEntityRefs</span> <span class='varid'>entities</span>
+<a name="line-111"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varid'>substEntities</span>
+<a name="line-112"></a>    <span class='keyword'>where</span>
+<a name="line-113"></a>    <span class='varid'>substEntities</span>		<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-114"></a>    <span class='varid'>substEntities</span>
+<a name="line-115"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-116"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isEntityRef</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>substEntity</span> <span class='varop'>$&lt;</span> <span class='varid'>getEntityRef</span> <span class='layout'>)</span>
+<a name="line-117"></a>	  <span class='layout'>,</span> <span class='varid'>isElem</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varid'>substEntities</span><span class='layout'>)</span>
+<a name="line-118"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-119"></a>			      <span class='varid'>processChildren</span> <span class='varid'>substEntities</span>
+<a name="line-120"></a>			    <span class='layout'>)</span>
+<a name="line-121"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-122"></a>	  <span class='keyglyph'>]</span>
+<a name="line-123"></a>	<span class='keyword'>where</span>
+<a name="line-124"></a>	<span class='varid'>substEntity</span> <span class='varid'>en</span>
+<a name="line-125"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>en</span> <span class='varid'>entities</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-126"></a>	      <span class='conid'>Just</span> <span class='varid'>i</span>
+<a name="line-127"></a>		  <span class='keyglyph'>-&gt;</span> <span class='varid'>txt</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='keyglyph'>]</span> 	<span class='comment'>-- constA i &gt;&gt;&gt; mkCharRef</span>
+<a name="line-128"></a>	      <span class='conid'>Nothing</span>
+<a name="line-129"></a>		  <span class='keyglyph'>-&gt;</span> <span class='varid'>this</span>
+<a name="line-130"></a>
+<a name="line-131"></a>
+<a name="line-132"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-DTD.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-DTD.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-DTD.html
@@ -0,0 +1,342 @@
+<!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     : Text.XML.HXT.Arrow.Pickle.DTD
+<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>Functions for converting a pickler schema
+<a name="line-14"></a>into a DTD
+<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'>Pickle</span><span class='varop'>.</span><span class='conid'>DTD</span>
+<a name="line-21"></a><span class='keyword'>where</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'>Maybe</span>
+<a name="line-24"></a>
+<a name="line-25"></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-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'>Interface</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'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</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="DTDdescr"></a><span class='keyword'>data</span> <span class='conid'>DTDdescr</span>			<span class='keyglyph'>=</span> <span class='conid'>DTDdescr</span> <span class='conid'>Name</span> <span class='conid'>Schemas</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Name</span><span class='layout'>,</span><span class='conid'>Schemas</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>DTDdescr</span> <span class='keyword'>where</span>
+<a name="line-36"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>DTDdescr</span> <span class='varid'>n</span> <span class='varid'>es</span> <span class='keyword'>as</span><span class='layout'>)</span>
+<a name="line-37"></a>	<span class='keyglyph'>=</span> <span class='str'>"root element: "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"\n"</span>
+<a name="line-38"></a>	  <span class='varop'>++</span>
+<a name="line-39"></a>	  <span class='str'>"elements:\n"</span>
+<a name="line-40"></a>	  <span class='varop'>++</span>
+<a name="line-41"></a>	  <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span><span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>es</span>
+<a name="line-42"></a>	  <span class='varop'>++</span>
+<a name="line-43"></a>	  <span class='str'>"attributes:\n"</span>
+<a name="line-44"></a>	  <span class='varop'>++</span>
+<a name="line-45"></a>	  <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showAttr</span><span class='layout'>)</span> <span class='keyword'>as</span>
+<a name="line-46"></a>	<span class='keyword'>where</span>
+<a name="line-47"></a>	<span class='varid'>showAttr</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sc</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'>-- | convert a DTD descr into XmlTrees</span>
+<a name="line-52"></a>
+<a name="line-53"></a><a name="dtdDescrToXml"></a><span class='definition'>dtdDescrToXml</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDdescr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-54"></a><span class='definition'>dtdDescrToXml</span> <span class='layout'>(</span><span class='conid'>DTDdescr</span> <span class='varid'>rt</span> <span class='varid'>es</span> <span class='keyword'>as</span><span class='layout'>)</span>
+<a name="line-55"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>rt</span><span class='layout'>)</span> <span class='str'>"no unique root element found in pickler DTD, add an \"xpElem\" pickler"</span>
+<a name="line-56"></a>      <span class='varop'>++</span>
+<a name="line-57"></a>      <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkErr</span> <span class='conid'>True</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"no element decl found in: "</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><span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isScElem</span><span class='layout'>)</span> <span class='varid'>es</span><span class='layout'>)</span>
+<a name="line-58"></a>      <span class='varop'>++</span>
+<a name="line-59"></a>      <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>checkContentModell</span> <span class='varop'>.</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>sc</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>es1</span>
+<a name="line-60"></a>      <span class='varop'>++</span>
+<a name="line-61"></a>      <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>checkAttrModell</span><span class='layout'>)</span> <span class='keyword'>as</span>
+<a name="line-62"></a>      <span class='varop'>++</span>
+<a name="line-63"></a>      <span class='keyglyph'>[</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span> <span class='varid'>docAttrs</span> <span class='layout'>(</span> <span class='varid'>concatMap</span> <span class='varid'>elemDTD</span> <span class='varid'>es1</span>
+<a name="line-64"></a>					<span class='varop'>++</span>
+<a name="line-65"></a>					<span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>attrDTDs</span><span class='layout'>)</span> <span class='keyword'>as</span>
+<a name="line-66"></a>				      <span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-67"></a>    <span class='keyword'>where</span>
+<a name="line-68"></a>    <span class='varid'>es1</span> 		<span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isScElem</span> <span class='varid'>es</span>
+<a name="line-69"></a>    
+<a name="line-70"></a>    <span class='varid'>docAttrs</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='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rt</span> <span class='keyword'>then</span> <span class='str'>"no-unique-root-element-found"</span> <span class='keyword'>else</span> <span class='varid'>rt</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='varid'>elemDTD</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-73"></a>	<span class='keyglyph'>|</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span> <span class='varop'>==</span> <span class='str'>"unknown"</span>
+<a name="line-74"></a>	    <span class='keyglyph'>=</span> <span class='varid'>cl</span>
+<a name="line-75"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-76"></a>	    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>ELEMENT</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='keyglyph'>]</span>
+<a name="line-77"></a>	<span class='keyword'>where</span>
+<a name="line-78"></a>	<span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scContToXml</span> <span class='varid'>sc</span>
+<a name="line-79"></a>    <span class='varid'>elemDTD</span> <span class='keyword'>_</span>
+<a name="line-80"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal case in elemDTD"</span>
+<a name="line-81"></a>
+<a name="line-82"></a>    <span class='varid'>attrDTDs</span> <span class='varid'>en</span>		<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>attrDTD</span> <span class='varid'>en</span><span class='layout'>)</span>
+<a name="line-83"></a>    <span class='varid'>attrDTD</span> <span class='varid'>en</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>an</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-84"></a>	    		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>ATTLIST</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>en</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>(</span><span class='varid'>a_value</span><span class='layout'>,</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='keyglyph'>]</span>
+<a name="line-85"></a>			  <span class='keyword'>where</span>
+<a name="line-86"></a>			  <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scAttrToXml</span> <span class='varid'>sc</span>
+<a name="line-87"></a>    <span class='varid'>attrDTD</span> <span class='keyword'>_</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal case in attrDTD"</span>
+<a name="line-88"></a>
+<a name="line-89"></a>
+<a name="line-90"></a><a name="checkAttrModell"></a><span class='definition'>checkAttrModell</span>					<span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-91"></a><span class='definition'>checkAttrModell</span> <span class='varid'>n</span>				<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkAM</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="checkAM"></a><span class='definition'>checkAM</span>						<span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-94"></a><span class='definition'>checkAM</span> <span class='varid'>en</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>an</span> <span class='varid'>sc</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>checkAMC</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>sc</span>
+<a name="line-95"></a><span class='definition'>checkAM</span> <span class='keyword'>_</span> <span class='keyword'>_</span>					<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="checkAMC"></a><span class='definition'>checkAMC</span>					<span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Name</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-98"></a><span class='definition'>checkAMC</span> <span class='sel'>_en</span> <span class='sel'>_an</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-99"></a><span class='definition'>checkAMC</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>sc</span>
+<a name="line-100"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScCharData</span> <span class='varid'>sc</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-101"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScList</span> <span class='varid'>sc</span>
+<a name="line-102"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-103"></a>      <span class='layout'>(</span><span class='varid'>sc_1</span> <span class='varid'>sc</span> <span class='varop'>==</span> <span class='varid'>scNmtoken</span><span class='layout'>)</span>
+<a name="line-104"></a>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-105"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScOpt</span> <span class='varid'>sc</span>	<span class='keyglyph'>=</span> <span class='varid'>checkAMC</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='layout'>(</span><span class='varid'>sc_1</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-106"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>foundErr</span>
+<a name="line-107"></a>			  <span class='layout'>(</span> <span class='str'>"weird attribute type found for attribute "</span>
+<a name="line-108"></a>			    <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span>
+<a name="line-109"></a>			    <span class='varop'>++</span> <span class='str'>" for element "</span>
+<a name="line-110"></a>			    <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>en</span>
+<a name="line-111"></a>			    <span class='varop'>++</span> <span class='str'>"\n\t(internal structure: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sc</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-112"></a>			    <span class='varop'>++</span> <span class='str'>"\n\thint: create an element instead of an attribute for "</span>
+<a name="line-113"></a>			    <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span>
+<a name="line-114"></a>			  <span class='layout'>)</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='comment'>-- checkContentModell1 n sc = foundErr (n ++ " : " ++ show sc) ++ checkContentModell n sc</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="checkContentModell"></a><span class='definition'>checkContentModell</span>				<span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-119"></a>
+<a name="line-120"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='conid'>Any</span>
+<a name="line-121"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-122"></a>
+<a name="line-123"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-124"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-127"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-128"></a>
+<a name="line-129"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-131"></a>
+<a name="line-132"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>
+<a name="line-133"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='varid'>pcDataInCM</span>
+<a name="line-134"></a>      <span class='layout'>(</span> <span class='str'>"PCDATA found in a sequence spec in the content modell for "</span>
+<a name="line-135"></a>	<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>
+<a name="line-136"></a>	<span class='varop'>++</span> <span class='str'>"\n\thint: create an element for this data"</span>
+<a name="line-137"></a>      <span class='layout'>)</span>
+<a name="line-138"></a>      <span class='varop'>++</span>
+<a name="line-139"></a>      <span class='varid'>checkErr</span> <span class='varid'>somethingElseInCM</span>
+<a name="line-140"></a>      <span class='layout'>(</span> <span class='str'>"something weired found in a sequence spec in the content modell for "</span>
+<a name="line-141"></a>	<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>
+<a name="line-142"></a>      <span class='layout'>)</span>
+<a name="line-143"></a>      <span class='varop'>++</span>
+<a name="line-144"></a>      <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkContentModell</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>scs</span>
+<a name="line-145"></a>    <span class='keyword'>where</span>
+<a name="line-146"></a>    <span class='varid'>pcDataInCM</span>        <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='varid'>isScCharData</span> <span class='varid'>scs</span>
+<a name="line-147"></a>    <span class='varid'>somethingElseInCM</span> <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>sc</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isScSARE</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isScCharData</span> <span class='varid'>sc</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>scs</span>
+<a name="line-148"></a>
+<a name="line-149"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span>
+<a name="line-150"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='varid'>mixedCM</span>
+<a name="line-151"></a>      <span class='layout'>(</span> <span class='str'>"PCDATA mixed up with illegal content spec in mixed contents for "</span>
+<a name="line-152"></a>	<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>
+<a name="line-153"></a>	<span class='varop'>++</span> <span class='str'>"\n\thint: create an element for this data"</span>
+<a name="line-154"></a>      <span class='layout'>)</span>
+<a name="line-155"></a>      <span class='varop'>++</span>
+<a name="line-156"></a>      <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkContentModell</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>scs</span>
+<a name="line-157"></a>    <span class='keyword'>where</span>
+<a name="line-158"></a>    <span class='varid'>mixedCM</span>
+<a name="line-159"></a>	<span class='keyglyph'>|</span> <span class='varid'>any</span> <span class='varid'>isScCharData</span> <span class='varid'>scs</span>
+<a name="line-160"></a>	    <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isScElemRef</span><span class='layout'>)</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'>isScCharData</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>scs</span>
+<a name="line-161"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-162"></a>	    <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-163"></a>
+<a name="line-164"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-165"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-166"></a>
+<a name="line-167"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-168"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkContentModell</span> <span class='varid'>n</span> <span class='varid'>sc</span>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkContentModell</span> <span class='varid'>n</span> <span class='varid'>sc</span>
+<a name="line-172"></a>
+<a name="line-173"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-174"></a>    <span class='keyglyph'>=</span> <span class='varid'>foundErr</span>
+<a name="line-175"></a>      <span class='layout'>(</span> <span class='str'>"illegal content spec found for "</span>
+<a name="line-176"></a>	<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>
+<a name="line-177"></a>      <span class='layout'>)</span>
+<a name="line-178"></a>
+<a name="line-179"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-180"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-181"></a>
+<a name="line-182"></a>
+<a name="line-183"></a><a name="scContToXml"></a><span class='definition'>scContToXml</span>			<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='definition'>scContToXml</span> <span class='conid'>Any</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_any</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span>    <span class='conid'>[]</span> <span class='layout'>)</span>
+<a name="line-186"></a><span class='definition'>scContToXml</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_pcdata</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span> <span class='layout'>)</span>
+<a name="line-187"></a><span class='definition'>scContToXml</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_empty</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span>  <span class='conid'>[]</span> <span class='layout'>)</span>
+<a name="line-188"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>scContToXml</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-189"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-190"></a>				  <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='conid'>[]</span> <span class='varid'>sc</span>
+<a name="line-191"></a>				  <span class='layout'>)</span>
+<a name="line-192"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>sc1</span><span class='layout'>)</span>
+<a name="line-193"></a>    <span class='keyglyph'>|</span> <span class='varid'>isMixed</span> <span class='varid'>sc1</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_mixed</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-194"></a>				  <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"*"</span><span class='layout'>)</span> <span class='keyglyph'>]</span> <span class='varid'>sc</span>
+<a name="line-195"></a>				  <span class='layout'>)</span>
+<a name="line-196"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-197"></a>				  <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='conid'>[]</span> <span class='varid'>sc</span>
+<a name="line-198"></a>				  <span class='layout'>)</span> 
+<a name="line-199"></a>    <span class='keyword'>where</span>
+<a name="line-200"></a>    <span class='varid'>isMixed</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'>filter</span> <span class='varid'>isScCharData</span>
+<a name="line-201"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-202"></a>				  <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='conid'>[]</span> <span class='varid'>sc</span>
+<a name="line-203"></a>				  <span class='layout'>)</span>
+<a name="line-204"></a><span class='definition'>scContToXml</span> <span class='sel'>_sc</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_any</span><span class='layout'>)</span><span class='keyglyph'>]</span>		<span class='comment'>-- default: everything is allowed</span>
+<a name="line-205"></a>				  <span class='layout'>,</span> <span class='conid'>[]</span>
+<a name="line-206"></a>				  <span class='layout'>)</span>
+<a name="line-207"></a>
+<a name="line-208"></a><a name="scWrap"></a><span class='definition'>scWrap</span>				<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-209"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-210"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-211"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span>  <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-212"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span>			<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="scCont"></a><span class='definition'>scCont</span>				<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-215"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>scConts</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_seq</span>   <span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>scs</span>
+<a name="line-216"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>scConts</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_choice</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>scs</span>
+<a name="line-217"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Rep</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'>sc</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>scCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"*"</span><span class='layout'>)</span>   <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>scWrap</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-218"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>sc</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>scCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"+"</span><span class='layout'>)</span>   <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>scWrap</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-219"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>0</span> <span class='num'>1</span>    <span class='varid'>sc</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>scCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"?"</span><span class='layout'>)</span>   <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>scWrap</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-220"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='varid'>n</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>
+<a name="line-221"></a><span class='definition'>scCont</span> <span class='keyword'>_</span>  <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='str'>"#PCDATA"</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>
+<a name="line-222"></a><span class='definition'>scCont</span> <span class='keyword'>_</span>  <span class='sel'>_sc</span>			<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='str'>"bad-content-spec"</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>		<span class='comment'>-- error case</span>
+<a name="line-223"></a>
+<a name="line-224"></a><a name="scConts"></a><span class='definition'>scConts</span>				<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-225"></a><span class='definition'>scConts</span> <span class='varid'>al</span> <span class='varid'>scs</span>			<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>scCont</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>scs</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-226"></a>
+<a name="line-227"></a><a name="scAttrToXml"></a><span class='definition'>scAttrToXml</span>			<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-228"></a>
+<a name="line-229"></a><span class='definition'>scAttrToXml</span> <span class='varid'>sc</span>
+<a name="line-230"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScFixed</span>	<span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_fixed</span><span class='layout'>)</span>
+<a name="line-231"></a>				    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_cdata</span><span class='layout'>)</span>
+<a name="line-232"></a>				    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_default</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span> <span class='varid'>sc</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-233"></a>				    <span class='keyglyph'>]</span>
+<a name="line-234"></a>				  <span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-235"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScEnum</span> <span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_required</span><span class='layout'>)</span>
+<a name="line-236"></a>				    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_enumeration</span><span class='layout'>)</span>
+<a name="line-237"></a>				    <span class='keyglyph'>]</span>
+<a name="line-238"></a>				  <span class='layout'>,</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>enums</span>
+<a name="line-239"></a>				  <span class='layout'>)</span>
+<a name="line-240"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScCharData</span> <span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_required</span><span class='layout'>)</span>
+<a name="line-241"></a>				    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>d_type</span><span class='layout'>)</span>
+<a name="line-242"></a>				    <span class='keyglyph'>]</span>
+<a name="line-243"></a>				  <span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-244"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScOpt</span> <span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>a_kind</span> <span class='varid'>k_implied</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-245"></a>    <span class='keyglyph'>|</span> <span class='varid'>isScList</span> <span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>a_type</span> <span class='varid'>k_nmtokens</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-246"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_fixed</span><span class='layout'>)</span>
+<a name="line-247"></a>				    <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_default</span><span class='layout'>,</span> <span class='str'>"bad-attribute-type: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-248"></a>				    <span class='keyglyph'>]</span>
+<a name="line-249"></a>				  <span class='layout'>,</span> <span class='conid'>[]</span> <span class='layout'>)</span>
+<a name="line-250"></a>    <span class='keyword'>where</span>
+<a name="line-251"></a>    <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>			<span class='keyglyph'>=</span> <span class='varid'>scAttrToXml</span> <span class='layout'>(</span><span class='varid'>sc_1</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-252"></a>    <span class='varid'>d_type</span>
+<a name="line-253"></a>	<span class='keyglyph'>|</span> <span class='varid'>sc</span> <span class='varop'>==</span> <span class='varid'>scNmtoken</span>	<span class='keyglyph'>=</span> <span class='varid'>k_nmtoken</span>
+<a name="line-254"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>k_cdata</span>
+<a name="line-255"></a>    <span class='varid'>enums</span>			<span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>.</span> <span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span> <span class='varop'>$</span> <span class='varid'>sc</span>
+<a name="line-256"></a>
+<a name="line-257"></a><a name="checkErr"></a><span class='definition'>checkErr</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'>XmlTrees</span>
+<a name="line-258"></a><span class='definition'>checkErr</span> <span class='conid'>True</span> <span class='varid'>s</span>			<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varid'>s</span><span class='keyglyph'>]</span>
+<a name="line-259"></a><span class='definition'>checkErr</span> <span class='keyword'>_</span>    <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-260"></a>
+<a name="line-261"></a><a name="foundErr"></a><span class='definition'>foundErr</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-262"></a><span class='definition'>foundErr</span>			<span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='conid'>True</span>
+<a name="line-263"></a>
+<a name="line-264"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-265"></a>
+<a name="line-266"></a><span class='comment'>-- | convert a pickler schema into a DTD descr</span>
+<a name="line-267"></a>
+<a name="line-268"></a><a name="dtdDescr"></a><span class='definition'>dtdDescr</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDdescr</span>
+<a name="line-269"></a><span class='definition'>dtdDescr</span> <span class='varid'>sc</span>
+<a name="line-270"></a>    <span class='keyglyph'>=</span> <span class='conid'>DTDdescr</span> <span class='varid'>rt</span> <span class='varid'>es1</span> <span class='keyword'>as</span>
+<a name="line-271"></a>    <span class='keyword'>where</span>
+<a name="line-272"></a>    <span class='varid'>es</span>  <span class='keyglyph'>=</span> <span class='varid'>elementDeclarations</span> <span class='varid'>sc</span>
+<a name="line-273"></a>    <span class='varid'>es1</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>remAttrDec</span> <span class='varid'>es</span>
+<a name="line-274"></a>    <span class='keyword'>as</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'>null</span> <span class='varop'>.</span> <span class='varid'>snd</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>concatMap</span> <span class='varid'>attrDec</span> <span class='varop'>$</span> <span class='varid'>es</span>
+<a name="line-275"></a>    <span class='varid'>rt</span>  <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>elemName</span> <span class='varop'>$</span> <span class='varid'>sc</span>
+<a name="line-276"></a>
+<a name="line-277"></a><a name="elementDeclarations"></a><span class='definition'>elementDeclarations</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schemas</span>
+<a name="line-278"></a><span class='definition'>elementDeclarations</span> <span class='varid'>sc</span>	<span class='keyglyph'>=</span> <span class='varid'>elemRefs</span> <span class='varop'>.</span> <span class='varid'>elementDecs</span> <span class='conid'>[]</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span>
+<a name="line-279"></a>
+<a name="line-280"></a><a name="elementDecs"></a><span class='definition'>elementDecs</span>		<span class='keyglyph'>::</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schemas</span>
+<a name="line-281"></a><span class='definition'>elementDecs</span> <span class='varid'>es</span> <span class='conid'>[]</span>
+<a name="line-282"></a>    <span class='keyglyph'>=</span> <span class='varid'>es</span>
+<a name="line-283"></a><span class='definition'>elementDecs</span> <span class='varid'>es</span> <span class='layout'>(</span><span class='varid'>s</span><span class='conop'>:</span><span class='varid'>ss</span><span class='layout'>)</span>
+<a name="line-284"></a>    <span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='layout'>(</span><span class='varid'>elemDecs</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>ss</span>
+<a name="line-285"></a>    <span class='keyword'>where</span>
+<a name="line-286"></a>    <span class='varid'>elemDecs</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='varid'>es</span> <span class='varid'>scs</span>
+<a name="line-287"></a>    <span class='varid'>elemDecs</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='varid'>es</span> <span class='varid'>scs</span>
+<a name="line-288"></a>    <span class='varid'>elemDecs</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>sc</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>elemDecs</span> <span class='varid'>sc</span>
+<a name="line-289"></a>    <span class='varid'>elemDecs</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-290"></a>	<span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>`elem`</span> <span class='varid'>elemNames</span> <span class='varid'>es</span>	<span class='keyglyph'>=</span> <span class='varid'>es</span>
+<a name="line-291"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>             <span class='keyglyph'>=</span> <span class='varid'>elementDecs</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='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span>
+<a name="line-292"></a>    <span class='varid'>elemDecs</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>es</span>
+<a name="line-293"></a>
+<a name="line-294"></a><a name="elemNames"></a><span class='definition'>elemNames</span>		<span class='keyglyph'>::</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Name</span><span class='keyglyph'>]</span>
+<a name="line-295"></a><span class='definition'>elemNames</span>               <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>elemName</span><span class='layout'>)</span>
+<a name="line-296"></a>
+<a name="line-297"></a><a name="elemName"></a><span class='definition'>elemName</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Name</span>
+<a name="line-298"></a><span class='definition'>elemName</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>
+<a name="line-299"></a><span class='definition'>elemName</span> <span class='keyword'>_</span>              <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-300"></a>
+<a name="line-301"></a><a name="elemRefs"></a><span class='definition'>elemRefs</span>	<span class='keyglyph'>::</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schemas</span>
+<a name="line-302"></a><span class='definition'>elemRefs</span>	<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>elemRef</span>
+<a name="line-303"></a>    <span class='keyword'>where</span>
+<a name="line-304"></a>    <span class='varid'>elemRef</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='conid'>Element</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>pruneElem</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-305"></a>    <span class='varid'>elemRef</span> <span class='varid'>sc</span>               <span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-306"></a>    <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='conid'>ElemRef</span> <span class='varid'>n</span>
+<a name="line-307"></a>    <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>pruneElem</span> <span class='varid'>scs</span><span class='layout'>)</span>
+<a name="line-308"></a>    <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>pruneElem</span> <span class='varid'>scs</span><span class='layout'>)</span>
+<a name="line-309"></a>    <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>sc</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='layout'>(</span><span class='varid'>pruneElem</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-310"></a>    <span class='varid'>pruneElem</span> <span class='varid'>sc</span>             <span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-311"></a>
+<a name="line-312"></a><a name="attrDec"></a><span class='definition'>attrDec</span>			<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Name</span><span class='layout'>,</span> <span class='conid'>Schemas</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-313"></a><span class='definition'>attrDec</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-314"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>attrDecs</span> <span class='varid'>sc</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-315"></a>      <span class='keyword'>where</span>
+<a name="line-316"></a>      <span class='varid'>attrDecs</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-317"></a>      <span class='varid'>attrDecs</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>attrDecs</span> <span class='varid'>scs</span>
+<a name="line-318"></a>      <span class='varid'>attrDecs</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-319"></a><span class='definition'>attrDec</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-320"></a>
+<a name="line-321"></a><a name="remAttrDec"></a><span class='definition'>remAttrDec</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-322"></a><span class='definition'>remAttrDec</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-323"></a>    <span class='keyglyph'>=</span> <span class='conid'>Element</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>remA</span> <span class='varid'>sc</span><span class='layout'>)</span>
+<a name="line-324"></a>      <span class='keyword'>where</span>
+<a name="line-325"></a>      <span class='varid'>remA</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>
+<a name="line-326"></a>      <span class='varid'>remA</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>scSeqs</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>remA</span> <span class='varop'>$</span> <span class='varid'>scs</span>
+<a name="line-327"></a>      <span class='varid'>remA</span> <span class='varid'>sc1</span>             <span class='keyglyph'>=</span> <span class='varid'>sc1</span>
+<a name="line-328"></a><span class='definition'>remAttrDec</span> <span class='keyword'>_</span>
+<a name="line-329"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal case in remAttrDec"</span>
+<a name="line-330"></a>
+<a name="line-331"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-332"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Schema.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Schema.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Schema.html
@@ -0,0 +1,231 @@
+<!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     : Text.XML.HXT.Arrow.Pickle.Schema
+<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>Datatypes and functions for building a content model
+<a name="line-14"></a>for XML picklers. A schema is part of every pickler
+<a name="line-15"></a>and can be used to derive a corrensponding DTD (or Relax NG schema).
+<a name="line-16"></a>This schema further enables checking the picklers.
+<a name="line-17"></a>
+<a name="line-18"></a>-}</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-21"></a>
+<a name="line-22"></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'>Schema</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'>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-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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>
+<a name="line-27"></a>
+<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='layout'>(</span> <span class='varid'>sort</span> <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><span class='comment'>-- | The datatype for modelling the structure of an</span>
+<a name="line-34"></a>
+<a name="line-35"></a><a name="Schema"></a><span class='keyword'>data</span> <span class='conid'>Schema</span>			<span class='keyglyph'>=</span> <span class='conid'>Any</span>
+<a name="line-36"></a>				<span class='keyglyph'>|</span> <span class='conid'>Seq</span>		<span class='layout'>{</span> <span class='varid'>sc_l</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span>
+<a name="line-37"></a>						<span class='layout'>}</span>
+<a name="line-38"></a>				<span class='keyglyph'>|</span> <span class='conid'>Alt</span>		<span class='layout'>{</span> <span class='varid'>sc_l</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span>
+<a name="line-39"></a>						<span class='layout'>}</span>
+<a name="line-40"></a>				<span class='keyglyph'>|</span> <span class='conid'>Rep</span>		<span class='layout'>{</span> <span class='varid'>sc_lb</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-41"></a>						<span class='layout'>,</span> <span class='varid'>sc_ub</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span>
+<a name="line-42"></a>						<span class='layout'>,</span> <span class='varid'>sc_1</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-43"></a>						<span class='layout'>}</span>
+<a name="line-44"></a>				<span class='keyglyph'>|</span> <span class='conid'>Element</span>	<span class='layout'>{</span> <span class='varid'>sc_n</span>	<span class='keyglyph'>::</span> <span class='conid'>Name</span>
+<a name="line-45"></a>						<span class='layout'>,</span> <span class='varid'>sc_1</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-46"></a>						<span class='layout'>}</span>
+<a name="line-47"></a>				<span class='keyglyph'>|</span> <span class='conid'>Attribute</span>	<span class='layout'>{</span> <span class='varid'>sc_n</span>	<span class='keyglyph'>::</span> <span class='conid'>Name</span>
+<a name="line-48"></a>						<span class='layout'>,</span> <span class='varid'>sc_1</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-49"></a>						<span class='layout'>}</span>
+<a name="line-50"></a>				<span class='keyglyph'>|</span> <span class='conid'>ElemRef</span>	<span class='layout'>{</span> <span class='varid'>sc_n</span>	<span class='keyglyph'>::</span> <span class='conid'>Name</span>
+<a name="line-51"></a>						<span class='layout'>}</span>
+<a name="line-52"></a>				<span class='keyglyph'>|</span> <span class='conid'>CharData</span>	<span class='layout'>{</span> <span class='varid'>sc_dt</span>	<span class='keyglyph'>::</span> <span class='conid'>DataTypeDescr</span>
+<a name="line-53"></a>						<span class='layout'>}</span>
+<a name="line-54"></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>
+<a name="line-55"></a>
+<a name="line-56"></a><a name="Name"></a><span class='keyword'>type</span> <span class='conid'>Name</span>			<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-57"></a><a name="Schemas"></a><span class='keyword'>type</span> <span class='conid'>Schemas</span>			<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span>
+<a name="line-58"></a>
+<a name="line-59"></a><a name="DataTypeDescr"></a><span class='keyword'>data</span> <span class='conid'>DataTypeDescr</span>		<span class='keyglyph'>=</span> <span class='conid'>DTDescr</span> <span class='layout'>{</span> <span class='varid'>dtLib</span>    <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-60"></a>					  <span class='layout'>,</span> <span class='varid'>dtName</span>   <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-61"></a>					  <span class='layout'>,</span> <span class='varid'>dtParams</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span>
+<a name="line-62"></a>					  <span class='layout'>}</span>
+<a name="line-63"></a>				  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>)</span>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>DataTypeDescr</span> <span class='keyword'>where</span>
+<a name="line-66"></a>    <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>x2</span> <span class='keyglyph'>=</span> <span class='varid'>dtLib</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>dtLib</span> <span class='varid'>x2</span>
+<a name="line-67"></a>	       <span class='varop'>&amp;&amp;</span>
+<a name="line-68"></a>	       <span class='varid'>dtName</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>dtName</span> <span class='varid'>x2</span>
+<a name="line-69"></a>	       <span class='varop'>&amp;&amp;</span>
+<a name="line-70"></a>	       <span class='varid'>sort</span> <span class='layout'>(</span><span class='varid'>dtParams</span> <span class='varid'>x1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>sort</span> <span class='layout'>(</span><span class='varid'>dtParams</span> <span class='varid'>x2</span><span class='layout'>)</span>
+<a name="line-71"></a>
+<a name="line-72"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-73"></a>
+<a name="line-74"></a><span class='comment'>-- | test: is schema a simple XML Schema datatype</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="isScXsd"></a><span class='definition'>isScXsd</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'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='definition'>isScXsd</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='layout'>(</span><span class='conid'>DTDescr</span> <span class='varid'>lib</span> <span class='varid'>n</span> <span class='sel'>_ps</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-79"></a>			<span class='keyglyph'>=</span> <span class='varid'>lib</span> <span class='varop'>==</span> <span class='varid'>w3cNS</span>
+<a name="line-80"></a>			  <span class='varop'>&amp;&amp;</span>
+<a name="line-81"></a>			  <span class='varid'>p</span> <span class='varid'>n</span>
+<a name="line-82"></a><span class='definition'>isScXsd</span> <span class='keyword'>_</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='comment'>-- | test: is type a fixed value attribute type</span>
+<a name="line-85"></a>
+<a name="line-86"></a><a name="isScFixed"></a><span class='definition'>isScFixed</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-87"></a><span class='definition'>isScFixed</span> <span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='varid'>isScXsd</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>xsd_string</span><span class='layout'>)</span> <span class='varid'>sc</span>
+<a name="line-88"></a>			  <span class='varop'>&amp;&amp;</span>
+<a name="line-89"></a>			  <span class='layout'>(</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'>length</span> <span class='varop'>.</span> <span class='varid'>words</span> <span class='varop'>.</span> <span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span><span class='layout'>)</span> <span class='varid'>sc</span>
+<a name="line-90"></a>
+<a name="line-91"></a><a name="isScEnum"></a><span class='definition'>isScEnum</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-92"></a><span class='definition'>isScEnum</span> <span class='varid'>sc</span>		<span class='keyglyph'>=</span> <span class='varid'>isScXsd</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>xsd_string</span><span class='layout'>)</span> <span class='varid'>sc</span>
+<a name="line-93"></a>			  <span class='varop'>&amp;&amp;</span>
+<a name="line-94"></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'>xsdParam</span> <span class='varid'>xsd_enumeration</span><span class='layout'>)</span> <span class='varid'>sc</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="isScElem"></a><span class='definition'>isScElem</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-97"></a><span class='definition'>isScElem</span> <span class='layout'>(</span><span class='conid'>Element</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-98"></a><span class='definition'>isScElem</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-99"></a>
+<a name="line-100"></a><a name="isScAttr"></a><span class='definition'>isScAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-101"></a><span class='definition'>isScAttr</span> <span class='layout'>(</span><span class='conid'>Attribute</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-102"></a><span class='definition'>isScAttr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-103"></a>
+<a name="line-104"></a><a name="isScElemRef"></a><span class='definition'>isScElemRef</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-105"></a><span class='definition'>isScElemRef</span> <span class='layout'>(</span><span class='conid'>ElemRef</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='definition'>isScElemRef</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="isScCharData"></a><span class='definition'>isScCharData</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-109"></a><span class='definition'>isScCharData</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-110"></a><span class='definition'>isScCharData</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-111"></a>
+<a name="line-112"></a><a name="isScSARE"></a><span class='definition'>isScSARE</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-113"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-114"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-115"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</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-116"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-117"></a><span class='definition'>isScSARE</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="isScList"></a><span class='definition'>isScList</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-120"></a><span class='definition'>isScList</span> <span class='layout'>(</span><span class='conid'>Rep</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='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-121"></a><span class='definition'>isScList</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-122"></a>
+<a name="line-123"></a><a name="isScOpt"></a><span class='definition'>isScOpt</span>			<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-124"></a><span class='definition'>isScOpt</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>0</span> <span class='num'>1</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-125"></a><span class='definition'>isScOpt</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-126"></a>
+<a name="line-127"></a><span class='comment'>-- | access an attribute of a descr of an atomic type</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="xsdParam"></a><span class='definition'>xsdParam</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-130"></a><span class='definition'>xsdParam</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='varid'>dtd</span><span class='layout'>)</span>
+<a name="line-131"></a>                        <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>dtParams</span> <span class='varid'>dtd</span><span class='layout'>)</span>
+<a name="line-132"></a><span class='definition'>xsdParam</span> <span class='keyword'>_</span> <span class='keyword'>_</span>            <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>-- smart constructors for Schema datatype</span>
+<a name="line-137"></a>
+<a name="line-138"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-139"></a><span class='comment'>--</span>
+<a name="line-140"></a><span class='comment'>-- predefined xsd data types for representation of DTD types</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="scDT"></a><span class='definition'>scDT</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'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-143"></a><span class='definition'>scDT</span> <span class='varid'>l</span> <span class='varid'>n</span> <span class='varid'>rl</span>	<span class='keyglyph'>=</span> <span class='conid'>CharData</span> <span class='varop'>$</span> <span class='conid'>DTDescr</span> <span class='varid'>l</span> <span class='varid'>n</span> <span class='varid'>rl</span>
+<a name="line-144"></a>
+<a name="line-145"></a><a name="scDTxsd"></a><span class='definition'>scDTxsd</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'>Schema</span>
+<a name="line-146"></a><span class='definition'>scDTxsd</span>		<span class='keyglyph'>=</span> <span class='varid'>scDT</span> <span class='varid'>w3cNS</span>
+<a name="line-147"></a>
+<a name="line-148"></a><a name="scString"></a><span class='definition'>scString</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-149"></a><span class='definition'>scString</span>	<span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_string</span> <span class='conid'>[]</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="scString1"></a><span class='definition'>scString1</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-152"></a><span class='definition'>scString1</span>	<span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_string</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>xsd_minLength</span><span class='layout'>,</span> <span class='str'>"1"</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="scFixed"></a><span class='definition'>scFixed</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-155"></a><span class='definition'>scFixed</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_string</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>xsd_enumeration</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="scEnum"></a><span class='definition'>scEnum</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='conid'>Schema</span>
+<a name="line-158"></a><span class='definition'>scEnum</span> <span class='varid'>vs</span>	<span class='keyglyph'>=</span> <span class='varid'>scFixed</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>vs</span><span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a><a name="scNmtoken"></a><span class='definition'>scNmtoken</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-161"></a><span class='definition'>scNmtoken</span>	<span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_NCName</span> <span class='conid'>[]</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="scNmtokens"></a><span class='definition'>scNmtokens</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-164"></a><span class='definition'>scNmtokens</span>	<span class='keyglyph'>=</span> <span class='varid'>scList</span> <span class='varid'>scNmtoken</span>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-167"></a>
+<a name="line-168"></a><a name="scEmpty"></a><span class='definition'>scEmpty</span>				<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-169"></a><span class='definition'>scEmpty</span>				<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='conid'>[]</span>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="scSeq"></a><span class='definition'>scSeq</span>				<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-172"></a><span class='definition'>scSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span>   <span class='varid'>sc2</span>		<span class='keyglyph'>=</span> <span class='varid'>sc2</span>
+<a name="line-173"></a><span class='definition'>scSeq</span> <span class='varid'>sc1</span>        <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>sc1</span>
+<a name="line-174"></a><span class='definition'>scSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='varid'>scs2</span><span class='layout'>)</span>	<span class='comment'>-- prevent nested Seq expr</span>
+<a name="line-175"></a><span class='definition'>scSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='varid'>sc2</span>		<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>sc2</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-176"></a><span class='definition'>scSeq</span> <span class='varid'>sc1</span>        <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>sc1</span>  <span class='conop'>:</span>  <span class='varid'>scs2</span><span class='layout'>)</span>
+<a name="line-177"></a><span class='definition'>scSeq</span> <span class='varid'>sc1</span>        <span class='varid'>sc2</span>		<span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='keyglyph'>[</span><span class='varid'>sc1</span><span class='layout'>,</span><span class='varid'>sc2</span><span class='keyglyph'>]</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="scSeqs"></a><span class='definition'>scSeqs</span>				<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-180"></a><span class='definition'>scSeqs</span>				<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>scSeq</span> <span class='varid'>scEmpty</span>
+<a name="line-181"></a>
+<a name="line-182"></a><a name="scNull"></a><span class='definition'>scNull</span>				<span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-183"></a><span class='definition'>scNull</span>				<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='conid'>[]</span>
+<a name="line-184"></a>
+<a name="line-185"></a><a name="scAlt"></a><span class='definition'>scAlt</span>				<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-186"></a><span class='definition'>scAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='conid'>[]</span><span class='layout'>)</span>   <span class='varid'>sc2</span>		<span class='keyglyph'>=</span> <span class='varid'>sc2</span>
+<a name="line-187"></a><span class='definition'>scAlt</span> <span class='varid'>sc1</span>        <span class='layout'>(</span><span class='conid'>Alt</span> <span class='conid'>[]</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>sc1</span>
+<a name="line-188"></a><span class='definition'>scAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='varid'>scs2</span><span class='layout'>)</span>	<span class='comment'>-- prevent nested Alt expr</span>
+<a name="line-189"></a><span class='definition'>scAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='varid'>sc2</span>		<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>sc2</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-190"></a><span class='definition'>scAlt</span> <span class='varid'>sc1</span>        <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>sc1</span>  <span class='conop'>:</span>  <span class='varid'>scs2</span><span class='layout'>)</span>
+<a name="line-191"></a><span class='definition'>scAlt</span> <span class='varid'>sc1</span>        <span class='varid'>sc2</span>		<span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='keyglyph'>[</span><span class='varid'>sc1</span><span class='layout'>,</span><span class='varid'>sc2</span><span class='keyglyph'>]</span>
+<a name="line-192"></a>
+<a name="line-193"></a><a name="scAlts"></a><span class='definition'>scAlts</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-194"></a><span class='definition'>scAlts</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>scAlt</span> <span class='varid'>scNull</span>
+<a name="line-195"></a>
+<a name="line-196"></a><a name="scOption"></a><span class='definition'>scOption</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-197"></a><span class='definition'>scOption</span>     <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>
+<a name="line-198"></a><span class='definition'>scOption</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>n</span> <span class='varid'>sc2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Attribute</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>scOption</span> <span class='varid'>sc2</span><span class='layout'>)</span>
+<a name="line-199"></a><span class='definition'>scOption</span> <span class='varid'>sc1</span>
+<a name="line-200"></a>    <span class='keyglyph'>|</span> <span class='varid'>sc1</span> <span class='varop'>==</span> <span class='varid'>scString1</span>		<span class='keyglyph'>=</span> <span class='varid'>scString</span>
+<a name="line-201"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>scOpt</span> <span class='varid'>sc1</span>
+<a name="line-202"></a>
+<a name="line-203"></a><a name="scList"></a><span class='definition'>scList</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-204"></a><span class='definition'>scList</span>		<span class='keyglyph'>=</span> <span class='varid'>scRep</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-205"></a>
+<a name="line-206"></a><a name="scList1"></a><span class='definition'>scList1</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-207"></a><span class='definition'>scList1</span>		<span class='keyglyph'>=</span> <span class='varid'>scRep</span> <span class='num'>1</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span>
+<a name="line-208"></a>
+<a name="line-209"></a><a name="scOpt"></a><span class='definition'>scOpt</span>		<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-210"></a><span class='definition'>scOpt</span>		<span class='keyglyph'>=</span> <span class='varid'>scRep</span> <span class='num'>0</span> <span class='num'>1</span>
+<a name="line-211"></a>
+<a name="line-212"></a><a name="scRep"></a><span class='definition'>scRep</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'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-213"></a><span class='definition'>scRep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>sc1</span>  <span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>sc1</span>
+<a name="line-214"></a>
+<a name="line-215"></a><a name="scElem"></a><span class='definition'>scElem</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-216"></a><span class='definition'>scElem</span> <span class='varid'>n</span> <span class='varid'>sc1</span>	<span class='keyglyph'>=</span> <span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc1</span>
+<a name="line-217"></a>
+<a name="line-218"></a><a name="scAttr"></a><span class='definition'>scAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Schema</span>
+<a name="line-219"></a><span class='definition'>scAttr</span> <span class='varid'>n</span> <span class='varid'>sc1</span>	<span class='keyglyph'>=</span> <span class='conid'>Attribute</span> <span class='varid'>n</span> <span class='varid'>sc1</span>
+<a name="line-220"></a>
+<a name="line-221"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html
@@ -0,0 +1,560 @@
+<!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     : 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>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-45"></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-46"></a>
+<a name="line-47"></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-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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-52"></a>
+<a name="line-53"></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-54"></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-55"></a>		     <span class='layout'>}</span>
+<a name="line-56"></a>
+<a name="line-57"></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-58"></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-59"></a>		     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>::</span> <span class='conid'>Schema</span>
+<a name="line-60"></a>		     <span class='layout'>}</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="emptySt"></a><span class='definition'>emptySt</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span>
+<a name="line-63"></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-64"></a>		      <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-65"></a>		      <span class='layout'>}</span>
+<a name="line-66"></a>
+<a name="line-67"></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-68"></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-69"></a>
+<a name="line-70"></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-71"></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-72"></a>
+<a name="line-73"></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-74"></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-75"></a>
+<a name="line-76"></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-77"></a><span class='definition'>getAtt</span> <span class='varid'>name</span> <span class='varid'>s</span>
+<a name="line-78"></a>    <span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>$</span>
+<a name="line-79"></a>      <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>attributes</span>
+<a name="line-80"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-81"></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-82"></a>	    <span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-83"></a>
+<a name="line-84"></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-85"></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-86"></a>
+<a name="line-87"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='comment'>-- | conversion of an arbitrary value into an XML document tree.</span>
+<a name="line-90"></a><span class='comment'>--</span>
+<a name="line-91"></a><span class='comment'>-- The pickler, first parameter, controls the conversion process.</span>
+<a name="line-92"></a><span class='comment'>-- Result is a complete document tree including a root node</span>
+<a name="line-93"></a>
+<a name="line-94"></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-95"></a><span class='definition'>pickleDoc</span> <span class='varid'>p</span> <span class='varid'>v</span>
+<a name="line-96"></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-97"></a>    <span class='keyword'>where</span>
+<a name="line-98"></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-99"></a>
+<a name="line-100"></a><span class='comment'>-- | Conversion of an XML document tree into an arbitrary data type</span>
+<a name="line-101"></a><span class='comment'>--</span>
+<a name="line-102"></a><span class='comment'>-- The inverse of 'pickleDoc'.</span>
+<a name="line-103"></a><span class='comment'>-- This law should hold for all picklers: @ unpickle px . pickle px $ v == Just v @.</span>
+<a name="line-104"></a><span class='comment'>-- Not every possible combination of picklers make sense.</span>
+<a name="line-105"></a><span class='comment'>-- For reconverting a value from an XML tree, is becomes neccessary,</span>
+<a name="line-106"></a><span class='comment'>-- to introduce \"enough\" markup for unpickling the value</span>
+<a name="line-107"></a>
+<a name="line-108"></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-109"></a><span class='definition'>unpickleDoc</span> <span class='varid'>p</span> <span class='varid'>t</span>
+<a name="line-110"></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-111"></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-112"></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-113"></a>				   <span class='layout'>}</span>
+<a name="line-114"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-115"></a>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-116"></a>
+<a name="line-117"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-118"></a>
+<a name="line-119"></a><span class='comment'>-- | The zero pickler</span>
+<a name="line-120"></a><span class='comment'>--</span>
+<a name="line-121"></a><span class='comment'>-- Encodes nothing, fails always during unpickling</span>
+<a name="line-122"></a>
+<a name="line-123"></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-124"></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-125"></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-126"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scNull</span>
+<a name="line-127"></a>			      <span class='layout'>}</span>
+<a name="line-128"></a>
+<a name="line-129"></a><span class='comment'>-- unit pickler</span>
+<a name="line-130"></a>
+<a name="line-131"></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-132"></a><span class='definition'>xpUnit</span>			<span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='conid'>()</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='comment'>-- | Lift a value to a pickler</span>
+<a name="line-135"></a><span class='comment'>--</span>
+<a name="line-136"></a><span class='comment'>-- When pickling, nothing is encoded, when unpickling, the given value is inserted.</span>
+<a name="line-137"></a><span class='comment'>-- This pickler always succeeds.</span>
+<a name="line-138"></a>
+<a name="line-139"></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-140"></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-141"></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-142"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>
+<a name="line-143"></a>			      <span class='layout'>}</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='comment'>-- | Lift a Maybe value to a pickler.</span>
+<a name="line-146"></a><span class='comment'>--</span>
+<a name="line-147"></a><span class='comment'>-- @Nothing@ is mapped to the zero pickler, @Just x@ is pickled with @xpLift x@.</span>
+<a name="line-148"></a>
+<a name="line-149"></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-150"></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-151"></a>    <span class='keyword'>where</span>
+<a name="line-152"></a>    <span class='varid'>xpLiftMaybe'</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>xpZero</span>
+<a name="line-153"></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-154"></a>
+<a name="line-155"></a>
+<a name="line-156"></a><span class='comment'>-- | pickle\/unpickle combinator for sequence and choice.</span>
+<a name="line-157"></a><span class='comment'>--</span>
+<a name="line-158"></a><span class='comment'>-- When the first unpickler fails,</span>
+<a name="line-159"></a><span class='comment'>-- the second one is taken, else the third one configured with the result from the first</span>
+<a name="line-160"></a><span class='comment'>-- is taken. This pickler is a generalisation for 'xpSeq' and 'xpChoice' .</span>
+<a name="line-161"></a><span class='comment'>--</span>
+<a name="line-162"></a><span class='comment'>-- The schema must be attached later, e.g. in xpPair or other higher level combinators</span>
+<a name="line-163"></a>
+<a name="line-164"></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-165"></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-166"></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-167"></a>	                   <span class='keyword'>let</span>
+<a name="line-168"></a>			   <span class='varid'>a</span>  <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>b</span>
+<a name="line-169"></a>			   <span class='varid'>pb</span> <span class='keyglyph'>=</span> <span class='varid'>k</span> <span class='varid'>a</span>
+<a name="line-170"></a>			   <span class='keyword'>in</span>
+<a name="line-171"></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-172"></a>			 <span class='layout'>)</span>
+<a name="line-173"></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-174"></a>			   <span class='keyword'>let</span>
+<a name="line-175"></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-176"></a>			   <span class='keyword'>in</span>
+<a name="line-177"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
+<a name="line-178"></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-179"></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-180"></a>			 <span class='layout'>)</span>
+<a name="line-181"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-182"></a>	 <span class='layout'>}</span>
+<a name="line-183"></a>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='comment'>-- | Combine two picklers sequentially.</span>
+<a name="line-186"></a><span class='comment'>--</span>
+<a name="line-187"></a><span class='comment'>-- If the first fails during</span>
+<a name="line-188"></a><span class='comment'>-- unpickling, the whole unpickler fails</span>
+<a name="line-189"></a>
+<a name="line-190"></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-191"></a><span class='definition'>xpSeq</span>	<span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>xpZero</span>
+<a name="line-192"></a>
+<a name="line-193"></a>
+<a name="line-194"></a><span class='comment'>-- | combine tow picklers with a choice</span>
+<a name="line-195"></a><span class='comment'>--</span>
+<a name="line-196"></a><span class='comment'>-- Run two picklers in sequence like with xpSeq.</span>
+<a name="line-197"></a><span class='comment'>-- When during unpickling the first one fails,</span>
+<a name="line-198"></a><span class='comment'>-- an alternative pickler (first argument) is applied.</span>
+<a name="line-199"></a><span class='comment'>-- This pickler only is used as combinator for unpickling.</span>
+<a name="line-200"></a> 
+<a name="line-201"></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-202"></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-203"></a>
+<a name="line-204"></a>
+<a name="line-205"></a><span class='comment'>-- | map value into another domain and apply pickler there</span>
+<a name="line-206"></a><span class='comment'>--</span>
+<a name="line-207"></a><span class='comment'>-- One of the most often used picklers.</span>
+<a name="line-208"></a>
+<a name="line-209"></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-210"></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-211"></a>
+<a name="line-212"></a><span class='comment'>-- | like 'xpWrap', but if the inverse mapping is undefined, the unpickler fails</span>
+<a name="line-213"></a><span class='comment'>--</span>
+<a name="line-214"></a><span class='comment'>-- Map a value into another domain. If the inverse mapping is</span>
+<a name="line-215"></a><span class='comment'>-- undefined (Nothing), the unpickler fails</span>
+<a name="line-216"></a>
+<a name="line-217"></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-218"></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-219"></a>
+<a name="line-220"></a><span class='comment'>-- | pickle a pair of values sequentially</span>
+<a name="line-221"></a><span class='comment'>--</span>
+<a name="line-222"></a><span class='comment'>-- Used for pairs or together with wrap for pickling</span>
+<a name="line-223"></a><span class='comment'>-- algebraic data types with two components</span>
+<a name="line-224"></a>
+<a name="line-225"></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-226"></a><span class='definition'>xpPair</span> <span class='varid'>pa</span> <span class='varid'>pb</span>
+<a name="line-227"></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-228"></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-229"></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-230"></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-231"></a>
+<a name="line-232"></a><span class='comment'>-- | Like 'xpPair' but for triples</span>
+<a name="line-233"></a>
+<a name="line-234"></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-235"></a><span class='definition'>xpTriple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span>
+<a name="line-236"></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-237"></a>    <span class='keyword'>where</span>
+<a name="line-238"></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-239"></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-240"></a>
+<a name="line-241"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 4-tuples</span>
+<a name="line-242"></a>
+<a name="line-243"></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-244"></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-245"></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-246"></a>    <span class='keyword'>where</span>
+<a name="line-247"></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-248"></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-249"></a>
+<a name="line-250"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 5-tuples</span>
+<a name="line-251"></a>
+<a name="line-252"></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-253"></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-254"></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-255"></a>    <span class='keyword'>where</span>
+<a name="line-256"></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-257"></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-258"></a>
+<a name="line-259"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 6-tuples</span>
+<a name="line-260"></a>
+<a name="line-261"></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-262"></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-263"></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-264"></a>    <span class='keyword'>where</span>
+<a name="line-265"></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-266"></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-267"></a>
+<a name="line-268"></a><span class='comment'>-- | Pickle a string into an XML text node</span>
+<a name="line-269"></a><span class='comment'>--</span>
+<a name="line-270"></a><span class='comment'>-- One of the most often used primitive picklers. Attention:</span>
+<a name="line-271"></a><span class='comment'>-- For pickling empty strings use 'xpText0'. If the text has a more</span>
+<a name="line-272"></a><span class='comment'>-- specific datatype than xsd:string, use 'xpTextDT'</span>
+<a name="line-273"></a>
+<a name="line-274"></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-275"></a><span class='definition'>xpText</span>	<span class='keyglyph'>=</span> <span class='varid'>xpTextDT</span> <span class='varid'>scString1</span>
+<a name="line-276"></a>
+<a name="line-277"></a><span class='comment'>-- | Pickle a string into an XML text node</span>
+<a name="line-278"></a><span class='comment'>--</span>
+<a name="line-279"></a><span class='comment'>-- Text pickler with a description of the structure of the text</span>
+<a name="line-280"></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-281"></a><span class='comment'>-- In 'Text.XML.HXT.Arrow.Pickle.Schema' there are some more functions for creating</span>
+<a name="line-282"></a><span class='comment'>-- simple datatype descriptions.</span>
+<a name="line-283"></a>
+<a name="line-284"></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-285"></a><span class='definition'>xpTextDT</span> <span class='varid'>sc</span>
+<a name="line-286"></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-287"></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-288"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>sc</span>
+<a name="line-289"></a>	 <span class='layout'>}</span>
+<a name="line-290"></a>    <span class='keyword'>where</span>
+<a name="line-291"></a>    <span class='varid'>unpickleString</span> <span class='varid'>st</span>
+<a name="line-292"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-293"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-294"></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-295"></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-296"></a>
+<a name="line-297"></a><span class='comment'>-- | Pickle a possibly empty string into an XML node.</span>
+<a name="line-298"></a><span class='comment'>--</span>
+<a name="line-299"></a><span class='comment'>-- Must be used in all places, where empty strings are legal values.</span>
+<a name="line-300"></a><span class='comment'>-- If the content of an element can be an empty string, this string disapears</span>
+<a name="line-301"></a><span class='comment'>-- during storing the DOM into a document and reparse the document.</span>
+<a name="line-302"></a><span class='comment'>-- So the empty text node becomes nothing, and the pickler must deliver an empty string,</span>
+<a name="line-303"></a><span class='comment'>-- if there is no text node in the document.</span>
+<a name="line-304"></a>
+<a name="line-305"></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-306"></a><span class='definition'>xpText0</span>	<span class='keyglyph'>=</span> <span class='varid'>xpText0DT</span> <span class='varid'>scString1</span>
+<a name="line-307"></a>
+<a name="line-308"></a><span class='comment'>-- | Pickle a possibly empty string with a datatype description into an XML node.</span>
+<a name="line-309"></a><span class='comment'>--</span>
+<a name="line-310"></a><span class='comment'>-- Like 'xpText0' but with extra Parameter for datatype description as in 'xpTextDT'.</span>
+<a name="line-311"></a>
+<a name="line-312"></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-313"></a><span class='definition'>xpText0DT</span> <span class='varid'>sc</span>
+<a name="line-314"></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-315"></a>    <span class='keyword'>where</span>
+<a name="line-316"></a>    <span class='varid'>emptyToNothing</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-317"></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-318"></a>
+<a name="line-319"></a><span class='comment'>-- | Pickle an arbitrary value by applyling show during pickling</span>
+<a name="line-320"></a><span class='comment'>-- and read during unpickling.</span>
+<a name="line-321"></a><span class='comment'>--</span>
+<a name="line-322"></a><span class='comment'>-- Real pickling is then done with 'xpText'.</span>
+<a name="line-323"></a><span class='comment'>-- One of the most often used pimitive picklers. Applicable for all</span>
+<a name="line-324"></a><span class='comment'>-- types which are instances of @Read@ and @Show@</span>
+<a name="line-325"></a>
+<a name="line-326"></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-327"></a><span class='definition'>xpPrim</span>
+<a name="line-328"></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-329"></a>    <span class='keyword'>where</span>
+<a name="line-330"></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-331"></a>    <span class='varid'>readMaybe</span> <span class='varid'>str</span>
+<a name="line-332"></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-333"></a>	<span class='keyword'>where</span>
+<a name="line-334"></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-335"></a>	<span class='varid'>val</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-336"></a>
+<a name="line-337"></a><span class='comment'>-- | Pickle an XmlTree by just adding it</span>
+<a name="line-338"></a><span class='comment'>--</span>
+<a name="line-339"></a><span class='comment'>-- Usefull for components of type XmlTree in other data structures</span>
+<a name="line-340"></a>
+<a name="line-341"></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-342"></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-343"></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-344"></a>	     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='conid'>Any</span>
+<a name="line-345"></a>	     <span class='layout'>}</span>
+<a name="line-346"></a>    <span class='keyword'>where</span>
+<a name="line-347"></a>    <span class='varid'>unpickleTree</span> <span class='varid'>st</span>
+<a name="line-348"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-349"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-350"></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-351"></a>
+<a name="line-352"></a><span class='comment'>-- | Encoding of optional data by ignoring the Nothing case during pickling</span>
+<a name="line-353"></a><span class='comment'>-- and relying on failure during unpickling to recompute the Nothing case</span>
+<a name="line-354"></a><span class='comment'>--</span>
+<a name="line-355"></a><span class='comment'>-- The default pickler for Maybe types</span>
+<a name="line-356"></a>
+<a name="line-357"></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-358"></a><span class='definition'>xpOption</span> <span class='varid'>pa</span>
+<a name="line-359"></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-360"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
+<a name="line-361"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>
+<a name="line-362"></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-363"></a>			 <span class='layout'>)</span>
+<a name="line-364"></a>
+<a name="line-365"></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-366"></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-367"></a>
+<a name="line-368"></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-369"></a>	 <span class='layout'>}</span>
+<a name="line-370"></a>
+<a name="line-371"></a><span class='comment'>-- | Encoding of list values by pickling all list elements sequentially.</span>
+<a name="line-372"></a><span class='comment'>--</span>
+<a name="line-373"></a><span class='comment'>-- Unpickler relies on failure for detecting the end of the list.</span>
+<a name="line-374"></a><span class='comment'>-- The standard pickler for lists. Can also be used in combination with 'xpWrap'</span>
+<a name="line-375"></a><span class='comment'>-- for constructing set and map picklers</span>
+<a name="line-376"></a>
+<a name="line-377"></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-378"></a><span class='definition'>xpList</span> <span class='varid'>pa</span>
+<a name="line-379"></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-380"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>
+<a name="line-381"></a>			   <span class='conid'>[]</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>
+<a name="line-382"></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-383"></a>			 <span class='layout'>)</span>
+<a name="line-384"></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-385"></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-386"></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-387"></a>
+<a name="line-388"></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-389"></a>	 <span class='layout'>}</span>
+<a name="line-390"></a>      <span class='keyword'>where</span>
+<a name="line-391"></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-392"></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-393"></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-394"></a>
+<a name="line-395"></a><span class='comment'>-- | Encoding of a none empty list of values</span>
+<a name="line-396"></a><span class='comment'>--</span>
+<a name="line-397"></a><span class='comment'>-- Attention: when calling this pickler with an empty list,</span>
+<a name="line-398"></a><span class='comment'>-- an internal error \"head of empty list is raised\".</span>
+<a name="line-399"></a>
+<a name="line-400"></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-401"></a><span class='definition'>xpList1</span> <span class='varid'>pa</span>
+<a name="line-402"></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-403"></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-404"></a>	       <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-405"></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-406"></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-407"></a>
+<a name="line-408"></a><span class='comment'>-- | Pickler for sum data types.</span>
+<a name="line-409"></a><span class='comment'>--</span>
+<a name="line-410"></a><span class='comment'>-- Every constructor is mapped to an index into the list of picklers.</span>
+<a name="line-411"></a><span class='comment'>-- The index is used only during pickling, not during unpickling, there the 1. match is taken</span>
+<a name="line-412"></a>
+<a name="line-413"></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-414"></a><span class='definition'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps</span>
+<a name="line-415"></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-416"></a>			   <span class='keyword'>let</span>
+<a name="line-417"></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-418"></a>			   <span class='keyword'>in</span>
+<a name="line-419"></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-420"></a>			 <span class='layout'>)</span>
+<a name="line-421"></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-422"></a>	                 <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>ps</span> <span class='keyword'>of</span>
+<a name="line-423"></a>			   <span class='conid'>[]</span>     <span class='keyglyph'>-&gt;</span> <span class='varid'>xpZero</span>
+<a name="line-424"></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-425"></a>			 <span class='layout'>)</span>
+<a name="line-426"></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-427"></a>	 <span class='layout'>}</span>
+<a name="line-428"></a>
+<a name="line-429"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element</span>
+<a name="line-430"></a><span class='comment'>--</span>
+<a name="line-431"></a><span class='comment'>-- Extra parameter is the element name. THE pickler for constructing</span>
+<a name="line-432"></a><span class='comment'>-- nested structures</span>
+<a name="line-433"></a>
+<a name="line-434"></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-435"></a><span class='definition'>xpElem</span> <span class='varid'>name</span> <span class='varid'>pa</span>
+<a name="line-436"></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-437"></a>			   <span class='keyword'>let</span>
+<a name="line-438"></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-439"></a>			   <span class='keyword'>in</span>
+<a name="line-440"></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-441"></a>			 <span class='layout'>)</span>
+<a name="line-442"></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-443"></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-444"></a>	 <span class='layout'>}</span>
+<a name="line-445"></a>      <span class='keyword'>where</span>
+<a name="line-446"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>
+<a name="line-447"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-448"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>
+<a name="line-449"></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-450"></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-451"></a>	       <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='str'>"element name does not match"</span>
+<a name="line-452"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-453"></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-454"></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-455"></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-456"></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-457"></a>
+<a name="line-458"></a><span class='comment'>-- | Pickler for storing\/retreiving data into\/from an attribute value</span>
+<a name="line-459"></a><span class='comment'>--</span>
+<a name="line-460"></a><span class='comment'>-- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler</span>
+<a name="line-461"></a>
+<a name="line-462"></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-463"></a><span class='definition'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>pa</span>
+<a name="line-464"></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-465"></a>			   <span class='keyword'>let</span>
+<a name="line-466"></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-467"></a>			   <span class='keyword'>in</span>
+<a name="line-468"></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-469"></a>			 <span class='layout'>)</span>
+<a name="line-470"></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-471"></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-472"></a>	 <span class='layout'>}</span>
+<a name="line-473"></a>      <span class='keyword'>where</span>
+<a name="line-474"></a>      <span class='varid'>unpickleAttr</span> <span class='varid'>st</span>
+<a name="line-475"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-476"></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-477"></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-478"></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-479"></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-480"></a>					<span class='comment'>-- attributes are selected by name</span>
+<a name="line-481"></a>
+<a name="line-482"></a><span class='comment'>-- | Add an optional attribute for an optional value (Maybe a).</span>
+<a name="line-483"></a>
+<a name="line-484"></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-485"></a><span class='definition'>xpAttrImplied</span> <span class='varid'>name</span> <span class='varid'>pa</span>
+<a name="line-486"></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-487"></a>
+<a name="line-488"></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-489"></a><span class='definition'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span>
+<a name="line-490"></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-491"></a>		    <span class='layout'>,</span> <span class='varid'>const</span> <span class='varid'>val</span>
+<a name="line-492"></a>		    <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-493"></a>	<span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>xpText</span>
+<a name="line-494"></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-495"></a>
+<a name="line-496"></a><span class='comment'>-- | Add an attribute with a fixed value.</span>
+<a name="line-497"></a><span class='comment'>--</span>
+<a name="line-498"></a><span class='comment'>-- Useful e.g. to declare namespaces. Is implemented by 'xpAttrFixed'</span>
+<a name="line-499"></a>
+<a name="line-500"></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-501"></a><span class='definition'>xpAddFixedAttr</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>pa</span>
+<a name="line-502"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>snd</span>
+<a name="line-503"></a>	     <span class='layout'>,</span> <span class='conid'>(,)</span> <span class='conid'>()</span>
+<a name="line-504"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-505"></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-506"></a>
+<a name="line-507"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-508"></a>
+<a name="line-509"></a><span class='comment'>-- | The class for overloading 'xpickle', the default pickler</span>
+<a name="line-510"></a>
+<a name="line-511"></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-512"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>
+<a name="line-513"></a>
+<a name="line-514"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Int</span> <span class='keyword'>where</span>
+<a name="line-515"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>
+<a name="line-516"></a>
+<a name="line-517"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Integer</span> <span class='keyword'>where</span>
+<a name="line-518"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>
+<a name="line-519"></a>
+<a name="line-520"></a><span class='comment'>{-
+<a name="line-521"></a>  no instance of XmlPickler Char
+<a name="line-522"></a>  because then every text would be encoded
+<a name="line-523"></a>  char by char, because of the instance for lists
+<a name="line-524"></a>
+<a name="line-525"></a>instance XmlPickler Char where
+<a name="line-526"></a>    xpickle = xpPrim
+<a name="line-527"></a>-}</span>
+<a name="line-528"></a>
+<a name="line-529"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>()</span> <span class='keyword'>where</span>
+<a name="line-530"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpUnit</span>
+<a name="line-531"></a>
+<a name="line-532"></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-533"></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-534"></a>
+<a name="line-535"></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-536"></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-537"></a>
+<a name="line-538"></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-539"></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-540"></a>
+<a name="line-541"></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-542"></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-543"></a>
+<a name="line-544"></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-545"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpList</span> <span class='varid'>xpickle</span>
+<a name="line-546"></a>
+<a name="line-547"></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-548"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varid'>xpickle</span>
+<a name="line-549"></a>
+<a name="line-550"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle.html b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-Pickle.html
@@ -0,0 +1,248 @@
+<!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     : Text.XML.HXT.Arrow.Pickle
+<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>
+<a name="line-40"></a>    <span class='layout'>(</span> <span class='varid'>xpickleDocument</span>		 <span class='comment'>-- from this module Text.XML.HXT.Arrow.Pickle</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>xunpickleDocument</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>xpickleWriteDTD</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>xpickleDTD</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>checkPickler</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>xpickleVal</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>xunpickleVal</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>thePicklerDTD</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>a_addDTD</span>
+<a name="line-49"></a>
+<a name="line-50"></a>      <span class='comment'>-- from Text.XML.HXT.Arrow.Pickle.Xml</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>pickleDoc</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>unpickleDoc</span>
+<a name="line-53"></a>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='conid'>PU</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='conid'>XmlPickler</span>
+<a name="line-56"></a>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>xp4Tuple</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>xp5Tuple</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>xpAddFixedAttr</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>xpAlt</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>xpAttr</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>xpAttrFixed</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>xpAttrImplied</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>xpChoice</span>
+<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>xpCondSeq</span>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>xpElem</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>xpickle</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>xpLift</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>xpLiftMaybe</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>xpList</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>xpList1</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>xpOption</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>xpPair</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>xpPrim</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>xpSeq</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>xpText</span>
+<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>xpText0</span>
+<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>xpTextDT</span>
+<a name="line-79"></a>    <span class='layout'>,</span> <span class='varid'>xpText0DT</span>
+<a name="line-80"></a>    <span class='layout'>,</span> <span class='varid'>xpTree</span>
+<a name="line-81"></a>    <span class='layout'>,</span> <span class='varid'>xpTriple</span>
+<a name="line-82"></a>    <span class='layout'>,</span> <span class='varid'>xpUnit</span>
+<a name="line-83"></a>    <span class='layout'>,</span> <span class='varid'>xpWrap</span>
+<a name="line-84"></a>    <span class='layout'>,</span> <span class='varid'>xpWrapMaybe</span>
+<a name="line-85"></a>    <span class='layout'>,</span> <span class='varid'>xpZero</span>
+<a name="line-86"></a>
+<a name="line-87"></a>      <span class='comment'>-- from Text.XML.HXT.Arrow.Pickle.Schema</span>
+<a name="line-88"></a>    <span class='layout'>,</span> <span class='conid'>Schema</span>
+<a name="line-89"></a>    <span class='layout'>,</span> <span class='conid'>Schemas</span>
+<a name="line-90"></a>    <span class='layout'>,</span> <span class='conid'>DataTypeDescr</span>
+<a name="line-91"></a>    <span class='layout'>)</span>
+<a name="line-92"></a><span class='keyword'>where</span>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-95"></a>
+<a name="line-96"></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-97"></a>
+<a name="line-98"></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-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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>
+<a name="line-103"></a>
+<a name="line-104"></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'>Xml</span>
+<a name="line-105"></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-106"></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'>DTD</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><span class='comment'>-- the arrow interface for pickling and unpickling</span>
+<a name="line-111"></a>
+<a name="line-112"></a><span class='comment'>-- | store an arbitray value in a persistent XML document</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>-- The pickler converts a value into an XML tree, this is written out with</span>
+<a name="line-115"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.writeDocument'. The option list is passed to 'Text.XML.HXT.Arrow.writeDocument'</span>
+<a name="line-116"></a><span class='comment'>--</span>
+<a name="line-117"></a><span class='comment'>-- An option evaluated by this arrow is 'a_addDTD'.</span>
+<a name="line-118"></a><span class='comment'>-- If 'a_addDTD' is set ('v_1'), the pickler DTD is added as an inline DTD into the document.</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="xpickleDocument"></a><span class='definition'>xpickleDocument</span>		<span class='keyglyph'>::</span> <span class='conid'>PU</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='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>
+<a name="line-121"></a><span class='definition'>xpickleDocument</span> <span class='varid'>xp</span> <span class='varid'>al</span> <span class='varid'>dest</span>
+<a name="line-122"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpickleVal</span> <span class='varid'>xp</span>
+<a name="line-123"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-124"></a>      <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"xpickleVal applied"</span>
+<a name="line-125"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-126"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>lookup1</span> <span class='varid'>a_addDTD</span> <span class='varid'>al</span> <span class='varop'>==</span> <span class='varid'>v_1</span>
+<a name="line-127"></a>	<span class='keyword'>then</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>undefined</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xpickleDTD</span> <span class='varid'>xp</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-128"></a>			       <span class='varop'>&lt;+&gt;</span>
+<a name="line-129"></a>			       <span class='varid'>getChildren</span>
+<a name="line-130"></a>			     <span class='layout'>)</span>
+<a name="line-131"></a>	<span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-132"></a>      <span class='layout'>)</span>
+<a name="line-133"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-134"></a>      <span class='varid'>writeDocument</span> <span class='varid'>al</span> <span class='varid'>dest</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>-- | Option for generating and adding DTD when document is pickled</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="a_addDTD"></a><span class='definition'>a_addDTD</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-139"></a><span class='definition'>a_addDTD</span>	<span class='keyglyph'>=</span> <span class='str'>"addDTD"</span>
+<a name="line-140"></a>
+<a name="line-141"></a><span class='comment'>-- | read an arbitray value from an XML document</span>
+<a name="line-142"></a><span class='comment'>--</span>
+<a name="line-143"></a><span class='comment'>-- The document is read with 'Text.XML.HXT.Arrow.readDocument'. Options are passed</span>
+<a name="line-144"></a><span class='comment'>-- to 'Text.XML.HXT.Arrow.readDocument'. The conversion from XmlTree is done with the</span>
+<a name="line-145"></a><span class='comment'>-- pickler.</span>
+<a name="line-146"></a><span class='comment'>--</span>
+<a name="line-147"></a><span class='comment'>-- @ xpickleDocument xp al dest &gt;&gt;&gt; xunpickleDocument xp al' dest @ is the identity arrow</span>
+<a name="line-148"></a><span class='comment'>-- when applied with the appropriate options. When during pickling indentation is switched on,</span>
+<a name="line-149"></a><span class='comment'>-- the whitespace must be removed during unpickling.</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="xunpickleDocument"></a><span class='definition'>xunpickleDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>PU</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='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>a</span>
+<a name="line-152"></a><span class='definition'>xunpickleDocument</span> <span class='varid'>xp</span> <span class='varid'>al</span> <span class='varid'>src</span>
+<a name="line-153"></a>			<span class='keyglyph'>=</span> <span class='varid'>readDocument</span> <span class='varid'>al</span> <span class='varid'>src</span>
+<a name="line-154"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-155"></a>			  <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"xunpickleVal for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" started"</span><span class='layout'>)</span>
+<a name="line-156"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-157"></a>			  <span class='varid'>xunpickleVal</span> <span class='varid'>xp</span>
+<a name="line-158"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-159"></a>			  <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"xunpickleVal for "</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-160"></a>
+<a name="line-161"></a><span class='comment'>-- | Write out the DTD generated out of a pickler. Calls 'xpicklerDTD'</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="xpickleWriteDTD"></a><span class='definition'>xpickleWriteDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</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'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-164"></a><span class='definition'>xpickleWriteDTD</span>	<span class='varid'>xp</span> <span class='varid'>al</span> <span class='varid'>dest</span>
+<a name="line-165"></a>			<span class='keyglyph'>=</span> <span class='varid'>xpickleDTD</span> <span class='varid'>xp</span>
+<a name="line-166"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-167"></a>			  <span class='varid'>writeDocument</span> <span class='varid'>al</span> <span class='varid'>dest</span>
+<a name="line-168"></a>
+<a name="line-169"></a><span class='comment'>-- | The arrow for generating the DTD out of a pickler</span>
+<a name="line-170"></a><span class='comment'>--</span>
+<a name="line-171"></a><span class='comment'>-- A DTD is generated from a pickler and check for consistency.</span>
+<a name="line-172"></a><span class='comment'>-- Errors concerning the DTD are issued.</span>
+<a name="line-173"></a>
+<a name="line-174"></a><a name="xpickleDTD"></a><span class='definition'>xpickleDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</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-175"></a><span class='definition'>xpickleDTD</span> <span class='varid'>xp</span>		<span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span> <span class='varid'>constL</span> <span class='layout'>(</span><span class='varid'>thePicklerDTD</span> <span class='varid'>xp</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'>filterErrorMsg</span>
+<a name="line-178"></a>				  <span class='keyglyph'>]</span>
+<a name="line-179"></a>
+<a name="line-180"></a><span class='comment'>-- | An arrow for checking picklers</span>
+<a name="line-181"></a><span class='comment'>--</span>
+<a name="line-182"></a><span class='comment'>-- A value is transformed into an XML document by a given pickler,</span>
+<a name="line-183"></a><span class='comment'>-- the associated DTD is extracted from the pickler and checked,</span>
+<a name="line-184"></a><span class='comment'>-- the document including the DTD is tranlated into a string,</span>
+<a name="line-185"></a><span class='comment'>-- this string is read and validated against the included DTD,</span>
+<a name="line-186"></a><span class='comment'>-- and unpickled.</span>
+<a name="line-187"></a><span class='comment'>-- The last step is the equality with the input.</span>
+<a name="line-188"></a><span class='comment'>--</span>
+<a name="line-189"></a><span class='comment'>-- If the check succeeds, the arrow works like this, else it fails.</span>
+<a name="line-190"></a>
+<a name="line-191"></a><a name="checkPickler"></a><span class='definition'>checkPickler</span>		<span class='keyglyph'>::</span> <span class='conid'>Eq</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'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='varid'>a</span>
+<a name="line-192"></a><span class='definition'>checkPickler</span> <span class='varid'>xp</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xpickleVal</span> <span class='varid'>xp</span>
+<a name="line-193"></a>				  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-194"></a>				  <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>undefined</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xpickleDTD</span> <span class='varid'>xp</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-195"></a>						    <span class='varop'>&lt;+&gt;</span>
+<a name="line-196"></a>						    <span class='varid'>getChildren</span>
+<a name="line-197"></a>						  <span class='layout'>)</span>
+<a name="line-198"></a>				  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-199"></a>				  <span class='varid'>writeDocumentToString</span> <span class='conid'>[]</span>
+<a name="line-200"></a>				  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-201"></a>				  <span class='varid'>readFromString</span> <span class='keyglyph'>[</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><span class='keyglyph'>]</span>
+<a name="line-202"></a>				  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-203"></a>				  <span class='layout'>(</span> <span class='varid'>xunpickleVal</span> <span class='varid'>xp</span>
+<a name="line-204"></a>				    <span class='varop'>`orElse`</span>
+<a name="line-205"></a>				    <span class='layout'>(</span> <span class='varid'>issueErr</span> <span class='str'>"unpickling the document failed"</span>
+<a name="line-206"></a>				      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-207"></a>				      <span class='varid'>none</span>
+<a name="line-208"></a>				    <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='varop'>&amp;&amp;&amp;</span> 
+<a name="line-212"></a>				<span class='varid'>this</span>
+<a name="line-213"></a>			      <span class='layout'>)</span>
+<a name="line-214"></a>			      <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</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>
+<a name="line-215"></a>			    <span class='layout'>)</span>
+<a name="line-216"></a>			    <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-217"></a>			  <span class='layout'>)</span>
+<a name="line-218"></a>			  <span class='varop'>`orElse`</span> <span class='varid'>issueErr</span> <span class='str'>"pickle/unpickle combinators failed"</span>
+<a name="line-219"></a>
+<a name="line-220"></a><span class='comment'>-- | The arrow version of the pickler function</span>
+<a name="line-221"></a>
+<a name="line-222"></a><a name="xpickleVal"></a><span class='definition'>xpickleVal</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</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='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-223"></a><span class='definition'>xpickleVal</span> <span class='varid'>xp</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>pickleDoc</span> <span class='varid'>xp</span><span class='layout'>)</span>
+<a name="line-224"></a>
+<a name="line-225"></a><span class='comment'>-- | The arrow version of the unpickler function</span>
+<a name="line-226"></a>
+<a name="line-227"></a><a name="xunpickleVal"></a><span class='definition'>xunpickleVal</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>
+<a name="line-228"></a><span class='definition'>xunpickleVal</span> <span class='varid'>xp</span>		<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'>unpickleDoc</span> <span class='varid'>xp</span><span class='layout'>)</span>
+<a name="line-229"></a>
+<a name="line-230"></a>
+<a name="line-231"></a><span class='comment'>-- | Compute the associated DTD of a pickler</span>
+<a name="line-232"></a>
+<a name="line-233"></a><a name="thePicklerDTD"></a><span class='definition'>thePicklerDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-234"></a><span class='definition'>thePicklerDTD</span>		<span class='keyglyph'>=</span> <span class='varid'>dtdDescrToXml</span> <span class='varop'>.</span> <span class='varid'>dtdDescr</span> <span class='varop'>.</span> <span class='varid'>theSchema</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>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html
@@ -0,0 +1,296 @@
+<!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     : Text.XML.HXT.Arrow.ProcessDocument
+<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: 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-14"></a>
+<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>
+<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'>ProcessDocument</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDocument</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlDocument</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>validateDocument</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>propagateAndValidateNamespaces</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>getDocumentContents</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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</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'>ArrowList</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'>ArrowIf</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'>ArrowTree</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-37"></a>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>
+<a name="line-39"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDoc</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlDoc</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlTagSoup</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>substHtmlEntityRefs</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>validateDoc</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>transformDoc</span>
+<a name="line-45"></a>    <span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></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-48"></a>    <span class='layout'>(</span> <span class='varid'>transfAllCharRef</span>
+<a name="line-49"></a>    <span class='layout'>)</span>
+<a name="line-50"></a>
+<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'>GeneralEntitySubstitution</span>
+<a name="line-52"></a>    <span class='layout'>(</span> <span class='varid'>processGeneralEntities</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'>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'>DTDProcessing</span>
+<a name="line-56"></a>    <span class='layout'>(</span> <span class='varid'>processDTD</span>
+<a name="line-57"></a>    <span class='layout'>)</span>
+<a name="line-58"></a>
+<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'>DocumentInput</span>
+<a name="line-60"></a>    <span class='layout'>(</span> <span class='varid'>getXmlContents</span>
+<a name="line-61"></a>    <span class='layout'>)</span>
+<a name="line-62"></a>
+<a name="line-63"></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'>Namespace</span>
+<a name="line-64"></a>    <span class='layout'>(</span> <span class='varid'>propagateNamespaces</span>
+<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>validateNamespaces</span>
+<a name="line-66"></a>    <span class='layout'>)</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-69"></a>
+<a name="line-70"></a><span class='comment'>{- | 
+<a name="line-71"></a>XML parser
+<a name="line-72"></a>
+<a name="line-73"></a>Input tree must be a root tree with a text tree as child containing the document to be parsed.
+<a name="line-74"></a>The parser generates from the input string a tree of a wellformed XML document,
+<a name="line-75"></a>processes the DTD (parameter substitution, conditional DTD parts, ...) and
+<a name="line-76"></a>substitutes all general entity references. Next step is character reference substitution.
+<a name="line-77"></a>Last step is the document validation.
+<a name="line-78"></a>Validation can be controlled by an extra parameter.
+<a name="line-79"></a>
+<a name="line-80"></a>Example:
+<a name="line-81"></a>
+<a name="line-82"></a>&gt; parseXmlDocument True    -- parse and validate document
+<a name="line-83"></a>&gt;
+<a name="line-84"></a>&gt; parseXmlDocument False   -- only parse document, don't validate
+<a name="line-85"></a>
+<a name="line-86"></a>This parser is useful for applications processing correct XML documents.
+<a name="line-87"></a>-}</span>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="parseXmlDocument"></a><span class='definition'>parseXmlDocument</span>	<span class='keyglyph'>::</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-90"></a><span class='definition'>parseXmlDocument</span> <span class='varid'>validate</span>
+<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>
+<a name="line-92"></a>			    <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-93"></a>			    <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-94"></a>			  <span class='layout'>)</span>
+<a name="line-95"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-96"></a>			  <span class='varid'>parseXmlDoc</span>
+<a name="line-97"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-98"></a>			  <span class='varid'>filterErrorMsg</span>
+<a name="line-99"></a>			<span class='layout'>)</span>
+<a name="line-100"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-101"></a>	<span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"parse XML document"</span>
+<a name="line-102"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-103"></a>	<span class='varid'>processDTD</span>
+<a name="line-104"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-105"></a>	<span class='varid'>processGeneralEntities</span>
+<a name="line-106"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-107"></a>	<span class='varid'>transfAllCharRef</span>
+<a name="line-108"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-109"></a>	<span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>validate</span>
+<a name="line-110"></a>	  <span class='keyword'>then</span> <span class='varid'>validateDocument</span>
+<a name="line-111"></a>	  <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-112"></a>	<span class='layout'>)</span>
+<a name="line-113"></a>      <span class='layout'>)</span>
+<a name="line-114"></a>      <span class='varop'>`when`</span> <span class='varid'>documentStatusOk</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-117"></a>
+<a name="line-118"></a><span class='comment'>{- | 
+<a name="line-119"></a>HTML parser
+<a name="line-120"></a>
+<a name="line-121"></a>Input tree must be a root tree with a text tree as child containing the document to be parsed.
+<a name="line-122"></a>The parser tries to parse everything as HTML, if the HTML document is not wellformed XML or if
+<a name="line-123"></a>errors occur, warnings are generated. The warnings can be issued, or suppressed.
+<a name="line-124"></a>
+<a name="line-125"></a>Example: @ parseHtmlDocument True @ : parse document and issue warnings
+<a name="line-126"></a>
+<a name="line-127"></a>This parser is useful for applications like web crawlers, where the pages may contain
+<a name="line-128"></a>arbitray errors, but the application is only interested in parts of the document, e.g. the plain text.
+<a name="line-129"></a>
+<a name="line-130"></a>-}</span>
+<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-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>
+<a name="line-138"></a>			    <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-139"></a>			  <span class='layout'>)</span> 					<span class='comment'>-- get string to be parsed</span>
+<a name="line-140"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-141"></a>			  <span class='varid'>parseHtml</span>
+<a name="line-142"></a>			<span class='layout'>)</span>
+<a name="line-143"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-144"></a>	<span class='varid'>removeWarnings</span>
+<a name="line-145"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-146"></a>	<span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"parse HTML document"</span>
+<a name="line-147"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-148"></a>	<span class='varid'>traceTree</span>
+<a name="line-149"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-150"></a>	<span class='varid'>traceSource</span>
+<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-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>
+<a name="line-158"></a>    <span class='keyword'>where</span>
+<a name="line-159"></a>    <span class='varid'>parseHtml</span>
+<a name="line-160"></a>	<span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"parse document with tagsoup "</span> <span class='varop'>++</span>
+<a name="line-161"></a>				      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span> <span class='keyword'>then</span> <span class='str'>"HT"</span> <span class='keyword'>else</span> <span class='str'>"X"</span> <span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"ML parser"</span>
+<a name="line-162"></a>				     <span class='layout'>)</span>
+<a name="line-163"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-164"></a>			  <span class='varid'>parseHtmlTagSoup</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-165"></a>
+<a name="line-166"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"parse document with parsec HTML parser"</span><span class='layout'>)</span>
+<a name="line-167"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-168"></a>			  <span class='varid'>parseHtmlDoc</span>				<span class='comment'>-- run parser</span>
+<a name="line-169"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-170"></a>			  <span class='varid'>substHtmlEntityRefs</span>			<span class='comment'>-- substitute entity refs</span>
+<a name="line-171"></a>    <span class='varid'>removeWarnings</span>
+<a name="line-172"></a>	<span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span>
+<a name="line-173"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-174"></a>	  <span class='varid'>not</span> <span class='varid'>warnings</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-175"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>processTopDownWithAttrl</span>
+<a name="line-176"></a>			  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>warnings</span>				<span class='comment'>-- remove warnings inserted by parser and entity subst</span>
+<a name="line-177"></a>			    <span class='keyword'>then</span> <span class='varid'>filterErrorMsg</span>
+<a name="line-178"></a>			    <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>none</span>
+<a name="line-179"></a>				   <span class='varop'>`when`</span>
+<a name="line-180"></a>				   <span class='varid'>isError</span>
+<a name="line-181"></a>				 <span class='layout'>)</span>
+<a name="line-182"></a>			  <span class='layout'>)</span>
+<a name="line-183"></a>
+<a name="line-184"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-185"></a>
+<a name="line-186"></a><span class='comment'>{- | Document validation
+<a name="line-187"></a>
+<a name="line-188"></a>Input must be a complete document tree. The document
+<a name="line-189"></a>is validated with respect to the DTD spec.
+<a name="line-190"></a>Only useful for XML documents containing a DTD.
+<a name="line-191"></a>
+<a name="line-192"></a>If the document is valid, it is transformed with respect to the DTD,
+<a name="line-193"></a>normalization of attribute values, adding default values, sorting attributes by name,...
+<a name="line-194"></a>
+<a name="line-195"></a>If no error was found, result is the normalized tree,
+<a name="line-196"></a>else the error status is set in the list of attributes
+<a name="line-197"></a>of the root node \"\/\" and the document content is removed from the tree.
+<a name="line-198"></a>
+<a name="line-199"></a>-}</span>
+<a name="line-200"></a>
+<a name="line-201"></a><a name="validateDocument"></a><span class='definition'>validateDocument</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-202"></a><span class='definition'>validateDocument</span>
+<a name="line-203"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validating document"</span>
+<a name="line-204"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-205"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>validateDoc</span>
+<a name="line-206"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-207"></a>		  <span class='varid'>filterErrorMsg</span>
+<a name="line-208"></a>		<span class='layout'>)</span>
+<a name="line-209"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-210"></a>	<span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"document validation"</span>
+<a name="line-211"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-212"></a>	<span class='varid'>transformDoc</span>
+<a name="line-213"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-214"></a>	<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"document validated"</span>
+<a name="line-215"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-216"></a>	<span class='varid'>traceSource</span>
+<a name="line-217"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-218"></a>	<span class='varid'>traceTree</span>
+<a name="line-219"></a>      <span class='layout'>)</span>
+<a name="line-220"></a>      <span class='varop'>`when`</span>
+<a name="line-221"></a>      <span class='varid'>documentStatusOk</span>
+<a name="line-222"></a>      
+<a name="line-223"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-224"></a>
+<a name="line-225"></a><span class='comment'>{- | Namespace propagation
+<a name="line-226"></a>
+<a name="line-227"></a>Input must be a complete document tree. The namespace declarations
+<a name="line-228"></a>are evaluated and all element and attribute names are processed by
+<a name="line-229"></a>splitting the name into prefix, local part and namespace URI.
+<a name="line-230"></a>
+<a name="line-231"></a>Naames are checked with respect to the XML namespace definition
+<a name="line-232"></a>
+<a name="line-233"></a>If no error was found, result is the unchanged input tree,
+<a name="line-234"></a>else the error status is set in the list of attributes
+<a name="line-235"></a>of the root node \"\/\" and the document content is removed from the tree.
+<a name="line-236"></a>
+<a name="line-237"></a>
+<a name="line-238"></a>-}</span>
+<a name="line-239"></a>
+<a name="line-240"></a><a name="propagateAndValidateNamespaces"></a><span class='definition'>propagateAndValidateNamespaces</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-241"></a><span class='definition'>propagateAndValidateNamespaces</span>
+<a name="line-242"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"propagating namespaces"</span>
+<a name="line-243"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-244"></a>	<span class='varid'>propagateNamespaces</span>
+<a name="line-245"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-246"></a>	<span class='varid'>traceTree</span>
+<a name="line-247"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-248"></a>	<span class='varid'>traceSource</span>
+<a name="line-249"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-250"></a>	<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validating namespaces"</span>
+<a name="line-251"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-252"></a>	<span class='layout'>(</span> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"namespace propagation"</span>
+<a name="line-253"></a>	  <span class='varop'>`when`</span>
+<a name="line-254"></a>	  <span class='layout'>(</span> <span class='varid'>validateNamespaces</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>perform</span> <span class='varid'>filterErrorMsg</span> <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'>traceMsg</span> <span class='num'>1</span> <span class='str'>"namespace validation finished"</span>
+<a name="line-258"></a>      <span class='layout'>)</span>
+<a name="line-259"></a>      <span class='varop'>`when`</span>
+<a name="line-260"></a>      <span class='varid'>documentStatusOk</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'>{- |
+<a name="line-265"></a>   creates a new document root, adds all options
+<a name="line-266"></a>   as attributes to the document root and calls 'getXmlContents'.
+<a name="line-267"></a>
+<a name="line-268"></a>   If the document name is the empty string, the document will be read
+<a name="line-269"></a>   from standard input.
+<a name="line-270"></a>
+<a name="line-271"></a>   For supported protocols see 'Text.XML.HXT.Arrow.DocumentInput.getXmlContents'
+<a name="line-272"></a>-}</span>
+<a name="line-273"></a>
+<a name="line-274"></a><a name="getDocumentContents"></a><span class='definition'>getDocumentContents</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-275"></a><span class='definition'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>src</span>
+<a name="line-276"></a>    <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-277"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-278"></a>      <span class='varid'>addAttr</span> <span class='varid'>a_source</span> <span class='varid'>src</span>
+<a name="line-279"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-280"></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'>options</span><span class='layout'>)</span>					<span class='comment'>-- add all options to doc root</span>
+<a name="line-281"></a>      <span class='varop'>&gt;&gt;&gt;</span>									<span class='comment'>-- e.g. getXmlContents needs some of these</span>
+<a name="line-282"></a>      <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: start processing document "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span><span class='layout'>)</span>
+<a name="line-283"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-284"></a>      <span class='varid'>getXmlContents</span>
+<a name="line-285"></a>
+<a name="line-286"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html b/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html
@@ -0,0 +1,354 @@
+<!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     : Text.XML.HXT.Arrow.ReadDocument
+<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: ReadDocument.hs,v 1.10 2006/11/24 07:41:37 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>Compound arrows for reading an XML\/HTML document or an XML\/HTML string
+<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'>ReadDocument</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>readDocument</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>readFromDocument</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>readString</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>readFromString</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>hread</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>xread</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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</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'>canonicalizeAllNodes</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>canonicalizeContents</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>
+<a name="line-40"></a>    <span class='layout'>)</span>
+<a name="line-41"></a>
+<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'>ParserInterface</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'>ProcessDocument</span>
+<a name="line-45"></a>    <span class='layout'>(</span> <span class='varid'>getDocumentContents</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDocument</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlDocument</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>propagateAndValidateNamespaces</span>
+<a name="line-49"></a>    <span class='layout'>)</span>
+<a name="line-50"></a>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>
+<a name="line-52"></a>    <span class='layout'>(</span> <span class='varid'>validateDocumentWithRelaxSchema</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'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-56"></a>    <span class='layout'>(</span> <span class='varid'>toLower</span>
+<a name="line-57"></a>    <span class='layout'>)</span>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-60"></a>
+<a name="line-61"></a><span class='comment'>{- |
+<a name="line-62"></a>the main document input filter
+<a name="line-63"></a>
+<a name="line-64"></a>this filter can be configured by an option list, a value of type "Attributes"
+<a name="line-65"></a>
+<a name="line-66"></a>available options:
+<a name="line-67"></a>
+<a name="line-68"></a>* 'a_parse_html': use HTML parser, else use XML parser (default)
+<a name="line-69"></a>
+<a name="line-70"></a>- 'a_tagsoup' : use light weight and lasy parser based on tagsoup lib
+<a name="line-71"></a>
+<a name="line-72"></a>- 'a_parse_by_mimetype' : select the parser by the mime type of the document
+<a name="line-73"></a>                          (pulled out of the HTTP header). When the mime type is set to \"text\/html\"
+<a name="line-74"></a>			  the HTML parser (parsec or tagsoup) is taken, when it\'s set to
+<a name="line-75"></a>			  \"text\/xml\" or \"text\/xhtml\" the XML parser (parsec or tagsoup) is taken.
+<a name="line-76"></a>			  If the mime type is something else no further processing is performed,
+<a name="line-77"></a>			  the contents is given back to the application in form of a single text node.
+<a name="line-78"></a>			  If the default document encoding ('a_encoding') is set to isoLatin1, this even enables processing
+<a name="line-79"></a>			  of arbitray binary data.
+<a name="line-80"></a>
+<a name="line-81"></a>- 'a_validate' : validate document againsd DTD (default), else skip validation
+<a name="line-82"></a>
+<a name="line-83"></a>- 'a_relax_schema' : validate document with Relax NG, the options value is the schema URI
+<a name="line-84"></a>                     this implies using XML parser, no validation against DTD, and canonicalisation
+<a name="line-85"></a>
+<a name="line-86"></a>- 'a_check_namespaces' : check namespaces, else skip namespace processing (default)
+<a name="line-87"></a>
+<a name="line-88"></a>- 'a_canonicalize' : canonicalize document (default), else skip canonicalization
+<a name="line-89"></a>
+<a name="line-90"></a>- 'a_preserve_comment' : preserve comments during canonicalization, else remove comments (default)
+<a name="line-91"></a>
+<a name="line-92"></a>- 'a_remove_whitespace' : remove all whitespace, used for document indentation, else skip this step (default)
+<a name="line-93"></a>
+<a name="line-94"></a>- 'a_indent' : indent document by inserting whitespace, else skip this step (default)
+<a name="line-95"></a>
+<a name="line-96"></a>- 'a_issue_warnings' : issue warnings, when parsing HTML (default), else ignore HTML parser warnings
+<a name="line-97"></a>
+<a name="line-98"></a>- 'a_issue_errors' : issue all error messages on stderr (default), or ignore all error messages (default)
+<a name="line-99"></a>
+<a name="line-100"></a>- 'a_trace' : trace level: values: 0 - 4
+<a name="line-101"></a>
+<a name="line-102"></a>- 'a_proxy' : proxy for http access, e.g. www-cache:3128
+<a name="line-103"></a>
+<a name="line-104"></a>- 'a_use_curl' : for http access via external programm curl, default is native HTTP access
+<a name="line-105"></a>
+<a name="line-106"></a>- 'a_options_curl' : more options for external program curl
+<a name="line-107"></a>
+<a name="line-108"></a>- 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', 'iso8859_2', ... , 'iso8859_16', ...)
+<a name="line-109"></a>
+<a name="line-110"></a>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various
+<a name="line-111"></a>options in e.g. the input\/output modules
+<a name="line-112"></a>
+<a name="line-113"></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-114"></a>
+<a name="line-115"></a>examples:
+<a name="line-116"></a>
+<a name="line-117"></a>&gt; readDocument [ ] "test.xml"
+<a name="line-118"></a>
+<a name="line-119"></a>reads and validates a document \"test.xml\", no namespace propagation, only canonicalization is performed 
+<a name="line-120"></a>
+<a name="line-121"></a>&gt; readDocument [ (a_validate, "0")
+<a name="line-122"></a>&gt;              , (a_encoding, isoLatin1)
+<a name="line-123"></a>&gt;              ] "test.xml"
+<a name="line-124"></a>
+<a name="line-125"></a>reads document \"test.xml\" without validation, default encoding 'isoLatin1'.
+<a name="line-126"></a>
+<a name="line-127"></a>
+<a name="line-128"></a>&gt; readDocument [ (a_parse_html, "1")
+<a name="line-129"></a>&gt;              , (a_encoding, isoLatin1)
+<a name="line-130"></a>&gt;              , (a_tagsoup,    "1")
+<a name="line-131"></a>&gt;              ] ""
+<a name="line-132"></a>
+<a name="line-133"></a>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',
+<a name="line-134"></a>parsing is done with tagsoup parser
+<a name="line-135"></a>
+<a name="line-136"></a>&gt; readDocument [ (a_parse_html,     "1")
+<a name="line-137"></a>&gt;              , (a_proxy,          "www-cache:3128")
+<a name="line-138"></a>&gt;              , (a_curl,           "1")
+<a name="line-139"></a>&gt;              , (a_issue_warnings, "0")
+<a name="line-140"></a>&gt;              ] "<a href="http://www.haskell.org/">http://www.haskell.org/</a>"
+<a name="line-141"></a>
+<a name="line-142"></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-143"></a>
+<a name="line-144"></a>&gt; readDocument [ (a_validate,          "1")
+<a name="line-145"></a>&gt;              , (a_check_namespace,   "1")
+<a name="line-146"></a>&gt;              , (a_remove_whitespace, "1")
+<a name="line-147"></a>&gt;              , (a_trace,             "2")
+<a name="line-148"></a>&gt;              ] "<a href="http://www.w3c.org/">http://www.w3c.org/</a>"
+<a name="line-149"></a>
+<a name="line-150"></a>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2
+<a name="line-151"></a>
+<a name="line-152"></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-153"></a>-}</span>
+<a name="line-154"></a>
+<a name="line-155"></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-156"></a><span class='definition'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>src</span>
+<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceLevel</span>
+<a name="line-158"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-159"></a>      <span class='varid'>addInputOptionsToSystemState</span>
+<a name="line-160"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-161"></a>      <span class='varid'>getDocumentContents</span> <span class='varid'>remainingOptions</span> <span class='varid'>src</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'>processDoc</span> <span class='varop'>$&lt;</span> <span class='varid'>getMimeType</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'>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-166"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-167"></a>      <span class='varid'>traceSource</span>
+<a name="line-168"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-169"></a>      <span class='varid'>traceTree</span>
+<a name="line-170"></a>    <span class='keyword'>where</span>
+<a name="line-171"></a>    <span class='varid'>options</span>
+<a name="line-172"></a> 	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>
+<a name="line-173"></a>
+<a name="line-174"></a>    <span class='varid'>defaultOptions</span>
+<a name="line-175"></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-176"></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-177"></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-178"></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-179"></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-180"></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-181"></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-182"></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-183"></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-184"></a>	  <span class='keyglyph'>]</span>
+<a name="line-185"></a>
+<a name="line-186"></a>    <span class='varid'>httpOptions</span>
+<a name="line-187"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>a_proxy</span><span class='layout'>,</span> <span class='varid'>a_use_curl</span><span class='layout'>,</span> <span class='varid'>a_options_curl</span><span class='keyglyph'>]</span>
+<a name="line-188"></a>
+<a name="line-189"></a>    <span class='varid'>remainingOptions</span>
+<a name="line-190"></a>	 <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'>flip</span> <span class='varid'>hasEntry</span> <span class='varid'>defaultOptions</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>options</span>
+<a name="line-191"></a>
+<a name="line-192"></a>    <span class='varid'>traceLevel</span>
+<a name="line-193"></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-194"></a>
+<a name="line-195"></a>    <span class='varid'>addInputOptionsToSystemState</span>
+<a name="line-196"></a>	<span class='keyglyph'>=</span> <span class='varid'>addSysOptions</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>httpOptions</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>remainingOptions</span><span class='layout'>)</span>
+<a name="line-197"></a>	  <span class='keyword'>where</span>
+<a name="line-198"></a>	  <span class='varid'>addSysOptions</span>
+<a name="line-199"></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-200"></a>
+<a name="line-201"></a>    <span class='varid'>getMimeType</span>
+<a name="line-202"></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-203"></a>
+<a name="line-204"></a>    <span class='varid'>processDoc</span> <span class='varid'>mimeType</span>
+<a name="line-205"></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-206"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-207"></a>	  <span class='varid'>parse</span>
+<a name="line-208"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-209"></a>	  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isXmlOrHtml</span>
+<a name="line-210"></a>	    <span class='keyword'>then</span> <span class='layout'>(</span> <span class='varid'>checknamespaces</span>
+<a name="line-211"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-212"></a>		   <span class='varid'>canonicalize</span>
+<a name="line-213"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-214"></a>		   <span class='varid'>whitespace</span>
+<a name="line-215"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-216"></a>		   <span class='varid'>relax</span>
+<a name="line-217"></a>		 <span class='layout'>)</span>
+<a name="line-218"></a>	    <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-219"></a>	  <span class='layout'>)</span>
+<a name="line-220"></a>	<span class='keyword'>where</span>
+<a name="line-221"></a>	<span class='varid'>parse</span>
+<a name="line-222"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isHtml</span>
+<a name="line-223"></a>	      <span class='varop'>||</span> 
+<a name="line-224"></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-225"></a>					  <span class='varid'>withTagSoup</span>
+<a name="line-226"></a>					  <span class='varid'>withNamespaces</span>
+<a name="line-227"></a>					  <span class='varid'>issueW</span>
+<a name="line-228"></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-229"></a>					  <span class='varid'>removeWS</span>
+<a name="line-230"></a>					  <span class='varid'>isHtml</span>
+<a name="line-231"></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-232"></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-233"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>					<span class='comment'>-- don't parse, mime type is not XML nor HTML</span>
+<a name="line-234"></a>	<span class='varid'>checknamespaces</span>
+<a name="line-235"></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-236"></a>	      <span class='varop'>||</span>
+<a name="line-237"></a>	      <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>propagateAndValidateNamespaces</span>
+<a name="line-238"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-239"></a>	<span class='varid'>canonicalize</span>
+<a name="line-240"></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-241"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-242"></a>	    <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>
+<a name="line-243"></a>	      <span class='varop'>&amp;&amp;</span>
+<a name="line-244"></a>	      <span class='varid'>preserveCmt</span>			<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-245"></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-246"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-247"></a>	<span class='varid'>relax</span>
+<a name="line-248"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>validateDocumentWithRelaxSchema</span> <span class='varid'>remainingOptions</span> <span class='varid'>relaxSchema</span>
+<a name="line-249"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-250"></a>	<span class='varid'>whitespace</span>
+<a name="line-251"></a>	    <span class='keyglyph'>|</span> <span class='varid'>removeWS</span>
+<a name="line-252"></a>	      <span class='varop'>&amp;&amp;</span>
+<a name="line-253"></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-254"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-255"></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-256"></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-257"></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-258"></a>	<span class='varid'>parseXml</span>		<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_xml</span>
+<a name="line-259"></a>	<span class='varid'>isHtml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseHtml</span>				<span class='comment'>-- force HTML</span>
+<a name="line-260"></a>				  <span class='varop'>||</span>
+<a name="line-261"></a>				  <span class='varid'>mimeTypeIsHtml</span>
+<a name="line-262"></a>	<span class='varid'>isXml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseXml</span>				<span class='comment'>-- force XML parsing</span>
+<a name="line-263"></a>				  <span class='varop'>||</span>
+<a name="line-264"></a>				  <span class='layout'>(</span> <span class='varid'>not</span> <span class='varid'>parseHtml</span>
+<a name="line-265"></a>				    <span class='varop'>&amp;&amp;</span>
+<a name="line-266"></a>				    <span class='layout'>(</span> <span class='varid'>mimeTypeIsXml</span> <span class='varop'>||</span> <span class='varid'>null</span> <span class='varid'>mimeType</span> <span class='layout'>)</span>	<span class='comment'>-- mime type is XML or not there</span>
+<a name="line-267"></a>				  <span class='layout'>)</span>
+<a name="line-268"></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-269"></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-270"></a>	<span class='varid'>validate</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate</span>
+<a name="line-271"></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-272"></a>	<span class='varid'>withTagSoup</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_tagsoup</span>
+<a name="line-273"></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-274"></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-275"></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-276"></a>	<span class='varid'>mimeTypeIsHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mimeType</span>
+<a name="line-277"></a>	<span class='varid'>mimeTypeIsXml</span>	<span class='keyglyph'>=</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isXmlMimeType</span>  <span class='varid'>mimeType</span>
+<a name="line-278"></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-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'>-- the arrow version of 'readDocument', the arrow input is the source URI</span>
+<a name="line-284"></a>
+<a name="line-285"></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-286"></a><span class='definition'>readFromDocument</span> <span class='varid'>userOptions</span>
+<a name="line-287"></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-288"></a>
+<a name="line-289"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-290"></a>
+<a name="line-291"></a><span class='comment'>-- |</span>
+<a name="line-292"></a><span class='comment'>-- read a document that is stored in a normal Haskell String</span>
+<a name="line-293"></a><span class='comment'>--</span>
+<a name="line-294"></a><span class='comment'>-- the same function as readDocument, but the parameter forms the input.</span>
+<a name="line-295"></a><span class='comment'>-- All options available for 'readDocument' are applicable for readString.</span>
+<a name="line-296"></a><span class='comment'>--</span>
+<a name="line-297"></a><span class='comment'>-- Default encoding: No encoding is done, the String argument is taken as Unicode string</span>
+<a name="line-298"></a>
+<a name="line-299"></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-300"></a><span class='definition'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>content</span>
+<a name="line-301"></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-302"></a>
+<a name="line-303"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-304"></a>
+<a name="line-305"></a><span class='comment'>-- |</span>
+<a name="line-306"></a><span class='comment'>-- the arrow version of 'readString', the arrow input is the source URI</span>
+<a name="line-307"></a>
+<a name="line-308"></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-309"></a><span class='definition'>readFromString</span> <span class='varid'>userOptions</span>
+<a name="line-310"></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-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'>-- parse a string as HTML content, substitute all HTML entity refs and canonicalize tree</span>
+<a name="line-316"></a><span class='comment'>-- (substitute char refs, ...). Errors are ignored.</span>
+<a name="line-317"></a><span class='comment'>-- </span>
+<a name="line-318"></a><span class='comment'>-- A simpler version of 'readFromString' but with less functionality.</span>
+<a name="line-319"></a><span class='comment'>-- Does not run in the IO monad</span>
+<a name="line-320"></a>
+<a name="line-321"></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-322"></a><span class='definition'>hread</span>
+<a name="line-323"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseHtmlContent</span>
+<a name="line-324"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-325"></a>      <span class='varid'>substHtmlEntityRefs</span>
+<a name="line-326"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-327"></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-328"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-329"></a>      <span class='varid'>canonicalizeContents</span>
+<a name="line-330"></a>
+<a name="line-331"></a><span class='comment'>-- |</span>
+<a name="line-332"></a><span class='comment'>-- parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree</span>
+<a name="line-333"></a><span class='comment'>-- (substitute char refs, ...)</span>
+<a name="line-334"></a>
+<a name="line-335"></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-336"></a><span class='definition'>xread</span>
+<a name="line-337"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlContent</span>
+<a name="line-338"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-339"></a>      <span class='varid'>substXmlEntityRefs</span>
+<a name="line-340"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-341"></a>      <span class='varid'>canonicalizeContents</span>
+<a name="line-342"></a>
+<a name="line-343"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-344"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html
@@ -0,0 +1,206 @@
+<!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     : Text.XML.HXT.Arrow.WriteDocument
+<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: 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-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-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-55"></a>
+<a name="line-56"></a>usage: @ writeDocument optionList destination @
+<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-59"></a>
+<a name="line-60"></a>available options are
+<a name="line-61"></a>
+<a name="line-62"></a>* 'a_indent' : indent document for readability, (default: no indentation)
+<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-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-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-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-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-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-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-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>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html
@@ -0,0 +1,297 @@
+<!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     : Text.XML.HXT.Arrow.XPath
+<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>
+<a name="line-12"></a>   Arrows for working with XPath and XmlNodeSets.
+<a name="line-13"></a>
+<a name="line-14"></a>   Most of the XPath arrows come in two versions,
+<a name="line-15"></a>   one without dealing with namespaces, element and attribute names
+<a name="line-16"></a>   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
+<a name="line-17"></a>
+<a name="line-18"></a>   The second variant uses a namespace environment for associating the right
+<a name="line-19"></a>   namespace for the appropriate prefix. an entry for the empty prefix
+<a name="line-20"></a>   defines the default namespace for the expression.
+<a name="line-21"></a>
+<a name="line-22"></a>   The second variant should be used, when in the application namespaces
+<a name="line-23"></a>   are significant, that means when namespace propagation is done for
+<a name="line-24"></a>   the documents to be processed.
+<a name="line-25"></a>
+<a name="line-26"></a>   NodeSets are sets of \"pointer\" into an XML tree to reference
+<a name="line-27"></a>   subnodes. These nodesets can be computed by XPath expressions or
+<a name="line-28"></a>   normal arrows. The nodesets can then be used later for selecting
+<a name="line-29"></a>   or modifying subtrees of this tree in an efficient way.
+<a name="line-30"></a>
+<a name="line-31"></a>-}</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-34"></a>
+<a name="line-35"></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'>XPath</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>getXPathTreesInDoc</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>getXPathTrees</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>getXPathTreesWithNsEnv</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>getElemNodeSet</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>getElemAndAttrNodeSet</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>getXPathNodeSet</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>getFromNodeSet</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>processXPathTrees</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>processXPathTreesWithNsEnv</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>processFromNodeSet</span>
+<a name="line-47"></a>    <span class='layout'>)</span>
+<a name="line-48"></a><span class='keyword'>where</span>
+<a name="line-49"></a>
+<a name="line-50"></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'>XPath</span> <span class='keyword'>as</span> <span class='conid'>PT</span>
+<a name="line-51"></a>    <span class='layout'>(</span> <span class='varid'>getXPathSubTreesWithNsEnv</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>getXPathNodeSetWithNsEnv</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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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='comment'>-- ------------------------------------------------------------</span>
+<a name="line-65"></a>
+<a name="line-66"></a><span class='comment'>-- |</span>
+<a name="line-67"></a><span class='comment'>-- Select parts of a whole XML document with root node by a XPath expression.</span>
+<a name="line-68"></a><span class='comment'>--</span>
+<a name="line-69"></a><span class='comment'>-- The main filter for selecting parts of a document via XPath.</span>
+<a name="line-70"></a><span class='comment'>--</span>
+<a name="line-71"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>
+<a name="line-72"></a><span class='comment'>-- the argument tree must be a complete document tree.</span>
+<a name="line-73"></a><span class='comment'>--</span>
+<a name="line-74"></a><span class='comment'>-- Before evaluating the xpath query, the document is canonicalized</span>
+<a name="line-75"></a><span class='comment'>-- with 'Text.XML.HXT.Arrow.Edit.canonicalizeForXPath'</span>
+<a name="line-76"></a><span class='comment'>--</span>
+<a name="line-77"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>
+<a name="line-78"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>
+<a name="line-79"></a><span class='comment'>-- are convertet to text nodes.</span>
+<a name="line-80"></a>
+<a name="line-81"></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-82"></a><span class='definition'>getXPathTreesInDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span> <span class='conid'>[]</span>
+<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-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>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- |</span>
+<a name="line-92"></a><span class='comment'>-- Select parts of an arbitrary XML tree by a XPath expression.</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>-- The main filter for selecting parts of an arbitrary XML tree via XPath.</span>
+<a name="line-95"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>
+<a name="line-96"></a><span class='comment'>-- There are no restrictions on the argument tree.</span>
+<a name="line-97"></a><span class='comment'>--</span>
+<a name="line-98"></a><span class='comment'>-- No canonicalization is performed before evaluating the query</span>
+<a name="line-99"></a><span class='comment'>--</span>
+<a name="line-100"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>
+<a name="line-101"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>
+<a name="line-102"></a><span class='comment'>-- are convertet to text nodes.</span>
+<a name="line-103"></a>
+<a name="line-104"></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-105"></a><span class='definition'>getXPathTrees</span>				<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesWithNsEnv</span> <span class='conid'>[]</span>
+<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-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>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>-- The result is a set of \"pointers\" to nodes. This set can be used to</span>
+<a name="line-115"></a><span class='comment'>-- access or modify the values of the subnodes in subsequent calls to 'getFromNodeSet' or 'processFromNodeSet'.</span>
+<a name="line-116"></a><span class='comment'>--</span>
+<a name="line-117"></a><span class='comment'>-- This function enables for parsing an XPath expressions and traversing the tree for node selection once</span>
+<a name="line-118"></a><span class='comment'>-- and reuse this result possibly many times for later selection and modification operations.</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="getXPathNodeSet"></a><span class='definition'>getXPathNodeSet</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'>XmlNodeSet</span>
+<a name="line-121"></a><span class='definition'>getXPathNodeSet</span>				<span class='keyglyph'>=</span> <span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='conid'>[]</span>
+<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-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>
+<a name="line-129"></a>
+<a name="line-130"></a><a name="getNodeSet"></a><span class='definition'>getNodeSet</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'>QName</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-131"></a><span class='definition'>getNodeSet</span> <span class='varid'>af</span> <span class='varid'>f</span>
+<a name="line-132"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-133"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-134"></a>		  <span class='varid'>getNodeSet</span> <span class='varid'>af</span> <span class='varid'>f</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'>arr</span> <span class='varid'>filterNodeSet</span>
+<a name="line-138"></a>	<span class='layout'>)</span>
+<a name="line-139"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-140"></a>	<span class='varid'>listA</span> <span class='varid'>af</span>
+<a name="line-141"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-142"></a>	<span class='varid'>listA</span> <span class='varid'>f</span>
+<a name="line-143"></a>      <span class='layout'>)</span>
+<a name="line-144"></a>      <span class='varop'>&gt;&gt;^</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>cl</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNS</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'>n</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-145"></a>    <span class='keyword'>where</span>
+<a name="line-146"></a>    <span class='varid'>filterNodeSet</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlNodeSet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ChildNodes</span>
+<a name="line-147"></a>    <span class='varid'>filterNodeSet</span>
+<a name="line-148"></a>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>zipWith</span> <span class='varid'>filterIx</span> <span class='keyglyph'>[</span><span class='num'>0</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>
+<a name="line-149"></a>
+<a name="line-150"></a>    <span class='varid'>filterIx</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ChildNodes</span>
+<a name="line-151"></a>    <span class='varid'>filterIx</span> <span class='sel'>_ix</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='conid'>False</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-152"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-153"></a>    <span class='varid'>filterIx</span> <span class='varid'>ix</span> <span class='varid'>ps</span>
+<a name="line-154"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>ix</span><span class='layout'>,</span> <span class='varid'>ps</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-155"></a>
+<a name="line-156"></a><span class='comment'>-- |</span>
+<a name="line-157"></a><span class='comment'>-- compute a node set from a tree, containing all nodes selected by the predicate arrow</span>
+<a name="line-158"></a><span class='comment'>--</span>
+<a name="line-159"></a><span class='comment'>-- computation of the set of element nodes with name \"a\" is done with</span>
+<a name="line-160"></a><span class='comment'>--</span>
+<a name="line-161"></a><span class='comment'>-- &gt; getElemNodeSet (hasName "a")</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="getElemNodeSet"></a><span class='definition'>getElemNodeSet</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-164"></a><span class='definition'>getElemNodeSet</span> <span class='varid'>f</span>
+<a name="line-165"></a>    <span class='keyglyph'>=</span> <span class='varid'>getNodeSet</span> <span class='varid'>none</span> <span class='varid'>f</span>
+<a name="line-166"></a>
+<a name="line-167"></a><span class='comment'>-- |</span>
+<a name="line-168"></a><span class='comment'>-- compute a node set from a tree, containing all nodes including attribute nodes</span>
+<a name="line-169"></a><span class='comment'>-- elected by the predicate arrow</span>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="getElemAndAttrNodeSet"></a><span class='definition'>getElemAndAttrNodeSet</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-172"></a><span class='definition'>getElemAndAttrNodeSet</span> <span class='varid'>f</span>
+<a name="line-173"></a>    <span class='keyglyph'>=</span> <span class='varid'>getNodeSet</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span>
+<a name="line-174"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-175"></a>		   <span class='layout'>(</span> <span class='varid'>f</span> <span class='varop'>`guards`</span> <span class='varid'>getAttrName</span> <span class='layout'>)</span>
+<a name="line-176"></a>		 <span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-177"></a>
+<a name="line-178"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-179"></a>
+<a name="line-180"></a><span class='comment'>-- |</span>
+<a name="line-181"></a><span class='comment'>-- select all subtrees specified by a previously computed node set</span>
+<a name="line-182"></a><span class='comment'>--</span>
+<a name="line-183"></a><span class='comment'>-- the following law holds:</span>
+<a name="line-184"></a><span class='comment'>--</span>
+<a name="line-185"></a><span class='comment'>-- &gt; getFromNodeSet $&lt; getElemNodeSet f == multi f</span>
+<a name="line-186"></a>
+<a name="line-187"></a><a name="getFromNodeSet"></a><span class='definition'>getFromNodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-188"></a><span class='definition'>getFromNodeSet</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>t</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-189"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>
+<a name="line-190"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>t</span> <span class='keyword'>then</span> <span class='varid'>this</span> <span class='keyword'>else</span> <span class='varid'>none</span> <span class='layout'>)</span>
+<a name="line-191"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-192"></a>      <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getFromAttrl</span> <span class='varid'>al</span> <span class='layout'>)</span>
+<a name="line-193"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-194"></a>      <span class='layout'>(</span> <span class='varid'>getFromChildren</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='varop'>$&lt;</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-195"></a>    <span class='keyword'>where</span>
+<a name="line-196"></a>
+<a name="line-197"></a>    <span class='varid'>getFromAttrl</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-198"></a>    <span class='varid'>getFromAttrl</span> <span class='varid'>l</span>
+<a name="line-199"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>hasQName</span> <span class='varop'>$</span> <span class='varid'>l</span><span class='layout'>)</span>
+<a name="line-200"></a>	  <span class='varop'>`guards`</span>
+<a name="line-201"></a>	  <span class='varid'>this</span>
+<a name="line-202"></a>
+<a name="line-203"></a>    <span class='varid'>getFromChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ChildNodes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-204"></a>    <span class='varid'>getFromChildren</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyword'>_</span>
+<a name="line-205"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-206"></a>
+<a name="line-207"></a>    <span class='varid'>getFromChildren</span> <span class='varid'>i'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>sp</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sps</span><span class='layout'>)</span> <span class='varid'>ts</span>
+<a name="line-208"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>t'</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getFromNodeSet</span> <span class='varid'>sp</span> <span class='layout'>)</span>
+<a name="line-209"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-210"></a>	  <span class='varid'>getFromChildren</span> <span class='varid'>i</span> <span class='varid'>sps</span> <span class='varid'>ts'</span>
+<a name="line-211"></a>	  <span class='keyword'>where</span>
+<a name="line-212"></a>	  <span class='layout'>(</span><span class='varid'>t'</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</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='varid'>i'</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ts</span>
+<a name="line-213"></a>
+<a name="line-214"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-215"></a>
+<a name="line-216"></a><span class='comment'>-- |</span>
+<a name="line-217"></a><span class='comment'>-- process all subtrees selected by an XPath expression</span>
+<a name="line-218"></a><span class='comment'>--</span>
+<a name="line-219"></a><span class='comment'>-- the following law holds:</span>
+<a name="line-220"></a><span class='comment'>--</span>
+<a name="line-221"></a><span class='comment'>-- &gt; processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr</span>
+<a name="line-222"></a>
+<a name="line-223"></a>
+<a name="line-224"></a><a name="processXPathTrees"></a><span class='definition'>processXPathTrees</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'>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-225"></a><span class='definition'>processXPathTrees</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>processXPathTreesWithNsEnv</span> <span class='varid'>f</span> <span class='conid'>[]</span>
+<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-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>
+<a name="line-233"></a>      <span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>pns</span>
+<a name="line-234"></a>      <span class='keyglyph'>]</span>
+<a name="line-235"></a>    <span class='keyword'>where</span>
+<a name="line-236"></a>    <span class='varid'>pns</span> <span class='keyglyph'>=</span> <span class='varid'>processFromNodeSet</span> <span class='varid'>f</span> <span class='varop'>$&lt;</span> <span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span>
+<a name="line-237"></a>
+<a name="line-238"></a><span class='comment'>-- |</span>
+<a name="line-239"></a><span class='comment'>-- process all subtrees specified by a previously computed node set in bottom up manner</span>
+<a name="line-240"></a><span class='comment'>--</span>
+<a name="line-241"></a><span class='comment'>-- the follwoing law holds:</span>
+<a name="line-242"></a><span class='comment'>--</span>
+<a name="line-243"></a><span class='comment'>-- &gt; processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)</span>
+<a name="line-244"></a><span class='comment'>--</span>
+<a name="line-245"></a><span class='comment'>-- when attributes are contained in the node set (see 'getElemAndAttrNodeSet'), these are processed</span>
+<a name="line-246"></a><span class='comment'>-- after the children and before the node itself</span>
+<a name="line-247"></a><span class='comment'>--</span>
+<a name="line-248"></a><span class='comment'>-- the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)</span>
+<a name="line-249"></a><span class='comment'>-- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="processFromNodeSet"></a><span class='definition'>processFromNodeSet</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'>XmlNodeSet</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-252"></a><span class='definition'>processFromNodeSet</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>t</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-253"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>cl</span>
+<a name="line-254"></a>	<span class='keyword'>then</span> <span class='varid'>this</span>
+<a name="line-255"></a>	<span class='keyword'>else</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>processC</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='varop'>$&lt;</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-256"></a>      <span class='layout'>)</span>
+<a name="line-257"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-258"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>al</span>
+<a name="line-259"></a>	<span class='keyword'>then</span> <span class='varid'>this</span>
+<a name="line-260"></a>	<span class='keyword'>else</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processA</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-261"></a>      <span class='layout'>)</span>
+<a name="line-262"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-263"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varid'>t</span>
+<a name="line-264"></a>	<span class='keyword'>then</span> <span class='varid'>this</span>
+<a name="line-265"></a>	<span class='keyword'>else</span> <span class='varid'>f</span>
+<a name="line-266"></a>      <span class='layout'>)</span>
+<a name="line-267"></a>    <span class='keyword'>where</span>
+<a name="line-268"></a>
+<a name="line-269"></a>    <span class='comment'>-- processA		:: ChildNodes -&gt; a XmlTree XmlTree</span>
+<a name="line-270"></a>    <span class='varid'>processA</span> <span class='varid'>l</span>
+<a name="line-271"></a>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>hasQName</span> <span class='varop'>$</span> <span class='varid'>l</span><span class='layout'>)</span>
+<a name="line-272"></a>
+<a name="line-273"></a>    <span class='comment'>-- processC		:: ChildNodes -&gt; XmlTrees -&gt; a XmlTree XmlTree</span>
+<a name="line-274"></a>    <span class='varid'>processC</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='varid'>ts</span>
+<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-276"></a>
+<a name="line-277"></a>    <span class='varid'>processC</span> <span class='varid'>i'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>sp</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sps</span><span class='layout'>)</span> <span class='varid'>ts</span>
+<a name="line-278"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ts1</span><span class='layout'>)</span>
+<a name="line-279"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-280"></a>	  <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ti</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processFromNodeSet</span> <span class='varid'>f</span> <span class='varid'>sp</span><span class='layout'>)</span>
+<a name="line-281"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-282"></a>	  <span class='varid'>processC</span> <span class='varid'>i</span> <span class='varid'>sps</span> <span class='varid'>ts21</span>
+<a name="line-283"></a>	  <span class='keyword'>where</span>
+<a name="line-284"></a>	  <span class='layout'>(</span><span class='varid'>ts1</span><span class='layout'>,</span> <span class='varid'>ts2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='varid'>i'</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>ts</span>
+<a name="line-285"></a>	  <span class='layout'>(</span><span class='varid'>ti</span><span class='layout'>,</span> <span class='varid'>ts21</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>1</span> <span class='varid'>ts2</span>
+<a name="line-286"></a>
+<a name="line-287"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html
@@ -0,0 +1,521 @@
+<!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     : Text.XML.HXT.XPath.GetSimpleXPath
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   XPath selection for simple XPath expressions with list arrows
+<a name="line-13"></a>   instead of navigatable trees.
+<a name="line-14"></a>
+<a name="line-15"></a>   It is recomended, that this module is imported qualified,
+<a name="line-16"></a>   e.g like @Text.XML.HXT.Arrow.XPathSimple as XS@.
+<a name="line-17"></a>
+<a name="line-18"></a>   The arrows defined in this module have the same
+<a name="line-19"></a>   functionality as the functions in 'Text.XML.HXT.Arrow.XPath'.
+<a name="line-20"></a>
+<a name="line-21"></a>   The computation modell in XPath is a navigatable tree,
+<a name="line-22"></a>   that means a tree wicht can be traveresed in arbitrary directions,
+<a name="line-23"></a>   not only from the root to the leafs. Sometimes this modell
+<a name="line-24"></a>   leads to inefficent XPath processing for simple queries, which
+<a name="line-25"></a>   only need a top down tree traversal.
+<a name="line-26"></a>
+<a name="line-27"></a>   When evaluating an XPath expression with these functions, first an attempt is made
+<a name="line-28"></a>   to map the XPath expression to a pure arrow. If this is possible
+<a name="line-29"></a>   due to the siplicity of the XPath expressions, the result is computed
+<a name="line-30"></a>   directly, else the query is processed by the corresponding
+<a name="line-31"></a>   function in 'Text.XML.HXT.Arrow.XPath'.
+<a name="line-32"></a>
+<a name="line-33"></a>   The simple evaluation is possible, when in the XPath expression
+<a name="line-34"></a>   only the top down axis (self, child, descendant, descendant or self are used,
+<a name="line-35"></a>   when no builtin functions concerning the position of a node are used,
+<a name="line-36"></a>   and no comparison of nodes e.g. in node set union is required.
+<a name="line-37"></a>
+<a name="line-38"></a>-}</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><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-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-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-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-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-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-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-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-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-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-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-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-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>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html
@@ -0,0 +1,642 @@
+<!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     : Text.XML.HXT.Arrow.XmlArrow
+<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: 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-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>
+<a name="line-46"></a>These arrows can be grouped into predicates, selectors, constructors, and transformers.
+<a name="line-47"></a>
+<a name="line-48"></a>All predicates (tests) act like 'Control.Arrow.ArrowIf.none' for failure and 'Control.Arrow.ArrowIf.this' for success.
+<a name="line-49"></a>A logical and can be formed by @ a1 &gt;&gt;&gt; a2 @, a locical or by @ a1 \&lt;+\&gt; a2 @.
+<a name="line-50"></a>
+<a name="line-51"></a>Selector arrows will fail, when applied to wrong input, e.g. selecting the text of a node with 'getText'
+<a name="line-52"></a>will fail when applied to a none text node.
+<a name="line-53"></a>
+<a name="line-54"></a>Edit arrows will remain the input unchanged, when applied to wrong argument, e.g. editing the content of a text node
+<a name="line-55"></a>with 'changeText' applied to an element node will return the unchanged element node.
+<a name="line-56"></a>-}</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='keyword'>infixl</span> <span class='num'>7</span> <span class='varop'>+=</span>
+<a name="line-59"></a>
+<a name="line-60"></a><a name="ArrowXml"></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='conid'>ArrowList</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-61"></a>
+<a name="line-62"></a>    <span class='comment'>-- discriminating predicates</span>
+<a name="line-63"></a>
+<a name="line-64"></a>    <span class='comment'>-- | test for text nodes</span>
+<a name="line-65"></a>    <span class='varid'>isText</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-66"></a>    <span class='varid'>isText</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span>
+<a name="line-67"></a>
+<a name="line-68"></a>    <span class='comment'>-- | test for char reference, used during parsing</span>
+<a name="line-69"></a>    <span class='varid'>isCharRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-70"></a>    <span class='varid'>isCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCharRef</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='comment'>-- | test for entity reference, used during parsing</span>
+<a name="line-73"></a>    <span class='varid'>isEntityRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-74"></a>    <span class='varid'>isEntityRef</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isEntityRef</span>
+<a name="line-75"></a>
+<a name="line-76"></a>    <span class='comment'>-- | test for comment</span>
+<a name="line-77"></a>    <span class='varid'>isCmt</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-78"></a>    <span class='varid'>isCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCmt</span>
+<a name="line-79"></a>
+<a name="line-80"></a>    <span class='comment'>-- | test for CDATA section, used during parsing</span>
+<a name="line-81"></a>    <span class='varid'>isCdata</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-82"></a>    <span class='varid'>isCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCdata</span>
+<a name="line-83"></a>
+<a name="line-84"></a>    <span class='comment'>-- | test for processing instruction</span>
+<a name="line-85"></a>    <span class='varid'>isPi</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-86"></a>    <span class='varid'>isPi</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isPi</span>
+<a name="line-87"></a>
+<a name="line-88"></a>    <span class='comment'>-- | test for processing instruction \&lt;?xml ...\&gt;</span>
+<a name="line-89"></a>    <span class='varid'>isXmlPi</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-90"></a>    <span class='varid'>isXmlPi</span>		<span class='keyglyph'>=</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='str'>"xml"</span>
+<a name="line-91"></a>
+<a name="line-92"></a>    <span class='comment'>-- | test for element</span>
+<a name="line-93"></a>    <span class='varid'>isElem</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-94"></a>    <span class='varid'>isElem</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span>
+<a name="line-95"></a>
+<a name="line-96"></a>    <span class='comment'>-- | test for DTD part, used during parsing</span>
+<a name="line-97"></a>    <span class='varid'>isDTD</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-98"></a>    <span class='varid'>isDTD</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isDTD</span>
+<a name="line-99"></a>
+<a name="line-100"></a>    <span class='comment'>-- | test for attribute tree</span>
+<a name="line-101"></a>    <span class='varid'>isAttr</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-102"></a>    <span class='varid'>isAttr</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span>
+<a name="line-103"></a>
+<a name="line-104"></a>    <span class='comment'>-- | test for error message</span>
+<a name="line-105"></a>    <span class='varid'>isError</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-106"></a>    <span class='varid'>isError</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isError</span>
+<a name="line-107"></a>
+<a name="line-108"></a>    <span class='comment'>-- | test for root node (element with name \"\/\")</span>
+<a name="line-109"></a>    <span class='varid'>isRoot</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-110"></a>    <span class='varid'>isRoot</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span>
+<a name="line-111"></a>
+<a name="line-112"></a>    <span class='comment'>-- | test for text nodes with text, for which a predicate holds</span>
+<a name="line-113"></a>    <span class='comment'>--</span>
+<a name="line-114"></a>    <span class='comment'>-- example: @hasText (all (\`elem\` \" \\t\\n\"))@ check for text nodes with only whitespace content</span>
+<a name="line-115"></a>    
+<a name="line-116"></a>    <span class='varid'>hasText</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-117"></a>    <span class='varid'>hasText</span> <span class='varid'>p</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-118"></a>
+<a name="line-119"></a>    <span class='comment'>-- | test for text nodes with only white space</span>
+<a name="line-120"></a>    <span class='comment'>--</span>
+<a name="line-121"></a>    <span class='comment'>-- implemented with 'hasTest'</span>
+<a name="line-122"></a>
+<a name="line-123"></a>    <span class='varid'>isWhiteSpace</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-124"></a>    <span class='varid'>isWhiteSpace</span>        <span class='keyglyph'>=</span> <span class='varid'>hasText</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span><span class='layout'>)</span>
+<a name="line-125"></a>
+<a name="line-126"></a>    <span class='comment'>-- |</span>
+<a name="line-127"></a>    <span class='comment'>-- test whether a node (element, attribute, pi) has a name with a special property</span>
+<a name="line-128"></a>
+<a name="line-129"></a>    <span class='varid'>hasNameWith</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-130"></a>    <span class='varid'>hasNameWith</span> <span class='varid'>p</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='varid'>p</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-131"></a>
+<a name="line-132"></a>    <span class='comment'>-- |</span>
+<a name="line-133"></a>    <span class='comment'>-- test whether a node (element, attribute, pi) has a specific qualified name</span>
+<a name="line-134"></a>    <span class='comment'>-- useful only after namespace propagation</span>
+<a name="line-135"></a>    <span class='varid'>hasQName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-136"></a>    <span class='varid'>hasQName</span> <span class='varid'>n</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='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-137"></a>
+<a name="line-138"></a>    <span class='comment'>-- |</span>
+<a name="line-139"></a>    <span class='comment'>-- test whether a node has a specific name (prefix:localPart ore localPart),</span>
+<a name="line-140"></a>    <span class='comment'>-- generally useful, even without namespace handling</span>
+<a name="line-141"></a>    <span class='varid'>hasName</span>		<span class='keyglyph'>::</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-142"></a>    <span class='varid'>hasName</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getName</span>         <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-143"></a>
+<a name="line-144"></a>    <span class='comment'>-- |</span>
+<a name="line-145"></a>    <span class='comment'>-- test whether a node has a specific name as local part,</span>
+<a name="line-146"></a>    <span class='comment'>-- useful only after namespace propagation</span>
+<a name="line-147"></a>    <span class='varid'>hasLocalPart</span>	<span class='keyglyph'>::</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-148"></a>    <span class='varid'>hasLocalPart</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getLocalPart</span>    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-149"></a>
+<a name="line-150"></a>    <span class='comment'>-- |</span>
+<a name="line-151"></a>    <span class='comment'>-- test whether a node has a specific name prefix,</span>
+<a name="line-152"></a>    <span class='comment'>-- useful only after namespace propagation</span>
+<a name="line-153"></a>    <span class='varid'>hasNamePrefix</span>	<span class='keyglyph'>::</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-154"></a>    <span class='varid'>hasNamePrefix</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getNamePrefix</span>   <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-155"></a>
+<a name="line-156"></a>    <span class='comment'>-- |</span>
+<a name="line-157"></a>    <span class='comment'>-- test whether a node has a specific namespace URI</span>
+<a name="line-158"></a>    <span class='comment'>-- useful only after namespace propagation</span>
+<a name="line-159"></a>    <span class='varid'>hasNamespaceUri</span>	<span class='keyglyph'>::</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-160"></a>    <span class='varid'>hasNamespaceUri</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getNamespaceUri</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-161"></a>
+<a name="line-162"></a>    <span class='comment'>-- |</span>
+<a name="line-163"></a>    <span class='comment'>-- test whether an element node has an attribute node with a specific name</span>
+<a name="line-164"></a>    <span class='varid'>hasAttr</span>		<span class='keyglyph'>::</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-165"></a>    <span class='varid'>hasAttr</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span>        <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>n</span><span class='layout'>)</span>  <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-166"></a>
+<a name="line-167"></a>    <span class='comment'>-- |</span>
+<a name="line-168"></a>    <span class='comment'>-- test whether an element node has an attribute node with a specific qualified name</span>
+<a name="line-169"></a>    <span class='varid'>hasQAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</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='varid'>hasQAttr</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span>        <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>n</span><span class='layout'>)</span>  <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-171"></a>
+<a name="line-172"></a>    <span class='comment'>-- |</span>
+<a name="line-173"></a>    <span class='comment'>-- test whether an element node has an attribute with a specific value</span>
+<a name="line-174"></a>    <span class='varid'>hasAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-175"></a>    <span class='varid'>hasAttrValue</span> <span class='varid'>n</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>n</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'>p</span><span class='layout'>)</span>  <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-176"></a>
+<a name="line-177"></a>    <span class='comment'>-- |</span>
+<a name="line-178"></a>    <span class='comment'>-- test whether an element node has an attribute with a qualified name and a specific value</span>
+<a name="line-179"></a>    <span class='varid'>hasQAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-180"></a>    <span class='varid'>hasQAttrValue</span> <span class='varid'>n</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>n</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'>p</span><span class='layout'>)</span>  <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-181"></a>
+<a name="line-182"></a>    <span class='comment'>-- constructor arrows ------------------------------------------------------------</span>
+<a name="line-183"></a>
+<a name="line-184"></a>    <span class='comment'>-- | text node construction arrow</span>
+<a name="line-185"></a>    <span class='varid'>mkText</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-186"></a>    <span class='varid'>mkText</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span>
+<a name="line-187"></a>
+<a name="line-188"></a>    <span class='comment'>-- | char reference construction arrow, useful for document output</span>
+<a name="line-189"></a>    <span class='varid'>mkCharRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>Int</span>    <span class='conid'>XmlTree</span>
+<a name="line-190"></a>    <span class='varid'>mkCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span>
+<a name="line-191"></a>
+<a name="line-192"></a>    <span class='comment'>-- | entity reference construction arrow, useful for document output</span>
+<a name="line-193"></a>    <span class='varid'>mkEntityRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-194"></a>    <span class='varid'>mkEntityRef</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span>
+<a name="line-195"></a>
+<a name="line-196"></a>    <span class='comment'>-- | comment node construction, useful for document output</span>
+<a name="line-197"></a>    <span class='varid'>mkCmt</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-198"></a>    <span class='varid'>mkCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCmt</span>
+<a name="line-199"></a>
+<a name="line-200"></a>    <span class='comment'>-- | CDATA construction, useful for document output</span>
+<a name="line-201"></a>    <span class='varid'>mkCdata</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-202"></a>    <span class='varid'>mkCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCdata</span>
+<a name="line-203"></a>
+<a name="line-204"></a>    <span class='comment'>-- | error node construction, useful only internally</span>
+<a name="line-205"></a>    <span class='varid'>mkError</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-206"></a>    <span class='varid'>mkError</span> <span class='varid'>level</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>level</span><span class='layout'>)</span>
+<a name="line-207"></a>
+<a name="line-208"></a>    <span class='comment'>-- | element construction:</span>
+<a name="line-209"></a>    <span class='comment'>-- | the attributes and the content of the element are computed by applying arrows</span>
+<a name="line-210"></a>    <span class='comment'>-- to the input</span>
+<a name="line-211"></a>    <span class='varid'>mkElement</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</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> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-212"></a>    <span class='varid'>mkElement</span> <span class='varid'>n</span> <span class='varid'>af</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>af</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>listA</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-213"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-214"></a>			  <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='varid'>cl</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='varid'>n</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-215"></a>    <span class='comment'>-- | attribute node construction:</span>
+<a name="line-216"></a>    <span class='comment'>-- | the attribute value is computed by applying an arrow to the input</span>
+<a name="line-217"></a>    <span class='varid'>mkAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</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-218"></a>    <span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</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>
+<a name="line-219"></a>
+<a name="line-220"></a>    <span class='comment'>-- | processing instruction construction:</span>
+<a name="line-221"></a>    <span class='comment'>-- | the content of the processing instruction is computed by applying an arrow to the input</span>
+<a name="line-222"></a>    <span class='varid'>mkPi</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</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-223"></a>    <span class='varid'>mkPi</span> <span class='varid'>qn</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkPi</span>   <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-224"></a>
+<a name="line-225"></a>    <span class='comment'>-- convenient arrows for constructors --------------------------------------------------</span>
+<a name="line-226"></a>
+<a name="line-227"></a>    <span class='comment'>-- | convenient arrow for element construction, more comfortable variant of 'mkElement'</span>
+<a name="line-228"></a>    <span class='comment'>--</span>
+<a name="line-229"></a>    <span class='comment'>-- example for simplifying 'mkElement' :</span>
+<a name="line-230"></a>    <span class='comment'>--</span>
+<a name="line-231"></a>    <span class='comment'>-- &gt; mkElement qn (a1 &lt;+&gt; ... &lt;+&gt; ai) (c1 &lt;+&gt; ... &lt;+&gt; cj)</span>
+<a name="line-232"></a>    <span class='comment'>--</span>
+<a name="line-233"></a>    <span class='comment'>-- equals</span>
+<a name="line-234"></a>    <span class='comment'>--</span>
+<a name="line-235"></a>    <span class='comment'>-- &gt; mkqelem qn [a1,...,ai] [c1,...,cj]</span>
+<a name="line-236"></a>
+<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-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-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-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-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-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>
+<a name="line-258"></a>    <span class='varid'>root</span>		<span class='keyglyph'>=</span> <span class='varid'>mkelem</span> <span class='varid'>t_root</span>
+<a name="line-259"></a>
+<a name="line-260"></a>    <span class='comment'>-- | alias for 'mkAttr'</span>
+<a name="line-261"></a>    <span class='varid'>qattr</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</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-262"></a>    <span class='varid'>qattr</span>		<span class='keyglyph'>=</span> <span class='varid'>mkAttr</span>
+<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-267"></a>
+<a name="line-268"></a>    <span class='comment'>-- constant arrows (ignoring the input) for tree construction ------------------------------</span>
+<a name="line-269"></a>
+<a name="line-270"></a>    <span class='comment'>-- | constant arrow for text nodes</span>
+<a name="line-271"></a>    <span class='varid'>txt</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-272"></a>    <span class='varid'>txt</span>			<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span>
+<a name="line-273"></a>
+<a name="line-274"></a>    <span class='comment'>-- | constant arrow for char reference nodes</span>
+<a name="line-275"></a>    <span class='varid'>charRef</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-276"></a>    <span class='varid'>charRef</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span>
+<a name="line-277"></a>
+<a name="line-278"></a>    <span class='comment'>-- | constant arrow for entity reference nodes</span>
+<a name="line-279"></a>    <span class='varid'>entityRef</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-280"></a>    <span class='varid'>entityRef</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span>
+<a name="line-281"></a>
+<a name="line-282"></a>    <span class='comment'>-- | constant arrow for comment</span>
+<a name="line-283"></a>    <span class='varid'>cmt</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-284"></a>    <span class='varid'>cmt</span>			<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span>  <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCmt</span>
+<a name="line-285"></a>
+<a name="line-286"></a>    <span class='comment'>-- | constant arrow for warning</span>
+<a name="line-287"></a>    <span class='varid'>warn</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-288"></a>    <span class='varid'>warn</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span><span class='layout'>)</span>
+<a name="line-289"></a>
+<a name="line-290"></a>    <span class='comment'>-- | constant arrow for errors</span>
+<a name="line-291"></a>    <span class='varid'>err</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-292"></a>    <span class='varid'>err</span>			<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_err</span><span class='layout'>)</span>
+<a name="line-293"></a>
+<a name="line-294"></a>    <span class='comment'>-- | constant arrow for fatal errors</span>
+<a name="line-295"></a>    <span class='varid'>fatal</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-296"></a>    <span class='varid'>fatal</span>		<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_fatal</span><span class='layout'>)</span>
+<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-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>
+<a name="line-304"></a>    <span class='varid'>sqattr</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='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-305"></a>    <span class='varid'>sqattr</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='varid'>an</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-306"></a>
+<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-311"></a>
+<a name="line-312"></a>    <span class='comment'>-- selector arrows --------------------------------------------------</span>
+<a name="line-313"></a>
+<a name="line-314"></a>    <span class='comment'>-- | select the text of a text node</span>
+<a name="line-315"></a>    <span class='varid'>getText</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-316"></a>    <span class='varid'>getText</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span><span class='layout'>)</span>
+<a name="line-317"></a>
+<a name="line-318"></a>    <span class='comment'>-- | select the value of a char reference</span>
+<a name="line-319"></a>    <span class='varid'>getCharRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>
+<a name="line-320"></a>    <span class='varid'>getCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getCharRef</span><span class='layout'>)</span>
+<a name="line-321"></a>
+<a name="line-322"></a>    <span class='comment'>-- | select the name of a entity reference node</span>
+<a name="line-323"></a>    <span class='varid'>getEntityRef</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-324"></a>    <span class='varid'>getEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getEntityRef</span><span class='layout'>)</span>
+<a name="line-325"></a>
+<a name="line-326"></a>    <span class='comment'>-- | select the comment of a comment node</span>
+<a name="line-327"></a>    <span class='varid'>getCmt</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-328"></a>    <span class='varid'>getCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getCmt</span><span class='layout'>)</span>
+<a name="line-329"></a>
+<a name="line-330"></a>    <span class='comment'>-- | select the content of a CDATA node</span>
+<a name="line-331"></a>    <span class='varid'>getCdata</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-332"></a>    <span class='varid'>getCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getCdata</span><span class='layout'>)</span>
+<a name="line-333"></a>
+<a name="line-334"></a>    <span class='comment'>-- | select the name of a processing instruction</span>
+<a name="line-335"></a>    <span class='varid'>getPiName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>
+<a name="line-336"></a>    <span class='varid'>getPiName</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getPiName</span><span class='layout'>)</span>
+<a name="line-337"></a>
+<a name="line-338"></a>    <span class='comment'>-- | select the content of a processing instruction</span>
+<a name="line-339"></a>    <span class='varid'>getPiContent</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-340"></a>    <span class='varid'>getPiContent</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getPiContent</span><span class='layout'>)</span>
+<a name="line-341"></a>
+<a name="line-342"></a>    <span class='comment'>-- | select the name of an element node</span>
+<a name="line-343"></a>    <span class='varid'>getElemName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>
+<a name="line-344"></a>    <span class='varid'>getElemName</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span><span class='layout'>)</span>
+<a name="line-345"></a>
+<a name="line-346"></a>    <span class='comment'>-- | select the attribute list of an element node</span>
+<a name="line-347"></a>    <span class='varid'>getAttrl</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-348"></a>    <span class='varid'>getAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span><span class='layout'>)</span>
+<a name="line-349"></a>
+<a name="line-350"></a>    <span class='comment'>-- | select the DTD type of a DTD node</span>
+<a name="line-351"></a>    <span class='varid'>getDTDPart</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>DTDElem</span>
+<a name="line-352"></a>    <span class='varid'>getDTDPart</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-353"></a>
+<a name="line-354"></a>    <span class='comment'>-- | select the DTD attributes of a DTD node</span>
+<a name="line-355"></a>    <span class='varid'>getDTDAttrl</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Attributes</span>
+<a name="line-356"></a>    <span class='varid'>getDTDAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-357"></a>
+<a name="line-358"></a>    <span class='comment'>-- | select the name of an attribute</span>
+<a name="line-359"></a>    <span class='varid'>getAttrName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>
+<a name="line-360"></a>    <span class='varid'>getAttrName</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrName</span><span class='layout'>)</span>
+<a name="line-361"></a>
+<a name="line-362"></a>    <span class='comment'>-- | select the error level (c_warn, c_err, c_fatal) from an error node</span>
+<a name="line-363"></a>    <span class='varid'>getErrorLevel</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>
+<a name="line-364"></a>    <span class='varid'>getErrorLevel</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getErrorLevel</span><span class='layout'>)</span>
+<a name="line-365"></a>
+<a name="line-366"></a>    <span class='comment'>-- | select the error message from an error node</span>
+<a name="line-367"></a>    <span class='varid'>getErrorMsg</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-368"></a>    <span class='varid'>getErrorMsg</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getErrorMsg</span><span class='layout'>)</span>
+<a name="line-369"></a>
+<a name="line-370"></a>    <span class='comment'>-- | select the qualified name from an element, attribute or pi</span>
+<a name="line-371"></a>    <span class='varid'>getQName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>
+<a name="line-372"></a>    <span class='varid'>getQName</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-373"></a>
+<a name="line-374"></a>    <span class='comment'>-- | select the prefix:localPart or localPart from an element, attribute or pi</span>
+<a name="line-375"></a>    <span class='varid'>getName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-376"></a>    <span class='varid'>getName</span>		<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getQualifiedName</span><span class='layout'>)</span>
+<a name="line-377"></a>
+<a name="line-378"></a>    <span class='comment'>-- | select the univeral name ({namespace URI} ++ localPart)</span>
+<a name="line-379"></a>    <span class='varid'>getUniversalName</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-380"></a>    <span class='varid'>getUniversalName</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getUniversalName</span><span class='layout'>)</span>
+<a name="line-381"></a>
+<a name="line-382"></a>    <span class='comment'>-- | select the univeral name (namespace URI ++ localPart)</span>
+<a name="line-383"></a>    <span class='varid'>getUniversalUri</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-384"></a>    <span class='varid'>getUniversalUri</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getUniversalUri</span><span class='layout'>)</span>
+<a name="line-385"></a>
+<a name="line-386"></a>    <span class='comment'>-- | select the local part</span>
+<a name="line-387"></a>    <span class='varid'>getLocalPart</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-388"></a>    <span class='varid'>getLocalPart</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getLocalPart</span><span class='layout'>)</span>
+<a name="line-389"></a>
+<a name="line-390"></a>    <span class='comment'>-- | select the name prefix</span>
+<a name="line-391"></a>    <span class='varid'>getNamePrefix</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-392"></a>    <span class='varid'>getNamePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getNamePrefix</span><span class='layout'>)</span>
+<a name="line-393"></a>
+<a name="line-394"></a>    <span class='comment'>-- | select the namespace URI</span>
+<a name="line-395"></a>    <span class='varid'>getNamespaceUri</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-396"></a>    <span class='varid'>getNamespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span>  <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getNamespaceUri</span><span class='layout'>)</span>
+<a name="line-397"></a>
+<a name="line-398"></a>    <span class='comment'>-- | select the value of an attribute of an element node,</span>
+<a name="line-399"></a>    <span class='comment'>-- always succeeds with empty string as default value \"\"</span>
+<a name="line-400"></a>    <span class='varid'>getAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-401"></a>    <span class='varid'>getAttrValue</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-402"></a>
+<a name="line-403"></a>    <span class='comment'>-- | like 'getAttrValue', but fails if the attribute does not exist</span>
+<a name="line-404"></a>    <span class='varid'>getAttrValue0</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-405"></a>    <span class='varid'>getAttrValue0</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-406"></a>
+<a name="line-407"></a>    <span class='comment'>-- | like 'getAttrValue', but select the value of an attribute given by a qualified name,</span>
+<a name="line-408"></a>    <span class='comment'>-- always succeeds with empty string as default value \"\"</span>
+<a name="line-409"></a>    <span class='varid'>getQAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-410"></a>    <span class='varid'>getQAttrValue</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-411"></a>
+<a name="line-412"></a>    <span class='comment'>-- | like 'getQAttrValue', but fails if attribute does not exist</span>
+<a name="line-413"></a>    <span class='varid'>getQAttrValue0</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-414"></a>    <span class='varid'>getQAttrValue0</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-415"></a>
+<a name="line-416"></a>    <span class='comment'>-- edit arrows --------------------------------------------------</span>
+<a name="line-417"></a>
+<a name="line-418"></a>    <span class='comment'>-- | edit the string of a text node</span>
+<a name="line-419"></a>    <span class='varid'>changeText</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-420"></a>    <span class='varid'>changeText</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeText</span>     <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isText</span>
+<a name="line-421"></a>
+<a name="line-422"></a>    <span class='comment'>-- | edit the comment string of a comment node</span>
+<a name="line-423"></a>    <span class='varid'>changeCmt</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-424"></a>    <span class='varid'>changeCmt</span>  <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeCmt</span>      <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isCmt</span>
+<a name="line-425"></a>
+<a name="line-426"></a>    <span class='comment'>-- | edit an element-, attribute- or pi- name</span>
+<a name="line-427"></a>    <span class='varid'>changeQName</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</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='varid'>changeQName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeName</span>  <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>getQName</span>
+<a name="line-429"></a>
+<a name="line-430"></a>    <span class='comment'>-- | edit an element name</span>
+<a name="line-431"></a>    <span class='varid'>changeElemName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-432"></a>    <span class='varid'>changeElemName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeElemName</span>  <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isElem</span>
+<a name="line-433"></a>
+<a name="line-434"></a>    <span class='comment'>-- | edit an attribute name</span>
+<a name="line-435"></a>    <span class='varid'>changeAttrName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-436"></a>    <span class='varid'>changeAttrName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeAttrName</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isAttr</span>
+<a name="line-437"></a>
+<a name="line-438"></a>    <span class='comment'>-- | edit a pi name</span>
+<a name="line-439"></a>    <span class='varid'>changePiName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-440"></a>    <span class='varid'>changePiName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changePiName</span>  <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isPi</span>
+<a name="line-441"></a>
+<a name="line-442"></a>    <span class='comment'>-- | edit an attribute value</span>
+<a name="line-443"></a>    <span class='varid'>changeAttrValue</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-444"></a>    <span class='varid'>changeAttrValue</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-445"></a>					    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>cf</span>
+<a name="line-446"></a>					    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span>
+<a name="line-447"></a>					  <span class='layout'>)</span>
+<a name="line-448"></a>			  <span class='varop'>`when`</span> <span class='varid'>isAttr</span>
+<a name="line-449"></a>
+<a name="line-450"></a>
+<a name="line-451"></a>    <span class='comment'>-- | edit an attribute list of an element node</span>
+<a name="line-452"></a>    <span class='varid'>changeAttrl</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span><span class='layout'>)</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-453"></a>    <span class='varid'>changeAttrl</span> <span class='varid'>cf</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-454"></a>			    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-455"></a>			    <span class='varid'>arr2</span> <span class='varid'>changeAL</span>
+<a name="line-456"></a>			  <span class='layout'>)</span>
+<a name="line-457"></a>                          <span class='varop'>`when`</span>
+<a name="line-458"></a>			  <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isPi</span> <span class='layout'>)</span>
+<a name="line-459"></a>			<span class='keyword'>where</span>
+<a name="line-460"></a>			<span class='varid'>changeAL</span> <span class='keyword'>as</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>xs</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>cf</span> <span class='varid'>xs</span> <span class='keyword'>as</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-461"></a>
+<a name="line-462"></a>    <span class='comment'>-- | replace an element, attribute or pi name</span>
+<a name="line-463"></a>    <span class='varid'>setQName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-464"></a>    <span class='varid'>setQName</span>  <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>changeQName</span>  <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-465"></a>
+<a name="line-466"></a>    <span class='comment'>-- | replace an element name</span>
+<a name="line-467"></a>    <span class='varid'>setElemName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-468"></a>    <span class='varid'>setElemName</span>  <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>changeElemName</span>  <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-469"></a>
+<a name="line-470"></a>    <span class='comment'>-- | replace an attribute name</span>
+<a name="line-471"></a>    <span class='varid'>setAttrName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-472"></a>    <span class='varid'>setAttrName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-473"></a>
+<a name="line-474"></a>    <span class='comment'>-- | replace an element name</span>
+<a name="line-475"></a>    <span class='varid'>setPiName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-476"></a>    <span class='varid'>setPiName</span>  <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>changePiName</span>  <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-477"></a>
+<a name="line-478"></a>    <span class='comment'>-- | replace an atribute list of an element node</span>
+<a name="line-479"></a>    <span class='varid'>setAttrl</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-480"></a>    <span class='varid'>setAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>id</span><span class='layout'>)</span> 		<span class='comment'>-- (\ x y -&gt; y)</span>
+<a name="line-481"></a>
+<a name="line-482"></a>    <span class='comment'>-- | add a list of attributes list to an element</span>
+<a name="line-483"></a>    <span class='varid'>addAttrl</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-484"></a>    <span class='varid'>addAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mergeAttrl</span><span class='layout'>)</span>
+<a name="line-485"></a>
+<a name="line-486"></a>    <span class='comment'>-- | add (or replace) an attribute</span>
+<a name="line-487"></a>    <span class='varid'>addAttr</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='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-488"></a>    <span class='varid'>addAttr</span> <span class='varid'>an</span> <span class='varid'>av</span>	<span class='keyglyph'>=</span> <span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>sattr</span> <span class='varid'>an</span> <span class='varid'>av</span><span class='layout'>)</span>
+<a name="line-489"></a>
+<a name="line-490"></a>    <span class='comment'>-- | remove an attribute</span>
+<a name="line-491"></a>    <span class='varid'>removeAttr</span>		<span class='keyglyph'>::</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-492"></a>    <span class='varid'>removeAttr</span> <span class='varid'>an</span>	<span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasName</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-493"></a>
+<a name="line-494"></a>    <span class='comment'>-- | remove an attribute with a qualified name</span>
+<a name="line-495"></a>    <span class='varid'>removeQAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-496"></a>    <span class='varid'>removeQAttr</span> <span class='varid'>an</span>	<span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasQName</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-497"></a>
+<a name="line-498"></a>    <span class='comment'>-- | process the attributes of an element node with an arrow</span>
+<a name="line-499"></a>    <span class='varid'>processAttrl</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-500"></a>    <span class='varid'>processAttrl</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>setAttrl</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-501"></a>
+<a name="line-502"></a>    <span class='comment'>-- | process a whole tree inclusive attribute list of element nodes</span>
+<a name="line-503"></a>    <span class='comment'>-- see also: 'Control.Arrow.ArrowTree.processTopDown'</span>
+<a name="line-504"></a>
+<a name="line-505"></a>    <span class='varid'>processTopDownWithAttrl</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-506"></a>    <span class='varid'>processTopDownWithAttrl</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isElem</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-507"></a>
+<a name="line-508"></a>    <span class='comment'>-- | convenient op for adding attributes or children to a node</span>
+<a name="line-509"></a>    <span class='comment'>--</span>
+<a name="line-510"></a>    <span class='comment'>-- usage: @ tf += cf @</span>
+<a name="line-511"></a>    <span class='comment'>--</span>
+<a name="line-512"></a>    <span class='comment'>-- the @tf@ arrow computes an element node, and all trees computed by @cf@ are</span>
+<a name="line-513"></a>    <span class='comment'>-- added to this node, if a tree is an attribute, it is inserted in the attribute list</span>
+<a name="line-514"></a>    <span class='comment'>-- else it is appended to the content list.</span>
+<a name="line-515"></a>    <span class='comment'>--</span>
+<a name="line-516"></a>    <span class='comment'>-- attention: do not build long content list this way because '+=' is implemented by ++</span>
+<a name="line-517"></a>    <span class='comment'>--</span>
+<a name="line-518"></a>    <span class='comment'>-- examples:</span>
+<a name="line-519"></a>    <span class='comment'>--</span>
+<a name="line-520"></a>    <span class='comment'>-- &gt; eelem "a"</span>
+<a name="line-521"></a>    <span class='comment'>-- &gt;   += sattr "href" "page.html"</span>
+<a name="line-522"></a>    <span class='comment'>-- &gt;   += sattr "name" "here"</span>
+<a name="line-523"></a>    <span class='comment'>-- &gt;   += txt "look here"</span>
+<a name="line-524"></a>    <span class='comment'>--</span>
+<a name="line-525"></a>    <span class='comment'>-- is the same as</span>
+<a name="line-526"></a>    <span class='comment'>--</span>
+<a name="line-527"></a>    <span class='comment'>-- &gt; mkelem [ sattr "href" "page.html"</span>
+<a name="line-528"></a>    <span class='comment'>-- &gt;        , sattr "name" "here"</span>
+<a name="line-529"></a>    <span class='comment'>-- &gt;        ]</span>
+<a name="line-530"></a>    <span class='comment'>-- &gt;        [ txt "look here" ]</span>
+<a name="line-531"></a>    <span class='comment'>--</span>
+<a name="line-532"></a>    <span class='comment'>-- and results in the XML fragment: \&lt;a href=\"page.html\" name=\"here\"\&gt;look here\&lt;\/a\&gt;</span>
+<a name="line-533"></a>    <span class='comment'>--</span>
+<a name="line-534"></a>    <span class='comment'>-- advantage of the '+=' operator is, that attributes and content can be added</span>
+<a name="line-535"></a>    <span class='comment'>-- any time step by step.</span>
+<a name="line-536"></a>    <span class='comment'>-- if @tf@ computes a whole list of trees, e.g. a list of \"td\" or \"tr\" elements,</span>
+<a name="line-537"></a>    <span class='comment'>-- the attributes or content is added to all trees. useful for adding \"class\" or \"style\" attributes</span>
+<a name="line-538"></a>    <span class='comment'>-- to table elements.</span>
+<a name="line-539"></a>
+<a name="line-540"></a>    <span class='layout'>(</span><span class='varop'>+=</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-541"></a>    <span class='varid'>tf</span> <span class='varop'>+=</span> <span class='varid'>cf</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>tf</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>listA</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='varid'>addChildren</span>
+<a name="line-542"></a>	                <span class='keyword'>where</span>
+<a name="line-543"></a>			<span class='varid'>addChildren</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'>XmlTree</span>
+<a name="line-544"></a>			<span class='varid'>addChildren</span> <span class='varid'>t</span> <span class='varid'>cs</span>
+<a name="line-545"></a>			    <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>addChild</span> <span class='varid'>t</span> <span class='varid'>cs</span>
+<a name="line-546"></a>			<span class='varid'>addChild</span> 	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-547"></a>			<span class='varid'>addChild</span> <span class='varid'>t</span> <span class='varid'>c</span>
+<a name="line-548"></a>			    <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-549"></a>				<span class='keyglyph'>=</span> <span class='varid'>t</span>
+<a name="line-550"></a>			    <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span> <span class='varid'>c</span>
+<a name="line-551"></a>				<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>addAttr</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-552"></a>			    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-553"></a>				<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeChildren</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-554"></a>
+<a name="line-555"></a>    <span class='comment'>-- | apply an arrow to the input and convert the resulting XML trees into a string representation</span>
+<a name="line-556"></a>    <span class='varid'>xshow</span>		<span class='keyglyph'>::</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-557"></a>    <span class='varid'>xshow</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&gt;.</span> <span class='conid'>XS</span><span class='varop'>.</span><span class='varid'>xshow</span>
+<a name="line-558"></a>
+<a name="line-559"></a><span class='comment'>{- | Document Type Definition arrows
+<a name="line-560"></a>
+<a name="line-561"></a>These are separated, because they are not needed for document processing,
+<a name="line-562"></a>only when processing the DTD, e.g. for generating access funtions for the toolbox
+<a name="line-563"></a>from a DTD (se example DTDtoHaskell in the examples directory)
+<a name="line-564"></a>-}</span>
+<a name="line-565"></a>
+<a name="line-566"></a>
+<a name="line-567"></a><a name="ArrowDTD"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-568"></a>    <span class='varid'>isDTDDoctype</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-569"></a>    <span class='varid'>isDTDDoctype</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>DOCTYPE</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-570"></a>
+<a name="line-571"></a>    <span class='varid'>isDTDElement</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-572"></a>    <span class='varid'>isDTDElement</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>ELEMENT</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-573"></a>
+<a name="line-574"></a>    <span class='varid'>isDTDContent</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-575"></a>    <span class='varid'>isDTDContent</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>CONTENT</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-576"></a>
+<a name="line-577"></a>    <span class='varid'>isDTDAttlist</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-578"></a>    <span class='varid'>isDTDAttlist</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>ATTLIST</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-579"></a>
+<a name="line-580"></a>    <span class='varid'>isDTDEntity</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-581"></a>    <span class='varid'>isDTDEntity</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>ENTITY</span>  <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-582"></a>
+<a name="line-583"></a>    <span class='varid'>isDTDPEntity</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-584"></a>    <span class='varid'>isDTDPEntity</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>PENTITY</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-585"></a>
+<a name="line-586"></a>    <span class='varid'>isDTDNotation</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-587"></a>    <span class='varid'>isDTDNotation</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>NOTATION</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-588"></a>
+<a name="line-589"></a>    <span class='varid'>isDTDCondSect</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-590"></a>    <span class='varid'>isDTDCondSect</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>CONDSECT</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-591"></a>
+<a name="line-592"></a>    <span class='varid'>isDTDName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-593"></a>    <span class='varid'>isDTDName</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>NAME</span>    <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-594"></a>
+<a name="line-595"></a>    <span class='varid'>isDTDPERef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-596"></a>    <span class='varid'>isDTDPERef</span>		<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>PEREF</span>   <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>
+<a name="line-597"></a>
+<a name="line-598"></a>    <span class='varid'>hasDTDAttr</span>		<span class='keyglyph'>::</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-599"></a>    <span class='varid'>hasDTDAttr</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-600"></a>
+<a name="line-601"></a>    <span class='varid'>getDTDAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-602"></a>    <span class='varid'>getDTDAttrValue</span> <span class='varid'>n</span>	<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'>lookup</span> <span class='varid'>n</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-603"></a>
+<a name="line-604"></a>    <span class='varid'>setDTDAttrValue</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='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-605"></a>    <span class='varid'>setDTDAttrValue</span> <span class='varid'>n</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeDTDAttrl</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>n</span> <span class='varid'>v</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isDTD</span>
+<a name="line-606"></a>
+<a name="line-607"></a>    <span class='varid'>mkDTDElem</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='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-608"></a>    <span class='varid'>mkDTDElem</span> <span class='varid'>e</span> <span class='varid'>al</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>cf</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='varid'>e</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-609"></a>
+<a name="line-610"></a>    <span class='varid'>mkDTDDoctype</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</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-611"></a>    <span class='varid'>mkDTDDoctype</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span>
+<a name="line-612"></a>
+<a name="line-613"></a>    <span class='varid'>mkDTDElement</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-614"></a>    <span class='varid'>mkDTDElement</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span> <span class='varid'>none</span>
+<a name="line-615"></a>
+<a name="line-616"></a>    <span class='varid'>mkDTDEntity</span>		<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-617"></a>    <span class='varid'>mkDTDEntity</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>ENTITY</span> <span class='varid'>al</span> <span class='varid'>none</span>
+<a name="line-618"></a>
+<a name="line-619"></a>    <span class='varid'>mkDTDPEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-620"></a>    <span class='varid'>mkDTDPEntity</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>PENTITY</span> <span class='varid'>al</span> <span class='varid'>none</span>
+<a name="line-621"></a>
+<a name="line-622"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='conid'>LA</span>
+<a name="line-623"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-624"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='conid'>IOLA</span>
+<a name="line-625"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-626"></a>
+<a name="line-627"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='conid'>LA</span>
+<a name="line-628"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-629"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='conid'>IOLA</span>
+<a name="line-630"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-631"></a>
+<a name="line-632"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html
@@ -0,0 +1,912 @@
+<!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     : Text.XML.HXT.Arrow.XmlIOStateArrow
+<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: XmlIOStateArrow.hs,v 1.39 2006/11/09 20:27:42 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   the basic state arrows for XML processing
+<a name="line-14"></a>
+<a name="line-15"></a>   A state is needed for global processing options,
+<a name="line-16"></a>   like encoding options, document base URI, trace levels
+<a name="line-17"></a>   and error message handling
+<a name="line-18"></a>
+<a name="line-19"></a>   The state is separated into a user defined state
+<a name="line-20"></a>   and a system state. The system state contains variables
+<a name="line-21"></a>   for error message handling, for tracing, for the document base
+<a name="line-22"></a>   for accessing XML documents with relative references, e.g. DTDs,
+<a name="line-23"></a>   and a global key value store. This assoc list has strings as keys
+<a name="line-24"></a>   and lists of XmlTrees as values. It is used to store arbitrary
+<a name="line-25"></a>   XML and text values, e.g. user defined global options.
+<a name="line-26"></a>
+<a name="line-27"></a>   The user defined part of the store is in the default case empty, defined as ().
+<a name="line-28"></a>   It can be extended with an arbitray data type
+<a name="line-29"></a>
+<a name="line-30"></a>-}</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><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'>XmlIOStateArrow</span>
+<a name="line-35"></a>    <span class='layout'>(</span> <span class='comment'>-- * Data Types</span>
+<a name="line-36"></a>      <span class='conid'>XIOState</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-37"></a>      <span class='conid'>XIOSysState</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-38"></a>      <span class='conid'>IOStateArrow</span><span class='layout'>,</span>
+<a name="line-39"></a>      <span class='conid'>IOSArrow</span><span class='layout'>,</span>
+<a name="line-40"></a>
+<a name="line-41"></a>      <span class='comment'>-- * Running Arrows</span>
+<a name="line-42"></a>      <span class='varid'>initialState</span><span class='layout'>,</span>
+<a name="line-43"></a>      <span class='varid'>initialSysState</span><span class='layout'>,</span>
+<a name="line-44"></a>      <span class='varid'>runX</span><span class='layout'>,</span>
+<a name="line-45"></a>
+<a name="line-46"></a>      <span class='comment'>-- * User State Manipulation</span>
+<a name="line-47"></a>      <span class='varid'>getUserState</span><span class='layout'>,</span>
+<a name="line-48"></a>      <span class='varid'>setUserState</span><span class='layout'>,</span>
+<a name="line-49"></a>      <span class='varid'>changeUserState</span><span class='layout'>,</span>
+<a name="line-50"></a>      <span class='varid'>withExtendedUserState</span><span class='layout'>,</span>
+<a name="line-51"></a>      <span class='varid'>withOtherUserState</span><span class='layout'>,</span>
+<a name="line-52"></a>
+<a name="line-53"></a>      <span class='comment'>-- * Global System State Access</span>
+<a name="line-54"></a>      <span class='varid'>getSysParam</span><span class='layout'>,</span>
+<a name="line-55"></a>      <span class='varid'>changeSysParam</span><span class='layout'>,</span>
+<a name="line-56"></a>
+<a name="line-57"></a>      <span class='varid'>setParamList</span><span class='layout'>,</span>
+<a name="line-58"></a>      <span class='varid'>setParam</span><span class='layout'>,</span>
+<a name="line-59"></a>      <span class='varid'>unsetParam</span><span class='layout'>,</span>
+<a name="line-60"></a>      <span class='varid'>getParam</span><span class='layout'>,</span>
+<a name="line-61"></a>      <span class='varid'>getAllParams</span><span class='layout'>,</span>
+<a name="line-62"></a>      <span class='varid'>setParamString</span><span class='layout'>,</span>
+<a name="line-63"></a>      <span class='varid'>getParamString</span><span class='layout'>,</span>
+<a name="line-64"></a>      <span class='varid'>setParamInt</span><span class='layout'>,</span>
+<a name="line-65"></a>      <span class='varid'>getParamInt</span><span class='layout'>,</span>
+<a name="line-66"></a>      
+<a name="line-67"></a>      <span class='comment'>-- * Error Message Handling</span>
+<a name="line-68"></a>      <span class='varid'>clearErrStatus</span><span class='layout'>,</span>
+<a name="line-69"></a>      <span class='varid'>setErrStatus</span><span class='layout'>,</span>
+<a name="line-70"></a>      <span class='varid'>getErrStatus</span><span class='layout'>,</span>
+<a name="line-71"></a>      <span class='varid'>setErrMsgStatus</span><span class='layout'>,</span>
+<a name="line-72"></a>      <span class='varid'>setErrorMsgHandler</span><span class='layout'>,</span>
+<a name="line-73"></a>
+<a name="line-74"></a>      <span class='varid'>errorMsgStderr</span><span class='layout'>,</span>
+<a name="line-75"></a>      <span class='varid'>errorMsgCollect</span><span class='layout'>,</span>
+<a name="line-76"></a>      <span class='varid'>errorMsgStderrAndCollect</span><span class='layout'>,</span>
+<a name="line-77"></a>      <span class='varid'>errorMsgIgnore</span><span class='layout'>,</span>
+<a name="line-78"></a>
+<a name="line-79"></a>      <span class='varid'>getErrorMessages</span><span class='layout'>,</span>
+<a name="line-80"></a>
+<a name="line-81"></a>      <span class='varid'>filterErrorMsg</span><span class='layout'>,</span>
+<a name="line-82"></a>      <span class='varid'>issueWarn</span><span class='layout'>,</span>
+<a name="line-83"></a>      <span class='varid'>issueErr</span><span class='layout'>,</span>
+<a name="line-84"></a>      <span class='varid'>issueFatal</span><span class='layout'>,</span>
+<a name="line-85"></a>      <span class='varid'>setDocumentStatus</span><span class='layout'>,</span>
+<a name="line-86"></a>      <span class='varid'>setDocumentStatusFromSystemState</span><span class='layout'>,</span>
+<a name="line-87"></a>      <span class='varid'>documentStatusOk</span><span class='layout'>,</span>
+<a name="line-88"></a>
+<a name="line-89"></a>      <span class='comment'>-- * Document Base</span>
+<a name="line-90"></a>      <span class='varid'>setBaseURI</span><span class='layout'>,</span>
+<a name="line-91"></a>      <span class='varid'>getBaseURI</span><span class='layout'>,</span>
+<a name="line-92"></a>      <span class='varid'>changeBaseURI</span><span class='layout'>,</span>
+<a name="line-93"></a>      <span class='varid'>setDefaultBaseURI</span><span class='layout'>,</span>
+<a name="line-94"></a>      <span class='varid'>getDefaultBaseURI</span><span class='layout'>,</span>
+<a name="line-95"></a>      <span class='varid'>runInLocalURIContext</span><span class='layout'>,</span>
+<a name="line-96"></a>
+<a name="line-97"></a>      <span class='comment'>-- * Tracing</span>
+<a name="line-98"></a>      <span class='varid'>setTraceLevel</span><span class='layout'>,</span>
+<a name="line-99"></a>      <span class='varid'>getTraceLevel</span><span class='layout'>,</span>
+<a name="line-100"></a>      <span class='varid'>withTraceLevel</span><span class='layout'>,</span>
+<a name="line-101"></a>      <span class='varid'>trace</span><span class='layout'>,</span>
+<a name="line-102"></a>      <span class='varid'>traceMsg</span><span class='layout'>,</span>
+<a name="line-103"></a>      <span class='varid'>traceString</span><span class='layout'>,</span>
+<a name="line-104"></a>      <span class='varid'>traceSource</span><span class='layout'>,</span>
+<a name="line-105"></a>      <span class='varid'>traceTree</span><span class='layout'>,</span>
+<a name="line-106"></a>      <span class='varid'>traceDoc</span><span class='layout'>,</span>
+<a name="line-107"></a>      <span class='varid'>traceState</span><span class='layout'>,</span>
+<a name="line-108"></a>
+<a name="line-109"></a>      <span class='comment'>-- * URI Manipulation</span>
+<a name="line-110"></a>      <span class='varid'>expandURIString</span><span class='layout'>,</span>
+<a name="line-111"></a>      <span class='varid'>expandURI</span><span class='layout'>,</span>
+<a name="line-112"></a>      <span class='varid'>mkAbsURI</span><span class='layout'>,</span>
+<a name="line-113"></a>
+<a name="line-114"></a>      <span class='varid'>getFragmentFromURI</span><span class='layout'>,</span>
+<a name="line-115"></a>      <span class='varid'>getPathFromURI</span><span class='layout'>,</span>
+<a name="line-116"></a>      <span class='varid'>getPortFromURI</span><span class='layout'>,</span>
+<a name="line-117"></a>      <span class='varid'>getQueryFromURI</span><span class='layout'>,</span>
+<a name="line-118"></a>      <span class='varid'>getRegNameFromURI</span><span class='layout'>,</span>
+<a name="line-119"></a>      <span class='varid'>getSchemeFromURI</span><span class='layout'>,</span>
+<a name="line-120"></a>      <span class='varid'>getUserInfoFromURI</span>
+<a name="line-121"></a>      <span class='layout'>)</span>
+<a name="line-122"></a><span class='keyword'>where</span>
+<a name="line-123"></a>
+<a name="line-124"></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-125"></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-126"></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-127"></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-128"></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-129"></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-130"></a>
+<a name="line-131"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Strategies</span><span class='varop'>.</span><span class='conid'>DeepSeq</span>
+<a name="line-132"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>
+<a name="line-135"></a>
+<a name="line-136"></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-137"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>
+<a name="line-138"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-139"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</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'>Maybe</span>
+<a name="line-143"></a>
+<a name="line-144"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-145"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>
+<a name="line-146"></a>    <span class='layout'>,</span> <span class='varid'>escapeURIChar</span>
+<a name="line-147"></a>    <span class='layout'>,</span> <span class='varid'>isUnescapedInURI</span>
+<a name="line-148"></a>    <span class='layout'>,</span> <span class='varid'>nonStrictRelativeTo</span>
+<a name="line-149"></a>    <span class='layout'>,</span> <span class='varid'>parseURIReference</span>
+<a name="line-150"></a>    <span class='layout'>,</span> <span class='varid'>uriAuthority</span>
+<a name="line-151"></a>    <span class='layout'>,</span> <span class='varid'>uriFragment</span>
+<a name="line-152"></a>    <span class='layout'>,</span> <span class='varid'>uriPath</span>
+<a name="line-153"></a>    <span class='layout'>,</span> <span class='varid'>uriPort</span>
+<a name="line-154"></a>    <span class='layout'>,</span> <span class='varid'>uriQuery</span>
+<a name="line-155"></a>    <span class='layout'>,</span> <span class='varid'>uriRegName</span>
+<a name="line-156"></a>    <span class='layout'>,</span> <span class='varid'>uriScheme</span>
+<a name="line-157"></a>    <span class='layout'>,</span> <span class='varid'>uriUserInfo</span>
+<a name="line-158"></a>    <span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-161"></a>    <span class='layout'>(</span> <span class='varid'>hPutStrLn</span>
+<a name="line-162"></a>    <span class='layout'>,</span> <span class='varid'>hFlush</span>
+<a name="line-163"></a>    <span class='layout'>,</span> <span class='varid'>stderr</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'>Directory</span>
+<a name="line-167"></a>    <span class='layout'>(</span> <span class='varid'>getCurrentDirectory</span>
+<a name="line-168"></a>    <span class='layout'>)</span>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-171"></a><span class='comment'>{- $datatypes -}</span>
+<a name="line-172"></a>
+<a name="line-173"></a>
+<a name="line-174"></a><span class='comment'>-- |</span>
+<a name="line-175"></a><span class='comment'>-- predefined system state data type with all components for the</span>
+<a name="line-176"></a><span class='comment'>-- system functions, like trace, error handling, ...</span>
+<a name="line-177"></a>
+<a name="line-178"></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-179"></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-180"></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-181"></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-182"></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-183"></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-184"></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-185"></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-186"></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-187"></a>				  <span class='layout'>}</span>
+<a name="line-188"></a>
+<a name="line-189"></a><span class='keyword'>instance</span> <span class='conid'>DeepSeq</span> <span class='conid'>XIOSysState</span> <span class='keyword'>where</span>
+<a name="line-190"></a>    <span class='varid'>deepSeq</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='varid'>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='layout'>)</span> <span class='varid'>y</span>
+<a name="line-191"></a>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>tr</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>es</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>em</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>emh</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>emc</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>eml</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>bu</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>du</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>al</span> <span class='varid'>y</span>
+<a name="line-192"></a>
+<a name="line-193"></a><span class='comment'>-- |</span>
+<a name="line-194"></a><span class='comment'>-- state datatype consists of a system state and a user state</span>
+<a name="line-195"></a><span class='comment'>-- the user state is not fixed</span>
+<a name="line-196"></a>
+<a name="line-197"></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-198"></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-199"></a>				   <span class='layout'>}</span>
+<a name="line-200"></a>
+<a name="line-201"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>DeepSeq</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>DeepSeq</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-202"></a>    <span class='varid'>deepSeq</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='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>sys</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>usr</span> <span class='varid'>y</span>
+<a name="line-203"></a>
+<a name="line-204"></a><span class='comment'>-- |</span>
+<a name="line-205"></a><span class='comment'>-- The arrow type for stateful arrows</span>
+<a name="line-206"></a>
+<a name="line-207"></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-208"></a>
+<a name="line-209"></a><span class='comment'>-- |</span>
+<a name="line-210"></a><span class='comment'>-- The arrow for stateful arrows with no user defined state</span>
+<a name="line-211"></a>
+<a name="line-212"></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-213"></a>
+<a name="line-214"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-215"></a>
+<a name="line-216"></a>
+<a name="line-217"></a><span class='comment'>-- | the default global state, used as initial state when running an 'IOSArrow' with 'runIOSLA' or</span>
+<a name="line-218"></a><span class='comment'>-- 'runX'</span>
+<a name="line-219"></a>
+<a name="line-220"></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-221"></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-222"></a>			   <span class='layout'>,</span> <span class='varid'>xio_userState</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-223"></a>			   <span class='layout'>}</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="initialSysState"></a><span class='definition'>initialSysState</span>	<span class='keyglyph'>::</span> <span class='conid'>XIOSysState</span>
+<a name="line-226"></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-227"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span>	<span class='keyglyph'>=</span> <span class='varid'>c_ok</span>
+<a name="line-228"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorModule</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-229"></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-230"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-231"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-232"></a>			 <span class='layout'>,</span> <span class='varid'>xio_baseURI</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-233"></a>			 <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-234"></a>			 <span class='layout'>,</span> <span class='varid'>xio_attrList</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-235"></a>			 <span class='layout'>}</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'>-- |</span>
+<a name="line-240"></a><span class='comment'>-- apply an 'IOSArrow' to an empty root node with 'initialState' () as initial state</span>
+<a name="line-241"></a><span class='comment'>--</span>
+<a name="line-242"></a><span class='comment'>-- the main entry point for running a state arrow with IO</span>
+<a name="line-243"></a><span class='comment'>--</span>
+<a name="line-244"></a><span class='comment'>-- when running @ runX f@ an empty XML root node is applied to @f@.</span>
+<a name="line-245"></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-246"></a><span class='comment'>--</span>
+<a name="line-247"></a><span class='comment'>-- for usage see examples with 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'</span>
+<a name="line-248"></a><span class='comment'>--</span>
+<a name="line-249"></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-250"></a>
+<a name="line-251"></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-252"></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-253"></a>
+<a name="line-254"></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-255"></a><span class='definition'>runXIOState</span> <span class='varid'>s0</span> <span class='varid'>f</span>
+<a name="line-256"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-257"></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-258"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-259"></a>    <span class='keyword'>where</span>
+<a name="line-260"></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-261"></a>
+<a name="line-262"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-263"></a>
+<a name="line-264"></a><span class='comment'>{- user state -}</span>
+<a name="line-265"></a>
+<a name="line-266"></a><span class='comment'>-- | read the user defined part of the state</span>
+<a name="line-267"></a>
+<a name="line-268"></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-269"></a><span class='definition'>getUserState</span>
+<a name="line-270"></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-271"></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-272"></a>
+<a name="line-273"></a><span class='comment'>-- | change the user defined part of the state</span>
+<a name="line-274"></a>
+<a name="line-275"></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-276"></a><span class='definition'>changeUserState</span> <span class='varid'>cf</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='varid'>v</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-278"></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-279"></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-280"></a>
+<a name="line-281"></a><span class='comment'>-- | set the user defined part of the state</span>
+<a name="line-282"></a>
+<a name="line-283"></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-284"></a><span class='definition'>setUserState</span>
+<a name="line-285"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>const</span>
+<a name="line-286"></a>
+<a name="line-287"></a><span class='comment'>-- | extend user state</span>
+<a name="line-288"></a><span class='comment'>--</span>
+<a name="line-289"></a><span class='comment'>-- Run an arrow with an extended user state component, The old component</span>
+<a name="line-290"></a><span class='comment'>-- is stored together with a new one in a pair, the arrow is executed with this</span>
+<a name="line-291"></a><span class='comment'>-- extended state, and the augmented state component is removed form the state</span>
+<a name="line-292"></a><span class='comment'>-- when the arrow has finished its execution</span>
+<a name="line-293"></a>
+<a name="line-294"></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-295"></a><span class='definition'>withExtendedUserState</span> <span class='varid'>initS1</span> <span class='varid'>f</span>
+<a name="line-296"></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-297"></a>      <span class='keyword'>do</span>
+<a name="line-298"></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-299"></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-300"></a>					      <span class='layout'>}</span>
+<a name="line-301"></a>				   <span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-302"></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-303"></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-304"></a>			<span class='layout'>}</span>
+<a name="line-305"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>
+<a name="line-306"></a>	     <span class='layout'>)</span>
+<a name="line-307"></a>
+<a name="line-308"></a><span class='comment'>-- | change the type of user state</span>
+<a name="line-309"></a><span class='comment'>--</span>
+<a name="line-310"></a><span class='comment'>-- This conversion is useful, when running a state arrow with another</span>
+<a name="line-311"></a><span class='comment'>-- structure of the user state, e.g. with () when executing some IO arrows</span>
+<a name="line-312"></a>
+<a name="line-313"></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-314"></a><span class='definition'>withOtherUserState</span> <span class='varid'>s1</span> <span class='varid'>f</span>
+<a name="line-315"></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-316"></a>      <span class='keyword'>do</span>
+<a name="line-317"></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-318"></a>					 <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>s1</span>
+<a name="line-319"></a>					 <span class='layout'>}</span>
+<a name="line-320"></a>			      <span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-321"></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-322"></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-323"></a>			<span class='layout'>}</span>
+<a name="line-324"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>
+<a name="line-325"></a>	     <span class='layout'>)</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><span class='comment'>{- $system state params -}</span>
+<a name="line-330"></a>
+<a name="line-331"></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-332"></a><span class='definition'>getSysParam</span> <span class='varid'>f</span>
+<a name="line-333"></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-334"></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-335"></a>
+<a name="line-336"></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-337"></a><span class='definition'>changeSysParam</span> <span class='varid'>cf</span>
+<a name="line-338"></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-339"></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-340"></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-341"></a>      <span class='layout'>)</span>
+<a name="line-342"></a>    <span class='keyword'>where</span>
+<a name="line-343"></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-344"></a>
+<a name="line-345"></a><span class='comment'>-- | store a single XML tree in global state under a given attribute name</span>
+<a name="line-346"></a>
+<a name="line-347"></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-348"></a><span class='definition'>setParam</span> <span class='varid'>n</span>
+<a name="line-349"></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-350"></a>
+<a name="line-351"></a><span class='comment'>-- | store a list of XML trees in global system state under a given attribute name</span>
+<a name="line-352"></a>
+<a name="line-353"></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-354"></a><span class='definition'>setParamList</span> <span class='varid'>n</span>
+<a name="line-355"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>addE</span>
+<a name="line-356"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-357"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>
+<a name="line-358"></a>    <span class='keyword'>where</span>
+<a name="line-359"></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-360"></a>
+<a name="line-361"></a><span class='comment'>-- | remove an entry in global state, arrow input remains unchanged</span>
+<a name="line-362"></a>
+<a name="line-363"></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-364"></a><span class='definition'>unsetParam</span> <span class='varid'>n</span>
+<a name="line-365"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>delE</span>
+<a name="line-366"></a>    <span class='keyword'>where</span>
+<a name="line-367"></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-368"></a>
+<a name="line-369"></a><span class='comment'>-- | read an attribute value from global state</span>
+<a name="line-370"></a>
+<a name="line-371"></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-372"></a><span class='definition'>getParam</span> <span class='varid'>n</span>
+<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>
+<a name="line-374"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-375"></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-376"></a>
+<a name="line-377"></a><span class='comment'>-- | read all attributes from global state</span>
+<a name="line-378"></a>
+<a name="line-379"></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-380"></a><span class='definition'>getAllParams</span>
+<a name="line-381"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_attrList</span>
+<a name="line-382"></a>
+<a name="line-383"></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-384"></a><span class='definition'>setParamString</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-385"></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-386"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-387"></a>		<span class='varid'>setParam</span> <span class='varid'>n</span>
+<a name="line-388"></a>	      <span class='layout'>)</span>
+<a name="line-389"></a>
+<a name="line-390"></a><span class='comment'>-- | read a string value from global state,</span>
+<a name="line-391"></a><span class='comment'>-- if parameter not set \"\" is returned</span>
+<a name="line-392"></a>
+<a name="line-393"></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-394"></a><span class='definition'>getParamString</span> <span class='varid'>n</span>
+<a name="line-395"></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-396"></a>
+<a name="line-397"></a><span class='comment'>-- | store an int value in global state</span>
+<a name="line-398"></a>
+<a name="line-399"></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-400"></a><span class='definition'>setParamInt</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-401"></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-402"></a>
+<a name="line-403"></a><span class='comment'>-- | read an int value from global state</span>
+<a name="line-404"></a><span class='comment'>-- </span>
+<a name="line-405"></a><span class='comment'>-- &gt; getParamInt 0 myIntAttr</span>
+<a name="line-406"></a>
+<a name="line-407"></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-408"></a><span class='definition'>getParamInt</span> <span class='varid'>def</span> <span class='varid'>n</span>
+<a name="line-409"></a>    <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>n</span>
+<a name="line-410"></a>      <span class='varop'>&gt;&gt;^</span>
+<a name="line-411"></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-412"></a>
+<a name="line-413"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-414"></a>
+<a name="line-415"></a><span class='comment'>-- | reset global error variable</span>
+<a name="line-416"></a>
+<a name="line-417"></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-418"></a><span class='definition'>changeErrorStatus</span> <span class='varid'>f</span>
+<a name="line-419"></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-420"></a>
+<a name="line-421"></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-422"></a><span class='definition'>clearErrStatus</span>
+<a name="line-423"></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-424"></a>
+<a name="line-425"></a><span class='comment'>-- | set global error variable</span>
+<a name="line-426"></a>
+<a name="line-427"></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-428"></a><span class='definition'>setErrStatus</span>
+<a name="line-429"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>max</span>
+<a name="line-430"></a>
+<a name="line-431"></a><span class='comment'>-- | read current global error status</span>
+<a name="line-432"></a>
+<a name="line-433"></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-434"></a><span class='definition'>getErrStatus</span>
+<a name="line-435"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_errorStatus</span>
+<a name="line-436"></a>
+<a name="line-437"></a><span class='comment'>-- | raise the global error status level to that of the input tree</span>
+<a name="line-438"></a>
+<a name="line-439"></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-440"></a><span class='definition'>setErrMsgStatus</span>
+<a name="line-441"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span>
+<a name="line-442"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-443"></a>		<span class='varid'>setErrStatus</span>
+<a name="line-444"></a>	      <span class='layout'>)</span>
+<a name="line-445"></a>
+<a name="line-446"></a><span class='comment'>-- | set the error message handler and the flag for collecting the errors</span>
+<a name="line-447"></a>
+<a name="line-448"></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-449"></a><span class='definition'>setErrorMsgHandler</span> <span class='varid'>c</span> <span class='varid'>f</span>
+<a name="line-450"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>
+<a name="line-451"></a>    <span class='keyword'>where</span>
+<a name="line-452"></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-453"></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-454"></a>
+<a name="line-455"></a><span class='comment'>-- | error message handler for output to stderr</span>
+<a name="line-456"></a>		  
+<a name="line-457"></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-458"></a><span class='definition'>sysErrorMsg</span>
+<a name="line-459"></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-460"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-461"></a>		<span class='varid'>arr</span> <span class='varid'>formatErrorMsg</span>
+<a name="line-462"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-463"></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-464"></a>		  <span class='keyword'>do</span>
+<a name="line-465"></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-466"></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-467"></a>		<span class='layout'>)</span>
+<a name="line-468"></a>	      <span class='layout'>)</span>
+<a name="line-469"></a>    <span class='keyword'>where</span>
+<a name="line-470"></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-471"></a>    <span class='varid'>errClass</span> <span class='varid'>l</span>
+<a name="line-472"></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-473"></a>	  <span class='keyword'>where</span>
+<a name="line-474"></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-475"></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-476"></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-477"></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-478"></a>			  <span class='keyglyph'>]</span>
+<a name="line-479"></a>
+<a name="line-480"></a>
+<a name="line-481"></a><span class='comment'>-- | the default error message handler: error output to stderr</span>
+<a name="line-482"></a>
+<a name="line-483"></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-484"></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-485"></a>
+<a name="line-486"></a><span class='comment'>-- | error message handler for collecting errors</span>
+<a name="line-487"></a>
+<a name="line-488"></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-489"></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-490"></a>
+<a name="line-491"></a><span class='comment'>-- | error message handler for output to stderr and collecting</span>
+<a name="line-492"></a>
+<a name="line-493"></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-494"></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-495"></a>
+<a name="line-496"></a><span class='comment'>-- | error message handler for ignoring errors</span>
+<a name="line-497"></a>
+<a name="line-498"></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-499"></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-500"></a>
+<a name="line-501"></a><span class='comment'>-- |</span>
+<a name="line-502"></a><span class='comment'>-- if error messages are collected by the error handler for</span>
+<a name="line-503"></a><span class='comment'>-- processing these messages by the calling application,</span>
+<a name="line-504"></a><span class='comment'>-- this arrow reads the stored messages and clears the error message store</span>
+<a name="line-505"></a>
+<a name="line-506"></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-507"></a><span class='definition'>getErrorMessages</span>
+<a name="line-508"></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-509"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-510"></a>      <span class='varid'>clearErrorMsgList</span>					<span class='comment'>-- clear the error list in the system state</span>
+<a name="line-511"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-512"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>
+<a name="line-513"></a>
+<a name="line-514"></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-515"></a><span class='definition'>clearErrorMsgList</span>
+<a name="line-516"></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-517"></a>
+<a name="line-518"></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-519"></a><span class='definition'>addToErrorMsgList</span>
+<a name="line-520"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>
+<a name="line-521"></a>    <span class='keyword'>where</span>
+<a name="line-522"></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-523"></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-524"></a>	     <span class='keyword'>else</span> <span class='varid'>s</span>
+<a name="line-525"></a>
+<a name="line-526"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-527"></a>
+<a name="line-528"></a><span class='comment'>-- |</span>
+<a name="line-529"></a><span class='comment'>-- filter error messages from input trees and issue errors</span>
+<a name="line-530"></a>
+<a name="line-531"></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-532"></a><span class='definition'>filterErrorMsg</span>
+<a name="line-533"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>setErrMsgStatus</span>
+<a name="line-534"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-535"></a>	<span class='varid'>sysErrorMsg</span>
+<a name="line-536"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-537"></a>	<span class='varid'>addToErrorMsgList</span>
+<a name="line-538"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-539"></a>	<span class='varid'>none</span>
+<a name="line-540"></a>      <span class='layout'>)</span>
+<a name="line-541"></a>      <span class='varop'>`when`</span>
+<a name="line-542"></a>      <span class='varid'>isError</span>
+<a name="line-543"></a>
+<a name="line-544"></a><span class='comment'>-- | generate a warnig message</span>
+<a name="line-545"></a>
+<a name="line-546"></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-547"></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-548"></a>
+<a name="line-549"></a><a name="issueErr"></a><span class='comment'>-- | generate an error message</span>
+<a name="line-550"></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-551"></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-552"></a>
+<a name="line-553"></a><span class='comment'>-- | generate a fatal error message, e.g. document not found</span>
+<a name="line-554"></a>
+<a name="line-555"></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-556"></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-557"></a>
+<a name="line-558"></a><span class='comment'>-- |</span>
+<a name="line-559"></a><span class='comment'>-- add the error level and the module where the error occured</span>
+<a name="line-560"></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-561"></a><span class='comment'>-- called by 'setDocumentStatusFromSystemState' when the system state indicates an error</span>
+<a name="line-562"></a>
+<a name="line-563"></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-564"></a><span class='definition'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>
+<a name="line-565"></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-566"></a>		   <span class='varop'>&lt;+&gt;</span>
+<a name="line-567"></a>		   <span class='varid'>sattr</span> <span class='varid'>a_module</span> <span class='varid'>msg</span>
+<a name="line-568"></a>		 <span class='layout'>)</span>
+<a name="line-569"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-570"></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-571"></a>	  <span class='keyword'>then</span> <span class='varid'>setChildren</span> <span class='conid'>[]</span>
+<a name="line-572"></a>	  <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-573"></a>	<span class='layout'>)</span>
+<a name="line-574"></a>      <span class='layout'>)</span>
+<a name="line-575"></a>      <span class='varop'>`when`</span>
+<a name="line-576"></a>      <span class='varid'>isRoot</span>
+<a name="line-577"></a>
+<a name="line-578"></a><span class='comment'>-- |</span>
+<a name="line-579"></a><span class='comment'>-- check whether the error level attribute in the system state</span>
+<a name="line-580"></a><span class='comment'>-- is set to error, in this case the children of the document root are</span>
+<a name="line-581"></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-582"></a><span class='comment'>-- else nothing is changed</span>
+<a name="line-583"></a>
+<a name="line-584"></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-585"></a><span class='definition'>setDocumentStatusFromSystemState</span> <span class='varid'>msg</span>
+<a name="line-586"></a>    <span class='keyglyph'>=</span> <span class='varid'>setStatus</span> <span class='varop'>$&lt;</span> <span class='varid'>getErrStatus</span>
+<a name="line-587"></a>    <span class='keyword'>where</span>
+<a name="line-588"></a>    <span class='varid'>setStatus</span> <span class='varid'>level</span>
+<a name="line-589"></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-590"></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-591"></a>
+<a name="line-592"></a>
+<a name="line-593"></a><span class='comment'>-- |</span>
+<a name="line-594"></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-595"></a>
+<a name="line-596"></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-597"></a><span class='definition'>documentStatusOk</span>
+<a name="line-598"></a>    <span class='keyglyph'>=</span> <span class='varid'>isRoot</span>
+<a name="line-599"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-600"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_status</span>
+<a name="line-601"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-602"></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-603"></a>	<span class='layout'>)</span>
+<a name="line-604"></a>	<span class='varop'>`guards`</span>
+<a name="line-605"></a>	<span class='varid'>this</span>
+<a name="line-606"></a>      <span class='layout'>)</span>
+<a name="line-607"></a>
+<a name="line-608"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-609"></a>
+<a name="line-610"></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-611"></a><span class='comment'>-- the input must be an absolute URI</span>
+<a name="line-612"></a>
+<a name="line-613"></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-614"></a><span class='definition'>setBaseURI</span>
+<a name="line-615"></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-616"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-617"></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-618"></a>
+<a name="line-619"></a><span class='comment'>-- | read the base URI from the globale state</span>
+<a name="line-620"></a>
+<a name="line-621"></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-622"></a><span class='definition'>getBaseURI</span>
+<a name="line-623"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_baseURI</span>
+<a name="line-624"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-625"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDefaultBaseURI</span>
+<a name="line-626"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-627"></a>	  <span class='varid'>setBaseURI</span>		
+<a name="line-628"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-629"></a>	  <span class='varid'>getBaseURI</span>
+<a name="line-630"></a>	<span class='layout'>)</span>
+<a name="line-631"></a>	<span class='varop'>`when`</span>
+<a name="line-632"></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-633"></a>      <span class='layout'>)</span>
+<a name="line-634"></a>
+<a name="line-635"></a><span class='comment'>-- | change the base URI with a possibly relative URI, can be used for</span>
+<a name="line-636"></a><span class='comment'>-- evaluating the xml:base attribute. Returns the new absolute base URI.</span>
+<a name="line-637"></a><span class='comment'>-- Fails, if input is not parsable with parseURIReference</span>
+<a name="line-638"></a><span class='comment'>--</span>
+<a name="line-639"></a><span class='comment'>-- see also: 'setBaseURI', 'mkAbsURI'</span>
+<a name="line-640"></a>
+<a name="line-641"></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-642"></a><span class='definition'>changeBaseURI</span>
+<a name="line-643"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkAbsURI</span>
+<a name="line-644"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-645"></a>      <span class='varid'>setBaseURI</span>
+<a name="line-646"></a>
+<a name="line-647"></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-648"></a><span class='comment'>-- else the parameter, must be called before any document is read</span>
+<a name="line-649"></a>
+<a name="line-650"></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-651"></a><span class='definition'>setDefaultBaseURI</span> <span class='varid'>base</span>
+<a name="line-652"></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-653"></a>	<span class='keyword'>then</span> <span class='varid'>arrIO</span> <span class='varid'>getDir</span>
+<a name="line-654"></a>	<span class='keyword'>else</span> <span class='varid'>constA</span> <span class='varid'>base</span>
+<a name="line-655"></a>      <span class='layout'>)</span>
+<a name="line-656"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-657"></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-658"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-659"></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-660"></a>    <span class='keyword'>where</span>
+<a name="line-661"></a>    <span class='varid'>getDir</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-662"></a>	       <span class='varid'>cwd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCurrentDirectory</span>
+<a name="line-663"></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-664"></a>
+<a name="line-665"></a>    <span class='comment'>-- under Windows getCurrentDirectory returns something like: "c:\path\to\file"</span>
+<a name="line-666"></a>    <span class='comment'>-- backslaches are not allowed in URIs and paths must start with a /</span>
+<a name="line-667"></a>    <span class='comment'>-- so this is transformed into "/c:/path/to/file"</span>
+<a name="line-668"></a>
+<a name="line-669"></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-670"></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-671"></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-672"></a>    <span class='varid'>normalize</span> <span class='varid'>wd'</span>
+<a name="line-673"></a>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>wd'</span>
+<a name="line-674"></a>				 
+<a name="line-675"></a>    <span class='varid'>win32ToUriChar</span> <span class='chr'>'\\'</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span>
+<a name="line-676"></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-677"></a>
+<a name="line-678"></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-679"></a>
+<a name="line-680"></a>
+<a name="line-681"></a><span class='comment'>-- | get the default base URI</span>
+<a name="line-682"></a>
+<a name="line-683"></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-684"></a><span class='definition'>getDefaultBaseURI</span>
+<a name="line-685"></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-686"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-687"></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-688"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-689"></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-690"></a>
+<a name="line-691"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-692"></a>
+<a name="line-693"></a><span class='comment'>-- | remember base uri, run an arrow and restore the base URI, used with external entity substitution</span>
+<a name="line-694"></a>
+<a name="line-695"></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-696"></a><span class='definition'>runInLocalURIContext</span> <span class='varid'>f</span>
+<a name="line-697"></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-698"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-699"></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-700"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-701"></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-702"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-703"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>
+<a name="line-704"></a>
+<a name="line-705"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-706"></a>
+<a name="line-707"></a><span class='comment'>-- | set the global trace level</span>
+<a name="line-708"></a>
+<a name="line-709"></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-710"></a><span class='definition'>setTraceLevel</span> <span class='varid'>l</span>
+<a name="line-711"></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-712"></a>
+<a name="line-713"></a><span class='comment'>-- | read the global trace level</span>
+<a name="line-714"></a>
+<a name="line-715"></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-716"></a><span class='definition'>getTraceLevel</span>
+<a name="line-717"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_trace</span>
+<a name="line-718"></a>
+<a name="line-719"></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-720"></a>
+<a name="line-721"></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-722"></a><span class='definition'>withTraceLevel</span> <span class='varid'>level</span> <span class='varid'>f</span>
+<a name="line-723"></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-724"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-725"></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-726"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-727"></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-728"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-729"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>
+<a name="line-730"></a>    <span class='keyword'>where</span>
+<a name="line-731"></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-732"></a>    <span class='varid'>restoreTraceLevel</span>
+<a name="line-733"></a>	<span class='keyglyph'>=</span> <span class='varid'>setTraceLevel</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
+<a name="line-734"></a>
+<a name="line-735"></a><span class='comment'>-- | apply a trace arrow and issue message to stderr</span>
+<a name="line-736"></a>
+<a name="line-737"></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-738"></a><span class='definition'>trace</span> <span class='varid'>level</span> <span class='varid'>trc</span>
+<a name="line-739"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trc</span>
+<a name="line-740"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-741"></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-742"></a>				<span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='varid'>s</span>
+<a name="line-743"></a>				<span class='varid'>hFlush</span> <span class='varid'>stderr</span>
+<a name="line-744"></a>			      <span class='layout'>)</span>
+<a name="line-745"></a>		      <span class='layout'>)</span>
+<a name="line-746"></a>	      <span class='layout'>)</span>
+<a name="line-747"></a>      <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>
+<a name="line-748"></a>	       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-749"></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-750"></a>	     <span class='layout'>)</span>
+<a name="line-751"></a>
+<a name="line-752"></a><a name="traceMsg"></a><span class='comment'>-- | issue a string message as trace </span>
+<a name="line-753"></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-754"></a><span class='definition'>traceMsg</span> <span class='varid'>level</span> <span class='varid'>msg</span>
+<a name="line-755"></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-756"></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-757"></a>	      <span class='layout'>)</span>
+<a name="line-758"></a>
+<a name="line-759"></a><a name="traceString"></a><span class='comment'>-- | issue the string input of an arrow</span>
+<a name="line-760"></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-761"></a><span class='definition'>traceString</span> <span class='varid'>level</span> <span class='varid'>f</span>
+<a name="line-762"></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-763"></a>
+<a name="line-764"></a><span class='comment'>-- | issue the source representation of a document if trace level &gt;= 3</span>
+<a name="line-765"></a><span class='comment'>--</span>
+<a name="line-766"></a><span class='comment'>-- for better readability the source is formated with indentDoc</span>
+<a name="line-767"></a>
+<a name="line-768"></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-769"></a><span class='definition'>traceSource</span> 
+<a name="line-770"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>3</span> <span class='varop'>$</span>
+<a name="line-771"></a>      <span class='varid'>xshow</span>
+<a name="line-772"></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-773"></a>			       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-774"></a>			       <span class='varid'>getChildren</span>
+<a name="line-775"></a>			     <span class='layout'>)</span>
+<a name="line-776"></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-777"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentDoc</span>
+<a name="line-778"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span>
+<a name="line-779"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isElem</span>
+<a name="line-780"></a>			     <span class='layout'>)</span>
+<a name="line-781"></a>		<span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-782"></a>		<span class='keyglyph'>]</span>
+<a name="line-783"></a>      <span class='layout'>)</span>
+<a name="line-784"></a>
+<a name="line-785"></a><a name="traceTree"></a><span class='comment'>-- | issue the tree representation of a document if trace level &gt;= 4</span>
+<a name="line-786"></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-787"></a><span class='definition'>traceTree</span>
+<a name="line-788"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>4</span> <span class='varop'>$</span>
+<a name="line-789"></a>      <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-790"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-791"></a>	      <span class='varid'>addHeadlineToXmlDoc</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>
+<a name="line-796"></a><span class='comment'>-- | trace a main computation step</span>
+<a name="line-797"></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-798"></a>
+<a name="line-799"></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-800"></a><span class='definition'>traceDoc</span> <span class='varid'>msg</span>
+<a name="line-801"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='varid'>msg</span>
+<a name="line-802"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-803"></a>      <span class='varid'>traceSource</span>
+<a name="line-804"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-805"></a>      <span class='varid'>traceTree</span>
+<a name="line-806"></a>
+<a name="line-807"></a><span class='comment'>-- | trace the global state</span>
+<a name="line-808"></a>
+<a name="line-809"></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-810"></a><span class='definition'>traceState</span>
+<a name="line-811"></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-812"></a>			<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-813"></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-814"></a>		      <span class='layout'>)</span>
+<a name="line-815"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-816"></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-817"></a>	      <span class='layout'>)</span>
+<a name="line-818"></a>      <span class='keyword'>where</span>
+<a name="line-819"></a>      <span class='comment'>-- formatParam	:: (String, XmlTrees) -&gt; IOStateArrow s b1 XmlTree</span>
+<a name="line-820"></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-821"></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-822"></a>
+<a name="line-823"></a><span class='comment'>-- ----------------------------------------------------------</span>
+<a name="line-824"></a>
+<a name="line-825"></a><span class='comment'>-- | compute the absolut URI for a given URI and a base URI</span>
+<a name="line-826"></a>
+<a name="line-827"></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-828"></a><span class='definition'>expandURIString</span> <span class='varid'>uri</span> <span class='varid'>base</span>
+<a name="line-829"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-830"></a>      <span class='varid'>base'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>
+<a name="line-831"></a>      <span class='varid'>uri'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>
+<a name="line-832"></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-833"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>show</span> <span class='varid'>abs'</span>
+<a name="line-834"></a>
+<a name="line-835"></a><span class='comment'>-- | arrow variant of 'expandURIString', fails if 'expandURIString' returns Nothing</span>
+<a name="line-836"></a>
+<a name="line-837"></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-838"></a><span class='definition'>expandURI</span>
+<a name="line-839"></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-840"></a>
+<a name="line-841"></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-842"></a>
+<a name="line-843"></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-844"></a><span class='definition'>mkAbsURI</span>
+<a name="line-845"></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-846"></a>
+<a name="line-847"></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-848"></a><span class='comment'>--</span>
+<a name="line-849"></a><span class='comment'>-- See Network.URI for URI components</span>
+<a name="line-850"></a>
+<a name="line-851"></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-852"></a><span class='definition'>getSchemeFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>scheme</span>
+<a name="line-853"></a>    <span class='keyword'>where</span>
+<a name="line-854"></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-855"></a>
+<a name="line-856"></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-857"></a>
+<a name="line-858"></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-859"></a><span class='definition'>getRegNameFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>host</span>
+<a name="line-860"></a>    <span class='keyword'>where</span>
+<a name="line-861"></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-862"></a>
+<a name="line-863"></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-864"></a>
+<a name="line-865"></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-866"></a><span class='definition'>getPortFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>port</span>
+<a name="line-867"></a>    <span class='keyword'>where</span>
+<a name="line-868"></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-869"></a>
+<a name="line-870"></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-871"></a>
+<a name="line-872"></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-873"></a><span class='definition'>getUserInfoFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>ui</span>
+<a name="line-874"></a>    <span class='keyword'>where</span>
+<a name="line-875"></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-876"></a>
+<a name="line-877"></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-878"></a>
+<a name="line-879"></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-880"></a><span class='definition'>getPathFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriPath</span>
+<a name="line-881"></a>
+<a name="line-882"></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-883"></a>
+<a name="line-884"></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-885"></a><span class='definition'>getQueryFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriQuery</span>
+<a name="line-886"></a>
+<a name="line-887"></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-888"></a>
+<a name="line-889"></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-890"></a><span class='definition'>getFragmentFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriFragment</span>
+<a name="line-891"></a>
+<a name="line-892"></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-893"></a>
+<a name="line-894"></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-895"></a><span class='definition'>getPartFromURI</span> <span class='varid'>sel</span>
+<a name="line-896"></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-897"></a>      <span class='keyword'>where</span>
+<a name="line-898"></a>      <span class='varid'>getPart</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-899"></a>		  <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>s</span>
+<a name="line-900"></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-901"></a>
+<a name="line-902"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow-XmlRegex.html b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlRegex.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow-XmlRegex.html
@@ -0,0 +1,314 @@
+<!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     : Text.XML.HXT.Arrow.XmlRegex
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   Regular Expression Matcher working on lists of XmlTrees
+<a name="line-13"></a>
+<a name="line-14"></a>   It's intendet to import this module with an explicit
+<a name="line-15"></a>   import declaration for not spoiling the namespace
+<a name="line-16"></a>   with these somewhat special arrows
+<a name="line-17"></a>
+<a name="line-18"></a>-}</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-21"></a>
+<a name="line-22"></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'>XmlRegex</span>
+<a name="line-23"></a>    <span class='layout'>(</span> <span class='conid'>XmlRegex</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>mkZero</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>mkUnit</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>mkPrim</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>mkPrimA</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>mkDot</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>mkStar</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>mkAlt</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>mkSeq</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>mkRep</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>mkRng</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>mkOpt</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>nullable</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>delta</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>matchXmlRegex</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>splitXmlRegex</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>scanXmlRegex</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>matchRegexA</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>splitRegexA</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>scanRegexA</span>
+<a name="line-43"></a>    <span class='layout'>)</span>
+<a name="line-44"></a><span class='keyword'>where</span>
+<a name="line-45"></a>
+<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-49"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-53"></a><span class='comment'>-- the exported regex arrows</span>
+<a name="line-54"></a>
+<a name="line-55"></a><span class='comment'>-- | check whether a sequence of XmlTrees match an Xml regular expression</span>
+<a name="line-56"></a><span class='comment'>--</span>
+<a name="line-57"></a><span class='comment'>-- The arrow for 'matchXmlRegex'.</span>
+<a name="line-58"></a><span class='comment'>--</span>
+<a name="line-59"></a><span class='comment'>-- The expession is build up from simple arrows acting as predicate ('mkPrimA') for</span>
+<a name="line-60"></a><span class='comment'>-- an XmlTree and of the usual cobinators for sequence ('mkSeq'), repetition</span>
+<a name="line-61"></a><span class='comment'>-- ('mkStar', mkRep', 'mkRng') and choice ('mkAlt', 'mkOpt')</span>
+<a name="line-62"></a>
+<a name="line-63"></a><a name="matchRegexA"></a><span class='definition'>matchRegexA</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</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'>XmlTrees</span>
+<a name="line-64"></a><span class='definition'>matchRegexA</span> <span class='varid'>re</span> <span class='varid'>ts</span>	<span class='keyglyph'>=</span> <span class='varid'>ts</span> <span class='varop'>&gt;&gt;.</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>matchXmlRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-65"></a>
+<a name="line-66"></a><span class='comment'>-- | split the sequence of trees computed by the filter a into</span>
+<a name="line-67"></a><span class='comment'>--</span>
+<a name="line-68"></a><span class='comment'>-- The arrow for 'splitXmlRegex'.</span>
+<a name="line-69"></a><span class='comment'>--</span>
+<a name="line-70"></a><span class='comment'>-- a first part matching the regex and a rest,</span>
+<a name="line-71"></a><span class='comment'>-- if a prefix of the input sequence does not match the regex, the arrow fails</span>
+<a name="line-72"></a><span class='comment'>-- else the pair containing the result lists is returned</span>
+<a name="line-73"></a>
+<a name="line-74"></a><a name="splitRegexA"></a><span class='definition'>splitRegexA</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</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='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-75"></a><span class='definition'>splitRegexA</span> <span class='varid'>re</span> <span class='varid'>ts</span>	<span class='keyglyph'>=</span> <span class='varid'>ts</span> <span class='varop'>&gt;&gt;.</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>splitXmlRegex</span> <span class='varid'>re</span><span class='layout'>)</span>
+<a name="line-76"></a>
+<a name="line-77"></a><span class='comment'>-- | scan the input sequence with a regex and give the result as a list of lists of trees back</span>
+<a name="line-78"></a><span class='comment'>-- the regex must at least match one input tree, so the empty sequence should not match the regex</span>
+<a name="line-79"></a><span class='comment'>--</span>
+<a name="line-80"></a><span class='comment'>-- The arrow for 'scanXmlRegex'.</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="scanRegexA"></a><span class='definition'>scanRegexA</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</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'>XmlTrees</span>
+<a name="line-83"></a><span class='definition'>scanRegexA</span> <span class='varid'>re</span> <span class='varid'>ts</span>	<span class='keyglyph'>=</span> <span class='varid'>ts</span> <span class='varop'>&gt;&gt;.</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>scanXmlRegex</span> <span class='varid'>re</span><span class='layout'>)</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="XmlRegex"></a><span class='keyword'>data</span> <span class='conid'>XmlRegex</span>	<span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='conid'>String</span>
+<a name="line-88"></a>		<span class='keyglyph'>|</span> <span class='conid'>Unit</span>
+<a name="line-89"></a>		<span class='keyglyph'>|</span> <span class='conid'>Sym</span> <span class='layout'>(</span><span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-90"></a>		<span class='keyglyph'>|</span> <span class='conid'>Dot</span>
+<a name="line-91"></a>		<span class='keyglyph'>|</span> <span class='conid'>Star</span> <span class='conid'>XmlRegex</span>
+<a name="line-92"></a>		<span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='conid'>XmlRegex</span> <span class='conid'>XmlRegex</span>
+<a name="line-93"></a>		<span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='conid'>XmlRegex</span> <span class='conid'>XmlRegex</span>
+<a name="line-94"></a>		<span class='keyglyph'>|</span> <span class='conid'>Rep</span> <span class='conid'>Int</span> <span class='conid'>XmlRegex</span>		<span class='comment'>-- 1 or more repetitions</span>
+<a name="line-95"></a>		<span class='keyglyph'>|</span> <span class='conid'>Rng</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='conid'>XmlRegex</span>	<span class='comment'>-- n..m repetitions</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><span class='comment'>{- just for documentation
+<a name="line-100"></a>
+<a name="line-101"></a>class Inv a where
+<a name="line-102"></a>    inv		:: a -&gt; Bool
+<a name="line-103"></a>
+<a name="line-104"></a>instance Inv XmlRegex where
+<a name="line-105"></a>    inv (Zero _)	= True
+<a name="line-106"></a>    inv Unit		= True
+<a name="line-107"></a>    inv (Sym p)		= p holds for some XmlTrees
+<a name="line-108"></a>    inv Dot		= True
+<a name="line-109"></a>    inv (Star e)	= inv e
+<a name="line-110"></a>    inv (Alt e1 e2)	= inv e1 &amp;&amp;
+<a name="line-111"></a>			  inv e2
+<a name="line-112"></a>    inv (Seq e1 e2)	= inv e1 &amp;&amp;
+<a name="line-113"></a>			  inv e2
+<a name="line-114"></a>    inv (Rep i e)	= i &gt; 0 &amp;&amp; inv e
+<a name="line-115"></a>    inv (Rng i j e)	= (i &lt; j || (i == j &amp;&amp; i &gt; 1)) &amp;&amp;
+<a name="line-116"></a>			  inv e
+<a name="line-117"></a>-}</span>
+<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'>-- smart constructors</span>
+<a name="line-121"></a>
+<a name="line-122"></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'>XmlRegex</span>
+<a name="line-123"></a><span class='definition'>mkZero</span>		<span class='keyglyph'>=</span> <span class='conid'>Zero</span>
+<a name="line-124"></a>
+<a name="line-125"></a><a name="mkUnit"></a><span class='definition'>mkUnit</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span>
+<a name="line-126"></a><span class='definition'>mkUnit</span>		<span class='keyglyph'>=</span> <span class='conid'>Unit</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="mkPrim"></a><span class='definition'>mkPrim</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-129"></a><span class='definition'>mkPrim</span>		<span class='keyglyph'>=</span> <span class='conid'>Sym</span>
+<a name="line-130"></a>
+<a name="line-131"></a><a name="mkPrimA"></a><span class='definition'>mkPrimA</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'>XmlRegex</span>
+<a name="line-132"></a><span class='definition'>mkPrimA</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='varid'>mkPrim</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'>runLA</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-133"></a>
+<a name="line-134"></a><a name="mkDot"></a><span class='definition'>mkDot</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span>
+<a name="line-135"></a><span class='definition'>mkDot</span>	<span class='keyglyph'>=</span> <span class='conid'>Dot</span>
+<a name="line-136"></a>
+<a name="line-137"></a><a name="mkStar"></a><span class='definition'>mkStar</span>			<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-138"></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-139"></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-140"></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-141"></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-142"></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-143"></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-144"></a>
+<a name="line-145"></a><a name="rmStar"></a><span class='definition'>rmStar</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-146"></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-147"></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-148"></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-149"></a><span class='definition'>rmStar</span> <span class='varid'>e1</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="mkAlt"></a><span class='definition'>mkAlt</span>					<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-152"></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-153"></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-154"></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-155"></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-156"></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'>mkPrim</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-157"></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-158"></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-159"></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-160"></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-161"></a>
+<a name="line-162"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span>				<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-163"></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-164"></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-165"></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-166"></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-167"></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-168"></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-169"></a>
+<a name="line-170"></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'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-171"></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-172"></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-173"></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-174"></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-175"></a>
+<a name="line-176"></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'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-177"></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-178"></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-179"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='sel'>_e</span>
+<a name="line-180"></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-181"></a>				  <span class='str'>"illegal range "</span> <span class='varop'>++</span>
+<a name="line-182"></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-183"></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-184"></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-185"></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-186"></a>
+<a name="line-187"></a><a name="mkOpt"></a><span class='definition'>mkOpt</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-188"></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-189"></a>
+<a name="line-190"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-191"></a>
+<a name="line-192"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>XmlRegex</span> <span class='keyword'>where</span>
+<a name="line-193"></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-194"></a>    <span class='varid'>show</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='str'>"()"</span>
+<a name="line-195"></a>    <span class='varid'>show</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='str'>"{single tree pred}"</span>
+<a name="line-196"></a>    <span class='varid'>show</span> <span class='conid'>Dot</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'>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-198"></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-199"></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-200"></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-201"></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-202"></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-203"></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-204"></a>
+<a name="line-205"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="nullable"></a><span class='definition'>nullable</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-208"></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-209"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-210"></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 tree</span>
+<a name="line-211"></a><span class='definition'>nullable</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-212"></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-213"></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-214"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
+<a name="line-215"></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-216"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
+<a name="line-217"></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-218"></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-219"></a>			  <span class='varid'>nullable</span> <span class='varid'>e</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="delta"></a><span class='definition'>delta</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-224"></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-225"></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-226"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>
+<a name="line-227"></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-228"></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-229"></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-230"></a>			  <span class='str'>"unexpected tree "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>
+<a name="line-231"></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-232"></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-233"></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-234"></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-235"></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-236"></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-237"></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-238"></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-239"></a>
+<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-241"></a>
+<a name="line-242"></a><a name="delta'"></a><span class='definition'>delta'</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlRegex</span>
+<a name="line-243"></a><span class='definition'>delta'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>
+<a name="line-244"></a>
+<a name="line-245"></a><span class='comment'>-- | match a sequence of XML trees with a regular expression over trees</span>
+<a name="line-246"></a><span class='comment'>--</span>
+<a name="line-247"></a><span class='comment'>-- If the input matches, the result is Nothing, else Just an error message is returned</span>
+<a name="line-248"></a>
+<a name="line-249"></a><a name="matchXmlRegex"></a><span class='definition'>matchXmlRegex</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-250"></a><span class='definition'>matchXmlRegex</span> <span class='varid'>e</span>
+<a name="line-251"></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-252"></a>    <span class='keyword'>where</span>
+<a name="line-253"></a>    <span class='varid'>res</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>er</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>er</span>
+<a name="line-254"></a>    <span class='varid'>res</span> <span class='varid'>re</span>
+<a name="line-255"></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-256"></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-257"></a>
+<a name="line-258"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-259"></a>
+<a name="line-260"></a><span class='comment'>-- | split a sequence of XML trees into a pair of a a matching prefix and a rest</span>
+<a name="line-261"></a><span class='comment'>--</span>
+<a name="line-262"></a><span class='comment'>-- If there is no matching prefix, Nothing is returned</span>
+<a name="line-263"></a>
+<a name="line-264"></a><a name="splitXmlRegex"></a><span class='definition'>splitXmlRegex</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-265"></a><span class='definition'>splitXmlRegex</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='varid'>splitXmlRegex'</span> <span class='varid'>re</span> <span class='conid'>[]</span>
+<a name="line-266"></a>
+<a name="line-267"></a><a name="splitXmlRegex'"></a><span class='definition'>splitXmlRegex'</span> 		<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-268"></a><span class='definition'>splitXmlRegex'</span> <span class='varid'>re</span> <span class='varid'>res</span> <span class='conid'>[]</span>
+<a name="line-269"></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='varid'>reverse</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-270"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-271"></a>
+<a name="line-272"></a><span class='definition'>splitXmlRegex'</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-273"></a>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-274"></a>
+<a name="line-275"></a><span class='definition'>splitXmlRegex'</span> <span class='varid'>re</span> <span class='varid'>res</span> <span class='varid'>xs</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>
+<a name="line-276"></a>    <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>res'</span>	<span class='keyglyph'>=</span> <span class='varid'>res'</span>
+<a name="line-277"></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='varid'>reverse</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-278"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-279"></a>    <span class='keyword'>where</span>
+<a name="line-280"></a>    <span class='varid'>re'</span>  <span class='keyglyph'>=</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='varid'>x</span>
+<a name="line-281"></a>    <span class='varid'>res'</span> <span class='keyglyph'>=</span> <span class='varid'>splitXmlRegex'</span> <span class='varid'>re'</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>res</span><span class='layout'>)</span> <span class='varid'>xs'</span>
+<a name="line-282"></a>
+<a name="line-283"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-284"></a>
+<a name="line-285"></a><span class='comment'>-- | scan a sequence of XML trees and split it into parts matching the given regex</span>
+<a name="line-286"></a><span class='comment'>--</span>
+<a name="line-287"></a><span class='comment'>-- If the parts cannot be split because of a missing match, or because of the</span>
+<a name="line-288"></a><span class='comment'>-- empty sequence as match, Nothing is returned</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="scanXmlRegex"></a><span class='definition'>scanXmlRegex</span>				<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>XmlTrees</span><span class='keyglyph'>]</span>
+<a name="line-291"></a><span class='definition'>scanXmlRegex</span> <span class='varid'>re</span> <span class='varid'>ts</span>			<span class='keyglyph'>=</span> <span class='varid'>scanXmlRegex'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>splitXmlRegex</span> <span class='varid'>re</span> <span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-292"></a>
+<a name="line-293"></a><a name="scanXmlRegex'"></a><span class='definition'>scanXmlRegex'</span>				<span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>XmlTrees</span><span class='keyglyph'>]</span>
+<a name="line-294"></a><span class='definition'>scanXmlRegex'</span> <span class='keyword'>_</span>  <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-295"></a><span class='definition'>scanXmlRegex'</span> <span class='keyword'>_</span>  <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>rs</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='keyglyph'>[</span><span class='varid'>rs</span><span class='keyglyph'>]</span>
+<a name="line-296"></a><span class='definition'>scanXmlRegex'</span> <span class='keyword'>_</span>  <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>	<span class='comment'>-- re is nullable (the empty word matches), nothing split off</span>
+<a name="line-297"></a>							<span class='comment'>-- would give infinite list of empty lists</span>
+<a name="line-298"></a><span class='definition'>scanXmlRegex'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>rs</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-299"></a>    <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>res</span>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-300"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>				<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>rs</span> <span class='conop'>:</span> <span class='varid'>fromJust</span> <span class='varid'>res</span><span class='layout'>)</span>
+<a name="line-301"></a>    <span class='keyword'>where</span>
+<a name="line-302"></a>    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>scanXmlRegex'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>splitXmlRegex</span> <span class='varid'>re</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-303"></a>
+<a name="line-304"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Arrow.html b/doc/hdoc/src/Text-XML-HXT-Arrow.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Arrow.html
@@ -0,0 +1,77 @@
+<!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     : Text.XML.HXT.Arrow
+<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: Arrow.hs,v 1.12 2006/11/11 15:36:04 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   The HXT arrow interface
+<a name="line-14"></a>
+<a name="line-15"></a>   The application programming interface to the arrow modules of the Haskell XML Toolbox.
+<a name="line-16"></a>   This module exports all important arrows for input, output, parsing, validating and transforming XML.
+<a name="line-17"></a>   It also exports all basic datatypes and functions of the toolbox.
+<a name="line-18"></a>
+<a name="line-19"></a>-}</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></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>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='keyword'>module</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-25"></a>
+<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'>Interface</span>
+<a name="line-27"></a>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-30"></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'>XPath</span>
+<a name="line-31"></a>
+<a name="line-32"></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'>DocumentInput</span>
+<a name="line-33"></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>
+<a name="line-34"></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'>Edit</span>
+<a name="line-35"></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'>GeneralEntitySubstitution</span>
+<a name="line-36"></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'>Namespace</span>
+<a name="line-37"></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'>ProcessDocument</span>
+<a name="line-38"></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'>ReadDocument</span>
+<a name="line-39"></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'>WriteDocument</span>
+<a name="line-40"></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'>Pickle</span>
+<a name="line-41"></a>
+<a name="line-42"></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'>XSLT</span><span class='varop'>.</span><span class='conid'>XsltArrows</span>
+<a name="line-43"></a>    <span class='layout'>)</span>
+<a name="line-44"></a><span class='keyword'>where</span>
+<a name="line-45"></a>
+<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>			<span class='comment'>-- arrow classes</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</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'>DocumentInput</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'>DocumentOutput</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'>Edit</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'>GeneralEntitySubstitution</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'>Namespace</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'>Pickle</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'>ProcessDocument</span>
+<a name="line-56"></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>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>XmlIOStateArrow</span>
+<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'>XmlRegex</span> <span class='conid'>()</span>		<span class='comment'>-- import this "by hand"</span>
+<a name="line-61"></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'>XPath</span>
+<a name="line-62"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span>				<span class='comment'>-- just for adding the module to the lib</span>
+<a name="line-63"></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'>Arrow</span><span class='varop'>.</span><span class='conid'>XPathSimple</span> <span class='keyword'>as</span> <span class='conid'>XPS</span> <span class='conid'>()</span>
+<a name="line-64"></a>
+<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'>XSLT</span><span class='varop'>.</span><span class='conid'>XsltArrows</span>
+<a name="line-66"></a>
+<a name="line-67"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-FormatXmlTree.html b/doc/hdoc/src/Text-XML-HXT-DOM-FormatXmlTree.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-FormatXmlTree.html
@@ -0,0 +1,84 @@
+<!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     : Text.XML.HXT.DOM.FormatXmlTree
+<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>   Format a xml tree in tree representation
+<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'>FormatXmlTree</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>formatXmlContents</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'>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-25"></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'>ShowXml</span>
+<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'>XmlNode</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-29"></a>
+<a name="line-30"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-31"></a>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="formatXmlContents"></a><span class='definition'>formatXmlContents</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-34"></a><span class='definition'>formatXmlContents</span> <span class='varid'>t</span>
+<a name="line-35"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>formatXmlTree</span> <span class='varid'>t</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="formatXmlTree"></a><span class='definition'>formatXmlTree</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-38"></a><span class='definition'>formatXmlTree</span>
+<a name="line-39"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatTree</span> <span class='varid'>xnode2String</span>
+<a name="line-40"></a>
+<a name="line-41"></a><a name="xnode2String"></a><span class='definition'>xnode2String</span>	<span class='keyglyph'>::</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-42"></a><span class='definition'>xnode2String</span> <span class='varid'>n</span>
+<a name="line-43"></a>    <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>n</span>
+<a name="line-44"></a>	<span class='keyglyph'>=</span> <span class='str'>"XTag "</span> <span class='varop'>++</span> <span class='varid'>showName</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>showAtts</span> <span class='varid'>n</span>
+<a name="line-45"></a>    <span class='keyglyph'>|</span> <span class='varid'>isPi</span> <span class='varid'>n</span>
+<a name="line-46"></a>	<span class='keyglyph'>=</span> <span class='str'>"XPi "</span>  <span class='varop'>++</span> <span class='varid'>showName</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>showAtts</span> <span class='varid'>n</span>
+<a name="line-47"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-48"></a>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>n</span>
+<a name="line-49"></a>    <span class='keyword'>where</span>
+<a name="line-50"></a>
+<a name="line-51"></a><a name="showName"></a><span class='definition'>showName</span>	<span class='keyglyph'>::</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-52"></a><span class='definition'>showName</span>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>showQn</span> <span class='varop'>.</span> <span class='varid'>getName</span>
+<a name="line-53"></a>
+<a name="line-54"></a><a name="showAtts"></a><span class='definition'>showAtts</span>	<span class='keyglyph'>::</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-55"></a><span class='definition'>showAtts</span>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>showAl</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span>
+<a name="line-56"></a>
+<a name="line-57"></a><a name="showAl"></a><span class='definition'>showAl</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-58"></a><span class='definition'>showAl</span> <span class='varid'>t</span>	<span class='comment'>-- (NTree (XAttr an) av)</span>
+<a name="line-59"></a>    <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>t</span>
+<a name="line-60"></a>	<span class='keyglyph'>=</span> <span class='str'>"\n|   "</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>showQn</span> <span class='varop'>.</span> <span class='varid'>getName</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-61"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-62"></a>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>t</span>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="showQn"></a><span class='definition'>showQn</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-65"></a><span class='definition'>showQn</span> <span class='varid'>n</span>
+<a name="line-66"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>
+<a name="line-67"></a>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>
+<a name="line-68"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-69"></a>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>ns</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>
+<a name="line-70"></a>    <span class='keyword'>where</span>
+<a name="line-71"></a>    <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
+<a name="line-72"></a>
+<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-74"></a>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-Interface.html
@@ -0,0 +1,46 @@
+<!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     : Text.XML.HXT.DOM.Interface
+<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>
+<a name="line-9"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-10"></a>   Stability  : stable
+<a name="line-11"></a>   Portability: portable
+<a name="line-12"></a>
+<a name="line-13"></a>   The interface to the primitive DOM data types and constants
+<a name="line-14"></a>   and utility functions
+<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'>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>
+<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'>NamespacePredicates</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'>Util</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'>XmlOptions</span>		<span class='comment'>-- predefined options</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-IsoLatinTables.html b/doc/hdoc/src/Text-XML-HXT-DOM-IsoLatinTables.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-IsoLatinTables.html
@@ -0,0 +1,729 @@
+<!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='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'>IsoLatinTables</span>
+<a name="line-2"></a><span class='keyword'>where</span>
+<a name="line-3"></a>
+<a name="line-4"></a><a name="iso_8859_2"></a><span class='definition'>iso_8859_2</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>
+<a name="line-5"></a><span class='definition'>iso_8859_2</span>
+<a name="line-6"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>
+<a name="line-7"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\728'</span> <span class='layout'>)</span>
+<a name="line-8"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\321'</span> <span class='layout'>)</span>
+<a name="line-9"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\317'</span> <span class='layout'>)</span>
+<a name="line-10"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\346'</span> <span class='layout'>)</span>
+<a name="line-11"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>
+<a name="line-12"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\350'</span> <span class='layout'>)</span>
+<a name="line-13"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\356'</span> <span class='layout'>)</span>
+<a name="line-14"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\377'</span> <span class='layout'>)</span>
+<a name="line-15"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>
+<a name="line-16"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>
+<a name="line-17"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>
+<a name="line-18"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\731'</span> <span class='layout'>)</span>
+<a name="line-19"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\322'</span> <span class='layout'>)</span>
+<a name="line-20"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\318'</span> <span class='layout'>)</span>
+<a name="line-21"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\347'</span> <span class='layout'>)</span>
+<a name="line-22"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\711'</span> <span class='layout'>)</span>
+<a name="line-23"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>
+<a name="line-24"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\351'</span> <span class='layout'>)</span>
+<a name="line-25"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\357'</span> <span class='layout'>)</span>
+<a name="line-26"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\378'</span> <span class='layout'>)</span>
+<a name="line-27"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\733'</span> <span class='layout'>)</span>
+<a name="line-28"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>
+<a name="line-29"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>
+<a name="line-30"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\340'</span> <span class='layout'>)</span>
+<a name="line-31"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\258'</span> <span class='layout'>)</span>
+<a name="line-32"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\313'</span> <span class='layout'>)</span>
+<a name="line-33"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\262'</span> <span class='layout'>)</span>
+<a name="line-34"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>
+<a name="line-35"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>
+<a name="line-36"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\282'</span> <span class='layout'>)</span>
+<a name="line-37"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\270'</span> <span class='layout'>)</span>
+<a name="line-38"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>
+<a name="line-39"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\323'</span> <span class='layout'>)</span>
+<a name="line-40"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\327'</span> <span class='layout'>)</span>
+<a name="line-41"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\336'</span> <span class='layout'>)</span>
+<a name="line-42"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\344'</span> <span class='layout'>)</span>
+<a name="line-43"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\366'</span> <span class='layout'>)</span>
+<a name="line-44"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\368'</span> <span class='layout'>)</span>
+<a name="line-45"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\354'</span> <span class='layout'>)</span>
+<a name="line-46"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\341'</span> <span class='layout'>)</span>
+<a name="line-47"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\259'</span> <span class='layout'>)</span>
+<a name="line-48"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\314'</span> <span class='layout'>)</span>
+<a name="line-49"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\263'</span> <span class='layout'>)</span>
+<a name="line-50"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>
+<a name="line-51"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>
+<a name="line-52"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\283'</span> <span class='layout'>)</span>
+<a name="line-53"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\271'</span> <span class='layout'>)</span>
+<a name="line-54"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>
+<a name="line-55"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\324'</span> <span class='layout'>)</span>
+<a name="line-56"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\328'</span> <span class='layout'>)</span>
+<a name="line-57"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\337'</span> <span class='layout'>)</span>
+<a name="line-58"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\345'</span> <span class='layout'>)</span>
+<a name="line-59"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\367'</span> <span class='layout'>)</span>
+<a name="line-60"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\369'</span> <span class='layout'>)</span>
+<a name="line-61"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\355'</span> <span class='layout'>)</span>
+<a name="line-62"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\729'</span> <span class='layout'>)</span>
+<a name="line-63"></a>      <span class='keyglyph'>]</span>
+<a name="line-64"></a>
+<a name="line-65"></a><a name="iso_8859_3"></a><span class='definition'>iso_8859_3</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>
+<a name="line-66"></a><span class='definition'>iso_8859_3</span>
+<a name="line-67"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\294'</span> <span class='layout'>)</span>
+<a name="line-68"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\728'</span> <span class='layout'>)</span>
+<a name="line-69"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\292'</span> <span class='layout'>)</span>
+<a name="line-70"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\304'</span> <span class='layout'>)</span>
+<a name="line-71"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\350'</span> <span class='layout'>)</span>
+<a name="line-72"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\286'</span> <span class='layout'>)</span>
+<a name="line-73"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\308'</span> <span class='layout'>)</span>
+<a name="line-74"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>
+<a name="line-75"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\295'</span> <span class='layout'>)</span>
+<a name="line-76"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\293'</span> <span class='layout'>)</span>
+<a name="line-77"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\305'</span> <span class='layout'>)</span>
+<a name="line-78"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\351'</span> <span class='layout'>)</span>
+<a name="line-79"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\287'</span> <span class='layout'>)</span>
+<a name="line-80"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\309'</span> <span class='layout'>)</span>
+<a name="line-81"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>
+<a name="line-82"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\266'</span> <span class='layout'>)</span>
+<a name="line-83"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\264'</span> <span class='layout'>)</span>
+<a name="line-84"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\288'</span> <span class='layout'>)</span>
+<a name="line-85"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\284'</span> <span class='layout'>)</span>
+<a name="line-86"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\364'</span> <span class='layout'>)</span>
+<a name="line-87"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\348'</span> <span class='layout'>)</span>
+<a name="line-88"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\267'</span> <span class='layout'>)</span>
+<a name="line-89"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\265'</span> <span class='layout'>)</span>
+<a name="line-90"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\289'</span> <span class='layout'>)</span>
+<a name="line-91"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\285'</span> <span class='layout'>)</span>
+<a name="line-92"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\365'</span> <span class='layout'>)</span>
+<a name="line-93"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\349'</span> <span class='layout'>)</span>
+<a name="line-94"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\729'</span> <span class='layout'>)</span>
+<a name="line-95"></a>      <span class='keyglyph'>]</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="iso_8859_4"></a><span class='definition'>iso_8859_4</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>
+<a name="line-98"></a><span class='definition'>iso_8859_4</span>
+<a name="line-99"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>
+<a name="line-100"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\312'</span> <span class='layout'>)</span>
+<a name="line-101"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\342'</span> <span class='layout'>)</span>
+<a name="line-102"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\296'</span> <span class='layout'>)</span>
+<a name="line-103"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\315'</span> <span class='layout'>)</span>
+<a name="line-104"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>
+<a name="line-105"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\274'</span> <span class='layout'>)</span>
+<a name="line-106"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\290'</span> <span class='layout'>)</span>
+<a name="line-107"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\358'</span> <span class='layout'>)</span>
+<a name="line-108"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>
+<a name="line-109"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>
+<a name="line-110"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\731'</span> <span class='layout'>)</span>
+<a name="line-111"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\343'</span> <span class='layout'>)</span>
+<a name="line-112"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\297'</span> <span class='layout'>)</span>
+<a name="line-113"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\316'</span> <span class='layout'>)</span>
+<a name="line-114"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\711'</span> <span class='layout'>)</span>
+<a name="line-115"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>
+<a name="line-116"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\275'</span> <span class='layout'>)</span>
+<a name="line-117"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\291'</span> <span class='layout'>)</span>
+<a name="line-118"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\359'</span> <span class='layout'>)</span>
+<a name="line-119"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\330'</span> <span class='layout'>)</span>
+<a name="line-120"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>
+<a name="line-121"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\331'</span> <span class='layout'>)</span>
+<a name="line-122"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\256'</span> <span class='layout'>)</span>
+<a name="line-123"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\302'</span> <span class='layout'>)</span>
+<a name="line-124"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>
+<a name="line-125"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>
+<a name="line-126"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\278'</span> <span class='layout'>)</span>
+<a name="line-127"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\298'</span> <span class='layout'>)</span>
+<a name="line-128"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>
+<a name="line-129"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\325'</span> <span class='layout'>)</span>
+<a name="line-130"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\332'</span> <span class='layout'>)</span>
+<a name="line-131"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\310'</span> <span class='layout'>)</span>
+<a name="line-132"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\370'</span> <span class='layout'>)</span>
+<a name="line-133"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\360'</span> <span class='layout'>)</span>
+<a name="line-134"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\362'</span> <span class='layout'>)</span>
+<a name="line-135"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\257'</span> <span class='layout'>)</span>
+<a name="line-136"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\303'</span> <span class='layout'>)</span>
+<a name="line-137"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>
+<a name="line-138"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>
+<a name="line-139"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\279'</span> <span class='layout'>)</span>
+<a name="line-140"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\299'</span> <span class='layout'>)</span>
+<a name="line-141"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>
+<a name="line-142"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\326'</span> <span class='layout'>)</span>
+<a name="line-143"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\333'</span> <span class='layout'>)</span>
+<a name="line-144"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\311'</span> <span class='layout'>)</span>
+<a name="line-145"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\371'</span> <span class='layout'>)</span>
+<a name="line-146"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\361'</span> <span class='layout'>)</span>
+<a name="line-147"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\363'</span> <span class='layout'>)</span>
+<a name="line-148"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\729'</span> <span class='layout'>)</span>
+<a name="line-149"></a>      <span class='keyglyph'>]</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="iso_8859_5"></a><span class='definition'>iso_8859_5</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>
+<a name="line-152"></a><span class='definition'>iso_8859_5</span>
+<a name="line-153"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\1025'</span> <span class='layout'>)</span>
+<a name="line-154"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\1026'</span> <span class='layout'>)</span>
+<a name="line-155"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\1027'</span> <span class='layout'>)</span>
+<a name="line-156"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\1028'</span> <span class='layout'>)</span>
+<a name="line-157"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\1029'</span> <span class='layout'>)</span>
+<a name="line-158"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\1030'</span> <span class='layout'>)</span>
+<a name="line-159"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\167'</span><span class='layout'>,</span> <span class='chr'>'\1031'</span> <span class='layout'>)</span>
+<a name="line-160"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\1032'</span> <span class='layout'>)</span>
+<a name="line-161"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\1033'</span> <span class='layout'>)</span>
+<a name="line-162"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\1034'</span> <span class='layout'>)</span>
+<a name="line-163"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\1035'</span> <span class='layout'>)</span>
+<a name="line-164"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\1036'</span> <span class='layout'>)</span>
+<a name="line-165"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\1038'</span> <span class='layout'>)</span>
+<a name="line-166"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\1039'</span> <span class='layout'>)</span>
+<a name="line-167"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span> <span class='chr'>'\1040'</span> <span class='layout'>)</span>
+<a name="line-168"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\1041'</span> <span class='layout'>)</span>
+<a name="line-169"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\1042'</span> <span class='layout'>)</span>
+<a name="line-170"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\1043'</span> <span class='layout'>)</span>
+<a name="line-171"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\1044'</span> <span class='layout'>)</span>
+<a name="line-172"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\1045'</span> <span class='layout'>)</span>
+<a name="line-173"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\1046'</span> <span class='layout'>)</span>
+<a name="line-174"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\1047'</span> <span class='layout'>)</span>
+<a name="line-175"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\1048'</span> <span class='layout'>)</span>
+<a name="line-176"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\1049'</span> <span class='layout'>)</span>
+<a name="line-177"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\1050'</span> <span class='layout'>)</span>
+<a name="line-178"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\1051'</span> <span class='layout'>)</span>
+<a name="line-179"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\1052'</span> <span class='layout'>)</span>
+<a name="line-180"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\1053'</span> <span class='layout'>)</span>
+<a name="line-181"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\1054'</span> <span class='layout'>)</span>
+<a name="line-182"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\1055'</span> <span class='layout'>)</span>
+<a name="line-183"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\1056'</span> <span class='layout'>)</span>
+<a name="line-184"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\1057'</span> <span class='layout'>)</span>
+<a name="line-185"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\1058'</span> <span class='layout'>)</span>
+<a name="line-186"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\1059'</span> <span class='layout'>)</span>
+<a name="line-187"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\1060'</span> <span class='layout'>)</span>
+<a name="line-188"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\1061'</span> <span class='layout'>)</span>
+<a name="line-189"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\1062'</span> <span class='layout'>)</span>
+<a name="line-190"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\1063'</span> <span class='layout'>)</span>
+<a name="line-191"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\1064'</span> <span class='layout'>)</span>
+<a name="line-192"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\1065'</span> <span class='layout'>)</span>
+<a name="line-193"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\1066'</span> <span class='layout'>)</span>
+<a name="line-194"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\1067'</span> <span class='layout'>)</span>
+<a name="line-195"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\1068'</span> <span class='layout'>)</span>
+<a name="line-196"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\1069'</span> <span class='layout'>)</span>
+<a name="line-197"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\1070'</span> <span class='layout'>)</span>
+<a name="line-198"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\1071'</span> <span class='layout'>)</span>
+<a name="line-199"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\1072'</span> <span class='layout'>)</span>
+<a name="line-200"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\1073'</span> <span class='layout'>)</span>
+<a name="line-201"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\1074'</span> <span class='layout'>)</span>
+<a name="line-202"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\1075'</span> <span class='layout'>)</span>
+<a name="line-203"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\1076'</span> <span class='layout'>)</span>
+<a name="line-204"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\1077'</span> <span class='layout'>)</span>
+<a name="line-205"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\1078'</span> <span class='layout'>)</span>
+<a name="line-206"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\1079'</span> <span class='layout'>)</span>
+<a name="line-207"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\1080'</span> <span class='layout'>)</span>
+<a name="line-208"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\1081'</span> <span class='layout'>)</span>
+<a name="line-209"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\1082'</span> <span class='layout'>)</span>
+<a name="line-210"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\1083'</span> <span class='layout'>)</span>
+<a name="line-211"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\220'</span><span class='layout'>,</span> <span class='chr'>'\1084'</span> <span class='layout'>)</span>
+<a name="line-212"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\1085'</span> <span class='layout'>)</span>
+<a name="line-213"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\1086'</span> <span class='layout'>)</span>
+<a name="line-214"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\1087'</span> <span class='layout'>)</span>
+<a name="line-215"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\1088'</span> <span class='layout'>)</span>
+<a name="line-216"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\1089'</span> <span class='layout'>)</span>
+<a name="line-217"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\1090'</span> <span class='layout'>)</span>
+<a name="line-218"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\1091'</span> <span class='layout'>)</span>
+<a name="line-219"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\1092'</span> <span class='layout'>)</span>
+<a name="line-220"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\1093'</span> <span class='layout'>)</span>
+<a name="line-221"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\1094'</span> <span class='layout'>)</span>
+<a name="line-222"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\1095'</span> <span class='layout'>)</span>
+<a name="line-223"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\1096'</span> <span class='layout'>)</span>
+<a name="line-224"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\1097'</span> <span class='layout'>)</span>
+<a name="line-225"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\1098'</span> <span class='layout'>)</span>
+<a name="line-226"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\1099'</span> <span class='layout'>)</span>
+<a name="line-227"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\1100'</span> <span class='layout'>)</span>
+<a name="line-228"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\1101'</span> <span class='layout'>)</span>
+<a name="line-229"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\1102'</span> <span class='layout'>)</span>
+<a name="line-230"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\1103'</span> <span class='layout'>)</span>
+<a name="line-231"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\8470'</span> <span class='layout'>)</span>
+<a name="line-232"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\1105'</span> <span class='layout'>)</span>
+<a name="line-233"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\1106'</span> <span class='layout'>)</span>
+<a name="line-234"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\1107'</span> <span class='layout'>)</span>
+<a name="line-235"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\1108'</span> <span class='layout'>)</span>
+<a name="line-236"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\1109'</span> <span class='layout'>)</span>
+<a name="line-237"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\1110'</span> <span class='layout'>)</span>
+<a name="line-238"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\1111'</span> <span class='layout'>)</span>
+<a name="line-239"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\1112'</span> <span class='layout'>)</span>
+<a name="line-240"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\1113'</span> <span class='layout'>)</span>
+<a name="line-241"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\1114'</span> <span class='layout'>)</span>
+<a name="line-242"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\1115'</span> <span class='layout'>)</span>
+<a name="line-243"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\252'</span><span class='layout'>,</span> <span class='chr'>'\1116'</span> <span class='layout'>)</span>
+<a name="line-244"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\167'</span> <span class='layout'>)</span>
+<a name="line-245"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\1118'</span> <span class='layout'>)</span>
+<a name="line-246"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\1119'</span> <span class='layout'>)</span>
+<a name="line-247"></a>      <span class='keyglyph'>]</span>
+<a name="line-248"></a>
+<a name="line-249"></a><a name="iso_8859_6"></a><span class='definition'>iso_8859_6</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>
+<a name="line-250"></a><span class='definition'>iso_8859_6</span>
+<a name="line-251"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\1548'</span> <span class='layout'>)</span>
+<a name="line-252"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\1563'</span> <span class='layout'>)</span>
+<a name="line-253"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\1567'</span> <span class='layout'>)</span>
+<a name="line-254"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\1569'</span> <span class='layout'>)</span>
+<a name="line-255"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\1570'</span> <span class='layout'>)</span>
+<a name="line-256"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\1571'</span> <span class='layout'>)</span>
+<a name="line-257"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\1572'</span> <span class='layout'>)</span>
+<a name="line-258"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\1573'</span> <span class='layout'>)</span>
+<a name="line-259"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\1574'</span> <span class='layout'>)</span>
+<a name="line-260"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\1575'</span> <span class='layout'>)</span>
+<a name="line-261"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\1576'</span> <span class='layout'>)</span>
+<a name="line-262"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\1577'</span> <span class='layout'>)</span>
+<a name="line-263"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\1578'</span> <span class='layout'>)</span>
+<a name="line-264"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\1579'</span> <span class='layout'>)</span>
+<a name="line-265"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\1580'</span> <span class='layout'>)</span>
+<a name="line-266"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\1581'</span> <span class='layout'>)</span>
+<a name="line-267"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\1582'</span> <span class='layout'>)</span>
+<a name="line-268"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\1583'</span> <span class='layout'>)</span>
+<a name="line-269"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\1584'</span> <span class='layout'>)</span>
+<a name="line-270"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\1585'</span> <span class='layout'>)</span>
+<a name="line-271"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\1586'</span> <span class='layout'>)</span>
+<a name="line-272"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\1587'</span> <span class='layout'>)</span>
+<a name="line-273"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\1588'</span> <span class='layout'>)</span>
+<a name="line-274"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\1589'</span> <span class='layout'>)</span>
+<a name="line-275"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\1590'</span> <span class='layout'>)</span>
+<a name="line-276"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\1591'</span> <span class='layout'>)</span>
+<a name="line-277"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\1592'</span> <span class='layout'>)</span>
+<a name="line-278"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\1593'</span> <span class='layout'>)</span>
+<a name="line-279"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\1594'</span> <span class='layout'>)</span>
+<a name="line-280"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\1600'</span> <span class='layout'>)</span>
+<a name="line-281"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\1601'</span> <span class='layout'>)</span>
+<a name="line-282"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\1602'</span> <span class='layout'>)</span>
+<a name="line-283"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\1603'</span> <span class='layout'>)</span>
+<a name="line-284"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\1604'</span> <span class='layout'>)</span>
+<a name="line-285"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\1605'</span> <span class='layout'>)</span>
+<a name="line-286"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\1606'</span> <span class='layout'>)</span>
+<a name="line-287"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\1607'</span> <span class='layout'>)</span>
+<a name="line-288"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\1608'</span> <span class='layout'>)</span>
+<a name="line-289"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\1609'</span> <span class='layout'>)</span>
+<a name="line-290"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\1610'</span> <span class='layout'>)</span>
+<a name="line-291"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\1611'</span> <span class='layout'>)</span>
+<a name="line-292"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\1612'</span> <span class='layout'>)</span>
+<a name="line-293"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\1613'</span> <span class='layout'>)</span>
+<a name="line-294"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\1614'</span> <span class='layout'>)</span>
+<a name="line-295"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\1615'</span> <span class='layout'>)</span>
+<a name="line-296"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\1616'</span> <span class='layout'>)</span>
+<a name="line-297"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\1617'</span> <span class='layout'>)</span>
+<a name="line-298"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\1618'</span> <span class='layout'>)</span>
+<a name="line-299"></a>      <span class='keyglyph'>]</span>
+<a name="line-300"></a>
+<a name="line-301"></a><a name="iso_8859_7"></a><span class='definition'>iso_8859_7</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>
+<a name="line-302"></a><span class='definition'>iso_8859_7</span>
+<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\8216'</span> <span class='layout'>)</span>
+<a name="line-304"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\8217'</span> <span class='layout'>)</span>
+<a name="line-305"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\8364'</span> <span class='layout'>)</span>
+<a name="line-306"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\8367'</span> <span class='layout'>)</span>
+<a name="line-307"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\890'</span> <span class='layout'>)</span>
+<a name="line-308"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\8213'</span> <span class='layout'>)</span>
+<a name="line-309"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\900'</span> <span class='layout'>)</span>
+<a name="line-310"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\901'</span> <span class='layout'>)</span>
+<a name="line-311"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\902'</span> <span class='layout'>)</span>
+<a name="line-312"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\904'</span> <span class='layout'>)</span>
+<a name="line-313"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\905'</span> <span class='layout'>)</span>
+<a name="line-314"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\906'</span> <span class='layout'>)</span>
+<a name="line-315"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\908'</span> <span class='layout'>)</span>
+<a name="line-316"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\910'</span> <span class='layout'>)</span>
+<a name="line-317"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\911'</span> <span class='layout'>)</span>
+<a name="line-318"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\912'</span> <span class='layout'>)</span>
+<a name="line-319"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\913'</span> <span class='layout'>)</span>
+<a name="line-320"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\914'</span> <span class='layout'>)</span>
+<a name="line-321"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\915'</span> <span class='layout'>)</span>
+<a name="line-322"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\916'</span> <span class='layout'>)</span>
+<a name="line-323"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\917'</span> <span class='layout'>)</span>
+<a name="line-324"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\918'</span> <span class='layout'>)</span>
+<a name="line-325"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\919'</span> <span class='layout'>)</span>
+<a name="line-326"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\920'</span> <span class='layout'>)</span>
+<a name="line-327"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\921'</span> <span class='layout'>)</span>
+<a name="line-328"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\922'</span> <span class='layout'>)</span>
+<a name="line-329"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\923'</span> <span class='layout'>)</span>
+<a name="line-330"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\924'</span> <span class='layout'>)</span>
+<a name="line-331"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\925'</span> <span class='layout'>)</span>
+<a name="line-332"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\926'</span> <span class='layout'>)</span>
+<a name="line-333"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\927'</span> <span class='layout'>)</span>
+<a name="line-334"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\928'</span> <span class='layout'>)</span>
+<a name="line-335"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\929'</span> <span class='layout'>)</span>
+<a name="line-336"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\931'</span> <span class='layout'>)</span>
+<a name="line-337"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\932'</span> <span class='layout'>)</span>
+<a name="line-338"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\933'</span> <span class='layout'>)</span>
+<a name="line-339"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\934'</span> <span class='layout'>)</span>
+<a name="line-340"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\935'</span> <span class='layout'>)</span>
+<a name="line-341"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\936'</span> <span class='layout'>)</span>
+<a name="line-342"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\937'</span> <span class='layout'>)</span>
+<a name="line-343"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\938'</span> <span class='layout'>)</span>
+<a name="line-344"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\939'</span> <span class='layout'>)</span>
+<a name="line-345"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\220'</span><span class='layout'>,</span> <span class='chr'>'\940'</span> <span class='layout'>)</span>
+<a name="line-346"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\941'</span> <span class='layout'>)</span>
+<a name="line-347"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\942'</span> <span class='layout'>)</span>
+<a name="line-348"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\943'</span> <span class='layout'>)</span>
+<a name="line-349"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\944'</span> <span class='layout'>)</span>
+<a name="line-350"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\945'</span> <span class='layout'>)</span>
+<a name="line-351"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\946'</span> <span class='layout'>)</span>
+<a name="line-352"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\947'</span> <span class='layout'>)</span>
+<a name="line-353"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\948'</span> <span class='layout'>)</span>
+<a name="line-354"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\949'</span> <span class='layout'>)</span>
+<a name="line-355"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\950'</span> <span class='layout'>)</span>
+<a name="line-356"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\951'</span> <span class='layout'>)</span>
+<a name="line-357"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\952'</span> <span class='layout'>)</span>
+<a name="line-358"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\953'</span> <span class='layout'>)</span>
+<a name="line-359"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\954'</span> <span class='layout'>)</span>
+<a name="line-360"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\955'</span> <span class='layout'>)</span>
+<a name="line-361"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\956'</span> <span class='layout'>)</span>
+<a name="line-362"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\957'</span> <span class='layout'>)</span>
+<a name="line-363"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\958'</span> <span class='layout'>)</span>
+<a name="line-364"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\959'</span> <span class='layout'>)</span>
+<a name="line-365"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\960'</span> <span class='layout'>)</span>
+<a name="line-366"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\961'</span> <span class='layout'>)</span>
+<a name="line-367"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\962'</span> <span class='layout'>)</span>
+<a name="line-368"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\963'</span> <span class='layout'>)</span>
+<a name="line-369"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\964'</span> <span class='layout'>)</span>
+<a name="line-370"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\965'</span> <span class='layout'>)</span>
+<a name="line-371"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\966'</span> <span class='layout'>)</span>
+<a name="line-372"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\967'</span> <span class='layout'>)</span>
+<a name="line-373"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\968'</span> <span class='layout'>)</span>
+<a name="line-374"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\969'</span> <span class='layout'>)</span>
+<a name="line-375"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\970'</span> <span class='layout'>)</span>
+<a name="line-376"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\971'</span> <span class='layout'>)</span>
+<a name="line-377"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\252'</span><span class='layout'>,</span> <span class='chr'>'\972'</span> <span class='layout'>)</span>
+<a name="line-378"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\973'</span> <span class='layout'>)</span>
+<a name="line-379"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\974'</span> <span class='layout'>)</span>
+<a name="line-380"></a>      <span class='keyglyph'>]</span>
+<a name="line-381"></a>
+<a name="line-382"></a><a name="iso_8859_8"></a><span class='definition'>iso_8859_8</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>
+<a name="line-383"></a><span class='definition'>iso_8859_8</span>
+<a name="line-384"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\215'</span> <span class='layout'>)</span>
+<a name="line-385"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\247'</span> <span class='layout'>)</span>
+<a name="line-386"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\8215'</span> <span class='layout'>)</span>
+<a name="line-387"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\1488'</span> <span class='layout'>)</span>
+<a name="line-388"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\1489'</span> <span class='layout'>)</span>
+<a name="line-389"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\1490'</span> <span class='layout'>)</span>
+<a name="line-390"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\1491'</span> <span class='layout'>)</span>
+<a name="line-391"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\1492'</span> <span class='layout'>)</span>
+<a name="line-392"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\1493'</span> <span class='layout'>)</span>
+<a name="line-393"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\1494'</span> <span class='layout'>)</span>
+<a name="line-394"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\1495'</span> <span class='layout'>)</span>
+<a name="line-395"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\1496'</span> <span class='layout'>)</span>
+<a name="line-396"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\1497'</span> <span class='layout'>)</span>
+<a name="line-397"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\1498'</span> <span class='layout'>)</span>
+<a name="line-398"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\1499'</span> <span class='layout'>)</span>
+<a name="line-399"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\1500'</span> <span class='layout'>)</span>
+<a name="line-400"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\1501'</span> <span class='layout'>)</span>
+<a name="line-401"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\1502'</span> <span class='layout'>)</span>
+<a name="line-402"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\1503'</span> <span class='layout'>)</span>
+<a name="line-403"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\1504'</span> <span class='layout'>)</span>
+<a name="line-404"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\1505'</span> <span class='layout'>)</span>
+<a name="line-405"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\1506'</span> <span class='layout'>)</span>
+<a name="line-406"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\1507'</span> <span class='layout'>)</span>
+<a name="line-407"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\1508'</span> <span class='layout'>)</span>
+<a name="line-408"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\1509'</span> <span class='layout'>)</span>
+<a name="line-409"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\1510'</span> <span class='layout'>)</span>
+<a name="line-410"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\1511'</span> <span class='layout'>)</span>
+<a name="line-411"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\1512'</span> <span class='layout'>)</span>
+<a name="line-412"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\1513'</span> <span class='layout'>)</span>
+<a name="line-413"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\1514'</span> <span class='layout'>)</span>
+<a name="line-414"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\8206'</span> <span class='layout'>)</span>
+<a name="line-415"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\8207'</span> <span class='layout'>)</span>
+<a name="line-416"></a>      <span class='keyglyph'>]</span>
+<a name="line-417"></a>
+<a name="line-418"></a><a name="iso_8859_9"></a><span class='definition'>iso_8859_9</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>
+<a name="line-419"></a><span class='definition'>iso_8859_9</span>
+<a name="line-420"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\286'</span> <span class='layout'>)</span>
+<a name="line-421"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\304'</span> <span class='layout'>)</span>
+<a name="line-422"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\350'</span> <span class='layout'>)</span>
+<a name="line-423"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\287'</span> <span class='layout'>)</span>
+<a name="line-424"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\305'</span> <span class='layout'>)</span>
+<a name="line-425"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\351'</span> <span class='layout'>)</span>
+<a name="line-426"></a>      <span class='keyglyph'>]</span>
+<a name="line-427"></a>
+<a name="line-428"></a><a name="iso_8859_10"></a><span class='definition'>iso_8859_10</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>
+<a name="line-429"></a><span class='definition'>iso_8859_10</span>
+<a name="line-430"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>
+<a name="line-431"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\274'</span> <span class='layout'>)</span>
+<a name="line-432"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\290'</span> <span class='layout'>)</span>
+<a name="line-433"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\298'</span> <span class='layout'>)</span>
+<a name="line-434"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\296'</span> <span class='layout'>)</span>
+<a name="line-435"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\310'</span> <span class='layout'>)</span>
+<a name="line-436"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\315'</span> <span class='layout'>)</span>
+<a name="line-437"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>
+<a name="line-438"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>
+<a name="line-439"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\358'</span> <span class='layout'>)</span>
+<a name="line-440"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>
+<a name="line-441"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\362'</span> <span class='layout'>)</span>
+<a name="line-442"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\330'</span> <span class='layout'>)</span>
+<a name="line-443"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>
+<a name="line-444"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\275'</span> <span class='layout'>)</span>
+<a name="line-445"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\291'</span> <span class='layout'>)</span>
+<a name="line-446"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\299'</span> <span class='layout'>)</span>
+<a name="line-447"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\297'</span> <span class='layout'>)</span>
+<a name="line-448"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\311'</span> <span class='layout'>)</span>
+<a name="line-449"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\316'</span> <span class='layout'>)</span>
+<a name="line-450"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>
+<a name="line-451"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>
+<a name="line-452"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\359'</span> <span class='layout'>)</span>
+<a name="line-453"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>
+<a name="line-454"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\8213'</span> <span class='layout'>)</span>
+<a name="line-455"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\363'</span> <span class='layout'>)</span>
+<a name="line-456"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\331'</span> <span class='layout'>)</span>
+<a name="line-457"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\256'</span> <span class='layout'>)</span>
+<a name="line-458"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\302'</span> <span class='layout'>)</span>
+<a name="line-459"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>
+<a name="line-460"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>
+<a name="line-461"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\278'</span> <span class='layout'>)</span>
+<a name="line-462"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\325'</span> <span class='layout'>)</span>
+<a name="line-463"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\332'</span> <span class='layout'>)</span>
+<a name="line-464"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\360'</span> <span class='layout'>)</span>
+<a name="line-465"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\370'</span> <span class='layout'>)</span>
+<a name="line-466"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\257'</span> <span class='layout'>)</span>
+<a name="line-467"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\303'</span> <span class='layout'>)</span>
+<a name="line-468"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>
+<a name="line-469"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>
+<a name="line-470"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\279'</span> <span class='layout'>)</span>
+<a name="line-471"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\326'</span> <span class='layout'>)</span>
+<a name="line-472"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\333'</span> <span class='layout'>)</span>
+<a name="line-473"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\361'</span> <span class='layout'>)</span>
+<a name="line-474"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\371'</span> <span class='layout'>)</span>
+<a name="line-475"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\312'</span> <span class='layout'>)</span>
+<a name="line-476"></a>      <span class='keyglyph'>]</span>
+<a name="line-477"></a>
+<a name="line-478"></a><a name="iso_8859_11"></a><span class='definition'>iso_8859_11</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>
+<a name="line-479"></a><span class='definition'>iso_8859_11</span>
+<a name="line-480"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\3585'</span> <span class='layout'>)</span>
+<a name="line-481"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\3586'</span> <span class='layout'>)</span>
+<a name="line-482"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\3587'</span> <span class='layout'>)</span>
+<a name="line-483"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\3588'</span> <span class='layout'>)</span>
+<a name="line-484"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\3589'</span> <span class='layout'>)</span>
+<a name="line-485"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\3590'</span> <span class='layout'>)</span>
+<a name="line-486"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\167'</span><span class='layout'>,</span> <span class='chr'>'\3591'</span> <span class='layout'>)</span>
+<a name="line-487"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\3592'</span> <span class='layout'>)</span>
+<a name="line-488"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\3593'</span> <span class='layout'>)</span>
+<a name="line-489"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\3594'</span> <span class='layout'>)</span>
+<a name="line-490"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\3595'</span> <span class='layout'>)</span>
+<a name="line-491"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\3596'</span> <span class='layout'>)</span>
+<a name="line-492"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173'</span><span class='layout'>,</span> <span class='chr'>'\3597'</span> <span class='layout'>)</span>
+<a name="line-493"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\3598'</span> <span class='layout'>)</span>
+<a name="line-494"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\3599'</span> <span class='layout'>)</span>
+<a name="line-495"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span> <span class='chr'>'\3600'</span> <span class='layout'>)</span>
+<a name="line-496"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\3601'</span> <span class='layout'>)</span>
+<a name="line-497"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\3602'</span> <span class='layout'>)</span>
+<a name="line-498"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\3603'</span> <span class='layout'>)</span>
+<a name="line-499"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\3604'</span> <span class='layout'>)</span>
+<a name="line-500"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\3605'</span> <span class='layout'>)</span>
+<a name="line-501"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\3606'</span> <span class='layout'>)</span>
+<a name="line-502"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\3607'</span> <span class='layout'>)</span>
+<a name="line-503"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\3608'</span> <span class='layout'>)</span>
+<a name="line-504"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\3609'</span> <span class='layout'>)</span>
+<a name="line-505"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\3610'</span> <span class='layout'>)</span>
+<a name="line-506"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\3611'</span> <span class='layout'>)</span>
+<a name="line-507"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\3612'</span> <span class='layout'>)</span>
+<a name="line-508"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\3613'</span> <span class='layout'>)</span>
+<a name="line-509"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\3614'</span> <span class='layout'>)</span>
+<a name="line-510"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\3615'</span> <span class='layout'>)</span>
+<a name="line-511"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\3616'</span> <span class='layout'>)</span>
+<a name="line-512"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\3617'</span> <span class='layout'>)</span>
+<a name="line-513"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\3618'</span> <span class='layout'>)</span>
+<a name="line-514"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\3619'</span> <span class='layout'>)</span>
+<a name="line-515"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\3620'</span> <span class='layout'>)</span>
+<a name="line-516"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\3621'</span> <span class='layout'>)</span>
+<a name="line-517"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\3622'</span> <span class='layout'>)</span>
+<a name="line-518"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\3623'</span> <span class='layout'>)</span>
+<a name="line-519"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\3624'</span> <span class='layout'>)</span>
+<a name="line-520"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\3625'</span> <span class='layout'>)</span>
+<a name="line-521"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\3626'</span> <span class='layout'>)</span>
+<a name="line-522"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\3627'</span> <span class='layout'>)</span>
+<a name="line-523"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\3628'</span> <span class='layout'>)</span>
+<a name="line-524"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\3629'</span> <span class='layout'>)</span>
+<a name="line-525"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\3630'</span> <span class='layout'>)</span>
+<a name="line-526"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\3631'</span> <span class='layout'>)</span>
+<a name="line-527"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\3632'</span> <span class='layout'>)</span>
+<a name="line-528"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\3633'</span> <span class='layout'>)</span>
+<a name="line-529"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\3634'</span> <span class='layout'>)</span>
+<a name="line-530"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\3635'</span> <span class='layout'>)</span>
+<a name="line-531"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\3636'</span> <span class='layout'>)</span>
+<a name="line-532"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\3637'</span> <span class='layout'>)</span>
+<a name="line-533"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\3638'</span> <span class='layout'>)</span>
+<a name="line-534"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\3639'</span> <span class='layout'>)</span>
+<a name="line-535"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\3640'</span> <span class='layout'>)</span>
+<a name="line-536"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\3641'</span> <span class='layout'>)</span>
+<a name="line-537"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\3642'</span> <span class='layout'>)</span>
+<a name="line-538"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\3647'</span> <span class='layout'>)</span>
+<a name="line-539"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\3648'</span> <span class='layout'>)</span>
+<a name="line-540"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\3649'</span> <span class='layout'>)</span>
+<a name="line-541"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\3650'</span> <span class='layout'>)</span>
+<a name="line-542"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\3651'</span> <span class='layout'>)</span>
+<a name="line-543"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\3652'</span> <span class='layout'>)</span>
+<a name="line-544"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\3653'</span> <span class='layout'>)</span>
+<a name="line-545"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\3654'</span> <span class='layout'>)</span>
+<a name="line-546"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\3655'</span> <span class='layout'>)</span>
+<a name="line-547"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\3656'</span> <span class='layout'>)</span>
+<a name="line-548"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\3657'</span> <span class='layout'>)</span>
+<a name="line-549"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\3658'</span> <span class='layout'>)</span>
+<a name="line-550"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\3659'</span> <span class='layout'>)</span>
+<a name="line-551"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\3660'</span> <span class='layout'>)</span>
+<a name="line-552"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\3661'</span> <span class='layout'>)</span>
+<a name="line-553"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\3662'</span> <span class='layout'>)</span>
+<a name="line-554"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\3663'</span> <span class='layout'>)</span>
+<a name="line-555"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\3664'</span> <span class='layout'>)</span>
+<a name="line-556"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\3665'</span> <span class='layout'>)</span>
+<a name="line-557"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\3666'</span> <span class='layout'>)</span>
+<a name="line-558"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\3667'</span> <span class='layout'>)</span>
+<a name="line-559"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\3668'</span> <span class='layout'>)</span>
+<a name="line-560"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\3669'</span> <span class='layout'>)</span>
+<a name="line-561"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\3670'</span> <span class='layout'>)</span>
+<a name="line-562"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\3671'</span> <span class='layout'>)</span>
+<a name="line-563"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\3672'</span> <span class='layout'>)</span>
+<a name="line-564"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\3673'</span> <span class='layout'>)</span>
+<a name="line-565"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\3674'</span> <span class='layout'>)</span>
+<a name="line-566"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\3675'</span> <span class='layout'>)</span>
+<a name="line-567"></a>      <span class='keyglyph'>]</span>
+<a name="line-568"></a>
+<a name="line-569"></a><a name="iso_8859_13"></a><span class='definition'>iso_8859_13</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>
+<a name="line-570"></a><span class='definition'>iso_8859_13</span>
+<a name="line-571"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\8221'</span> <span class='layout'>)</span>
+<a name="line-572"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\8222'</span> <span class='layout'>)</span>
+<a name="line-573"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\216'</span> <span class='layout'>)</span>
+<a name="line-574"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\342'</span> <span class='layout'>)</span>
+<a name="line-575"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\198'</span> <span class='layout'>)</span>
+<a name="line-576"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\8220'</span> <span class='layout'>)</span>
+<a name="line-577"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\248'</span> <span class='layout'>)</span>
+<a name="line-578"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\343'</span> <span class='layout'>)</span>
+<a name="line-579"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\230'</span> <span class='layout'>)</span>
+<a name="line-580"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>
+<a name="line-581"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\302'</span> <span class='layout'>)</span>
+<a name="line-582"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\256'</span> <span class='layout'>)</span>
+<a name="line-583"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\262'</span> <span class='layout'>)</span>
+<a name="line-584"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>
+<a name="line-585"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\274'</span> <span class='layout'>)</span>
+<a name="line-586"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>
+<a name="line-587"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\377'</span> <span class='layout'>)</span>
+<a name="line-588"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\278'</span> <span class='layout'>)</span>
+<a name="line-589"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\290'</span> <span class='layout'>)</span>
+<a name="line-590"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\310'</span> <span class='layout'>)</span>
+<a name="line-591"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\298'</span> <span class='layout'>)</span>
+<a name="line-592"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\315'</span> <span class='layout'>)</span>
+<a name="line-593"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>
+<a name="line-594"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\323'</span> <span class='layout'>)</span>
+<a name="line-595"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\325'</span> <span class='layout'>)</span>
+<a name="line-596"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\332'</span> <span class='layout'>)</span>
+<a name="line-597"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\370'</span> <span class='layout'>)</span>
+<a name="line-598"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\321'</span> <span class='layout'>)</span>
+<a name="line-599"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\346'</span> <span class='layout'>)</span>
+<a name="line-600"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\362'</span> <span class='layout'>)</span>
+<a name="line-601"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>
+<a name="line-602"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>
+<a name="line-603"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>
+<a name="line-604"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\303'</span> <span class='layout'>)</span>
+<a name="line-605"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\257'</span> <span class='layout'>)</span>
+<a name="line-606"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\263'</span> <span class='layout'>)</span>
+<a name="line-607"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>
+<a name="line-608"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\275'</span> <span class='layout'>)</span>
+<a name="line-609"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>
+<a name="line-610"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\378'</span> <span class='layout'>)</span>
+<a name="line-611"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\279'</span> <span class='layout'>)</span>
+<a name="line-612"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\291'</span> <span class='layout'>)</span>
+<a name="line-613"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\311'</span> <span class='layout'>)</span>
+<a name="line-614"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\299'</span> <span class='layout'>)</span>
+<a name="line-615"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\316'</span> <span class='layout'>)</span>
+<a name="line-616"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>
+<a name="line-617"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\324'</span> <span class='layout'>)</span>
+<a name="line-618"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\326'</span> <span class='layout'>)</span>
+<a name="line-619"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\333'</span> <span class='layout'>)</span>
+<a name="line-620"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\371'</span> <span class='layout'>)</span>
+<a name="line-621"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\322'</span> <span class='layout'>)</span>
+<a name="line-622"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\347'</span> <span class='layout'>)</span>
+<a name="line-623"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\363'</span> <span class='layout'>)</span>
+<a name="line-624"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>
+<a name="line-625"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>
+<a name="line-626"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\8217'</span> <span class='layout'>)</span>
+<a name="line-627"></a>      <span class='keyglyph'>]</span>
+<a name="line-628"></a>
+<a name="line-629"></a><a name="iso_8859_14"></a><span class='definition'>iso_8859_14</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>
+<a name="line-630"></a><span class='definition'>iso_8859_14</span>
+<a name="line-631"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\7682'</span> <span class='layout'>)</span>
+<a name="line-632"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\7683'</span> <span class='layout'>)</span>
+<a name="line-633"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\266'</span> <span class='layout'>)</span>
+<a name="line-634"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\267'</span> <span class='layout'>)</span>
+<a name="line-635"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\7690'</span> <span class='layout'>)</span>
+<a name="line-636"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\7808'</span> <span class='layout'>)</span>
+<a name="line-637"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\7810'</span> <span class='layout'>)</span>
+<a name="line-638"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\7691'</span> <span class='layout'>)</span>
+<a name="line-639"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\7922'</span> <span class='layout'>)</span>
+<a name="line-640"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\376'</span> <span class='layout'>)</span>
+<a name="line-641"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span> <span class='chr'>'\7710'</span> <span class='layout'>)</span>
+<a name="line-642"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\7711'</span> <span class='layout'>)</span>
+<a name="line-643"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\288'</span> <span class='layout'>)</span>
+<a name="line-644"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\289'</span> <span class='layout'>)</span>
+<a name="line-645"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\7744'</span> <span class='layout'>)</span>
+<a name="line-646"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\7745'</span> <span class='layout'>)</span>
+<a name="line-647"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\7766'</span> <span class='layout'>)</span>
+<a name="line-648"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\7809'</span> <span class='layout'>)</span>
+<a name="line-649"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\7767'</span> <span class='layout'>)</span>
+<a name="line-650"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\7811'</span> <span class='layout'>)</span>
+<a name="line-651"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\7776'</span> <span class='layout'>)</span>
+<a name="line-652"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\7923'</span> <span class='layout'>)</span>
+<a name="line-653"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\7812'</span> <span class='layout'>)</span>
+<a name="line-654"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\7813'</span> <span class='layout'>)</span>
+<a name="line-655"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\7777'</span> <span class='layout'>)</span>
+<a name="line-656"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\372'</span> <span class='layout'>)</span>
+<a name="line-657"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\7786'</span> <span class='layout'>)</span>
+<a name="line-658"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\374'</span> <span class='layout'>)</span>
+<a name="line-659"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\373'</span> <span class='layout'>)</span>
+<a name="line-660"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\7787'</span> <span class='layout'>)</span>
+<a name="line-661"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\375'</span> <span class='layout'>)</span>
+<a name="line-662"></a>      <span class='keyglyph'>]</span>
+<a name="line-663"></a>
+<a name="line-664"></a><a name="iso_8859_15"></a><span class='definition'>iso_8859_15</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>
+<a name="line-665"></a><span class='definition'>iso_8859_15</span>
+<a name="line-666"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\8364'</span> <span class='layout'>)</span>
+<a name="line-667"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>
+<a name="line-668"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>
+<a name="line-669"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>
+<a name="line-670"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>
+<a name="line-671"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\338'</span> <span class='layout'>)</span>
+<a name="line-672"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\339'</span> <span class='layout'>)</span>
+<a name="line-673"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\376'</span> <span class='layout'>)</span>
+<a name="line-674"></a>      <span class='keyglyph'>]</span>
+<a name="line-675"></a>
+<a name="line-676"></a><a name="iso_8859_16"></a><span class='definition'>iso_8859_16</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>
+<a name="line-677"></a><span class='definition'>iso_8859_16</span>
+<a name="line-678"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>
+<a name="line-679"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>
+<a name="line-680"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\321'</span> <span class='layout'>)</span>
+<a name="line-681"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\8364'</span> <span class='layout'>)</span>
+<a name="line-682"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\8222'</span> <span class='layout'>)</span>
+<a name="line-683"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>
+<a name="line-684"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>
+<a name="line-685"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\536'</span> <span class='layout'>)</span>
+<a name="line-686"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\377'</span> <span class='layout'>)</span>
+<a name="line-687"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\378'</span> <span class='layout'>)</span>
+<a name="line-688"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>
+<a name="line-689"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>
+<a name="line-690"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\322'</span> <span class='layout'>)</span>
+<a name="line-691"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>
+<a name="line-692"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\8221'</span> <span class='layout'>)</span>
+<a name="line-693"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>
+<a name="line-694"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>
+<a name="line-695"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\537'</span> <span class='layout'>)</span>
+<a name="line-696"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\338'</span> <span class='layout'>)</span>
+<a name="line-697"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\339'</span> <span class='layout'>)</span>
+<a name="line-698"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\376'</span> <span class='layout'>)</span>
+<a name="line-699"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>
+<a name="line-700"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\258'</span> <span class='layout'>)</span>
+<a name="line-701"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\262'</span> <span class='layout'>)</span>
+<a name="line-702"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>
+<a name="line-703"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\323'</span> <span class='layout'>)</span>
+<a name="line-704"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\336'</span> <span class='layout'>)</span>
+<a name="line-705"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\346'</span> <span class='layout'>)</span>
+<a name="line-706"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\368'</span> <span class='layout'>)</span>
+<a name="line-707"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>
+<a name="line-708"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\538'</span> <span class='layout'>)</span>
+<a name="line-709"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\259'</span> <span class='layout'>)</span>
+<a name="line-710"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\263'</span> <span class='layout'>)</span>
+<a name="line-711"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>
+<a name="line-712"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\324'</span> <span class='layout'>)</span>
+<a name="line-713"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\337'</span> <span class='layout'>)</span>
+<a name="line-714"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\347'</span> <span class='layout'>)</span>
+<a name="line-715"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\369'</span> <span class='layout'>)</span>
+<a name="line-716"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>
+<a name="line-717"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\539'</span> <span class='layout'>)</span>
+<a name="line-718"></a>      <span class='keyglyph'>]</span>
+<a name="line-719"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-Namespace.html b/doc/hdoc/src/Text-XML-HXT-DOM-Namespace.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-Namespace.html
@@ -0,0 +1,64 @@
+<!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'>-- main namespace filter for propagation, checking, tracing and error handling</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- $Id: Namespace.hs,v 1.3 2005/01/06 10:48:07 hxml Exp $</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Namespace</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'>DOM</span><span class='varop'>.</span><span class='conid'>Namespace</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'>NamespaceFilter</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'>XmlTree</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'>XmlState</span>
+<a name="line-14"></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'>NamespaceFilter</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlOutput</span>
+<a name="line-17"></a>    <span class='layout'>(</span> <span class='varid'>traceTree</span>
+<a name="line-18"></a>    <span class='layout'>,</span> <span class='varid'>traceSource</span>
+<a name="line-19"></a>    <span class='layout'>,</span> <span class='varid'>traceMsg</span>
+<a name="line-20"></a>    <span class='layout'>)</span>
+<a name="line-21"></a>
+<a name="line-22"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='comment'>-- |</span>
+<a name="line-25"></a><span class='comment'>-- propagate all namespace declarations, check namespace constraints and issue errors.</span>
+<a name="line-26"></a><span class='comment'>-- If no error was found, result is the unchanged input tree, else the root node \"\/\" with an empty document is returned.</span>
+<a name="line-27"></a><span class='comment'>--</span>
+<a name="line-28"></a><span class='comment'>-- see also : 'propagateNamespaces', 'validateNamespaces'</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="propagateAndValidateNamespaces"></a><span class='definition'>propagateAndValidateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-31"></a><span class='definition'>propagateAndValidateNamespaces</span>
+<a name="line-32"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"propagating namespaces"</span>
+<a name="line-33"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-34"></a>      <span class='varid'>liftMf</span> <span class='varid'>propagateNamespaces</span>
+<a name="line-35"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-36"></a>      <span class='varid'>traceTree</span>
+<a name="line-37"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-38"></a>      <span class='varid'>traceSource</span>
+<a name="line-39"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-40"></a>      <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"validating namespaces"</span>
+<a name="line-41"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-42"></a>      <span class='varid'>validate</span>
+<a name="line-43"></a>    <span class='keyword'>where</span>
+<a name="line-44"></a>    <span class='varid'>validate</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-45"></a>    <span class='varid'>validate</span> <span class='varid'>t</span>
+<a name="line-46"></a>	<span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-47"></a>	  <span class='varid'>errs</span> <span class='keyglyph'>=</span> <span class='varid'>validateNamespaces</span> <span class='varid'>t</span>
+<a name="line-48"></a>	  <span class='keyword'>in</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>errs</span>
+<a name="line-49"></a>	     <span class='keyword'>then</span> <span class='varid'>thisM</span> <span class='varid'>t</span>
+<a name="line-50"></a>	     <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-51"></a>		  <span class='varid'>liftF</span> <span class='varid'>this</span> <span class='varop'>$$&lt;</span> <span class='varid'>errs</span>
+<a name="line-52"></a>		  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>setStatus</span> <span class='varid'>c_err</span> <span class='str'>"namespace propagation"</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-53"></a>	  
+<a name="line-54"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hdoc/src/Text-XML-HXT-DOM-NamespaceFilter.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-NamespaceFilter.html
@@ -0,0 +1,236 @@
+<!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'>-- Namespace filter</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- $Id: NamespaceFilter.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>-- Namespaces are processed with two main filter, 'propagateNamespaces'</span>
+<a name="line-7"></a><span class='comment'>-- and 'validateNamespaces'.</span>
+<a name="line-8"></a><span class='comment'>--</span>
+<a name="line-9"></a><span class='comment'>-- 'propagateNamespaces' takes a XML tree and</span>
+<a name="line-10"></a><span class='comment'>-- attaches extra namespace info at every tag name and attribute name.</span>
+<a name="line-11"></a><span class='comment'>-- So after processing a tree with 'propagateNamespaces', the access functions</span>
+<a name="line-12"></a><span class='comment'>-- "namespaceOf" and "universalNameOf" deliver the associated namespace (or \"\")</span>
+<a name="line-13"></a><span class='comment'>-- for tag names and attribute names.</span>
+<a name="line-14"></a><span class='comment'>--</span>
+<a name="line-15"></a><span class='comment'>-- 'validateNamespaces' checks whether names are wellformed related to the XML namespace definition.</span>
+<a name="line-16"></a><span class='comment'>-- whether a legal namespace is declared for all prefixes, and whether attribute names are unique</span>
+<a name="line-17"></a><span class='comment'>-- related to universal names.</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'>NamespaceFilter</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'>NamespaceFilter</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'>NamespacePredicates</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'>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'>XmlTree</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'>NamespacePredicates</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'>Util</span>
+<a name="line-30"></a>    <span class='layout'>(</span> <span class='varid'>doubles</span> <span class='layout'>)</span>
+<a name="line-31"></a>
+<a name="line-32"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-33"></a><span class='comment'>--</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- |</span>
+<a name="line-36"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>
+<a name="line-37"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>
+<a name="line-38"></a>
+<a name="line-39"></a><a name="NamespaceTable"></a><span class='keyword'>type</span> <span class='conid'>NamespaceTable</span> <span class='keyglyph'>=</span> <span class='conid'>NsEnv</span>
+<a name="line-40"></a>
+<a name="line-41"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-42"></a>
+<a name="line-43"></a><span class='comment'>-- |</span>
+<a name="line-44"></a><span class='comment'>-- propagate all namespace declarations \"xmlns:ns=...\" to all</span>
+<a name="line-45"></a><span class='comment'>-- tag and attribute nodes of a document.</span>
+<a name="line-46"></a><span class='comment'>--</span>
+<a name="line-47"></a><span class='comment'>-- This filter does not check for illegal use of namespaces.</span>
+<a name="line-48"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>
+<a name="line-49"></a><span class='comment'>--</span>
+<a name="line-50"></a><span class='comment'>-- The filter may be applied repeatedly if neccessary.</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-53"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>=</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-54"></a>
+<a name="line-55"></a><span class='comment'>-- |</span>
+<a name="line-56"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>
+<a name="line-57"></a><span class='comment'>-- to a tag node and its attributes and children.</span>
+<a name="line-58"></a>
+<a name="line-59"></a><a name="propagateNamespaceEnv"></a><span class='definition'>propagateNamespaceEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NamespaceTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-60"></a><span class='definition'>propagateNamespaceEnv</span> <span class='varid'>env</span> <span class='varid'>n</span>
+<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>processAttr</span> <span class='layout'>(</span><span class='varid'>attachNamespaceUrisToAttr</span> <span class='varid'>newEnv</span><span class='layout'>)</span>
+<a name="line-62"></a>	  <span class='varop'>.&gt;</span>
+<a name="line-63"></a>	  <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>propagateNamespaceEnv</span> <span class='varid'>newEnv</span><span class='layout'>)</span>
+<a name="line-64"></a>	  <span class='varop'>.&gt;</span>
+<a name="line-65"></a>	  <span class='varid'>modifyQName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>newEnv</span><span class='layout'>)</span>
+<a name="line-66"></a>	<span class='layout'>)</span>
+<a name="line-67"></a>	<span class='varop'>`when`</span>
+<a name="line-68"></a>	<span class='varid'>isXTag</span>
+<a name="line-69"></a>      <span class='layout'>)</span>
+<a name="line-70"></a>      <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-71"></a>    <span class='keyword'>where</span>
+<a name="line-72"></a>    <span class='varid'>nsAttrs</span>	<span class='keyglyph'>=</span> <span class='varid'>getAttrl</span>				<span class='comment'>-- scan all attributes</span>
+<a name="line-73"></a>		  <span class='varop'>.&gt;</span>
+<a name="line-74"></a>		  <span class='varid'>isOfAttr</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-75"></a>			     <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>		<span class='comment'>-- check for prefix or whole name is "xmlns"</span>
+<a name="line-76"></a>				 <span class='varop'>&amp;&amp;</span>
+<a name="line-77"></a>				 <span class='varid'>lp</span> <span class='varop'>/=</span> <span class='str'>":"</span>		<span class='comment'>-- check for none empty local part, "xmlns:" is not a legal name</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='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='comment'>-- break the name into a pair ("prefix", ":localPart")</span>
+<a name="line-81"></a>			     <span class='varop'>.</span> <span class='varid'>qualifiedName</span>		<span class='comment'>-- select attribute name</span>
+<a name="line-82"></a>			   <span class='layout'>)</span>
+<a name="line-83"></a>		  <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-84"></a>    <span class='varid'>nsDecl</span>	<span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span>			<span class='comment'>-- drop the ":", empty local part represents default name space</span>
+<a name="line-85"></a>			    <span class='varop'>.</span> <span class='varid'>snd</span>			<span class='comment'>-- take the local part with leading ":"</span>
+<a name="line-86"></a>			    <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='comment'>-- break it like above</span>
+<a name="line-87"></a>			    <span class='varop'>.</span> <span class='varid'>nameOf</span>			<span class='comment'>-- select attribute name</span>
+<a name="line-88"></a>			   <span class='layout'>)</span> <span class='varid'>nsAttrs</span><span class='layout'>)</span>
+<a name="line-89"></a>		      <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>xshow</span>
+<a name="line-90"></a>			    <span class='varop'>.</span>
+<a name="line-91"></a>			    <span class='varid'>getChildren</span>
+<a name="line-92"></a>			   <span class='layout'>)</span> <span class='varid'>nsAttrs</span><span class='layout'>)</span>
+<a name="line-93"></a>    <span class='varid'>newEnv</span>	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>nsDecl</span> <span class='varid'>env</span>
+<a name="line-94"></a>
+<a name="line-95"></a>    <span class='varid'>attachNamespaceUrisToAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>NamespaceTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-96"></a>    <span class='varid'>attachNamespaceUrisToAttr</span> <span class='varid'>attrEnv</span>
+<a name="line-97"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isOfAttr</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span>
+<a name="line-98"></a>			<span class='keyglyph'>-&gt;</span> <span class='layout'>(</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'>drop</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varid'>lp</span>	<span class='comment'>-- prefix and local part must not be empty</span>
+<a name="line-99"></a>			     <span class='varop'>&amp;&amp;</span>
+<a name="line-100"></a>			     <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'>px</span>
+<a name="line-101"></a>			   <span class='layout'>)</span>
+<a name="line-102"></a>		       <span class='layout'>)</span>
+<a name="line-103"></a>		       <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='comment'>-- break the name into a pair ("prefix", ":localPart")</span>
+<a name="line-104"></a>		       <span class='varop'>.</span> <span class='varid'>qualifiedName</span>			<span class='comment'>-- select attribute name</span>
+<a name="line-105"></a>		     <span class='layout'>)</span>
+<a name="line-106"></a>	    <span class='varop'>`guards`</span>
+<a name="line-107"></a>	    <span class='varid'>modifyQName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>attrEnv</span><span class='layout'>)</span>
+<a name="line-108"></a>	  <span class='layout'>)</span>
+<a name="line-109"></a>          <span class='varop'>`orElse`</span>
+<a name="line-110"></a>	  <span class='layout'>(</span> <span class='varid'>modifyQName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>xmlnsQN</span><span class='layout'>)</span>			<span class='comment'>-- "xmlns" ist the only attr name without prefix but with an associated namespace URI</span>
+<a name="line-111"></a>	    <span class='varop'>`when`</span>
+<a name="line-112"></a>	    <span class='varid'>isAttr</span> <span class='varid'>a_xmlns</span>
+<a name="line-113"></a>	  <span class='layout'>)</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><span class='comment'>-- |</span>
+<a name="line-118"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>
+<a name="line-119"></a><span class='comment'>-- result is the list of errors concerning namespaces.</span>
+<a name="line-120"></a><span class='comment'>-- Work is done by applying 'validate1Namespaces' to all nodes.</span>
+<a name="line-121"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'</span>
+<a name="line-122"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate tags and attributes.</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="validateNamespaces"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-125"></a><span class='definition'>validateNamespaces</span>
+<a name="line-126"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>
+<a name="line-127"></a>               <span class='conop'>:-&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>validateNamespaces</span>		<span class='comment'>-- root is correct by definition</span>
+<a name="line-128"></a>	     <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-129"></a>	       <span class='conop'>:-&gt;</span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</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'>-- a single node for namespace constrains.</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="validate1Namespaces"></a><span class='definition'>validate1Namespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-136"></a><span class='definition'>validate1Namespaces</span>
+<a name="line-137"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isXTag</span>
+<a name="line-138"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-139"></a>	       <span class='varid'>cat</span> <span class='keyglyph'>[</span> <span class='varid'>isOfTag</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-140"></a>		     <span class='varop'>`guards`</span>
+<a name="line-141"></a>		     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"tag name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-142"></a>
+<a name="line-143"></a>		   <span class='layout'>,</span> <span class='varid'>isOfTag</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-144"></a>		     <span class='varop'>`guards`</span>
+<a name="line-145"></a>		     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"namespace for prefix in tag name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-146"></a>
+<a name="line-147"></a>                   <span class='layout'>,</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='keyword'>let</span>
+<a name="line-148"></a>		               <span class='varid'>dbls</span> <span class='keyglyph'>=</span> <span class='varid'>doubles</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>universalNameOf</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span><span class='layout'>)</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-149"></a>		               <span class='keyword'>in</span>
+<a name="line-150"></a>		               <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>dbls</span>
+<a name="line-151"></a>		               <span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-152"></a>                               <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"multiple occurences of universal names for attributes of tag "</span>
+<a name="line-153"></a>					  <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-154"></a>					  <span class='varop'>++</span> <span class='str'>" : "</span> <span class='varop'>++</span> <span class='varid'>foldr1</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='str'>", "</span> <span class='varop'>++</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>show</span> <span class='varid'>dbls</span><span class='layout'>)</span>
+<a name="line-155"></a>					<span class='layout'>)</span>
+<a name="line-156"></a>			     <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-157"></a>		     <span class='layout'>)</span>
+<a name="line-158"></a>
+<a name="line-159"></a>		   <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>.&gt;</span> <span class='varid'>validate1Namespaces</span>
+<a name="line-160"></a>		   <span class='keyglyph'>]</span>
+<a name="line-161"></a>
+<a name="line-162"></a>	     <span class='layout'>,</span> <span class='varid'>isXAttr</span>
+<a name="line-163"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-164"></a>	       <span class='varid'>cat</span> <span class='keyglyph'>[</span> <span class='varid'>isOfAttr</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-165"></a>		     <span class='varop'>`guards`</span>
+<a name="line-166"></a>		     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-167"></a>
+<a name="line-168"></a>		   <span class='layout'>,</span> <span class='varid'>isOfAttr</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-169"></a>	             <span class='varop'>`guards`</span>
+<a name="line-170"></a>		     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"namespace for prefix in attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-171"></a>
+<a name="line-172"></a>                   <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>hasPrefix</span> <span class='varid'>a_xmlns</span> <span class='varop'>.&gt;</span> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>xmlTreesToText</span> <span class='varop'>.</span> <span class='varid'>getChildren</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-173"></a>		     <span class='varop'>`guards`</span>
+<a name="line-174"></a>		     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"namespace value of namespace declaration for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" has no value"</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-175"></a>
+<a name="line-176"></a>                   <span class='layout'>,</span> <span class='varid'>isOfAttr</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-177"></a>		     <span class='varop'>`guards`</span>
+<a name="line-178"></a>		     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"illegal namespace declaration with reserved prefix "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>localPartOf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" starting with \"xml\""</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-179"></a>	           <span class='keyglyph'>]</span>
+<a name="line-180"></a>
+<a name="line-181"></a>             <span class='layout'>,</span> <span class='varid'>isXDTD</span>
+<a name="line-182"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-183"></a>	       <span class='varid'>cat</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isDoctype</span> <span class='varop'>+++</span> <span class='varid'>isAttlist</span> <span class='varop'>+++</span> <span class='varid'>isElement</span> <span class='varop'>+++</span> <span class='varid'>isDTDName</span> <span class='layout'>)</span>
+<a name="line-184"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-185"></a>		       <span class='varid'>isOf</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varop'>.</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='layout'>)</span>
+<a name="line-186"></a>		     <span class='layout'>)</span>
+<a name="line-187"></a>		     <span class='varop'>`guards`</span>
+<a name="line-188"></a>                     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</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='layout'>(</span><span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-189"></a>
+<a name="line-190"></a>		   <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isAttlist</span>
+<a name="line-191"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-192"></a>		       <span class='varid'>isOf</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varop'>.</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span> <span class='layout'>)</span>
+<a name="line-193"></a>		     <span class='layout'>)</span>
+<a name="line-194"></a>		     <span class='varop'>`guards`</span>
+<a name="line-195"></a>                     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</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='layout'>(</span><span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-196"></a>
+<a name="line-197"></a>                   <span class='layout'>,</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isEntity</span> <span class='varop'>+++</span> <span class='varid'>isParameterEntity</span> <span class='varop'>+++</span> <span class='varid'>isNotation</span> <span class='layout'>)</span>
+<a name="line-198"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-199"></a>		       <span class='varid'>isOf</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span> <span class='varop'>.</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='layout'>)</span>
+<a name="line-200"></a>		     <span class='layout'>)</span>
+<a name="line-201"></a>                     <span class='varop'>`guards`</span>
+<a name="line-202"></a>                     <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</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='layout'>(</span><span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-203"></a>		   <span class='keyglyph'>]</span>
+<a name="line-204"></a>             <span class='layout'>,</span> <span class='varid'>isXPi</span>
+<a name="line-205"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-206"></a>	       <span class='layout'>(</span> <span class='varid'>isOf</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span> <span class='varop'>.</span> <span class='varid'>nameOf</span> <span class='layout'>)</span>
+<a name="line-207"></a>	         <span class='varop'>`guards`</span>
+<a name="line-208"></a>                 <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"a PI contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOf</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-209"></a>	       <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='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="isNamespaceDecl"></a><span class='definition'>isNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-215"></a><span class='definition'>isNamespaceDecl</span>
+<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>isOfAttr</span> <span class='varid'>xmlnsName</span>
+<a name="line-217"></a>      <span class='keyword'>where</span>
+<a name="line-218"></a>      <span class='varid'>xmlnsName</span>	<span class='keyglyph'>::</span> <span class='conid'>AttrName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-219"></a>      <span class='varid'>xmlnsName</span> <span class='varid'>a</span>
+<a name="line-220"></a>	  <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
+<a name="line-221"></a>	    <span class='varop'>&amp;&amp;</span>
+<a name="line-222"></a>	    <span class='layout'>(</span> <span class='varid'>null</span> <span class='varid'>ln</span> <span class='varop'>||</span> <span class='varid'>head</span> <span class='varid'>ln</span> <span class='varop'>==</span> <span class='chr'>':'</span><span class='layout'>)</span>
+<a name="line-223"></a>	  <span class='keyword'>where</span>
+<a name="line-224"></a>	  <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>ln</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>5</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span> <span class='varop'>$</span> <span class='varid'>a</span>
+<a name="line-225"></a>
+<a name="line-226"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-NamespacePredicates.html
@@ -0,0 +1,138 @@
+<!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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html
@@ -0,0 +1,222 @@
+<!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     : Text.XML.HXT.DOM.QualifiedName
+<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 core data types of the HXT DOM.
+<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'>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'>Strategies</span><span class='varop'>.</span><span class='conid'>DeepSeq</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'>DeepSeq</span> <span class='conid'>QName</span> <span class='keyword'>where</span>
+<a name="line-62"></a>    <span class='varid'>deepSeq</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='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>np</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>lp</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>ns</span> <span class='varid'>y</span>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='comment'>-- |</span>
+<a name="line-65"></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-66"></a>
+<a name="line-67"></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-68"></a><span class='definition'>qualifiedName</span> <span class='varid'>n</span>
+<a name="line-69"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span>
+<a name="line-70"></a>	<span class='keyglyph'>=</span> <span class='varid'>lp</span>
+<a name="line-71"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-72"></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-73"></a>    <span class='keyword'>where</span>
+<a name="line-74"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>
+<a name="line-75"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>  <span class='varid'>n</span>
+<a name="line-76"></a>
+<a name="line-77"></a><span class='comment'>-- |</span>
+<a name="line-78"></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-79"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>
+<a name="line-80"></a>
+<a name="line-81"></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-82"></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>
+<a name="line-84"></a><span class='comment'>-- |</span>
+<a name="line-85"></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-86"></a><span class='comment'>-- where the subject, predicate and object often are concatenated from namespace uri and local part</span>
+<a name="line-87"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>
+<a name="line-88"></a>
+<a name="line-89"></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-90"></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-91"></a>
+<a name="line-92"></a><span class='comment'>-- |</span>
+<a name="line-93"></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-94"></a><span class='comment'>-- namespace uri and local part are combined with the combining function given by the first parameter</span>
+<a name="line-95"></a>
+<a name="line-96"></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-97"></a><span class='definition'>buildUniversalName</span> <span class='varid'>bf</span> <span class='varid'>n</span>
+<a name="line-98"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>
+<a name="line-99"></a>	<span class='keyglyph'>=</span> <span class='varid'>lp</span>
+<a name="line-100"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-101"></a>	<span class='keyglyph'>=</span> <span class='varid'>bf</span> <span class='varid'>ns</span> <span class='varid'>lp</span>
+<a name="line-102"></a>    <span class='keyword'>where</span>
+<a name="line-103"></a>    <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>
+<a name="line-104"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>    <span class='varid'>n</span>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='comment'>-- |</span>
+<a name="line-107"></a><span class='comment'>-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.</span>
+<a name="line-108"></a>
+<a name="line-109"></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-110"></a><span class='definition'>mkQName</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>n</span>
+<a name="line-111"></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-112"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>
+<a name="line-113"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-114"></a>	 <span class='layout'>}</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='comment'>-- |</span>
+<a name="line-117"></a><span class='comment'>-- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.</span>
+<a name="line-118"></a>
+<a name="line-119"></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-120"></a><span class='definition'>mkName</span> <span class='varid'>s</span>
+<a name="line-121"></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-122"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-123"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='str'>""</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><span class='comment'>-- constructs a simple name, with prefix and localPart but without a namespace uri.</span>
+<a name="line-128"></a><span class='comment'>--</span>
+<a name="line-129"></a><span class='comment'>-- see also 'mkName', 'mkNsName', 'mkSNsName'</span>
+<a name="line-130"></a>
+<a name="line-131"></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-132"></a><span class='definition'>mkPrefixLocalPart</span> <span class='varid'>p</span> <span class='varid'>l</span>
+<a name="line-133"></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-134"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>
+<a name="line-135"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-136"></a>	 <span class='layout'>}</span>
+<a name="line-137"></a>
+<a name="line-138"></a><span class='comment'>-- |</span>
+<a name="line-139"></a><span class='comment'>-- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.</span>
+<a name="line-140"></a><span class='comment'>--</span>
+<a name="line-141"></a><span class='comment'>-- see also 'mkName', 'mkPrefixLocalPart'</span>
+<a name="line-142"></a>
+<a name="line-143"></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-144"></a><span class='definition'>mkNsName</span> <span class='varid'>n</span> <span class='varid'>ns</span>
+<a name="line-145"></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-146"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>
+<a name="line-147"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>ns</span>
+<a name="line-148"></a>	 <span class='layout'>}</span>
+<a name="line-149"></a>      <span class='keyword'>where</span>
+<a name="line-150"></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-151"></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-152"></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-153"></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-154"></a>
+<a name="line-155"></a>
+<a name="line-156"></a><span class='comment'>-- |</span>
+<a name="line-157"></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-158"></a><span class='comment'>--</span>
+<a name="line-159"></a><span class='comment'>-- see also 'mkNsName', 'mkPrefixLocalPart'</span>
+<a name="line-160"></a>
+<a name="line-161"></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-162"></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-163"></a>
+<a name="line-164"></a><span class='comment'>-- | Empty QName</span>
+<a name="line-165"></a>
+<a name="line-166"></a><a name="nullQName"></a><span class='definition'>nullQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-167"></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-168"></a>
+<a name="line-169"></a><span class='comment'>-- | Equality of QNames: Two QNames are equal, if the local parts are equal</span>
+<a name="line-170"></a><span class='comment'>-- and the namespace URIs are equal.</span>
+<a name="line-171"></a><span class='comment'>-- The comparison works with and without namespace propagation.</span>
+<a name="line-172"></a><span class='comment'>-- If namespaces have been propagated, the name is split into prefix and local part</span>
+<a name="line-173"></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-174"></a><span class='comment'>-- If namespaces have not been propagated, the local part contains the full name, prefix</span>
+<a name="line-175"></a><span class='comment'>-- and namespace URI are empty. The full name (prefix and local part) is used for comparison.</span>
+<a name="line-176"></a>
+<a name="line-177"></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-178"></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-179"></a>
+<a name="line-180"></a><span class='comment'>-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.</span>
+<a name="line-181"></a><span class='comment'>-- Comparison is done with 'equalQNameBy' and 'equivUri'</span>
+<a name="line-182"></a>
+<a name="line-183"></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-184"></a><span class='definition'>equivQName</span>	<span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='varid'>equivUri</span>
+<a name="line-185"></a>
+<a name="line-186"></a><span class='comment'>-- | Comparison of normalized namespace URIs using 'normalizeNsUri'</span>
+<a name="line-187"></a>
+<a name="line-188"></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-189"></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="line-191"></a><span class='comment'>-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...</span>
+<a name="line-192"></a><span class='comment'>-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and</span>
+<a name="line-193"></a><span class='comment'>-- 'equivQName'</span>
+<a name="line-194"></a>
+<a name="line-195"></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-196"></a><span class='definition'>equalQNameBy</span> <span class='varid'>equiv</span> <span class='varid'>q1</span> <span class='varid'>q2</span>
+<a name="line-197"></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-198"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-199"></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-200"></a>
+<a name="line-201"></a><span class='comment'>-- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored</span>
+<a name="line-202"></a>
+<a name="line-203"></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-204"></a><span class='definition'>normalizeNsUri</span>
+<a name="line-205"></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-206"></a>    <span class='keyword'>where</span>
+<a name="line-207"></a>    <span class='varid'>stripSlash</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-208"></a>    <span class='varid'>stripSlash</span> <span class='varid'>s</span>
+<a name="line-209"></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-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>
+<a name="line-212"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html
@@ -0,0 +1,416 @@
+<!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     : Text.XML.HXT.DOM.ShowXml
+<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>   XML tree conversion to external string representation
+<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'>ShowXml</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>xshow</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>showElemType</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'>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-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>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html
@@ -0,0 +1,185 @@
+<!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     : Text.XML.HXT.DOM.TypeDefs
+<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 core data types of the HXT DOM.
+<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'>TypeDefs</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</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'>TypeDefs</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'>QualifiedName</span>
+<a name="line-22"></a>    <span class='layout'>)</span>
+<a name="line-23"></a>
+<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'>Strategies</span><span class='varop'>.</span><span class='conid'>DeepSeq</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>
+<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-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'>-- Basic types for xml tree and filters</span>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='comment'>-- | Node of xml tree representation</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="XmlTree"></a><span class='keyword'>type</span> <span class='conid'>XmlTree</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span>    <span class='conid'>XNode</span>
+<a name="line-41"></a>
+<a name="line-42"></a><span class='comment'>-- | List of nodes of xml tree representation</span>
+<a name="line-43"></a>
+<a name="line-44"></a><a name="XmlTrees"></a><span class='keyword'>type</span> <span class='conid'>XmlTrees</span>	<span class='keyglyph'>=</span> <span class='conid'>NTrees</span>   <span class='conid'>XNode</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'>-- XNode</span>
+<a name="line-49"></a>
+<a name="line-50"></a><span class='comment'>-- | Represents elements</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="XNode"></a><span class='keyword'>data</span> <span class='conid'>XNode</span>	<span class='keyglyph'>=</span> <span class='conid'>XText</span>		  <span class='conid'>String</span>			<span class='comment'>-- ^ ordinary text				(leaf)</span>
+<a name="line-53"></a>		<span class='keyglyph'>|</span> <span class='conid'>XCharRef</span>	  <span class='conid'>Int</span>				<span class='comment'>-- ^ character reference			(leaf)</span>
+<a name="line-54"></a>		<span class='keyglyph'>|</span> <span class='conid'>XEntityRef</span>	  <span class='conid'>String</span>			<span class='comment'>-- ^ entity reference				(leaf)</span>
+<a name="line-55"></a>		<span class='keyglyph'>|</span> <span class='conid'>XCmt</span>		  <span class='conid'>String</span>			<span class='comment'>-- ^ comment					(leaf)</span>
+<a name="line-56"></a>		<span class='keyglyph'>|</span> <span class='conid'>XCdata</span>	  <span class='conid'>String</span>			<span class='comment'>-- ^ CDATA section				(leaf)</span>
+<a name="line-57"></a>		<span class='keyglyph'>|</span> <span class='conid'>XPi</span>		  <span class='conid'>QName</span> <span class='conid'>XmlTrees</span>		<span class='comment'>-- ^ Processing Instr with qualified name	(leaf)</span>
+<a name="line-58"></a>								<span class='comment'>--   with list of attributes.</span>
+<a name="line-59"></a>								<span class='comment'>--   If tag name is xml, attributs are \"version\", \"encoding\", \"standalone\",</span>
+<a name="line-60"></a>								<span class='comment'>--   else attribute list is empty, content is a text child node</span>
+<a name="line-61"></a>		<span class='keyglyph'>|</span> <span class='conid'>XTag</span>		  <span class='conid'>QName</span> <span class='conid'>XmlTrees</span>		<span class='comment'>-- ^ tag with qualified name and list of attributes (inner node or leaf)</span>
+<a name="line-62"></a>		<span class='keyglyph'>|</span> <span class='conid'>XDTD</span>		  <span class='conid'>DTDElem</span>  <span class='conid'>Attributes</span>		<span class='comment'>-- ^ DTD element with assoc list for dtd element features</span>
+<a name="line-63"></a>		<span class='keyglyph'>|</span> <span class='conid'>XAttr</span>		  <span class='conid'>QName</span>				<span class='comment'>-- ^ attribute with qualified name, the attribute value is stored in children</span>
+<a name="line-64"></a>		<span class='keyglyph'>|</span> <span class='conid'>XError</span>	  <span class='conid'>Int</span>  <span class='conid'>String</span>			<span class='comment'>-- ^ error message with level and text</span>
+<a name="line-65"></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'>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-66"></a>
+<a name="line-67"></a><span class='keyword'>instance</span> <span class='conid'>DeepSeq</span> <span class='conid'>XNode</span> <span class='keyword'>where</span>
+<a name="line-68"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>y</span>		<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>s</span> <span class='varid'>y</span>
+<a name="line-69"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>i</span> <span class='varid'>y</span>
+<a name="line-70"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>n</span> <span class='varid'>y</span>
+<a name="line-71"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>y</span>		<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>c</span> <span class='varid'>y</span>
+<a name="line-72"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>s</span> <span class='varid'>y</span>
+<a name="line-73"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>qn</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>qn</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>ts</span> <span class='varid'>y</span>
+<a name="line-74"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>qn</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>qn</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>cs</span> <span class='varid'>y</span>
+<a name="line-75"></a>    <span class='varid'>deepSeq</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'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>de</span> <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>al</span> <span class='varid'>y</span>
+<a name="line-76"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>qn</span> <span class='varid'>y</span>
+<a name="line-77"></a>    <span class='varid'>deepSeq</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>n</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>y</span>	<span class='keyglyph'>=</span> <span class='varid'>deepSeq</span> <span class='varid'>n</span>  <span class='varop'>$</span> <span class='varid'>deepSeq</span> <span class='varid'>e</span> <span class='varid'>y</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-80"></a><span class='comment'>--</span>
+<a name="line-81"></a><span class='comment'>-- DTDElem</span>
+<a name="line-82"></a>
+<a name="line-83"></a><span class='comment'>-- | Represents a DTD element</span>
+<a name="line-84"></a>
+<a name="line-85"></a><a name="DTDElem"></a><span class='keyword'>data</span> <span class='conid'>DTDElem</span>	<span class='keyglyph'>=</span> <span class='conid'>DOCTYPE</span>	<span class='comment'>-- ^ attr: name, system, public,	XDTD elems as children</span>
+<a name="line-86"></a>		<span class='keyglyph'>|</span> <span class='conid'>ELEMENT</span>	<span class='comment'>-- ^ attr: name, kind</span>
+<a name="line-87"></a>		                <span class='comment'>--</span>
+<a name="line-88"></a>				<span class='comment'>--  name: element name</span>
+<a name="line-89"></a>		                <span class='comment'>--</span>
+<a name="line-90"></a>				<span class='comment'>--  kind: \"EMPTY\" | \"ANY\" | \"\#PCDATA\" | children | mixed</span>
+<a name="line-91"></a>		<span class='keyglyph'>|</span> <span class='conid'>CONTENT</span>	<span class='comment'>-- ^ element content</span>
+<a name="line-92"></a>		                <span class='comment'>--</span>
+<a name="line-93"></a>				<span class='comment'>--  attr: kind, modifier</span>
+<a name="line-94"></a>		                <span class='comment'>--</span>
+<a name="line-95"></a>				<span class='comment'>--  modifier: \"\" | \"?\" | \"*\" | \"+\"</span>
+<a name="line-96"></a>		                <span class='comment'>--</span>
+<a name="line-97"></a>				<span class='comment'>--  kind: seq | choice</span>
+<a name="line-98"></a>		<span class='keyglyph'>|</span> <span class='conid'>ATTLIST</span>	<span class='comment'>-- ^ attributes:</span>
+<a name="line-99"></a>		                <span class='comment'>--  name - name of element</span>
+<a name="line-100"></a>		                <span class='comment'>--</span>
+<a name="line-101"></a>				<span class='comment'>--  value - name of attribute</span>
+<a name="line-102"></a>		                <span class='comment'>--</span>
+<a name="line-103"></a>				<span class='comment'>--  type: \"CDATA\" | \"ID\" | \"IDREF\" | \"IDREFS\" | \"ENTITY\" | \"ENTITIES\" |</span>
+<a name="line-104"></a>		                <span class='comment'>--</span>
+<a name="line-105"></a>				<span class='comment'>--        \"NMTOKEN\" | \"NMTOKENS\" |\"NOTATION\" | \"ENUMTYPE\"</span>
+<a name="line-106"></a>		                <span class='comment'>--</span>
+<a name="line-107"></a>				<span class='comment'>--  kind: \"#REQUIRED\" | \"#IMPLIED\" | \"DEFAULT\"</span>
+<a name="line-108"></a>		<span class='keyglyph'>|</span> <span class='conid'>ENTITY</span>	<span class='comment'>-- ^ for entity declarations</span>
+<a name="line-109"></a>		<span class='keyglyph'>|</span> <span class='conid'>PENTITY</span>	<span class='comment'>-- ^ for parameter entity declarations</span>
+<a name="line-110"></a>		<span class='keyglyph'>|</span> <span class='conid'>NOTATION</span>	<span class='comment'>-- ^ for notations</span>
+<a name="line-111"></a>		<span class='keyglyph'>|</span> <span class='conid'>CONDSECT</span>	<span class='comment'>-- ^ for INCLUDEs, IGNOREs and peRefs: attr: type</span>
+<a name="line-112"></a>		                <span class='comment'>--</span>
+<a name="line-113"></a>				<span class='comment'>--  type = INCLUDE, IGNORE or %...;</span>
+<a name="line-114"></a>		<span class='keyglyph'>|</span> <span class='conid'>NAME</span>		<span class='comment'>-- ^ attr: name</span>
+<a name="line-115"></a>		                <span class='comment'>--</span>
+<a name="line-116"></a>				<span class='comment'>--  for lists of names in notation types or nmtokens in enumeration types</span>
+<a name="line-117"></a>		<span class='keyglyph'>|</span> <span class='conid'>PEREF</span>		<span class='comment'>-- ^ for Parameter Entity References in DTDs</span>
+<a name="line-118"></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'>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-119"></a>
+<a name="line-120"></a><span class='keyword'>instance</span> <span class='conid'>DeepSeq</span> <span class='conid'>DTDElem</span>
+<a name="line-121"></a>
+<a name="line-122"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-123"></a>
+<a name="line-124"></a><span class='comment'>-- | Attribute list</span>
+<a name="line-125"></a><span class='comment'>--</span>
+<a name="line-126"></a><span class='comment'>-- used for storing option lists and features of DTD parts</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="Attributes"></a><span class='keyword'>type</span> <span class='conid'>Attributes</span>	<span class='keyglyph'>=</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-UTF8Decoding.html b/doc/hdoc/src/Text-XML-HXT-DOM-UTF8Decoding.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-UTF8Decoding.html
@@ -0,0 +1,58 @@
+<!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     : Text.XML.HXT.DOM.UTF8Decoding
+<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  : stable
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>   Version    : $Id$
+<a name="line-12"></a>
+<a name="line-13"></a>   Interface for Data.Char.UTF8 funtions
+<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'>UTF8Decoding</span> <span class='layout'>(</span>
+<a name="line-20"></a>   <span class='varid'>decodeUtf8</span><span class='layout'>,</span>
+<a name="line-21"></a>   <span class='varid'>decodeUtf8EmbedErrors</span><span class='layout'>,</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='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='varop'>.</span><span class='conid'>UTF8</span> <span class='keyword'>as</span> <span class='conid'>UTF8</span>
+<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Word</span> <span class='layout'>(</span><span class='conid'>Word8</span><span class='layout'>)</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='comment'>-- | calls 'Data.Char.UTF8.decode' for parsing and decoding UTF-8</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="decodeUtf8"></a><span class='definition'>decodeUtf8</span>	<span class='keyglyph'>::</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='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-31"></a><span class='definition'>decodeUtf8</span> <span class='varid'>str</span>
+<a name="line-32"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>toErrStr</span><span class='layout'>)</span> <span class='varid'>errs</span><span class='layout'>)</span>
+<a name="line-33"></a>    <span class='keyword'>where</span>
+<a name="line-34"></a>    <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>errs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>UTF8</span><span class='varop'>.</span><span class='varid'>decode</span> <span class='varop'>.</span> <span class='varid'>stringToByteString</span> <span class='varop'>$</span> <span class='varid'>str</span>
+<a name="line-35"></a>
+<a name="line-36"></a><a name="decodeUtf8EmbedErrors"></a><span class='definition'>decodeUtf8EmbedErrors</span>	<span class='keyglyph'>::</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'>Char</span><span class='keyglyph'>]</span>
+<a name="line-37"></a><span class='definition'>decodeUtf8EmbedErrors</span> <span class='varid'>str</span>
+<a name="line-38"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>uncurry</span> <span class='varid'>toErrStr</span><span class='layout'>)</span> <span class='conid'>Right</span><span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-39"></a>      <span class='conid'>UTF8</span><span class='varop'>.</span><span class='varid'>decodeEmbedErrors</span> <span class='varop'>$</span> <span class='varid'>stringToByteString</span> <span class='varop'>$</span> <span class='varid'>str</span>
+<a name="line-40"></a>
+<a name="line-41"></a><a name="stringToByteString"></a><span class='definition'>stringToByteString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>
+<a name="line-42"></a><span class='definition'>stringToByteString</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>toEnum</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>
+<a name="line-43"></a>
+<a name="line-44"></a><a name="toErrStr"></a><span class='definition'>toErrStr</span> <span class='keyglyph'>::</span> <span class='conid'>UTF8</span><span class='varop'>.</span><span class='conid'>Error</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-45"></a><span class='definition'>toErrStr</span> <span class='varid'>err</span> <span class='varid'>pos</span>
+<a name="line-46"></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'>": "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>err</span>
+<a name="line-47"></a>
+<a name="line-48"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html
@@ -0,0 +1,1115 @@
+<!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     : 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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-Util.html b/doc/hdoc/src/Text-XML-HXT-DOM-Util.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-Util.html
@@ -0,0 +1,287 @@
+<!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'>-- utility functions</span>
+<a name="line-3"></a><span class='comment'>---- Version : $Id: Util.hs,v 1.3 2006/05/01 18:56:24 hxml Exp $</span>
+<a name="line-4"></a>
+<a name="line-5"></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'>Util</span>
+<a name="line-6"></a>    <span class='layout'>(</span> <span class='varid'>stringTrim</span>
+<a name="line-7"></a>    <span class='layout'>,</span> <span class='varid'>stringToUpper</span>
+<a name="line-8"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNumber</span>
+<a name="line-9"></a>    <span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span>
+<a name="line-10"></a>    <span class='layout'>,</span> <span class='varid'>normalizeBlanks</span>
+<a name="line-11"></a>
+<a name="line-12"></a>    <span class='layout'>,</span> <span class='varid'>escapeURI</span>
+<a name="line-13"></a>    <span class='layout'>,</span> <span class='varid'>textEscapeXml</span>
+<a name="line-14"></a>    <span class='layout'>,</span> <span class='varid'>stringEscapeXml</span>
+<a name="line-15"></a>    <span class='layout'>,</span> <span class='varid'>attrEscapeXml</span>
+<a name="line-16"></a>
+<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>stringToInt</span>
+<a name="line-18"></a>    <span class='layout'>,</span> <span class='varid'>stringToHexString</span>
+<a name="line-19"></a>    <span class='layout'>,</span> <span class='varid'>charToHexString</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>intToHexString</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>hexStringToInt</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>decimalStringToInt</span>
+<a name="line-23"></a>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>doubles</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>singles</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>noDoubles</span>
+<a name="line-27"></a>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>swap</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>partitionEither</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>toMaybe</span>
+<a name="line-31"></a>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>uncurry3</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>uncurry4</span>
+<a name="line-34"></a>    <span class='layout'>)</span>
+<a name="line-35"></a><span class='keyword'>where</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-40"></a><span class='comment'>-- |</span>
+<a name="line-41"></a><span class='comment'>-- remove leading and trailing whitespace with standard Haskell predicate isSpace</span>
+<a name="line-42"></a>
+<a name="line-43"></a><a name="stringTrim"></a><span class='definition'>stringTrim</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-44"></a><span class='definition'>stringTrim</span>
+<a name="line-45"></a>    <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='varid'>isSpace</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='varid'>isSpace</span>
+<a name="line-46"></a>
+<a name="line-47"></a><span class='comment'>-- |</span>
+<a name="line-48"></a><span class='comment'>-- convert string to upercase with standard Haskell toUpper function</span>
+<a name="line-49"></a>
+<a name="line-50"></a><a name="stringToUpper"></a><span class='definition'>stringToUpper</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-51"></a><span class='definition'>stringToUpper</span>
+<a name="line-52"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toUpper</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='comment'>-- | Removes leading \/ trailing whitespaces and leading zeros</span>
+<a name="line-55"></a>
+<a name="line-56"></a><a name="normalizeNumber"></a><span class='definition'>normalizeNumber</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-57"></a><span class='definition'>normalizeNumber</span>
+<a name="line-58"></a>    <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> 
+<a name="line-59"></a>      <span class='varid'>dropWhile</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'>==</span> <span class='chr'>'0'</span> <span class='varop'>||</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='chr'>' '</span><span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='comment'>-- | Reduce whitespace sequences to a single whitespace</span>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="normalizeWhitespace"></a><span class='definition'>normalizeWhitespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-65"></a><span class='definition'>normalizeWhitespace</span>
+<a name="line-66"></a>    <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='varop'>.</span> <span class='varid'>words</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>-- | replace all whitespace chars by blanks</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="normalizeBlanks"></a><span class='definition'>normalizeBlanks</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-71"></a><span class='definition'>normalizeBlanks</span>
+<a name="line-72"></a>    <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='keyword'>if</span> <span class='varid'>isSpace</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='chr'>' '</span> <span class='keyword'>else</span> <span class='varid'>x</span><span class='layout'>)</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><span class='comment'>-- | Escape all disallowed characters in URI </span>
+<a name="line-77"></a><span class='comment'>-- references (see &lt;<a href="http://www.w3.org/TR/xlink/#link-locators">http://www.w3.org/TR/xlink/#link-locators</a>&gt;)</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="escapeURI"></a><span class='definition'>escapeURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-80"></a><span class='definition'>escapeURI</span> <span class='varid'>ref</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>replace</span> <span class='varid'>ref</span>
+<a name="line-82"></a>      <span class='keyword'>where</span>
+<a name="line-83"></a>      <span class='varid'>notAllowed</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-84"></a>      <span class='varid'>notAllowed</span> <span class='varid'>c</span>
+<a name="line-85"></a>	  <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&lt;</span> <span class='chr'>'\31'</span>
+<a name="line-86"></a>	    <span class='varop'>||</span>
+<a name="line-87"></a>	    <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\DEL'</span><span class='layout'>,</span> <span class='chr'>' '</span><span class='layout'>,</span> <span class='chr'>'&lt;'</span><span class='layout'>,</span> <span class='chr'>'&gt;'</span><span class='layout'>,</span> <span class='chr'>'\"'</span><span class='layout'>,</span> <span class='chr'>'{'</span><span class='layout'>,</span> <span class='chr'>'}'</span><span class='layout'>,</span> <span class='chr'>'|'</span><span class='layout'>,</span> <span class='chr'>'\\'</span><span class='layout'>,</span> <span class='chr'>'^'</span><span class='layout'>,</span> <span class='chr'>'`'</span> <span class='keyglyph'>]</span>
+<a name="line-88"></a>
+<a name="line-89"></a>      <span class='varid'>replace</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-90"></a>      <span class='varid'>replace</span> <span class='varid'>c</span>
+<a name="line-91"></a>	  <span class='keyglyph'>|</span> <span class='varid'>notAllowed</span> <span class='varid'>c</span>
+<a name="line-92"></a>	      <span class='keyglyph'>=</span> <span class='chr'>'%'</span> <span class='conop'>:</span> <span class='varid'>charToHexString</span> <span class='varid'>c</span>
+<a name="line-93"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-94"></a>	      <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>c</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="escapeXml"></a><span class='definition'>escapeXml</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-99"></a><span class='definition'>escapeXml</span> <span class='varid'>escSet</span>
+<a name="line-100"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>esc</span>
+<a name="line-101"></a>      <span class='keyword'>where</span>
+<a name="line-102"></a>      <span class='varid'>esc</span> <span class='varid'>c</span>
+<a name="line-103"></a>	  <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='varid'>escSet</span>
+<a name="line-104"></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'>c</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>";"</span>
+<a name="line-105"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-106"></a>	      <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-107"></a>
+<a name="line-108"></a><span class='comment'>-- |</span>
+<a name="line-109"></a><span class='comment'>-- escape XML chars &amp;lt;, &amp;gt;, &amp;quot;,  and ampercent by transforming them into character references</span>
+<a name="line-110"></a><span class='comment'>--</span>
+<a name="line-111"></a><span class='comment'>-- see also : 'attrEscapeXml'</span>
+<a name="line-112"></a>
+<a name="line-113"></a><a name="stringEscapeXml"></a><span class='definition'>stringEscapeXml</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-114"></a><span class='definition'>stringEscapeXml</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeXml</span> <span class='str'>"&lt;&gt;\"\'&amp;"</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='comment'>-- |</span>
+<a name="line-117"></a><span class='comment'>-- escape XML chars &amp;lt;  and ampercent by transforming them into character references, used for escaping text nodes</span>
+<a name="line-118"></a><span class='comment'>--</span>
+<a name="line-119"></a><span class='comment'>-- see also : 'attrEscapeXml'</span>
+<a name="line-120"></a>
+<a name="line-121"></a><a name="textEscapeXml"></a><span class='definition'>textEscapeXml</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-122"></a><span class='definition'>textEscapeXml</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeXml</span> <span class='str'>"&lt;&amp;"</span>
+<a name="line-123"></a>
+<a name="line-124"></a><span class='comment'>-- |</span>
+<a name="line-125"></a><span class='comment'>-- escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace</span>
+<a name="line-126"></a><span class='comment'>-- is also escaped</span>
+<a name="line-127"></a><span class='comment'>--</span>
+<a name="line-128"></a><span class='comment'>-- see also : 'stringEscapeXml'</span>
+<a name="line-129"></a>
+<a name="line-130"></a><a name="attrEscapeXml"></a><span class='definition'>attrEscapeXml</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-131"></a><span class='definition'>attrEscapeXml</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeXml</span> <span class='str'>"&lt;&gt;\"\'&amp;\n\r\t"</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="stringToInt"></a><span class='definition'>stringToInt</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'>Int</span>
+<a name="line-134"></a><span class='definition'>stringToInt</span> <span class='varid'>base</span> <span class='varid'>digits</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>sign</span> <span class='varop'>*</span> <span class='layout'>(</span><span class='varid'>foldl</span> <span class='varid'>acc</span> <span class='num'>0</span> <span class='varop'>$</span> <span class='varid'>concatMap</span> <span class='varid'>digToInt</span> <span class='varid'>digits1</span><span class='layout'>)</span>
+<a name="line-136"></a>      <span class='keyword'>where</span>
+<a name="line-137"></a>      <span class='varid'>splitSign</span> <span class='layout'>(</span><span class='chr'>'-'</span> <span class='conop'>:</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span>
+<a name="line-138"></a>      <span class='varid'>splitSign</span> <span class='layout'>(</span><span class='chr'>'+'</span> <span class='conop'>:</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='num'>1</span>  <span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span>
+<a name="line-139"></a>      <span class='varid'>splitSign</span> <span class='varid'>ds</span>         <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='num'>1</span>  <span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span>
+<a name="line-140"></a>      <span class='layout'>(</span><span class='varid'>sign</span><span class='layout'>,</span> <span class='varid'>digits1</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>splitSign</span> <span class='varid'>digits</span>
+<a name="line-141"></a>      <span class='varid'>digToInt</span> <span class='varid'>c</span>
+<a name="line-142"></a>	  <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>'0'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'9'</span>
+<a name="line-143"></a>	      <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ord</span> <span class='varid'>c</span> <span class='comment'>-</span> <span class='varid'>ord</span> <span class='chr'>'0'</span><span class='keyglyph'>]</span>
+<a name="line-144"></a>	  <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>'A'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'Z'</span>
+<a name="line-145"></a>	      <span class='keyglyph'>=</span>  <span class='keyglyph'>[</span><span class='varid'>ord</span> <span class='varid'>c</span> <span class='comment'>-</span> <span class='varid'>ord</span> <span class='chr'>'A'</span> <span class='varop'>+</span> <span class='num'>10</span><span class='keyglyph'>]</span>
+<a name="line-146"></a>	  <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>'a'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'z'</span>
+<a name="line-147"></a>	      <span class='keyglyph'>=</span>  <span class='keyglyph'>[</span><span class='varid'>ord</span> <span class='varid'>c</span> <span class='comment'>-</span> <span class='varid'>ord</span> <span class='chr'>'a'</span> <span class='varop'>+</span> <span class='num'>10</span><span class='keyglyph'>]</span>
+<a name="line-148"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-149"></a>	      <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-150"></a>      <span class='varid'>acc</span> <span class='varid'>i1</span> <span class='varid'>i0</span>
+<a name="line-151"></a>	  <span class='keyglyph'>=</span> <span class='varid'>i1</span> <span class='varop'>*</span> <span class='varid'>base</span> <span class='varop'>+</span> <span class='varid'>i0</span>
+<a name="line-152"></a>
+<a name="line-153"></a>
+<a name="line-154"></a><span class='comment'>-- |</span>
+<a name="line-155"></a><span class='comment'>-- convert a string of hexadecimal digits into an Int</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="hexStringToInt"></a><span class='definition'>hexStringToInt</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-158"></a><span class='definition'>hexStringToInt</span>		<span class='keyglyph'>=</span> <span class='varid'>stringToInt</span> <span class='num'>16</span>
+<a name="line-159"></a>
+<a name="line-160"></a><span class='comment'>-- |</span>
+<a name="line-161"></a><span class='comment'>-- convert a string of digits into an Int</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="decimalStringToInt"></a><span class='definition'>decimalStringToInt</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-164"></a><span class='definition'>decimalStringToInt</span>	<span class='keyglyph'>=</span> <span class='varid'>stringToInt</span> <span class='num'>10</span>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='comment'>-- |</span>
+<a name="line-167"></a><span class='comment'>-- convert a string into a hexadecimal string applying charToHexString</span>
+<a name="line-168"></a><span class='comment'>--</span>
+<a name="line-169"></a><span class='comment'>-- see also : 'charToHexString'</span>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="stringToHexString"></a><span class='definition'>stringToHexString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-172"></a><span class='definition'>stringToHexString</span>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>charToHexString</span>
+<a name="line-173"></a>
+<a name="line-174"></a><span class='comment'>-- |</span>
+<a name="line-175"></a><span class='comment'>-- convert a char (byte) into a 2-digit hexadecimal string</span>
+<a name="line-176"></a><span class='comment'>--</span>
+<a name="line-177"></a><span class='comment'>-- see also : 'stringToHexString', 'intToHexString'</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="charToHexString"></a><span class='definition'>charToHexString</span>		<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-180"></a><span class='definition'>charToHexString</span> <span class='varid'>c</span>
+<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>fourBitsToChar</span> <span class='layout'>(</span><span class='varid'>c'</span> <span class='varop'>`div`</span> <span class='num'>16</span><span class='layout'>)</span>
+<a name="line-182"></a>      <span class='layout'>,</span> <span class='varid'>fourBitsToChar</span> <span class='layout'>(</span><span class='varid'>c'</span> <span class='varop'>`mod`</span> <span class='num'>16</span><span class='layout'>)</span>
+<a name="line-183"></a>      <span class='keyglyph'>]</span>
+<a name="line-184"></a>    <span class='keyword'>where</span>
+<a name="line-185"></a>    <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>
+<a name="line-186"></a>
+<a name="line-187"></a><span class='comment'>-- |</span>
+<a name="line-188"></a><span class='comment'>-- convert a none negative Int into a hexadecimal string</span>
+<a name="line-189"></a><span class='comment'>--</span>
+<a name="line-190"></a><span class='comment'>-- see also : 'charToHexString'</span>
+<a name="line-191"></a>
+<a name="line-192"></a><a name="intToHexString"></a><span class='definition'>intToHexString</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-193"></a><span class='definition'>intToHexString</span> <span class='varid'>i</span>
+<a name="line-194"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>0</span>
+<a name="line-195"></a>	<span class='keyglyph'>=</span> <span class='str'>"0"</span>
+<a name="line-196"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;</span> <span class='num'>0</span>
+<a name="line-197"></a>	<span class='keyglyph'>=</span> <span class='varid'>intToStr</span> <span class='varid'>i</span>
+<a name="line-198"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-199"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"intToHexString: negative argument "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-200"></a>    <span class='keyword'>where</span>
+<a name="line-201"></a>    <span class='varid'>intToStr</span> <span class='num'>0</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-202"></a>    <span class='varid'>intToStr</span> <span class='varid'>i'</span>	<span class='keyglyph'>=</span> <span class='varid'>intToStr</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>`div`</span> <span class='num'>16</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>fourBitsToChar</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>`mod`</span> <span class='num'>16</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-203"></a>
+<a name="line-204"></a><a name="fourBitsToChar"></a><span class='definition'>fourBitsToChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span>
+<a name="line-205"></a><span class='definition'>fourBitsToChar</span> <span class='varid'>i</span>	<span class='keyglyph'>=</span> <span class='str'>"0123456789ABCDEF"</span> <span class='varop'>!!</span> <span class='varid'>i</span>
+<a name="line-206"></a>
+<a name="line-207"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-208"></a>
+<a name="line-209"></a><span class='comment'>-- |</span>
+<a name="line-210"></a><span class='comment'>-- take all elements of a list which occur more than once. The result does not contain doubles.</span>
+<a name="line-211"></a><span class='comment'>-- (doubles . doubles == doubles)</span>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="doubles"></a><span class='definition'>doubles</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>
+<a name="line-214"></a><span class='definition'>doubles</span>
+<a name="line-215"></a>    <span class='keyglyph'>=</span> <span class='varid'>doubles'</span> <span class='conid'>[]</span>
+<a name="line-216"></a>      <span class='keyword'>where</span>
+<a name="line-217"></a>      <span class='varid'>doubles'</span> <span class='varid'>acc</span> <span class='conid'>[]</span>
+<a name="line-218"></a>	  <span class='keyglyph'>=</span> <span class='varid'>acc</span>
+<a name="line-219"></a>      <span class='varid'>doubles'</span> <span class='varid'>acc</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-220"></a>	  <span class='keyglyph'>|</span> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>
+<a name="line-221"></a>	    <span class='varop'>&amp;&amp;</span>
+<a name="line-222"></a>	    <span class='varid'>e</span> <span class='varop'>`notElem`</span> <span class='varid'>acc</span>
+<a name="line-223"></a>	      <span class='keyglyph'>=</span> <span class='varid'>doubles'</span> <span class='layout'>(</span><span class='varid'>e</span><span class='conop'>:</span><span class='varid'>acc</span><span class='layout'>)</span> <span class='varid'>s</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'>doubles'</span> <span class='varid'>acc</span> <span class='varid'>s</span>
+<a name="line-226"></a>
+<a name="line-227"></a><span class='comment'>-- |</span>
+<a name="line-228"></a><span class='comment'>-- drop all elements from a list which occur more than once.</span>
+<a name="line-229"></a>
+<a name="line-230"></a><a name="singles"></a><span class='definition'>singles</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>
+<a name="line-231"></a><span class='definition'>singles</span>
+<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>singles'</span> <span class='conid'>[]</span>
+<a name="line-233"></a>      <span class='keyword'>where</span>
+<a name="line-234"></a>      <span class='varid'>singles'</span> <span class='varid'>acc</span> <span class='conid'>[]</span>
+<a name="line-235"></a>	  <span class='keyglyph'>=</span> <span class='varid'>acc</span>
+<a name="line-236"></a>      <span class='varid'>singles'</span> <span class='varid'>acc</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-237"></a>	  <span class='keyglyph'>|</span> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>
+<a name="line-238"></a>	    <span class='varop'>||</span>
+<a name="line-239"></a>	    <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>acc</span>
+<a name="line-240"></a>	      <span class='keyglyph'>=</span> <span class='varid'>singles'</span> <span class='varid'>acc</span> <span class='varid'>s</span>
+<a name="line-241"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-242"></a>	      <span class='keyglyph'>=</span> <span class='varid'>singles'</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>acc</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-243"></a>
+<a name="line-244"></a><span class='comment'>-- |</span>
+<a name="line-245"></a><span class='comment'>-- remove duplicates from list</span>
+<a name="line-246"></a>
+<a name="line-247"></a><a name="noDoubles"></a><span class='definition'>noDoubles</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>
+<a name="line-248"></a><span class='definition'>noDoubles</span> <span class='conid'>[]</span>
+<a name="line-249"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-250"></a><span class='definition'>noDoubles</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-251"></a>    <span class='keyglyph'>|</span> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>noDoubles</span> <span class='varid'>s</span>
+<a name="line-252"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>  <span class='keyglyph'>=</span> <span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>noDoubles</span> <span class='varid'>s</span>
+<a name="line-253"></a>
+<a name="line-254"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-255"></a>
+<a name="line-256"></a><a name="swap"></a><span class='definition'>swap</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='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-257"></a><span class='definition'>swap</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='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span><span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-258"></a>
+<a name="line-259"></a><a name="partitionEither"></a><span class='definition'>partitionEither</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-260"></a><span class='definition'>partitionEither</span> <span class='keyglyph'>=</span>
+<a name="line-261"></a>   <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span><span class='varid'>rs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>l</span><span class='conop'>:</span><span class='varid'>ls</span><span class='layout'>,</span><span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>r</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span><span class='varid'>r</span><span class='conop'>:</span><span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-262"></a>
+<a name="line-263"></a><a name="toMaybe"></a><span class='definition'>toMaybe</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>
+<a name="line-264"></a><span class='definition'>toMaybe</span> <span class='conid'>False</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-265"></a><span class='definition'>toMaybe</span> <span class='conid'>True</span>  <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>
+<a name="line-266"></a>
+<a name="line-267"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-268"></a>
+<a name="line-269"></a><span class='comment'>-- | mothers little helpers for to much curry</span>
+<a name="line-270"></a>
+<a name="line-271"></a><a name="uncurry3"></a><span class='definition'>uncurry3</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='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>d</span>
+<a name="line-272"></a><span class='definition'>uncurry3</span> <span class='varid'>f</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='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-273"></a>
+<a name="line-274"></a><a name="uncurry4"></a><span class='definition'>uncurry4</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='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>e</span>
+<a name="line-275"></a><span class='definition'>uncurry4</span> <span class='varid'>f</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='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='varid'>d</span>
+<a name="line-276"></a>
+<a name="line-277"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html
@@ -0,0 +1,403 @@
+<!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     : Text.XML.HXT.DOM.XmlKeywords
+<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: XmlKeywords.hs,v 1.10 2006/11/02 09:34:09 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Constants for XML keywords, for special attribute names
+<a name="line-14"></a>   and special attribute values
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>
+<a name="line-21"></a><span class='keyword'>where</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'>List</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>isSuffixOf</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-28"></a><span class='comment'>--</span>
+<a name="line-29"></a><span class='comment'>-- string constants for representing DTD keywords and attributes</span>
+<a name="line-30"></a>
+<a name="line-31"></a><a name="t_xml"></a><span class='definition'>t_xml</span><span class='layout'>,</span>				<span class='comment'>-- tag names</span>
+<a name="line-32"></a> <span class='varid'>t_root</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-33"></a>
+<a name="line-34"></a><a name="a_canonicalize"></a><span class='definition'>a_canonicalize</span><span class='layout'>,</span>
+<a name="line-35"></a> <span class='varid'>a_default</span><span class='layout'>,</span>			<span class='comment'>-- attribute names</span>
+<a name="line-36"></a> <span class='varid'>a_check_namespaces</span><span class='layout'>,</span>
+<a name="line-37"></a> <span class='varid'>a_contentLength</span><span class='layout'>,</span>
+<a name="line-38"></a> <span class='varid'>a_collect_errors</span><span class='layout'>,</span>
+<a name="line-39"></a> <span class='varid'>a_column</span><span class='layout'>,</span>
+<a name="line-40"></a> <span class='varid'>a_default_baseuri</span><span class='layout'>,</span>
+<a name="line-41"></a> <span class='varid'>a_do_not_canonicalize</span><span class='layout'>,</span>
+<a name="line-42"></a> <span class='varid'>a_do_not_check_namespaces</span><span class='layout'>,</span>
+<a name="line-43"></a> <span class='varid'>a_do_not_issue_errors</span><span class='layout'>,</span>
+<a name="line-44"></a> <span class='varid'>a_do_not_issue_warnings</span><span class='layout'>,</span>
+<a name="line-45"></a> <span class='varid'>a_do_not_preserve_comment</span><span class='layout'>,</span>
+<a name="line-46"></a> <span class='varid'>a_do_not_remove_whitespace</span><span class='layout'>,</span>
+<a name="line-47"></a> <span class='varid'>a_do_not_use_curl</span><span class='layout'>,</span>
+<a name="line-48"></a> <span class='varid'>a_do_not_validate</span><span class='layout'>,</span>
+<a name="line-49"></a> <span class='varid'>a_encoding</span><span class='layout'>,</span>
+<a name="line-50"></a> <span class='varid'>a_error</span><span class='layout'>,</span>
+<a name="line-51"></a> <span class='varid'>a_error_log</span><span class='layout'>,</span>
+<a name="line-52"></a> <span class='varid'>a_help</span><span class='layout'>,</span>
+<a name="line-53"></a> <span class='varid'>a_indent</span><span class='layout'>,</span>
+<a name="line-54"></a> <span class='varid'>a_issue_errors</span><span class='layout'>,</span>
+<a name="line-55"></a> <span class='varid'>a_issue_warnings</span><span class='layout'>,</span>
+<a name="line-56"></a> <span class='varid'>a_kind</span><span class='layout'>,</span>
+<a name="line-57"></a> <span class='varid'>a_line</span><span class='layout'>,</span>
+<a name="line-58"></a> <span class='varid'>a_module</span><span class='layout'>,</span>
+<a name="line-59"></a> <span class='varid'>a_modifier</span><span class='layout'>,</span>
+<a name="line-60"></a> <span class='varid'>a_name</span><span class='layout'>,</span>
+<a name="line-61"></a> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span>
+<a name="line-62"></a> <span class='varid'>a_options_curl</span><span class='layout'>,</span>
+<a name="line-63"></a> <span class='varid'>a_output_encoding</span><span class='layout'>,</span>
+<a name="line-64"></a> <span class='varid'>a_output_file</span><span class='layout'>,</span>
+<a name="line-65"></a> <span class='varid'>a_output_xml</span><span class='layout'>,</span>
+<a name="line-66"></a> <span class='varid'>a_output_html</span><span class='layout'>,</span>
+<a name="line-67"></a> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>
+<a name="line-68"></a> <span class='varid'>a_parse_html</span><span class='layout'>,</span>
+<a name="line-69"></a> <span class='varid'>a_parse_xml</span><span class='layout'>,</span>
+<a name="line-70"></a> <span class='varid'>a_peref</span><span class='layout'>,</span>
+<a name="line-71"></a> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>
+<a name="line-72"></a> <span class='varid'>a_propagate_errors</span><span class='layout'>,</span>
+<a name="line-73"></a> <span class='varid'>a_proxy</span><span class='layout'>,</span>
+<a name="line-74"></a> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>
+<a name="line-75"></a> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>
+<a name="line-76"></a> <span class='varid'>a_show_tree</span><span class='layout'>,</span>
+<a name="line-77"></a> <span class='varid'>a_source</span><span class='layout'>,</span>
+<a name="line-78"></a> <span class='varid'>a_status</span><span class='layout'>,</span>
+<a name="line-79"></a> <span class='varid'>a_standalone</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='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_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_module"></a><span class='definition'>a_module</span>			<span class='keyglyph'>=</span> <span class='str'>"module"</span>
+<a name="line-162"></a><a name="a_modifier"></a><span class='definition'>a_modifier</span>			<span class='keyglyph'>=</span> <span class='str'>"modifier"</span>
+<a name="line-163"></a><a name="a_name"></a><span class='definition'>a_name</span>				<span class='keyglyph'>=</span> <span class='str'>"name"</span>
+<a name="line-164"></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-165"></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-166"></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-167"></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-168"></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-169"></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-170"></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-171"></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-172"></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-173"></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-174"></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-175"></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-176"></a><a name="a_proxy"></a><span class='definition'>a_proxy</span>				<span class='keyglyph'>=</span> <span class='str'>"proxy"</span>
+<a name="line-177"></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-178"></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-179"></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-180"></a><a name="a_source"></a><span class='definition'>a_source</span>			<span class='keyglyph'>=</span> <span class='str'>"source"</span>
+<a name="line-181"></a><a name="a_standalone"></a><span class='definition'>a_standalone</span>			<span class='keyglyph'>=</span> <span class='str'>"standalone"</span>
+<a name="line-182"></a><a name="a_status"></a><span class='definition'>a_status</span>			<span class='keyglyph'>=</span> <span class='str'>"status"</span>
+<a name="line-183"></a><a name="a_tagsoup"></a><span class='definition'>a_tagsoup</span>			<span class='keyglyph'>=</span> <span class='str'>"tagsoup"</span>
+<a name="line-184"></a><a name="a_trace"></a><span class='definition'>a_trace</span>				<span class='keyglyph'>=</span> <span class='str'>"trace"</span>
+<a name="line-185"></a><a name="a_type"></a><span class='definition'>a_type</span>				<span class='keyglyph'>=</span> <span class='str'>"type"</span>
+<a name="line-186"></a><a name="a_url"></a><span class='definition'>a_url</span>				<span class='keyglyph'>=</span> <span class='str'>"url"</span>
+<a name="line-187"></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-188"></a><a name="a_validate"></a><span class='definition'>a_validate</span>			<span class='keyglyph'>=</span> <span class='str'>"validate"</span>
+<a name="line-189"></a><a name="a_value"></a><span class='definition'>a_value</span>				<span class='keyglyph'>=</span> <span class='str'>"value"</span>
+<a name="line-190"></a><a name="a_verbose"></a><span class='definition'>a_verbose</span>			<span class='keyglyph'>=</span> <span class='str'>"verbose"</span>
+<a name="line-191"></a><a name="a_version"></a><span class='definition'>a_version</span>			<span class='keyglyph'>=</span> <span class='str'>"version"</span>
+<a name="line-192"></a><a name="a_xml"></a><span class='definition'>a_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"xml"</span>
+<a name="line-193"></a><a name="a_xmlns"></a><span class='definition'>a_xmlns</span>				<span class='keyglyph'>=</span> <span class='str'>"xmlns"</span>
+<a name="line-194"></a>
+<a name="line-195"></a><a name="v_yes"></a><span class='definition'>v_yes</span>		<span class='keyglyph'>=</span> <span class='str'>"yes"</span>
+<a name="line-196"></a><a name="v_no"></a><span class='definition'>v_no</span>		<span class='keyglyph'>=</span> <span class='str'>"no"</span>
+<a name="line-197"></a><a name="v_1"></a><span class='definition'>v_1</span>		<span class='keyglyph'>=</span> <span class='str'>"1"</span>
+<a name="line-198"></a><span class='definition'>v_0</span>		<span class='keyglyph'>=</span> <span class='str'>"0"</span>
+<a name="line-199"></a>
+<a name="line-200"></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-201"></a><a name="v_children"></a><span class='definition'>v_children</span>	<span class='keyglyph'>=</span> <span class='str'>"children"</span>
+<a name="line-202"></a><a name="v_choice"></a><span class='definition'>v_choice</span>	<span class='keyglyph'>=</span> <span class='str'>"choice"</span>
+<a name="line-203"></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-204"></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-205"></a><a name="v_mixed"></a><span class='definition'>v_mixed</span>		<span class='keyglyph'>=</span> <span class='str'>"mixed"</span>
+<a name="line-206"></a><a name="v_seq"></a><span class='definition'>v_seq</span>		<span class='keyglyph'>=</span> <span class='str'>"seq"</span>
+<a name="line-207"></a>
+<a name="line-208"></a><a name="v_null"></a><span class='definition'>v_null</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-209"></a><a name="v_option"></a><span class='definition'>v_option</span>	<span class='keyglyph'>=</span> <span class='str'>"?"</span>
+<a name="line-210"></a><a name="v_star"></a><span class='definition'>v_star</span>		<span class='keyglyph'>=</span> <span class='str'>"*"</span>
+<a name="line-211"></a><a name="v_plus"></a><span class='definition'>v_plus</span>		<span class='keyglyph'>=</span> <span class='str'>"+"</span>
+<a name="line-212"></a>
+<a name="line-213"></a><span class='definition'>k_any</span>		<span class='keyglyph'>=</span> <span class='str'>"ANY"</span>
+<a name="line-214"></a><a name="k_cdata"></a><span class='definition'>k_cdata</span>		<span class='keyglyph'>=</span> <span class='str'>"CDATA"</span>
+<a name="line-215"></a><a name="k_empty"></a><span class='definition'>k_empty</span>		<span class='keyglyph'>=</span> <span class='str'>"EMPTY"</span>
+<a name="line-216"></a><a name="k_entity"></a><span class='definition'>k_entity</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>
+<a name="line-217"></a><a name="k_entities"></a><span class='definition'>k_entities</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>
+<a name="line-218"></a><a name="k_id"></a><span class='definition'>k_id</span>		<span class='keyglyph'>=</span> <span class='str'>"ID"</span>
+<a name="line-219"></a><a name="k_idref"></a><span class='definition'>k_idref</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>
+<a name="line-220"></a><a name="k_idrefs"></a><span class='definition'>k_idrefs</span>	<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>
+<a name="line-221"></a><a name="k_include"></a><span class='definition'>k_include</span>	<span class='keyglyph'>=</span> <span class='str'>"INCLUDE"</span>
+<a name="line-222"></a><a name="k_ignore"></a><span class='definition'>k_ignore</span>	<span class='keyglyph'>=</span> <span class='str'>"IGNORE"</span>
+<a name="line-223"></a><a name="k_nmtoken"></a><span class='definition'>k_nmtoken</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>
+<a name="line-224"></a><a name="k_nmtokens"></a><span class='definition'>k_nmtokens</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>
+<a name="line-225"></a><a name="k_peref"></a><span class='definition'>k_peref</span>		<span class='keyglyph'>=</span> <span class='str'>"PERef"</span>
+<a name="line-226"></a><a name="k_public"></a><span class='definition'>k_public</span>	<span class='keyglyph'>=</span> <span class='str'>"PUBLIC"</span>
+<a name="line-227"></a><a name="k_system"></a><span class='definition'>k_system</span>	<span class='keyglyph'>=</span> <span class='str'>"SYSTEM"</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="k_enumeration"></a><span class='definition'>k_enumeration</span>	<span class='keyglyph'>=</span> <span class='str'>"#ENUMERATION"</span>
+<a name="line-230"></a><a name="k_fixed"></a><span class='definition'>k_fixed</span>		<span class='keyglyph'>=</span> <span class='str'>"#FIXED"</span>
+<a name="line-231"></a><a name="k_implied"></a><span class='definition'>k_implied</span>	<span class='keyglyph'>=</span> <span class='str'>"#IMPLIED"</span>
+<a name="line-232"></a><a name="k_ndata"></a><span class='definition'>k_ndata</span>		<span class='keyglyph'>=</span> <span class='str'>"NDATA"</span>
+<a name="line-233"></a><a name="k_notation"></a><span class='definition'>k_notation</span>	<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>
+<a name="line-234"></a><a name="k_pcdata"></a><span class='definition'>k_pcdata</span>	<span class='keyglyph'>=</span> <span class='str'>"#PCDATA"</span>
+<a name="line-235"></a><a name="k_required"></a><span class='definition'>k_required</span>	<span class='keyglyph'>=</span> <span class='str'>"#REQUIRED"</span>
+<a name="line-236"></a><a name="k_default"></a><span class='definition'>k_default</span>	<span class='keyglyph'>=</span> <span class='str'>"#DEFAULT"</span>
+<a name="line-237"></a>
+<a name="line-238"></a>
+<a name="line-239"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-240"></a><span class='comment'>--</span>
+<a name="line-241"></a>
+<a name="line-242"></a><span class='comment'>-- attribute names for transfer protocol attributes</span>
+<a name="line-243"></a><span class='comment'>-- used in XmlInput for describing header information</span>
+<a name="line-244"></a><span class='comment'>-- of http and other requests</span>
+<a name="line-245"></a>
+<a name="line-246"></a><a name="transferPrefix"></a><span class='definition'>transferPrefix</span>
+<a name="line-247"></a> <span class='layout'>,</span> <span class='varid'>transferProtocol</span>
+<a name="line-248"></a> <span class='layout'>,</span> <span class='varid'>transferMimeType</span>
+<a name="line-249"></a> <span class='layout'>,</span> <span class='varid'>transferEncoding</span>
+<a name="line-250"></a> <span class='layout'>,</span> <span class='varid'>transferURI</span>
+<a name="line-251"></a> <span class='layout'>,</span> <span class='varid'>transferDefaultURI</span>
+<a name="line-252"></a> <span class='layout'>,</span> <span class='varid'>transferStatus</span>
+<a name="line-253"></a> <span class='layout'>,</span> <span class='varid'>transferMessage</span>
+<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>transferVersion</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-255"></a>
+<a name="line-256"></a><span class='definition'>transferPrefix</span>		<span class='keyglyph'>=</span> <span class='str'>"transfer-"</span>
+<a name="line-257"></a>
+<a name="line-258"></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-259"></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-260"></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-261"></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-262"></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-263"></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-264"></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-265"></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-266"></a>
+<a name="line-267"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-268"></a><span class='comment'>--</span>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="httpPrefix"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-271"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>=</span> <span class='str'>"http-"</span>
+<a name="line-272"></a>
+<a name="line-273"></a><a name="stringProtocol"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-274"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>=</span> <span class='str'>"string:"</span>
+<a name="line-275"></a>
+<a name="line-276"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-277"></a><span class='comment'>--</span>
+<a name="line-278"></a><span class='comment'>-- encoding names</span>
+<a name="line-279"></a>
+<a name="line-280"></a><a name="isoLatin1"></a><span class='definition'>isoLatin1</span>
+<a name="line-281"></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-282"></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-283"></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-284"></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-285"></a>
+<a name="line-286"></a><span class='definition'>isoLatin1</span>	<span class='keyglyph'>=</span> <span class='varid'>iso8859_1</span>
+<a name="line-287"></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-288"></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-289"></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-290"></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-291"></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-292"></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-293"></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-294"></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-295"></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-296"></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-297"></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-298"></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-299"></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-300"></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-301"></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-302"></a><a name="usAscii"></a><span class='definition'>usAscii</span>		<span class='keyglyph'>=</span> <span class='str'>"US-ASCII"</span>
+<a name="line-303"></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-304"></a><a name="utf8"></a><span class='definition'>utf8</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-8"</span>
+<a name="line-305"></a><a name="utf16"></a><span class='definition'>utf16</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16"</span>
+<a name="line-306"></a><a name="utf16be"></a><span class='definition'>utf16be</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>
+<a name="line-307"></a><a name="utf16le"></a><span class='definition'>utf16le</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>
+<a name="line-308"></a><a name="unicodeString"></a><span class='definition'>unicodeString</span>	<span class='keyglyph'>=</span> <span class='str'>"UNICODE"</span>
+<a name="line-309"></a>
+<a name="line-310"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-311"></a><span class='comment'>--</span>
+<a name="line-312"></a><span class='comment'>-- known namespaces</span>
+<a name="line-313"></a>
+<a name="line-314"></a><span class='comment'>-- |</span>
+<a name="line-315"></a><span class='comment'>-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"</span>
+<a name="line-316"></a>
+<a name="line-317"></a><a name="xmlNamespace"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-318"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span>
+<a name="line-319"></a>
+<a name="line-320"></a><span class='comment'>-- |</span>
+<a name="line-321"></a><span class='comment'>-- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"</span>
+<a name="line-322"></a>
+<a name="line-323"></a><a name="xmlnsNamespace"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-324"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2000/xmlns/"</span>
+<a name="line-325"></a>
+<a name="line-326"></a><a name="relaxNamespace"></a><span class='comment'>-- | Relax NG namespace</span>
+<a name="line-327"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-328"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>
+<a name="line-329"></a>
+<a name="line-330"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-331"></a><span class='comment'>-- option for Relax NG</span>
+<a name="line-332"></a>
+<a name="line-333"></a><a name="a_relax_schema"></a><span class='definition'>a_relax_schema</span><span class='layout'>,</span>
+<a name="line-334"></a> <span class='varid'>a_do_not_check_restrictions</span><span class='layout'>,</span>  
+<a name="line-335"></a> <span class='varid'>a_check_restrictions</span><span class='layout'>,</span>
+<a name="line-336"></a> <span class='varid'>a_do_not_validate_externalRef</span><span class='layout'>,</span>
+<a name="line-337"></a> <span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>
+<a name="line-338"></a> <span class='varid'>a_do_not_validate_include</span><span class='layout'>,</span>
+<a name="line-339"></a> <span class='varid'>a_validate_include</span><span class='layout'>,</span>
+<a name="line-340"></a> <span class='varid'>a_output_changes</span><span class='layout'>,</span> 
+<a name="line-341"></a> <span class='varid'>a_do_not_collect_errors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> 
+<a name="line-342"></a>
+<a name="line-343"></a><span class='definition'>a_relax_schema</span>		      <span class='keyglyph'>=</span> <span class='str'>"relax-schema"</span>
+<a name="line-344"></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-345"></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-346"></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-347"></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-348"></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-349"></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-350"></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-351"></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-352"></a>
+<a name="line-353"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-354"></a>
+<a name="line-355"></a><span class='comment'>-- mime types</span>
+<a name="line-356"></a><span class='comment'>--</span>
+<a name="line-357"></a><span class='comment'>-- see RFC \"http:\/\/www.rfc-editor.org\/rfc\/rfc3023.txt\"</span>
+<a name="line-358"></a>
+<a name="line-359"></a><a name="application_xhtml"></a><span class='definition'>application_xhtml</span><span class='layout'>,</span>
+<a name="line-360"></a> <span class='varid'>application_xml</span><span class='layout'>,</span>
+<a name="line-361"></a> <span class='varid'>application_xml_external_parsed_entity</span><span class='layout'>,</span>
+<a name="line-362"></a> <span class='varid'>application_xml_dtd</span><span class='layout'>,</span>
+<a name="line-363"></a> <span class='varid'>text_html</span><span class='layout'>,</span>
+<a name="line-364"></a> <span class='varid'>text_xml</span><span class='layout'>,</span>
+<a name="line-365"></a> <span class='varid'>text_xml_external_parsed_entity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-366"></a>
+<a name="line-367"></a><span class='definition'>application_xhtml</span>			<span class='keyglyph'>=</span> <span class='str'>"application/xhtml+xml"</span>
+<a name="line-368"></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-369"></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-370"></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-371"></a>
+<a name="line-372"></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-373"></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-374"></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-375"></a>
+<a name="line-376"></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-377"></a><span class='definition'>isHtmlMimeType</span> <span class='varid'>t</span>
+<a name="line-378"></a>    <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>text_html</span>
+<a name="line-379"></a>
+<a name="line-380"></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-381"></a><span class='definition'>isXmlMimeType</span> <span class='varid'>t</span>
+<a name="line-382"></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-383"></a>		<span class='layout'>,</span> <span class='varid'>application_xml</span>
+<a name="line-384"></a>		<span class='layout'>,</span> <span class='varid'>application_xml_external_parsed_entity</span>
+<a name="line-385"></a>		<span class='layout'>,</span> <span class='varid'>application_xml_dtd</span>
+<a name="line-386"></a>		<span class='layout'>,</span> <span class='varid'>text_xml</span>
+<a name="line-387"></a>		<span class='layout'>,</span> <span class='varid'>text_xml_external_parsed_entity</span>
+<a name="line-388"></a>		<span class='keyglyph'>]</span>
+<a name="line-389"></a>	<span class='varop'>||</span>
+<a name="line-390"></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-391"></a>      <span class='layout'>)</span>					<span class='comment'>-- or image/svg+xml</span>
+<a name="line-392"></a>
+<a name="line-393"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html
@@ -0,0 +1,343 @@
+<!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     : Text.XML.HXT.DOM.XmlNode
+<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>
+<a name="line-9"></a>   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+<a name="line-10"></a>   Stability  : stable
+<a name="line-11"></a>   Portability: portable
+<a name="line-12"></a>
+<a name="line-13"></a>   Interface for XmlArrow to basic data types NTree and XmlTree
+<a name="line-14"></a>
+<a name="line-15"></a>   If this module must be used in code working with arrows,
+<a name="line-16"></a>   it should be imported qualified e.g. @as XN@, to prevent name clashes.
+<a name="line-17"></a>
+<a name="line-18"></a>   For code working on the \"node and tree level\" this module
+<a name="line-19"></a>   is the interface for writing code without using the
+<a name="line-20"></a>   constructor functions of 'XNode' and 'NTree' directly
+<a name="line-21"></a>
+<a name="line-22"></a>-}</span>
+<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'>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-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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
+<a name="line-28"></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-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a><span class='keyword'>where</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'>Monad</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'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-37"></a>
+<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'>Interface</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="XmlNode"></a><span class='keyword'>class</span> <span class='conid'>XmlNode</span> <span class='varid'>a</span> <span class='keyword'>where</span>
+<a name="line-41"></a>    <span class='comment'>-- discriminating predicates</span>
+<a name="line-42"></a>
+<a name="line-43"></a>    <span class='varid'>isText</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-44"></a>    <span class='varid'>isCharRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-45"></a>    <span class='varid'>isEntityRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-46"></a>    <span class='varid'>isCmt</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-47"></a>    <span class='varid'>isCdata</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-48"></a>    <span class='varid'>isPi</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-49"></a>    <span class='varid'>isElem</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-50"></a>    <span class='varid'>isRoot</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-51"></a>    <span class='varid'>isDTD</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-52"></a>    <span class='varid'>isAttr</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-53"></a>    <span class='varid'>isError</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-54"></a>
+<a name="line-55"></a>    <span class='comment'>-- constructor functions for leave nodes</span>
+<a name="line-56"></a>
+<a name="line-57"></a>    <span class='varid'>mkText</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-58"></a>    <span class='varid'>mkCharRef</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-59"></a>    <span class='varid'>mkEntityRef</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-60"></a>    <span class='varid'>mkCmt</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-61"></a>    <span class='varid'>mkCdata</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-62"></a>    <span class='varid'>mkPi</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='varid'>a</span>
+<a name="line-63"></a>    <span class='varid'>mkError</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='varid'>a</span>
+<a name="line-64"></a>
+<a name="line-65"></a>    <span class='comment'>-- selectors</span>
+<a name="line-66"></a>
+<a name="line-67"></a>    <span class='varid'>getText</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-68"></a>    <span class='varid'>getCharRef</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Int</span>
+<a name="line-69"></a>    <span class='varid'>getEntityRef</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-70"></a>    <span class='varid'>getCmt</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-71"></a>    <span class='varid'>getCdata</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-72"></a>    <span class='varid'>getPiName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>
+<a name="line-73"></a>    <span class='varid'>getPiContent</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTrees</span>
+<a name="line-74"></a>    <span class='varid'>getElemName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>
+<a name="line-75"></a>    <span class='varid'>getAttrl</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTrees</span>
+<a name="line-76"></a>    <span class='varid'>getDTDPart</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DTDElem</span>
+<a name="line-77"></a>    <span class='varid'>getDTDAttrl</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Attributes</span>
+<a name="line-78"></a>    <span class='varid'>getAttrName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>
+<a name="line-79"></a>    <span class='varid'>getErrorLevel</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Int</span>
+<a name="line-80"></a>    <span class='varid'>getErrorMsg</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-81"></a>
+<a name="line-82"></a>    <span class='comment'>-- derived selectors</span>
+<a name="line-83"></a>
+<a name="line-84"></a>    <span class='varid'>getName</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>
+<a name="line-85"></a>    <span class='varid'>getQualifiedName</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-86"></a>    <span class='varid'>getUniversalName</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-87"></a>    <span class='varid'>getUniversalUri</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-88"></a>    <span class='varid'>getLocalPart</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-89"></a>    <span class='varid'>getNamePrefix</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-90"></a>    <span class='varid'>getNamespaceUri</span>	<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-91"></a>
+<a name="line-92"></a>    <span class='comment'>-- "modifier" functions</span>
+<a name="line-93"></a>
+<a name="line-94"></a>    <span class='varid'>changeText</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='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-95"></a>    <span class='varid'>changeCmt</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='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-96"></a>    <span class='varid'>changeName</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-97"></a>    <span class='varid'>changeElemName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-98"></a>    <span class='varid'>changeAttrl</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-99"></a>    <span class='varid'>changeAttrName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-100"></a>    <span class='varid'>changePiName</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span><span class='layout'>)</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-101"></a>    <span class='varid'>changeDTDAttrl</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-102"></a>
+<a name="line-103"></a>    <span class='varid'>setText</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>   <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-104"></a>    <span class='varid'>setCmt</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>   <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-105"></a>    <span class='varid'>setName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-106"></a>    <span class='varid'>setElemName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-107"></a>    <span class='varid'>setElemAttrl</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-108"></a>    <span class='varid'>setAttrName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-109"></a>    <span class='varid'>setPiName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-110"></a>    <span class='varid'>setDTDAttrl</span>		<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-111"></a>
+<a name="line-112"></a>    <span class='comment'>-- default implementations</span>
+<a name="line-113"></a>
+<a name="line-114"></a>    <span class='varid'>getName</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>getElemName</span> <span class='varid'>n</span> <span class='varop'>`mplus`</span> <span class='varid'>getAttrName</span> <span class='varid'>n</span> <span class='varop'>`mplus`</span> <span class='varid'>getPiName</span> <span class='varid'>n</span>
+<a name="line-115"></a>    <span class='varid'>getQualifiedName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-116"></a>    <span class='varid'>getUniversalName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>universalName</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-117"></a>    <span class='varid'>getUniversalUri</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>universalUri</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-118"></a>    <span class='varid'>getLocalPart</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-119"></a>    <span class='varid'>getNamePrefix</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-120"></a>    <span class='varid'>getNamespaceUri</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>&gt;&gt;=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-121"></a>
+<a name="line-122"></a>    <span class='varid'>setText</span> <span class='varid'>t</span>		<span class='keyglyph'>=</span> <span class='varid'>changeText</span>     <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-123"></a>    <span class='varid'>setCmt</span> <span class='varid'>c</span>		<span class='keyglyph'>=</span> <span class='varid'>changeCmt</span>      <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-124"></a>    <span class='varid'>setName</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>changeName</span>     <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-125"></a>    <span class='varid'>setElemName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>changeElemName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-126"></a>    <span class='varid'>setElemAttrl</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>changeAttrl</span>    <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-127"></a>    <span class='varid'>setAttrName</span>	<span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-128"></a>    <span class='varid'>setPiName</span>	<span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>changePiName</span>   <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-129"></a>    <span class='varid'>setDTDAttrl</span>	<span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>changeDTDAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-130"></a>
+<a name="line-131"></a><span class='comment'>-- XNode and XmlTree are instances of XmlNode</span>
+<a name="line-132"></a>
+<a name="line-133"></a><span class='keyword'>instance</span> <span class='conid'>XmlNode</span> <span class='conid'>XNode</span> <span class='keyword'>where</span>
+<a name="line-134"></a>    <span class='varid'>isText</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-135"></a>    <span class='varid'>isText</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-136"></a>
+<a name="line-137"></a>    <span class='varid'>isCharRef</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-138"></a>    <span class='varid'>isCharRef</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-139"></a>
+<a name="line-140"></a>    <span class='varid'>isEntityRef</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-141"></a>    <span class='varid'>isEntityRef</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-142"></a>
+<a name="line-143"></a>    <span class='varid'>isCmt</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-144"></a>    <span class='varid'>isCmt</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-145"></a>
+<a name="line-146"></a>    <span class='varid'>isCdata</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-147"></a>    <span class='varid'>isCdata</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-148"></a>
+<a name="line-149"></a>    <span class='varid'>isPi</span> <span class='layout'>(</span><span class='conid'>XPi</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-150"></a>    <span class='varid'>isPi</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-151"></a>
+<a name="line-152"></a>    <span class='varid'>isElem</span> <span class='layout'>(</span><span class='conid'>XTag</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-153"></a>    <span class='varid'>isElem</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-154"></a>
+<a name="line-155"></a>    <span class='varid'>isRoot</span> <span class='varid'>t</span>                    <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varid'>t</span>
+<a name="line-156"></a>				  <span class='varop'>&amp;&amp;</span>
+<a name="line-157"></a>				  <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>getQualifiedName</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>t_root</span>
+<a name="line-158"></a>
+<a name="line-159"></a>    <span class='varid'>isDTD</span> <span class='layout'>(</span><span class='conid'>XDTD</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-160"></a>    <span class='varid'>isDTD</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-161"></a>
+<a name="line-162"></a>    <span class='varid'>isAttr</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-163"></a>    <span class='varid'>isAttr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-164"></a>
+<a name="line-165"></a>    <span class='varid'>isError</span> <span class='layout'>(</span><span class='conid'>XError</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-166"></a>    <span class='varid'>isError</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-167"></a>
+<a name="line-168"></a>
+<a name="line-169"></a>    <span class='varid'>mkText</span> <span class='varid'>t</span>			<span class='keyglyph'>=</span> <span class='conid'>XText</span> <span class='varid'>t</span>
+<a name="line-170"></a>    <span class='varid'>mkCharRef</span> <span class='varid'>c</span>			<span class='keyglyph'>=</span> <span class='conid'>XCharRef</span> <span class='varid'>c</span>
+<a name="line-171"></a>    <span class='varid'>mkEntityRef</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>XEntityRef</span> <span class='varid'>e</span>
+<a name="line-172"></a>    <span class='varid'>mkCmt</span> <span class='varid'>c</span>			<span class='keyglyph'>=</span> <span class='conid'>XCmt</span> <span class='varid'>c</span>
+<a name="line-173"></a>    <span class='varid'>mkCdata</span> <span class='varid'>d</span>			<span class='keyglyph'>=</span> <span class='conid'>XCdata</span> <span class='varid'>d</span>
+<a name="line-174"></a>    <span class='varid'>mkPi</span> <span class='varid'>n</span> <span class='varid'>c</span>			<span class='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>c</span> <span class='keyword'>then</span> <span class='conid'>[]</span> <span class='keyword'>else</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_value</span><span class='layout'>)</span> <span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-175"></a>    <span class='varid'>mkError</span> <span class='varid'>l</span> <span class='varid'>msg</span>		<span class='keyglyph'>=</span> <span class='conid'>XError</span> <span class='varid'>l</span> <span class='varid'>msg</span>
+<a name="line-176"></a>
+<a name="line-177"></a>
+<a name="line-178"></a>    <span class='varid'>getText</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>t</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>t</span>
+<a name="line-179"></a>    <span class='varid'>getText</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-180"></a>
+<a name="line-181"></a>    <span class='varid'>getCharRef</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>c</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>c</span>
+<a name="line-182"></a>    <span class='varid'>getCharRef</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-183"></a>
+<a name="line-184"></a>    <span class='varid'>getEntityRef</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>e</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>e</span>
+<a name="line-185"></a>    <span class='varid'>getEntityRef</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-186"></a>
+<a name="line-187"></a>    <span class='varid'>getCmt</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>c</span>
+<a name="line-188"></a>    <span class='varid'>getCmt</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-189"></a>
+<a name="line-190"></a>    <span class='varid'>getCdata</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>d</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>d</span>
+<a name="line-191"></a>    <span class='varid'>getCdata</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-192"></a>
+<a name="line-193"></a>    <span class='varid'>getPiName</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>
+<a name="line-194"></a>    <span class='varid'>getPiName</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-195"></a>
+<a name="line-196"></a>    <span class='varid'>getPiContent</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='keyword'>_</span> <span class='varid'>c</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>c</span>
+<a name="line-197"></a>    <span class='varid'>getPiContent</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-198"></a>
+<a name="line-199"></a>    <span class='varid'>getElemName</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>
+<a name="line-200"></a>    <span class='varid'>getElemName</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-201"></a>
+<a name="line-202"></a>    <span class='varid'>getAttrl</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>al</span>
+<a name="line-203"></a>    <span class='varid'>getAttrl</span> <span class='layout'>(</span><span class='conid'>XPi</span>  <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>al</span>
+<a name="line-204"></a>    <span class='varid'>getAttrl</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-205"></a>
+<a name="line-206"></a>    <span class='varid'>getDTDPart</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>p</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>p</span>
+<a name="line-207"></a>    <span class='varid'>getDTDPart</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-208"></a>
+<a name="line-209"></a>    <span class='varid'>getDTDAttrl</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>al</span>
+<a name="line-210"></a>    <span class='varid'>getDTDAttrl</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-211"></a>
+<a name="line-212"></a>    <span class='varid'>getAttrName</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>n</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>
+<a name="line-213"></a>    <span class='varid'>getAttrName</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-214"></a>
+<a name="line-215"></a>    <span class='varid'>getErrorLevel</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>l</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>l</span>
+<a name="line-216"></a>    <span class='varid'>getErrorLevel</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-217"></a>
+<a name="line-218"></a>    <span class='varid'>getErrorMsg</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='keyword'>_</span> <span class='varid'>m</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>m</span>
+<a name="line-219"></a>    <span class='varid'>getErrorMsg</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-220"></a>
+<a name="line-221"></a>    <span class='varid'>changeText</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>t</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>XText</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-222"></a>    <span class='varid'>changeText</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeText undefined"</span>
+<a name="line-223"></a>
+<a name="line-224"></a>    <span class='varid'>changeCmt</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>XCmt</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-225"></a>    <span class='varid'>changeCmt</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeCmt undefined"</span>
+<a name="line-226"></a>
+<a name="line-227"></a>    <span class='varid'>changeName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>
+<a name="line-228"></a>    <span class='varid'>changeName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>n</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>XAttr</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-229"></a>    <span class='varid'>changeName</span> <span class='varid'>cf</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='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>
+<a name="line-230"></a>    <span class='varid'>changeName</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeName undefined"</span>
+<a name="line-231"></a>
+<a name="line-232"></a>    <span class='varid'>changeElemName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>
+<a name="line-233"></a>    <span class='varid'>changeElemName</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeElemName undefined"</span>
+<a name="line-234"></a>
+<a name="line-235"></a>    <span class='varid'>changeAttrl</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-236"></a>    <span class='varid'>changeAttrl</span> <span class='varid'>cf</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='keyglyph'>=</span> <span class='conid'>XPi</span>  <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-237"></a>    <span class='varid'>changeAttrl</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeAttrl undefined"</span>
+<a name="line-238"></a>
+<a name="line-239"></a>    <span class='varid'>changeAttrName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>n</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>XAttr</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-240"></a>    <span class='varid'>changeAttrName</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeAttrName undefined"</span>
+<a name="line-241"></a>
+<a name="line-242"></a>    <span class='varid'>changePiName</span> <span class='varid'>cf</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='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>
+<a name="line-243"></a>    <span class='varid'>changePiName</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeAttrName undefined"</span>
+<a name="line-244"></a>
+<a name="line-245"></a>    <span class='varid'>changeDTDAttrl</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>p</span> <span class='varid'>al</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>XDTD</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-246"></a>    <span class='varid'>changeDTDAttrl</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeDTDAttrl undefined"</span>
+<a name="line-247"></a>
+<a name="line-248"></a><a name="mkElementNode"></a><span class='definition'>mkElementNode</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'>XNode</span>
+<a name="line-249"></a><span class='definition'>mkElementNode</span>	<span class='keyglyph'>=</span> <span class='conid'>XTag</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="mkAttrNode"></a><span class='definition'>mkAttrNode</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span>
+<a name="line-252"></a><span class='definition'>mkAttrNode</span>	<span class='keyglyph'>=</span> <span class='conid'>XAttr</span>
+<a name="line-253"></a>
+<a name="line-254"></a><a name="mkDTDNode"></a><span class='definition'>mkDTDNode</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'>XNode</span>
+<a name="line-255"></a><span class='definition'>mkDTDNode</span>	<span class='keyglyph'>=</span> <span class='conid'>XDTD</span>
+<a name="line-256"></a>
+<a name="line-257"></a><span class='keyword'>instance</span> <span class='conid'>XmlNode</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>
+<a name="line-258"></a>    <span class='varid'>isText</span>		<span class='keyglyph'>=</span> <span class='varid'>isText</span>      <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-259"></a>    <span class='varid'>isCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>isCharRef</span>   <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-260"></a>    <span class='varid'>isEntityRef</span>		<span class='keyglyph'>=</span> <span class='varid'>isEntityRef</span> <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-261"></a>    <span class='varid'>isCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>isCmt</span>       <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-262"></a>    <span class='varid'>isCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>isCdata</span>     <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-263"></a>    <span class='varid'>isPi</span>		<span class='keyglyph'>=</span> <span class='varid'>isPi</span>        <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-264"></a>    <span class='varid'>isElem</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span>      <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-265"></a>    <span class='varid'>isRoot</span>		<span class='keyglyph'>=</span> <span class='varid'>isRoot</span>      <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-266"></a>    <span class='varid'>isDTD</span>		<span class='keyglyph'>=</span> <span class='varid'>isDTD</span>       <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-267"></a>    <span class='varid'>isAttr</span>		<span class='keyglyph'>=</span> <span class='varid'>isAttr</span>      <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-268"></a>    <span class='varid'>isError</span>		<span class='keyglyph'>=</span> <span class='varid'>isError</span>     <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-269"></a>
+<a name="line-270"></a>    <span class='varid'>mkText</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkText</span>
+<a name="line-271"></a>    <span class='varid'>mkCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkCharRef</span>
+<a name="line-272"></a>    <span class='varid'>mkEntityRef</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkEntityRef</span>
+<a name="line-273"></a>    <span class='varid'>mkCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkCmt</span>
+<a name="line-274"></a>    <span class='varid'>mkCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkCdata</span>
+<a name="line-275"></a>    <span class='varid'>mkPi</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkPi</span> <span class='varid'>n</span>
+<a name="line-276"></a>    <span class='varid'>mkError</span> <span class='varid'>l</span>		<span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>l</span>
+<a name="line-277"></a>
+<a name="line-278"></a>    <span class='varid'>getText</span>		<span class='keyglyph'>=</span> <span class='varid'>getText</span>       <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-279"></a>    <span class='varid'>getCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>getCharRef</span>    <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-280"></a>    <span class='varid'>getEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>getEntityRef</span>  <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-281"></a>    <span class='varid'>getCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>getCmt</span>        <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-282"></a>    <span class='varid'>getCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>getCdata</span>      <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-283"></a>    <span class='varid'>getPiName</span>		<span class='keyglyph'>=</span> <span class='varid'>getPiName</span>     <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-284"></a>    <span class='varid'>getPiContent</span>	<span class='keyglyph'>=</span> <span class='varid'>getPiContent</span>  <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-285"></a>    <span class='varid'>getElemName</span>		<span class='keyglyph'>=</span> <span class='varid'>getElemName</span>   <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-286"></a>    <span class='varid'>getAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>getAttrl</span>      <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-287"></a>    <span class='varid'>getDTDPart</span>		<span class='keyglyph'>=</span> <span class='varid'>getDTDPart</span>    <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-288"></a>    <span class='varid'>getDTDAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>getDTDAttrl</span>   <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-289"></a>    <span class='varid'>getAttrName</span>		<span class='keyglyph'>=</span> <span class='varid'>getAttrName</span>   <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-290"></a>    <span class='varid'>getErrorLevel</span>	<span class='keyglyph'>=</span> <span class='varid'>getErrorLevel</span> <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-291"></a>    <span class='varid'>getErrorMsg</span>		<span class='keyglyph'>=</span> <span class='varid'>getErrorMsg</span>   <span class='varop'>.</span> <span class='varid'>getNode</span>
+<a name="line-292"></a>
+<a name="line-293"></a>    <span class='varid'>changeText</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-294"></a>    <span class='varid'>changeCmt</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeCmt</span>  <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-295"></a>    <span class='varid'>changeName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeName</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-296"></a>    <span class='varid'>changeElemName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeElemName</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-297"></a>    <span class='varid'>changeAttrl</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeAttrl</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-298"></a>    <span class='varid'>changeAttrName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeAttrName</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-299"></a>    <span class='varid'>changePiName</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changePiName</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-300"></a>    <span class='varid'>changeDTDAttrl</span> <span class='varid'>cf</span>	<span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeDTDAttrl</span> <span class='varid'>cf</span><span class='layout'>)</span>
+<a name="line-301"></a>
+<a name="line-302"></a><a name="mkElement"></a><span class='definition'>mkElement</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'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<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-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>
+<a name="line-310"></a>
+<a name="line-311"></a><a name="mkDTDElem"></a><span class='definition'>mkDTDElem</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'>XmlTree</span>
+<a name="line-312"></a><span class='definition'>mkDTDElem</span> <span class='varid'>e</span> <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkDTDNode</span> <span class='varid'>e</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-313"></a>
+<a name="line-314"></a><a name="addAttr"></a><span class='definition'>addAttr</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-315"></a><span class='definition'>addAttr</span> <span class='varid'>a</span> <span class='varid'>al</span>
+<a name="line-316"></a>    <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='varid'>add</span> <span class='varid'>al</span>
+<a name="line-317"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>al</span>
+<a name="line-318"></a>    <span class='keyword'>where</span>
+<a name="line-319"></a>    <span class='varid'>an</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span><span class='layout'>)</span> <span class='varid'>a</span>
+<a name="line-320"></a>    <span class='varid'>add</span> <span class='conid'>[]</span>
+<a name="line-321"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-322"></a>    <span class='varid'>add</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='conop'>:</span><span class='varid'>al1</span><span class='layout'>)</span>
+<a name="line-323"></a>	<span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>a1</span>
+<a name="line-324"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-325"></a>	  <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span><span class='layout'>)</span> <span class='varid'>a1</span> <span class='varop'>==</span> <span class='varid'>an</span>
+<a name="line-326"></a>	    <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='conop'>:</span> <span class='varid'>al1</span>
+<a name="line-327"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-328"></a>	    <span class='keyglyph'>=</span> <span class='varid'>a1</span> <span class='conop'>:</span> <span class='varid'>add</span> <span class='varid'>al1</span>
+<a name="line-329"></a>
+<a name="line-330"></a><a name="mergeAttrl"></a><span class='definition'>mergeAttrl</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'>XmlTrees</span>
+<a name="line-331"></a><span class='definition'>mergeAttrl</span> 	<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>addAttr</span>
+<a name="line-332"></a>
+<a name="line-333"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html b/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html
@@ -0,0 +1,177 @@
+<!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'>-- Common useful options</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- Version : $Id: XmlOptions.hs,v 1.1 2006/11/09 20:27:42 hxml Exp $</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>--</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'>XmlOptions</span>
+<a name="line-9"></a>    <span class='layout'>(</span> <span class='varid'>inputOptions</span>
+<a name="line-10"></a>    <span class='layout'>,</span> <span class='varid'>relaxOptions</span>
+<a name="line-11"></a>    <span class='layout'>,</span> <span class='varid'>outputOptions</span>
+<a name="line-12"></a>    <span class='layout'>,</span> <span class='varid'>generalOptions</span>
+<a name="line-13"></a>    <span class='layout'>,</span> <span class='varid'>versionOptions</span>
+<a name="line-14"></a>    <span class='layout'>,</span> <span class='varid'>showOptions</span>
+<a name="line-15"></a>
+<a name="line-16"></a>    <span class='layout'>,</span> <span class='varid'>selectOptions</span>
+<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>removeOptions</span>
+<a name="line-18"></a>    <span class='layout'>,</span> <span class='varid'>optionIsSet</span>
+<a name="line-19"></a>    <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'>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='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-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'>System</span><span class='varop'>.</span><span class='conid'>Console</span><span class='varop'>.</span><span class='conid'>GetOpt</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-30"></a><span class='comment'>--</span>
+<a name="line-31"></a>
+<a name="line-32"></a><span class='comment'>-- |</span>
+<a name="line-33"></a><span class='comment'>-- commonly useful options for XML input</span>
+<a name="line-34"></a><span class='comment'>--</span>
+<a name="line-35"></a><span class='comment'>-- can be used for option definition with haskell getopt</span>
+<a name="line-36"></a><span class='comment'>--</span>
+<a name="line-37"></a><span class='comment'>-- defines options: 'a_trace', 'a_proxy', 'a_use_curl', 'a_do_not_use_curl', 'a_options_curl', 'a_encoding',</span>
+<a name="line-38"></a><span class='comment'>-- 'a_issue_errors', 'a_do_not_issue_errors', 'a_parse_html', 'a_parse_by_mimetype', 'a_tagsoup' 'a_issue_warnings', 'a_do_not_issue_warnings',</span>
+<a name="line-39"></a><span class='comment'>-- 'a_parse_xml', 'a_validate', 'a_do_not_validate', 'a_canonicalize', 'a_do_not_canonicalize',</span>
+<a name="line-40"></a><span class='comment'>--- 'a_preserve_comment', 'a_do_not_preserve_comment', 'a_check_namespaces', 'a_do_not_check_namespaces',</span>
+<a name="line-41"></a><span class='comment'>-- 'a_remove_whitespace', 'a_do_not_remove_whitespace'</span>
+<a name="line-42"></a>
+<a name="line-43"></a><a name="inputOptions"></a><span class='definition'>inputOptions</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-44"></a><span class='definition'>inputOptions</span>
+<a name="line-45"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"t"</span>	<span class='keyglyph'>[</span><span class='varid'>a_trace</span><span class='keyglyph'>]</span>			<span class='layout'>(</span><span class='conid'>OptArg</span> <span class='varid'>trc</span> <span class='str'>"LEVEL"</span><span class='layout'>)</span>			<span class='str'>"trace level (0-4), default 1"</span>
+<a name="line-46"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"p"</span>	<span class='keyglyph'>[</span><span class='varid'>a_proxy</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_proxy</span><span class='layout'>)</span>         <span class='str'>"PROXY"</span><span class='layout'>)</span>	<span class='str'>"proxy for http access (e.g. \"www-cache:3128\")"</span>
+<a name="line-47"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_use_curl</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_use_curl</span>          <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"HTTP access via external program \"curl\", more functionality, supports HTTP/1.0, less efficient"</span>
+<a name="line-48"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_use_curl</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_use_curl</span>          <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"HTTP access via built in HTTP/1.1 module (default)"</span>
+<a name="line-49"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_options_curl</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_options_curl</span><span class='layout'>)</span>    <span class='str'>"STR"</span><span class='layout'>)</span>	<span class='str'>"additional curl options, e.g. for timeout, ..."</span>
+<a name="line-50"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_default_baseuri</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'>transferURI</span><span class='layout'>)</span> 	<span class='str'>"URI"</span><span class='layout'>)</span>	<span class='str'>"default base URI, default: \"file:///&lt;cwd&gt;/\""</span>
+<a name="line-51"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"e"</span>	<span class='keyglyph'>[</span><span class='varid'>a_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_encoding</span><span class='layout'>)</span>    <span class='str'>"CHARSET"</span><span class='layout'>)</span>	<span class='layout'>(</span> <span class='str'>"default document encoding ("</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-52"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_issue_errors</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_errors</span>      <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"issue all errorr messages on stderr (default)"</span>
+<a name="line-53"></a>      <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span>	<span class='keyglyph'>[</span><span class='varid'>a_do_not_issue_errors</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_errors</span>      <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='str'>"ignore all error messages"</span>
+<a name="line-54"></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-55"></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 as XML, else no parse"</span>
+<a name="line-56"></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-57"></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-58"></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-59"></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-60"></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-61"></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-62"></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-63"></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-64"></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-65"></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-66"></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-67"></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-68"></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-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_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-70"></a>      <span class='keyglyph'>]</span>
+<a name="line-71"></a>    <span class='keyword'>where</span>
+<a name="line-72"></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-73"></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-74"></a>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='comment'>-- | available Relax NG validation options</span>
+<a name="line-77"></a><span class='comment'>--</span>
+<a name="line-78"></a><span class='comment'>-- defines options</span>
+<a name="line-79"></a><span class='comment'>-- 'a_check_restrictions', 'a_validate_externalRef', 'a_validate_include', 'a_do_not_check_restrictions',  </span>
+<a name="line-80"></a><span class='comment'>-- 'a_do_not_validate_externalRef', 'a_do_not_validate_include'</span>
+<a name="line-81"></a>
+<a name="line-82"></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-83"></a><span class='definition'>relaxOptions</span>    
+<a name="line-84"></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-85"></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-86"></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-87"></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-88"></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-89"></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-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_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-91"></a>	<span class='comment'>{-
+<a name="line-92"></a>      , Option ""  [a_output_changes]			(NoArg (a_output_changes,        v_1))	"output Pattern transformations in case of an error"    
+<a name="line-93"></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-94"></a>	-}</span>
+<a name="line-95"></a>      <span class='keyglyph'>]</span>
+<a name="line-96"></a>    <span class='keyword'>where</span>
+<a name="line-97"></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-98"></a>
+<a name="line-99"></a><span class='comment'>-- |</span>
+<a name="line-100"></a><span class='comment'>-- commonly useful options for XML output</span>
+<a name="line-101"></a><span class='comment'>--</span>
+<a name="line-102"></a><span class='comment'>-- defines options: 'a_indent', 'a_output_encoding', 'a_output_file', 'a_output_html'</span>
+<a name="line-103"></a>
+<a name="line-104"></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-105"></a><span class='definition'>outputOptions</span>
+<a name="line-106"></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-107"></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-108"></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-109"></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-110"></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-111"></a>      <span class='keyglyph'>]</span>
+<a name="line-112"></a>    <span class='keyword'>where</span>
+<a name="line-113"></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-114"></a>
+<a name="line-115"></a><span class='comment'>-- |</span>
+<a name="line-116"></a><span class='comment'>-- commonly useful options</span>
+<a name="line-117"></a><span class='comment'>--</span>
+<a name="line-118"></a><span class='comment'>-- defines options: 'a_verbose', 'a_help'</span>
+<a name="line-119"></a>
+<a name="line-120"></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-121"></a><span class='definition'>generalOptions</span>
+<a name="line-122"></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-123"></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-124"></a>      <span class='keyglyph'>]</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- |</span>
+<a name="line-127"></a><span class='comment'>-- defines 'a_version' option</span>
+<a name="line-128"></a>
+<a name="line-129"></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-130"></a><span class='definition'>versionOptions</span>
+<a name="line-131"></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-132"></a>      <span class='keyglyph'>]</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='comment'>-- |</span>
+<a name="line-135"></a><span class='comment'>-- debug output options</span>
+<a name="line-136"></a>
+<a name="line-137"></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-138"></a><span class='definition'>showOptions</span>
+<a name="line-139"></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-140"></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-141"></a>      <span class='keyglyph'>]</span>
+<a name="line-142"></a>
+<a name="line-143"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='comment'>-- |</span>
+<a name="line-146"></a><span class='comment'>-- select options from a predefined list of option desciptions</span>
+<a name="line-147"></a>
+<a name="line-148"></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-149"></a><span class='definition'>selectOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>
+<a name="line-150"></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-151"></a>
+<a name="line-152"></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-153"></a><span class='definition'>removeOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>
+<a name="line-154"></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-155"></a>
+<a name="line-156"></a><span class='comment'>-- |</span>
+<a name="line-157"></a><span class='comment'>-- check whether an option is set</span>
+<a name="line-158"></a><span class='comment'>--</span>
+<a name="line-159"></a><span class='comment'>-- reads the value of an attribute, usually applied to a document root node,</span>
+<a name="line-160"></a><span class='comment'>-- and checks if the value represents True. The following strings are interpreted</span>
+<a name="line-161"></a><span class='comment'>-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".</span>
+<a name="line-162"></a>
+<a name="line-163"></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-164"></a><span class='definition'>optionIsSet</span> <span class='varid'>n</span>
+<a name="line-165"></a>    <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> <span class='varop'>.</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>n</span>
+<a name="line-166"></a>
+<a name="line-167"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DOM-XmlState.html b/doc/hdoc/src/Text-XML-HXT-DOM-XmlState.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlState.html
@@ -0,0 +1,699 @@
+<!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'>-- This module provides a Monad for an internal state and IO commands.</span>
+<a name="line-3"></a><span class='comment'>-- The state consists of two parts, the user state and the system state</span>
+<a name="line-4"></a><span class='comment'>-- user state ist a type parameter, the system state is a list</span>
+<a name="line-5"></a><span class='comment'>-- name-value pair. If the user state is not needed, the type parameter</span>
+<a name="line-6"></a><span class='comment'>-- can be instantiated with @()@.</span>
+<a name="line-7"></a><span class='comment'>--</span>
+<a name="line-8"></a><span class='comment'>-- Furthermore there are types for Xml filter working on this monad</span>
+<a name="line-9"></a><span class='comment'>-- and functions for manipulating the state components</span>
+<a name="line-10"></a><span class='comment'>-- and for lifting i\/o commands and XmlFilter to monad filters.</span>
+<a name="line-11"></a><span class='comment'>--</span>
+<a name="line-12"></a><span class='comment'>-- Error reporting functions are also located in this module.</span>
+<a name="line-13"></a><span class='comment'>--</span>
+<a name="line-14"></a><span class='comment'>-- Version : $Id: XmlState.hs,v 1.3 2005/05/27 13:15:23 hxml Exp $</span>
+<a name="line-15"></a>
+<a name="line-16"></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'>XmlState</span>
+<a name="line-17"></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'>XmlState</span>
+<a name="line-18"></a>    <span class='layout'>)</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'>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'>XmlTree</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span><span class='varop'>.</span><span class='conid'>MonadStateIO</span> <span class='keyword'>as</span> <span class='conid'>MonadStateIO</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'>IO</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='comment'>-- ------------------------------------------------------------</span>
+<a name="line-29"></a>
+<a name="line-30"></a><span class='comment'>-- |</span>
+<a name="line-31"></a><span class='comment'>-- The internal system state consists of a list of name-value pairs</span>
+<a name="line-32"></a><span class='comment'>-- of type @(String, XmlTrees)@, so arbitrary lists of trees can be stored.</span>
+<a name="line-33"></a><span class='comment'>-- For options, often only strings are used as values, so a set of access</span>
+<a name="line-34"></a><span class='comment'>-- functions with string values is available</span>
+<a name="line-35"></a><span class='comment'>-- The error handling method can be controlled by an error handler filter,</span>
+<a name="line-36"></a><span class='comment'>-- the default filter issues the errors on stderr</span>
+<a name="line-37"></a>
+<a name="line-38"></a><a name="SysState"></a><span class='keyword'>data</span> <span class='conid'>SysState</span>			<span class='keyglyph'>=</span> <span class='conid'>SysState</span> <span class='layout'>{</span> <span class='varid'>sysStateAttrs</span>		<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>SysStateAttrs</span>
+<a name="line-39"></a>					   <span class='layout'>,</span> <span class='varid'>sysStateErrorHandler</span>	<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='layout'>(</span><span class='conid'>XmlStateFilter</span> <span class='conid'>()</span><span class='layout'>)</span>
+<a name="line-40"></a>					   <span class='layout'>}</span>
+<a name="line-41"></a>
+<a name="line-42"></a><a name="SysStateAttrs"></a><span class='keyword'>type</span> <span class='conid'>SysStateAttrs</span>		<span class='keyglyph'>=</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span>
+<a name="line-43"></a>
+<a name="line-44"></a><span class='comment'>-- |</span>
+<a name="line-45"></a><span class='comment'>-- The State has a system and a user part</span>
+<a name="line-46"></a><span class='comment'>-- the user state is a type parameter</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="XmlState"></a><span class='keyword'>data</span> <span class='conid'>XmlState</span> <span class='varid'>state</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlState</span> <span class='layout'>{</span> <span class='varid'>sysState</span>	<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>SysState</span>
+<a name="line-49"></a>					   <span class='layout'>,</span> <span class='varid'>userState</span>	<span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='varid'>state</span>
+<a name="line-50"></a>					   <span class='layout'>}</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='comment'>-- |</span>
+<a name="line-53"></a><span class='comment'>-- The monad type for commands. It is an instance of "StateIO" from the</span>
+<a name="line-54"></a><span class='comment'>-- general module "Control.Monad.MonadStateIO".</span>
+<a name="line-55"></a>
+<a name="line-56"></a><a name="XState"></a><span class='keyword'>type</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>res</span>		<span class='keyglyph'>=</span> <span class='conid'>MonadStateIO</span><span class='varop'>.</span><span class='conid'>StateIO</span> <span class='layout'>(</span><span class='conid'>XmlState</span> <span class='varid'>state</span><span class='layout'>)</span> <span class='varid'>res</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='comment'>-- |</span>
+<a name="line-59"></a><span class='comment'>-- The "XmlFilter" type for filters working on a state</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="XmlStateFilter"></a><span class='keyword'>type</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>	<span class='keyglyph'>=</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-64"></a><span class='comment'>--</span>
+<a name="line-65"></a><span class='comment'>-- user defined state</span>
+<a name="line-66"></a><span class='comment'>-- access functions</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>-- |</span>
+<a name="line-69"></a><span class='comment'>-- change the user state</span>
+<a name="line-70"></a><span class='comment'>--</span>
+<a name="line-71"></a><span class='comment'>--    * 1.parameter fct :  the user state change function</span>
+<a name="line-72"></a><span class='comment'>--</span>
+<a name="line-73"></a><span class='comment'>--    - returns : the new state</span>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="changeState"></a><span class='definition'>changeState</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>state</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>state</span>
+<a name="line-76"></a><span class='definition'>changeState</span> <span class='varid'>f</span>
+<a name="line-77"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-78"></a>      <span class='varid'>ns</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>MonadStateIO</span><span class='varop'>.</span><span class='varid'>changeState</span> <span class='varid'>f'</span>
+<a name="line-79"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>userState</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-80"></a>      <span class='keyword'>where</span>
+<a name="line-81"></a>      <span class='varid'>f'</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>userState</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>userState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-82"></a>
+<a name="line-83"></a><span class='comment'>-- |</span>
+<a name="line-84"></a><span class='comment'>-- set the user state.</span>
+<a name="line-85"></a><span class='comment'>--</span>
+<a name="line-86"></a><span class='comment'>--    * 1.parameter s :  the new state</span>
+<a name="line-87"></a><span class='comment'>--</span>
+<a name="line-88"></a><span class='comment'>--    - returns : the new state</span>
+<a name="line-89"></a>
+<a name="line-90"></a><a name="setState"></a><span class='definition'>setState</span>	<span class='keyglyph'>::</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>state</span>
+<a name="line-91"></a><span class='definition'>setState</span> <span class='varid'>s</span>
+<a name="line-92"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</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'>-- read the user state</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>--    - returns : the current state</span>
+<a name="line-98"></a>
+<a name="line-99"></a><a name="getState"></a><span class='definition'>getState</span>	<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>state</span>
+<a name="line-100"></a><span class='definition'>getState</span>
+<a name="line-101"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='varid'>id</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-104"></a>
+<a name="line-105"></a><span class='comment'>-- |</span>
+<a name="line-106"></a><span class='comment'>-- change the system part of the state.</span>
+<a name="line-107"></a><span class='comment'>--</span>
+<a name="line-108"></a><span class='comment'>-- see also : 'changeState'</span>
+<a name="line-109"></a>
+<a name="line-110"></a><a name="changeSysState"></a><span class='definition'>changeSysState</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>SysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SysState</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>SysState</span>
+<a name="line-111"></a><span class='definition'>changeSysState</span> <span class='varid'>f</span>
+<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-113"></a>      <span class='varid'>ns</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>MonadStateIO</span><span class='varop'>.</span><span class='varid'>changeState</span> <span class='varid'>f'</span>
+<a name="line-114"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>sysState</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-115"></a>      <span class='keyword'>where</span>
+<a name="line-116"></a>      <span class='varid'>f'</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>sysState</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>sysState</span> <span class='varid'>s</span><span class='layout'>)</span> <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'>-- set the system part of the state.</span>
+<a name="line-120"></a><span class='comment'>--</span>
+<a name="line-121"></a><span class='comment'>-- see also : 'setState'</span>
+<a name="line-122"></a>
+<a name="line-123"></a><a name="setSysState"></a><span class='definition'>setSysState</span>		<span class='keyglyph'>::</span> <span class='conid'>SysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>SysState</span>
+<a name="line-124"></a><span class='definition'>setSysState</span> <span class='varid'>s</span>
+<a name="line-125"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysState</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</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'>-- read the system part of the state.</span>
+<a name="line-129"></a><span class='comment'>--</span>
+<a name="line-130"></a><span class='comment'>-- see also : 'getState'</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="getSysState"></a><span class='definition'>getSysState</span>		<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>SysState</span>
+<a name="line-133"></a><span class='definition'>getSysState</span>
+<a name="line-134"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysState</span> <span class='varid'>id</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>-- |</span>
+<a name="line-137"></a><span class='comment'>-- the initial system state</span>
+<a name="line-138"></a><span class='comment'>--</span>
+<a name="line-139"></a><span class='comment'>-- an empty list of attribute value pairs</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="initialSysState"></a><span class='definition'>initialSysState</span>		<span class='keyglyph'>::</span> <span class='conid'>SysState</span>
+<a name="line-142"></a><span class='definition'>initialSysState</span>
+<a name="line-143"></a>    <span class='keyglyph'>=</span> <span class='conid'>SysState</span> <span class='layout'>{</span> <span class='varid'>sysStateAttrs</span>        <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-144"></a>	       <span class='layout'>,</span> <span class='varid'>sysStateErrorHandler</span> <span class='keyglyph'>=</span> <span class='varid'>errorMsgToStderr</span>
+<a name="line-145"></a>	       <span class='layout'>}</span>
+<a name="line-146"></a>
+<a name="line-147"></a><span class='comment'>-- |</span>
+<a name="line-148"></a><span class='comment'>-- change the attributes in the system state</span>
+<a name="line-149"></a>
+<a name="line-150"></a><a name="changeSysStateAttrs"></a><span class='definition'>changeSysStateAttrs</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>SysStateAttrs</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SysStateAttrs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>SysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SysState</span><span class='layout'>)</span>
+<a name="line-151"></a><span class='definition'>changeSysStateAttrs</span> <span class='varid'>cf</span> <span class='varid'>sstate</span>
+<a name="line-152"></a>    <span class='keyglyph'>=</span> <span class='varid'>sstate</span> <span class='layout'>{</span> <span class='varid'>sysStateAttrs</span> <span class='keyglyph'>=</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='varid'>sysStateAttrs</span> <span class='varid'>sstate</span><span class='layout'>)</span> <span class='layout'>}</span>
+<a name="line-153"></a>
+<a name="line-154"></a>
+<a name="line-155"></a><span class='comment'>-- |</span>
+<a name="line-156"></a><span class='comment'>-- set the error message handler</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="setSysErrorHandler"></a><span class='definition'>setSysErrorHandler</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='conid'>()</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-159"></a><span class='definition'>setSysErrorHandler</span> <span class='varid'>ehf</span>
+<a name="line-160"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-161"></a>      <span class='varid'>changeSysState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>sysStateErrorHandler</span> <span class='keyglyph'>=</span> <span class='varid'>ehf</span> <span class='layout'>}</span><span class='layout'>)</span>
+<a name="line-162"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-163"></a>
+<a name="line-164"></a><span class='comment'>-- |</span>
+<a name="line-165"></a><span class='comment'>-- get the error handler</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="getSysErrorHandler"></a><span class='definition'>getSysErrorHandler</span>		<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>XmlStateFilter</span> <span class='conid'>()</span><span class='layout'>)</span>
+<a name="line-168"></a><span class='definition'>getSysErrorHandler</span>
+<a name="line-169"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-170"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysState</span>
+<a name="line-171"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>sysStateErrorHandler</span> <span class='varid'>s</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><span class='comment'>-- |</span>
+<a name="line-176"></a><span class='comment'>-- set or change a single system parameter.</span>
+<a name="line-177"></a><span class='comment'>--</span>
+<a name="line-178"></a><span class='comment'>--    * 1.parameter name :  the name of the parameter</span>
+<a name="line-179"></a><span class='comment'>--</span>
+<a name="line-180"></a><span class='comment'>--    - 2.parameter value :  the list of associated trees</span>
+<a name="line-181"></a><span class='comment'>--</span>
+<a name="line-182"></a><span class='comment'>--    - returns : nothing</span>
+<a name="line-183"></a><span class='comment'>--</span>
+<a name="line-184"></a><span class='comment'>-- see also : 'setSysParam', 'setSysParamInt'</span>
+<a name="line-185"></a>
+<a name="line-186"></a><a name="setSysParamTree"></a><span class='definition'>setSysParamTree</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'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-187"></a><span class='definition'>setSysParamTree</span> <span class='varid'>name</span> <span class='varid'>val</span>
+<a name="line-188"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-189"></a>      <span class='varid'>changeSysState</span> <span class='layout'>(</span><span class='varid'>changeSysStateAttrs</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>name</span> <span class='varid'>val</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-190"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-191"></a>
+<a name="line-192"></a><span class='comment'>-- |</span>
+<a name="line-193"></a><span class='comment'>-- set or change a single system parameter of type string.</span>
+<a name="line-194"></a><span class='comment'>--</span>
+<a name="line-195"></a><span class='comment'>--    * 1.parameter name :  the name of the parameter</span>
+<a name="line-196"></a><span class='comment'>--</span>
+<a name="line-197"></a><span class='comment'>--    - 2.parameter value :  the (new) string value</span>
+<a name="line-198"></a><span class='comment'>--</span>
+<a name="line-199"></a><span class='comment'>--    - returns : nothing</span>
+<a name="line-200"></a><span class='comment'>--</span>
+<a name="line-201"></a><span class='comment'>-- see also : 'setSysParamTree', setSysParamInt</span>
+<a name="line-202"></a>
+<a name="line-203"></a><a name="setSysParam"></a><span class='definition'>setSysParam</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'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-204"></a><span class='definition'>setSysParam</span> <span class='varid'>name</span> <span class='varid'>val</span>
+<a name="line-205"></a>    <span class='keyglyph'>=</span> <span class='varid'>setSysParamTree</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>xtext</span> <span class='varid'>val</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'>-- set or change a single integer type system parameter</span>
+<a name="line-209"></a><span class='comment'>--</span>
+<a name="line-210"></a><span class='comment'>-- see also : 'setSysParam'</span>
+<a name="line-211"></a>
+<a name="line-212"></a><a name="setSysParamInt"></a><span class='definition'>setSysParamInt</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'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-213"></a><span class='definition'>setSysParamInt</span> <span class='varid'>name</span> <span class='varid'>val</span>	<span class='keyglyph'>=</span> <span class='varid'>setSysParam</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>val</span><span class='layout'>)</span>
+<a name="line-214"></a>
+<a name="line-215"></a><span class='comment'>-- |</span>
+<a name="line-216"></a><span class='comment'>-- add (or change) all attributes of the document root to the system state</span>
+<a name="line-217"></a><span class='comment'>--     - returns : this</span>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="setSystemParams"></a><span class='definition'>setSystemParams</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-220"></a><span class='definition'>setSystemParams</span> <span class='varid'>t</span>
+<a name="line-221"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-222"></a>      <span class='varid'>changeSysState</span> <span class='layout'>(</span><span class='varid'>changeSysStateAttrs</span> <span class='layout'>(</span><span class='varid'>addEntries</span> <span class='layout'>(</span><span class='varid'>toTreel</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-223"></a>      <span class='varid'>thisM</span> <span class='varid'>t</span>
+<a name="line-224"></a>
+<a name="line-225"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-226"></a>
+<a name="line-227"></a><span class='comment'>-- |</span>
+<a name="line-228"></a><span class='comment'>-- read a system parameter</span>
+<a name="line-229"></a><span class='comment'>--</span>
+<a name="line-230"></a><span class='comment'>--    * 1.parameter name :  the name of the parameter</span>
+<a name="line-231"></a><span class='comment'>--</span>
+<a name="line-232"></a><span class='comment'>--    - returns : the list of tres associated with the key, or the empty list for unknown parameters</span>
+<a name="line-233"></a>
+<a name="line-234"></a><a name="getSysParamTree"></a><span class='definition'>getSysParamTree</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-235"></a><span class='definition'>getSysParamTree</span> <span class='varid'>name</span>
+<a name="line-236"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-237"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysState</span>
+<a name="line-238"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>sysStateAttrs</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-239"></a>
+<a name="line-240"></a><span class='comment'>-- |</span>
+<a name="line-241"></a><span class='comment'>-- read a system string parameter</span>
+<a name="line-242"></a><span class='comment'>--</span>
+<a name="line-243"></a><span class='comment'>--    * 1.parameter name :  the name of the parameter</span>
+<a name="line-244"></a><span class='comment'>--</span>
+<a name="line-245"></a><span class='comment'>--    - returns : the value, or the empty string for unknown parameters</span>
+<a name="line-246"></a>
+<a name="line-247"></a><a name="getSysParam"></a><span class='definition'>getSysParam</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-248"></a><span class='definition'>getSysParam</span> <span class='varid'>name</span>
+<a name="line-249"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-250"></a>      <span class='varid'>ts</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamTree</span> <span class='varid'>name</span>
+<a name="line-251"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-252"></a>
+<a name="line-253"></a><span class='comment'>-- |</span>
+<a name="line-254"></a><span class='comment'>-- read a system parameter or return a default value</span>
+<a name="line-255"></a><span class='comment'>--</span>
+<a name="line-256"></a><span class='comment'>--    * 1.parameter name :  the name of the parameter</span>
+<a name="line-257"></a><span class='comment'>--</span>
+<a name="line-258"></a><span class='comment'>--    - 2.parameter default :  the default value</span>
+<a name="line-259"></a><span class='comment'>--</span>
+<a name="line-260"></a><span class='comment'>--    - returns : the value if found, else the default</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="getSysParamWithDefault"></a><span class='definition'>getSysParamWithDefault</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'>XState</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-263"></a><span class='definition'>getSysParamWithDefault</span> <span class='varid'>name</span> <span class='varid'>def</span>
+<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-265"></a>      <span class='varid'>val</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>name</span>
+<a name="line-266"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>val</span>
+<a name="line-267"></a>	       <span class='keyword'>then</span> <span class='varid'>def</span>
+<a name="line-268"></a>	       <span class='keyword'>else</span> <span class='varid'>val</span>
+<a name="line-269"></a>	     <span class='layout'>)</span>
+<a name="line-270"></a>
+<a name="line-271"></a><span class='comment'>-- |</span>
+<a name="line-272"></a><span class='comment'>-- read an integer system parameter</span>
+<a name="line-273"></a><span class='comment'>--</span>
+<a name="line-274"></a><span class='comment'>--    * 1.parameter name : </span>
+<a name="line-275"></a><span class='comment'>--</span>
+<a name="line-276"></a><span class='comment'>--    - 2.parameter default : </span>
+<a name="line-277"></a><span class='comment'>--</span>
+<a name="line-278"></a><span class='comment'>-- see also : 'getSysParamWithDefault'</span>
+<a name="line-279"></a>
+<a name="line-280"></a><a name="getSysParamInt"></a><span class='definition'>getSysParamInt</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'>XState</span> <span class='varid'>state</span> <span class='conid'>Int</span>
+<a name="line-281"></a><span class='definition'>getSysParamInt</span> <span class='varid'>var</span> <span class='varid'>def</span>
+<a name="line-282"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-283"></a>      <span class='varid'>val</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamWithDefault</span> <span class='varid'>var</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>def</span><span class='layout'>)</span>
+<a name="line-284"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>val</span><span class='layout'>)</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><span class='comment'>-- |</span>
+<a name="line-289"></a><span class='comment'>-- exec a XState command with initial state.</span>
+<a name="line-290"></a><span class='comment'>--</span>
+<a name="line-291"></a><span class='comment'>--    * 1.parameter initalState :  the inital user state</span>
+<a name="line-292"></a><span class='comment'>--</span>
+<a name="line-293"></a><span class='comment'>--    - 2.parameter cmd :  the command</span>
+<a name="line-294"></a><span class='comment'>--</span>
+<a name="line-295"></a><span class='comment'>--    - returns : the i\/o command with result and user state</span>
+<a name="line-296"></a>
+<a name="line-297"></a><a name="run0"></a><span class='definition'>run0</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlState</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='conid'>XmlState</span> <span class='varid'>state</span><span class='layout'>)</span>
+<a name="line-298"></a><span class='definition'>run0</span> <span class='varid'>initialState</span> <span class='layout'>(</span><span class='conid'>MonadStateIO</span><span class='varop'>.</span><span class='conid'>STIO</span> <span class='varid'>cmd</span><span class='layout'>)</span>
+<a name="line-299"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-300"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>finalState</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd</span> <span class='varid'>initialState</span>
+<a name="line-301"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>finalState</span><span class='layout'>)</span>
+<a name="line-302"></a>
+<a name="line-303"></a><span class='comment'>-- |</span>
+<a name="line-304"></a><span class='comment'>-- exec a XState command with initial user state.</span>
+<a name="line-305"></a><span class='comment'>-- ignore final user state.</span>
+<a name="line-306"></a><span class='comment'>-- like run0, but ignore the resulting user state</span>
+<a name="line-307"></a>
+<a name="line-308"></a><a name="run"></a><span class='definition'>run</span>		<span class='keyglyph'>::</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='varid'>res</span>
+<a name="line-309"></a><span class='definition'>run</span> <span class='varid'>initialUserState</span> <span class='varid'>cmd</span>
+<a name="line-310"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-311"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='sel'>_finalState</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>run0</span> <span class='layout'>(</span><span class='conid'>XmlState</span> <span class='varid'>initialSysState</span> <span class='varid'>initialUserState</span><span class='layout'>)</span> <span class='varid'>cmd</span>
+<a name="line-312"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-313"></a>
+<a name="line-314"></a><span class='comment'>-- |</span>
+<a name="line-315"></a><span class='comment'>-- exec a XState command in th IO monad.</span>
+<a name="line-316"></a><span class='comment'>-- like run with the empty state ().</span>
+<a name="line-317"></a>
+<a name="line-318"></a><a name="run'"></a><span class='definition'>run'</span>		<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='conid'>()</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='varid'>res</span>
+<a name="line-319"></a><span class='definition'>run'</span>		<span class='keyglyph'>=</span> <span class='varid'>run</span> <span class='conid'>()</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'>-- run a command in a new user state.</span>
+<a name="line-325"></a><span class='comment'>-- chain the system state part,</span>
+<a name="line-326"></a><span class='comment'>-- init new system state with the current one, run the command and</span>
+<a name="line-327"></a><span class='comment'>-- update the old system state with the resulting new system state</span>
+<a name="line-328"></a><span class='comment'>--</span>
+<a name="line-329"></a><span class='comment'>--    * 1.parameter initialUserState :  the initial user state</span>
+<a name="line-330"></a><span class='comment'>--</span>
+<a name="line-331"></a><span class='comment'>--    - 2.parameter cmd :  the command</span>
+<a name="line-332"></a><span class='comment'>--</span>
+<a name="line-333"></a><span class='comment'>--    - returns : the result of executing cmd and the final state</span>
+<a name="line-334"></a>
+<a name="line-335"></a><a name="chain'"></a><span class='definition'>chain'</span>		<span class='keyglyph'>::</span> <span class='varid'>state1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state1</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state0</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>state1</span><span class='layout'>)</span>
+<a name="line-336"></a><span class='definition'>chain'</span> <span class='varid'>initialUserState1</span> <span class='varid'>cmd1</span>
+<a name="line-337"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-338"></a>      <span class='varid'>sysState0</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysState</span>
+<a name="line-339"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>finalState1</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>run0</span> <span class='layout'>(</span><span class='conid'>XmlState</span> <span class='varid'>sysState0</span> <span class='varid'>initialUserState1</span><span class='layout'>)</span> <span class='varid'>cmd1</span>
+<a name="line-340"></a>      <span class='varid'>setSysState</span> <span class='layout'>(</span><span class='varid'>sysState</span> <span class='varid'>finalState1</span><span class='layout'>)</span>
+<a name="line-341"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>userState</span> <span class='varid'>finalState1</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-342"></a>
+<a name="line-343"></a><span class='comment'>-- |</span>
+<a name="line-344"></a><span class='comment'>-- like chain' but forget the final user state</span>
+<a name="line-345"></a><span class='comment'>--</span>
+<a name="line-346"></a><span class='comment'>--    * 1.parameter initialUserState :  the initial user state</span>
+<a name="line-347"></a><span class='comment'>--</span>
+<a name="line-348"></a><span class='comment'>--    - 2.parameter cmd :  the command</span>
+<a name="line-349"></a><span class='comment'>--</span>
+<a name="line-350"></a><span class='comment'>--    - returns : only the result of executing cmd</span>
+<a name="line-351"></a>
+<a name="line-352"></a><a name="chain"></a><span class='definition'>chain</span>		<span class='keyglyph'>::</span> <span class='varid'>state1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state1</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state0</span> <span class='varid'>res</span>
+<a name="line-353"></a><span class='definition'>chain</span> <span class='varid'>initialUserState1</span> <span class='varid'>cmd1</span>
+<a name="line-354"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-355"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>chain'</span> <span class='varid'>initialUserState1</span> <span class='varid'>cmd1</span>
+<a name="line-356"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-357"></a>
+<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-359"></a><span class='comment'>--</span>
+<a name="line-360"></a><span class='comment'>-- lift functions</span>
+<a name="line-361"></a>
+<a name="line-362"></a><span class='comment'>-- |</span>
+<a name="line-363"></a><span class='comment'>-- lift a XmlFilter to a XmlStateFilter filter</span>
+<a name="line-364"></a><span class='comment'>-- issue all error nodes as error messages</span>
+<a name="line-365"></a><span class='comment'>-- and remove the error nodes from the result</span>
+<a name="line-366"></a><span class='comment'>--</span>
+<a name="line-367"></a><span class='comment'>--    * 1.parameter f :  the filter</span>
+<a name="line-368"></a><span class='comment'>--</span>
+<a name="line-369"></a><span class='comment'>--    - returns : the filter running in the state monad</span>
+<a name="line-370"></a><span class='comment'>--</span>
+<a name="line-371"></a><span class='comment'>--		  all errors are filtered from the result and issued on stderr</span>
+<a name="line-372"></a>
+<a name="line-373"></a><a name="liftF"></a><span class='definition'>liftF</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-374"></a><span class='definition'>liftF</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>f</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>issueError</span>
+<a name="line-375"></a>
+<a name="line-376"></a><span class='comment'>-- |</span>
+<a name="line-377"></a><span class='comment'>-- lift an I\/O command</span>
+<a name="line-378"></a><span class='comment'>--</span>
+<a name="line-379"></a><span class='comment'>--    * 1.parameter cmd :  the i\/o command</span>
+<a name="line-380"></a><span class='comment'>--</span>
+<a name="line-381"></a><span class='comment'>--    - returns : the i\/o command lifted to the XML state monad</span>
+<a name="line-382"></a>
+<a name="line-383"></a><a name="io"></a><span class='definition'>io</span>		<span class='keyglyph'>::</span> <span class='conid'>IO</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>a</span>
+<a name="line-384"></a><span class='definition'>io</span>		<span class='keyglyph'>=</span> <span class='conid'>MonadStateIO</span><span class='varop'>.</span><span class='varid'>io</span>
+<a name="line-385"></a>
+<a name="line-386"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-387"></a><span class='comment'>--</span>
+<a name="line-388"></a>
+<a name="line-389"></a><span class='comment'>-- |</span>
+<a name="line-390"></a><span class='comment'>-- set the trace level.</span>
+<a name="line-391"></a><span class='comment'>--</span>
+<a name="line-392"></a><span class='comment'>-- convention:</span>
+<a name="line-393"></a><span class='comment'>--</span>
+<a name="line-394"></a><span class='comment'>-- 0: no trace output (default)</span>
+<a name="line-395"></a><span class='comment'>--</span>
+<a name="line-396"></a><span class='comment'>-- 1: trace important computation steps, e.g. accessing a document</span>
+<a name="line-397"></a><span class='comment'>--</span>
+<a name="line-398"></a><span class='comment'>-- 2: trace small computation steps</span>
+<a name="line-399"></a><span class='comment'>--</span>
+<a name="line-400"></a><span class='comment'>-- 3: output an intermediate result XmlTree in XML source format</span>
+<a name="line-401"></a><span class='comment'>--</span>
+<a name="line-402"></a><span class='comment'>-- 4: output an intermediate result XmlTree in tree representation</span>
+<a name="line-403"></a><span class='comment'>--</span>
+<a name="line-404"></a><span class='comment'>--    * 1.parameter level :  the trace level</span>
+<a name="line-405"></a><span class='comment'>--</span>
+<a name="line-406"></a><span class='comment'>--    - returns : nothing</span>
+<a name="line-407"></a>
+<a name="line-408"></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'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-409"></a><span class='definition'>setTraceLevel</span> <span class='varid'>l</span>	<span class='keyglyph'>=</span> <span class='varid'>setSysParamInt</span> <span class='varid'>a_trace</span> <span class='varid'>l</span>
+<a name="line-410"></a>
+<a name="line-411"></a><span class='comment'>-- |</span>
+<a name="line-412"></a><span class='comment'>-- get the current trace level.</span>
+<a name="line-413"></a><span class='comment'>--</span>
+<a name="line-414"></a><span class='comment'>--    - returns : the current trace level</span>
+<a name="line-415"></a>
+<a name="line-416"></a><a name="getTraceLevel"></a><span class='definition'>getTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>Int</span>
+<a name="line-417"></a><span class='definition'>getTraceLevel</span>	<span class='keyglyph'>=</span> <span class='varid'>getSysParamInt</span> <span class='varid'>a_trace</span> <span class='num'>0</span>
+<a name="line-418"></a>
+<a name="line-419"></a><span class='comment'>-- |</span>
+<a name="line-420"></a><span class='comment'>-- trace output for arbitray commands.</span>
+<a name="line-421"></a><span class='comment'>--</span>
+<a name="line-422"></a><span class='comment'>--    * 1.parameter level :  the trace level,</span>
+<a name="line-423"></a><span class='comment'>--			  for which the command will be execuded</span>
+<a name="line-424"></a><span class='comment'>--			  if level \&lt;= current trace level</span>
+<a name="line-425"></a><span class='comment'>--</span>
+<a name="line-426"></a><span class='comment'>--    - 2.parameter cmd :  the command to be executed</span>
+<a name="line-427"></a><span class='comment'>--</span>
+<a name="line-428"></a><span class='comment'>--    - returns : nothing</span>
+<a name="line-429"></a>
+<a name="line-430"></a><a name="traceCmd"></a><span class='definition'>traceCmd</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-431"></a><span class='definition'>traceCmd</span> <span class='varid'>level</span> <span class='varid'>cmd</span>
+<a name="line-432"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-433"></a>      <span class='varid'>trcLevel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTraceLevel</span>
+<a name="line-434"></a>      <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>&lt;=</span> <span class='varid'>trcLevel</span>
+<a name="line-435"></a>        <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-436"></a>	     <span class='keyword'>_</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd</span>
+<a name="line-437"></a>	     <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-438"></a>        <span class='keyword'>else</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-439"></a>
+<a name="line-440"></a><span class='comment'>-- |</span>
+<a name="line-441"></a><span class='comment'>-- trace output function for simple text.</span>
+<a name="line-442"></a><span class='comment'>--</span>
+<a name="line-443"></a><span class='comment'>--    * 1.parameter level :  like in traceCmd</span>
+<a name="line-444"></a><span class='comment'>--</span>
+<a name="line-445"></a><span class='comment'>--    - 2.parameter str :  the test</span>
+<a name="line-446"></a><span class='comment'>--</span>
+<a name="line-447"></a><span class='comment'>--    - returns : nothing</span>
+<a name="line-448"></a>
+<a name="line-449"></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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-450"></a><span class='definition'>trace</span> <span class='varid'>level</span> <span class='varid'>str</span>
+<a name="line-451"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceCmd</span> <span class='varid'>level</span>
+<a name="line-452"></a>      <span class='varop'>$</span> <span class='keyword'>do</span>
+<a name="line-453"></a>	<span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='layout'>(</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'>str</span><span class='layout'>)</span>
+<a name="line-454"></a>
+<a name="line-455"></a><span class='comment'>-- |</span>
+<a name="line-456"></a><span class='comment'>-- trace output of the user part of the program state.</span>
+<a name="line-457"></a><span class='comment'>--</span>
+<a name="line-458"></a><span class='comment'>--    * 1.parameter level :  like in traceCmd</span>
+<a name="line-459"></a><span class='comment'>--</span>
+<a name="line-460"></a><span class='comment'>--    - 2.parameter showFct :  the toString function</span>
+<a name="line-461"></a><span class='comment'>--</span>
+<a name="line-462"></a><span class='comment'>--    - returns : nothing</span>
+<a name="line-463"></a>
+<a name="line-464"></a><a name="traceState"></a><span class='definition'>traceState</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-465"></a><span class='definition'>traceState</span> <span class='varid'>level</span> <span class='varid'>fct</span>
+<a name="line-466"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceCmd</span> <span class='varid'>level</span>
+<a name="line-467"></a>      <span class='varop'>$</span> <span class='keyword'>do</span>
+<a name="line-468"></a>	<span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-469"></a>	<span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-470"></a>
+<a name="line-471"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-472"></a><span class='comment'>--</span>
+<a name="line-473"></a><span class='comment'>-- error functions</span>
+<a name="line-474"></a>
+<a name="line-475"></a><span class='comment'>-- |</span>
+<a name="line-476"></a><span class='comment'>-- filter to reset the state attribute 'a_status'</span>
+<a name="line-477"></a><span class='comment'>--    - returns : this</span>
+<a name="line-478"></a>
+<a name="line-479"></a><a name="clearStatus"></a><span class='definition'>clearStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-480"></a><span class='definition'>clearStatus</span> <span class='varid'>t</span>
+<a name="line-481"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-482"></a>      <span class='varid'>setSysParamInt</span> <span class='varid'>a_status</span> <span class='varid'>c_ok</span>
+<a name="line-483"></a>      <span class='varid'>thisM</span> <span class='varid'>t</span>
+<a name="line-484"></a>
+<a name="line-485"></a><span class='comment'>-- |</span>
+<a name="line-486"></a><span class='comment'>-- report an error message.</span>
+<a name="line-487"></a><span class='comment'>--</span>
+<a name="line-488"></a><span class='comment'>--    - returns : if the input tree n represents an error, @res = []@</span>
+<a name="line-489"></a><span class='comment'>--		  and the error is processed by the errror handler filter (default: error is issued on stderr)</span>
+<a name="line-490"></a><span class='comment'>--		  else @res = [n]@</span>
+<a name="line-491"></a><span class='comment'>--</span>
+<a name="line-492"></a><span class='comment'>-- see also : 'issueErr'</span>
+<a name="line-493"></a>
+<a name="line-494"></a><a name="issueError"></a><span class='definition'>issueError</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-495"></a><span class='definition'>issueError</span>
+<a name="line-496"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>setErrorMsgLevel</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>errorMsgHandler</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>noneM</span><span class='layout'>)</span>
+<a name="line-497"></a>      <span class='varop'>`whenM`</span>
+<a name="line-498"></a>      <span class='varid'>isXError</span>
+<a name="line-499"></a>
+<a name="line-500"></a><a name="errorMsgHandler"></a><span class='definition'>errorMsgHandler</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-501"></a><span class='definition'>errorMsgHandler</span>
+<a name="line-502"></a>    <span class='keyglyph'>=</span> <span class='varid'>performAction</span>
+<a name="line-503"></a>      <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>chain'</span> <span class='conid'>()</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-504"></a>			   <span class='varid'>ehf</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysErrorHandler</span>
+<a name="line-505"></a>			   <span class='varid'>ehf</span> <span class='varid'>t</span>
+<a name="line-506"></a>			   <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-507"></a>			 <span class='layout'>)</span>
+<a name="line-508"></a>      <span class='layout'>)</span>
+<a name="line-509"></a>
+<a name="line-510"></a><span class='comment'>-- |</span>
+<a name="line-511"></a><span class='comment'>-- set the error level in system state</span>
+<a name="line-512"></a>
+<a name="line-513"></a><a name="setErrorMsgLevel"></a><span class='definition'>setErrorMsgLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-514"></a><span class='definition'>setErrorMsgLevel</span>
+<a name="line-515"></a>    <span class='keyglyph'>=</span> <span class='varid'>performAction</span>
+<a name="line-516"></a>      <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>level</span> <span class='sel'>_str</span><span class='layout'>)</span> <span class='sel'>_cs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-517"></a>	<span class='keyword'>do</span>
+<a name="line-518"></a>	<span class='varid'>errLevel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamInt</span> <span class='varid'>a_status</span> <span class='num'>0</span>
+<a name="line-519"></a>	<span class='varid'>setSysParamInt</span> <span class='varid'>a_status</span> <span class='layout'>(</span><span class='varid'>max</span> <span class='varid'>errLevel</span> <span class='varid'>level</span><span class='layout'>)</span>
+<a name="line-520"></a>      <span class='layout'>)</span>
+<a name="line-521"></a>
+<a name="line-522"></a><span class='comment'>-- |</span>
+<a name="line-523"></a><span class='comment'>-- default error handler for writing errors to stderr</span>
+<a name="line-524"></a>
+<a name="line-525"></a><a name="errorMsgToStderr"></a><span class='definition'>errorMsgToStderr</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-526"></a><span class='definition'>errorMsgToStderr</span>
+<a name="line-527"></a>    <span class='keyglyph'>=</span> <span class='varid'>performAction</span>
+<a name="line-528"></a>      <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>level</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='sel'>_cs</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-529"></a>	<span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='layout'>(</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'>str</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><span class='comment'>-- error message handler for collecting all error messages</span>
+<a name="line-534"></a><span class='comment'>-- all messages are stored under attribute 'a_error_log'</span>
+<a name="line-535"></a><span class='comment'>-- they can be read with @getSysParamTree a_error_log@ or by</span>
+<a name="line-536"></a><span class='comment'>-- applying the filter 'getErrorMsg' to the root node</span>
+<a name="line-537"></a>
+<a name="line-538"></a><a name="errorMsgLogging"></a><span class='definition'>errorMsgLogging</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-539"></a><span class='definition'>errorMsgLogging</span>
+<a name="line-540"></a>    <span class='keyglyph'>=</span> <span class='varid'>performAction</span>
+<a name="line-541"></a>      <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-542"></a>	<span class='keyword'>do</span>
+<a name="line-543"></a>	<span class='varid'>errLog</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamTree</span> <span class='varid'>a_error_log</span>
+<a name="line-544"></a>	<span class='varid'>setSysParamTree</span> <span class='varid'>a_error_log</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>errLog</span><span class='layout'>)</span>
+<a name="line-545"></a>      <span class='layout'>)</span>
+<a name="line-546"></a>
+<a name="line-547"></a><a name="errorMsgLoggingAndToStderr"></a><span class='definition'>errorMsgLoggingAndToStderr</span>      <span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-548"></a><span class='definition'>errorMsgLoggingAndToStderr</span>	<span class='keyglyph'>=</span> <span class='varid'>errorMsgLogging</span><span class='varop'>.&gt;&gt;</span> <span class='varid'>errorMsgToStderr</span>
+<a name="line-549"></a>
+<a name="line-550"></a><span class='comment'>-- |</span>
+<a name="line-551"></a><span class='comment'>-- the filter for reading all collected error mesages</span>
+<a name="line-552"></a><span class='comment'>--</span>
+<a name="line-553"></a><span class='comment'>-- result is the list of error messages, the input tree is ignored</span>
+<a name="line-554"></a>
+<a name="line-555"></a><a name="getErrorMsg"></a><span class='definition'>getErrorMsg</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-556"></a><span class='definition'>getErrorMsg</span> <span class='sel'>_t</span>
+<a name="line-557"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-558"></a>      <span class='varid'>el</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamTree</span> <span class='varid'>a_error_log</span>
+<a name="line-559"></a>      <span class='varid'>setSysParamTree</span> <span class='varid'>a_error_log</span> <span class='conid'>[]</span>
+<a name="line-560"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-561"></a>
+<a name="line-562"></a><span class='comment'>-- |</span>
+<a name="line-563"></a><span class='comment'>-- error level translation</span>
+<a name="line-564"></a><span class='comment'>-- 'c_warn' (1) : warning,</span>
+<a name="line-565"></a><span class='comment'>-- 'c_err' (2): error (e.g. parse error, validation error, ...),</span>
+<a name="line-566"></a><span class='comment'>-- 'c_fatal' (3) : fatal error (document access error, internal error, ...)</span>
+<a name="line-567"></a>
+<a name="line-568"></a><a name="errClass"></a><span class='definition'>errClass</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-569"></a><span class='definition'>errClass</span> <span class='varid'>l</span>
+<a name="line-570"></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-571"></a>      <span class='keyword'>where</span>
+<a name="line-572"></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-573"></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-574"></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-575"></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-576"></a>		  <span class='keyglyph'>]</span>
+<a name="line-577"></a>
+<a name="line-578"></a><span class='comment'>-- |</span>
+<a name="line-579"></a><span class='comment'>-- short cut for issuing a warning</span>
+<a name="line-580"></a><span class='comment'>--</span>
+<a name="line-581"></a><span class='comment'>-- see also : 'issueError', 'issueErr'</span>
+<a name="line-582"></a>
+<a name="line-583"></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'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-584"></a><span class='definition'>issueWarn</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>issueError</span>
+<a name="line-585"></a>
+<a name="line-586"></a><span class='comment'>-- |</span>
+<a name="line-587"></a><span class='comment'>-- short cut for issuing an error</span>
+<a name="line-588"></a><span class='comment'>--</span>
+<a name="line-589"></a><span class='comment'>-- see also : 'issueError'</span>
+<a name="line-590"></a>
+<a name="line-591"></a><a name="issueErr"></a><span class='definition'>issueErr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-592"></a><span class='definition'>issueErr</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>issueError</span>
+<a name="line-593"></a>
+<a name="line-594"></a><span class='comment'>-- |</span>
+<a name="line-595"></a><span class='comment'>-- short cut for issuing a fatal error</span>
+<a name="line-596"></a><span class='comment'>--</span>
+<a name="line-597"></a><span class='comment'>-- see also : 'issueError', 'issueErr'</span>
+<a name="line-598"></a>
+<a name="line-599"></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'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-600"></a><span class='definition'>issueFatal</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>fatal</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>issueError</span>
+<a name="line-601"></a>
+<a name="line-602"></a>
+<a name="line-603"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-604"></a><span class='comment'>--</span>
+<a name="line-605"></a><span class='comment'>-- issue an error, add the error to the document root tree</span>
+<a name="line-606"></a><span class='comment'>-- and return the tree</span>
+<a name="line-607"></a>
+<a name="line-608"></a><a name="addFatal"></a><span class='definition'>addFatal</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-609"></a><span class='definition'>addFatal</span> <span class='varid'>msg</span>
+<a name="line-610"></a>    <span class='keyglyph'>=</span> <span class='varid'>liftF</span> <span class='layout'>(</span> <span class='varid'>fatal</span> <span class='varid'>msg</span>
+<a name="line-611"></a>	      <span class='varop'>+++</span>
+<a name="line-612"></a>	      <span class='varid'>setStatus</span> <span class='varid'>c_fatal</span> <span class='str'>"accessing documents"</span>
+<a name="line-613"></a>	    <span class='layout'>)</span>
+<a name="line-614"></a>
+<a name="line-615"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-616"></a>
+<a name="line-617"></a><span class='comment'>-- |</span>
+<a name="line-618"></a><span class='comment'>-- checks the value of the attribute 'a_status' in a document root.</span>
+<a name="line-619"></a><span class='comment'>-- if it contains a value greater or equal to 'c_err', an error with error message</span>
+<a name="line-620"></a><span class='comment'>-- stored in attribute 'a_module' is issued and the filter acts as the 'noneM' filter</span>
+<a name="line-621"></a><span class='comment'>-- else its the 'thisM' filter</span>
+<a name="line-622"></a>
+<a name="line-623"></a><a name="checkStatus"></a><span class='definition'>checkStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-624"></a><span class='definition'>checkStatus</span> <span class='varid'>t</span>
+<a name="line-625"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>status</span> <span class='varop'>&gt;=</span> <span class='varid'>c_err</span>
+<a name="line-626"></a>      <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-627"></a>	   <span class='varid'>errorMsgHandler</span> <span class='layout'>(</span><span class='varid'>mkXErrorTree</span> <span class='varid'>c_warn</span> <span class='layout'>(</span><span class='varid'>errClass</span> <span class='varid'>status</span> <span class='varop'>++</span> <span class='str'>"s detected in "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-628"></a>	   <span class='varid'>noneM</span> <span class='varid'>t</span>
+<a name="line-629"></a>	<span class='keyword'>else</span>
+<a name="line-630"></a>           <span class='varid'>thisM</span> <span class='varid'>t</span>
+<a name="line-631"></a>    <span class='keyword'>where</span>
+<a name="line-632"></a>    <span class='varid'>status</span> <span class='keyglyph'>=</span> <span class='varid'>intValueOf</span> <span class='varid'>a_status</span> <span class='varid'>t</span>
+<a name="line-633"></a>    <span class='varid'>msg</span>    <span class='keyglyph'>=</span>    <span class='varid'>valueOf</span> <span class='varid'>a_module</span> <span class='varid'>t</span>
+<a name="line-634"></a>
+<a name="line-635"></a><span class='comment'>-- |</span>
+<a name="line-636"></a><span class='comment'>-- add the error level and the module where the error occured</span>
+<a name="line-637"></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-638"></a>
+<a name="line-639"></a><a name="setStatus"></a><span class='definition'>setStatus</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'>XmlFilter</span>
+<a name="line-640"></a><span class='definition'>setStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>
+<a name="line-641"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttrInt</span> <span class='varid'>a_status</span> <span class='varid'>level</span>
+<a name="line-642"></a>	<span class='varop'>.&gt;</span>
+<a name="line-643"></a>	<span class='varid'>addAttr</span> <span class='varid'>a_module</span> <span class='varid'>msg</span>
+<a name="line-644"></a>	<span class='varop'>.&gt;</span>
+<a name="line-645"></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-646"></a>	  <span class='keyword'>then</span> <span class='varid'>replaceChildren</span> <span class='conid'>[]</span>
+<a name="line-647"></a>	  <span class='keyword'>else</span> <span class='varid'>this</span>
+<a name="line-648"></a>	<span class='layout'>)</span>
+<a name="line-649"></a>      <span class='layout'>)</span>
+<a name="line-650"></a>      <span class='varop'>`when`</span> <span class='varid'>isRoot</span>
+<a name="line-651"></a>
+<a name="line-652"></a><span class='comment'>-- |</span>
+<a name="line-653"></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-654"></a>
+<a name="line-655"></a><a name="statusOk"></a><span class='definition'>statusOk</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-656"></a><span class='definition'>statusOk</span>
+<a name="line-657"></a>    <span class='keyglyph'>=</span> <span class='varid'>isRoot</span>
+<a name="line-658"></a>      <span class='varop'>.&gt;</span>
+<a name="line-659"></a>      <span class='varid'>isOf</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>intValueOf</span> <span class='varid'>a_status</span> <span class='varid'>t</span> <span class='varop'>&gt;=</span> <span class='varid'>c_err</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-660"></a><span class='comment'>-- |</span>
+<a name="line-661"></a><span class='comment'>-- check whether the error level attribute in the system state</span>
+<a name="line-662"></a><span class='comment'>-- is set to error, in this case the children of the document root are</span>
+<a name="line-663"></a><span class='comment'>-- removed and error info is added as attributes with 'setStatus'</span>
+<a name="line-664"></a><span class='comment'>-- else nothing is changed</span>
+<a name="line-665"></a>
+<a name="line-666"></a><a name="checkResult"></a><span class='definition'>checkResult</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-667"></a><span class='definition'>checkResult</span> <span class='varid'>msg</span> <span class='varid'>t</span>
+<a name="line-668"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-669"></a>      <span class='varid'>level</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamInt</span> <span class='varid'>a_status</span> <span class='num'>0</span>
+<a name="line-670"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>&lt;=</span> <span class='varid'>c_warn</span>
+<a name="line-671"></a>	<span class='keyword'>then</span> <span class='varid'>thisM</span>
+<a name="line-672"></a>	<span class='keyword'>else</span> <span class='varid'>liftMf</span> <span class='layout'>(</span> <span class='varid'>setStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span> <span class='layout'>)</span>
+<a name="line-673"></a>        <span class='layout'>)</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'>-- monadic filter for processing the attribute list of a tag.</span>
+<a name="line-677"></a><span class='comment'>-- for other trees this filter acts like 'noneM'</span>
+<a name="line-678"></a><span class='comment'>--</span>
+<a name="line-679"></a><span class='comment'>-- see also : 'processAttr', 'processAttrl'</span>
+<a name="line-680"></a>
+<a name="line-681"></a><a name="processAttrM"></a><span class='definition'>processAttrM</span>				<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-682"></a><span class='definition'>processAttrM</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-683"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-684"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varop'>$$&lt;</span> <span class='varid'>al</span>
+<a name="line-685"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>replaceAttrl</span> <span class='varid'>res</span> <span class='varid'>t</span>
+<a name="line-686"></a>    <span class='keyword'>where</span>
+<a name="line-687"></a>    <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varid'>t</span>
+<a name="line-688"></a>
+<a name="line-689"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM-XmlTreeTypes.html
@@ -0,0 +1,87 @@
+<!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-DOM.html b/doc/hdoc/src/Text-XML-HXT-DOM.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DOM.html
@@ -0,0 +1,38 @@
+<!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'>-- DOM data types and functions</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- Version : $Id: DOM.hs,v 1.2 2006/11/12 14:52:59 hxml Exp $</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- export of all basic datatypes and functions of the toolbox DOM.</span>
+<a name="line-8"></a><span class='comment'>--</span>
+<a name="line-9"></a>
+<a name="line-10"></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>
+<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'>XmlTree</span>
+<a name="line-12"></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'>XmlState</span>
+<a name="line-13"></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'>EditFilters</span>
+<a name="line-14"></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-15"></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'>Namespace</span>
+<a name="line-16"></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-17"></a>    <span class='layout'>)</span>
+<a name="line-18"></a><span class='keyword'>where</span>
+<a name="line-19"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlTree</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlState</span>
+<a name="line-22"></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'>EditFilters</span>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>
+<a name="line-24"></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'>Namespace</span>
+<a name="line-25"></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>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-28"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
@@ -0,0 +1,352 @@
+<!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     : Text.XML.HXT.DTDValidation.TypeDefs
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides functions for validating attributes.
+<a name="line-13"></a>
+<a name="line-14"></a>   The main functions are:
+<a name="line-15"></a>
+<a name="line-16"></a>    - Check if the attribute value meets the lexical constraints of its type
+<a name="line-17"></a>
+<a name="line-18"></a>    - Normalization of an attribute value
+<a name="line-19"></a>-}</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='comment'>-- Special namings in source code:</span>
+<a name="line-24"></a><span class='comment'>--</span>
+<a name="line-25"></a><span class='comment'>--  - nd - XDTD node</span>
+<a name="line-26"></a><span class='comment'>--</span>
+<a name="line-27"></a><span class='comment'>--  - n  - XTag node</span>
+<a name="line-28"></a><span class='comment'>--</span>
+<a name="line-29"></a>
+<a name="line-30"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>
+<a name="line-31"></a>    <span class='layout'>(</span> <span class='varid'>checkAttributeValue</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>normalizeAttributeValue</span>
+<a name="line-33"></a>    <span class='layout'>)</span>
+<a name="line-34"></a><span class='keyword'>where</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>
+<a name="line-37"></a>    <span class='layout'>(</span> <span class='varid'>parseNMToken</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>parseName</span>
+<a name="line-39"></a>    <span class='layout'>)</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</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'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='comment'>-- |</span>
+<a name="line-46"></a><span class='comment'>-- Checks if the attribute value meets the lexical constraints of its type.</span>
+<a name="line-47"></a><span class='comment'>--</span>
+<a name="line-48"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-49"></a><span class='comment'>--</span>
+<a name="line-50"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-51"></a><span class='comment'>--</span>
+<a name="line-52"></a><span class='comment'>--    - returns : a function which takes an element (XTag or XDTD ATTLIST),</span>
+<a name="line-53"></a><span class='comment'>--                    checks if the attribute value meets the lexical constraints</span>
+<a name="line-54"></a><span class='comment'>--                    of its type and returns a list of errors</span>
+<a name="line-55"></a>
+<a name="line-56"></a><a name="checkAttributeValue"></a><span class='definition'>checkAttributeValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-57"></a><span class='definition'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span>
+<a name="line-58"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-59"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-60"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isElem</span>       <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>checkAttrVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>attrName</span> <span class='layout'>)</span>
+<a name="line-61"></a>	  <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>checkAttrVal</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getDTDAttrl</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>dtd_default</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-62"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>	     <span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-63"></a>	  <span class='keyglyph'>]</span>
+<a name="line-64"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-65"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-66"></a>      <span class='keyword'>where</span>
+<a name="line-67"></a>      <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-68"></a>      <span class='varid'>attrName</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-69"></a>      <span class='varid'>attrType</span>  <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span>  <span class='varid'>al</span>
+<a name="line-70"></a>      <span class='varid'>checkAttrVal</span> <span class='varid'>attrValue</span>
+<a name="line-71"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkValue</span> <span class='varid'>attrType</span> <span class='varid'>dtdPart</span> <span class='varid'>normalizedVal</span> <span class='varid'>attrDecl</span>
+<a name="line-72"></a>	    <span class='keyword'>where</span>
+<a name="line-73"></a>	    <span class='varid'>normalizedVal</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='comment'>-- |</span>
+<a name="line-76"></a><span class='comment'>-- Dispatches the attibute check by the attribute type.</span>
+<a name="line-77"></a><span class='comment'>--</span>
+<a name="line-78"></a><span class='comment'>--    * 1.parameter typ :  the attribute type</span>
+<a name="line-79"></a><span class='comment'>--</span>
+<a name="line-80"></a><span class='comment'>--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-81"></a><span class='comment'>--</span>
+<a name="line-82"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-83"></a><span class='comment'>--</span>
+<a name="line-84"></a><span class='comment'>--    - 4.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-85"></a><span class='comment'>--</span>
+<a name="line-86"></a><span class='comment'>--    - returns : a functions which takes an element (XTag or XDTD ATTLIST),</span>
+<a name="line-87"></a><span class='comment'>--                        checks if the attribute value meets the lexical constraints</span>
+<a name="line-88"></a><span class='comment'>--                        of its type and returns a list of errors</span>
+<a name="line-89"></a>
+<a name="line-90"></a><a name="checkValue"></a><span class='definition'>checkValue</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'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-91"></a><span class='definition'>checkValue</span> <span class='varid'>typ</span> <span class='varid'>dtdPart</span> <span class='varid'>attrValue</span> <span class='varid'>attrDecl</span>
+<a name="line-92"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_cdata</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-93"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-94"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_entity</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-95"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_entities</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-96"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_id</span>		<span class='keyglyph'>=</span> <span class='varid'>checkValueId</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-97"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_idref</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueIdref</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-98"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_idrefs</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueIdrefs</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-99"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_nmtoken</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueNmtoken</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-100"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_nmtokens</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueNmtokens</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-101"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_notation</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-102"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Attribute type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typ</span> <span class='varop'>++</span> <span class='str'>" unknown."</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'>-- Checks the value of Enumeration attribute types. (3.3.1 \/ p.27 in Spec)</span>
+<a name="line-106"></a><span class='comment'>--</span>
+<a name="line-107"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-108"></a><span class='comment'>--</span>
+<a name="line-109"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="checkValueEnumeration"></a><span class='definition'>checkValueEnumeration</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'>XmlArrow</span>
+<a name="line-112"></a><span class='definition'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-113"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-114"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-115"></a>      <span class='varid'>attrValue</span> <span class='varop'>`notElem`</span> <span class='varid'>enumVals</span>
+<a name="line-116"></a>	<span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-117"></a>                <span class='str'>" must have a value from list "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enumVals</span> <span class='comment'>{- ++ " but has value " ++ show attrValue-}</span> <span class='varop'>++</span> <span class='str'>"."</span><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'>none</span>
+<a name="line-120"></a>      <span class='keyword'>where</span>
+<a name="line-121"></a>      <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-122"></a>
+<a name="line-123"></a>      <span class='varid'>enumVals</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-124"></a>      <span class='varid'>enumVals</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>attrDecl</span><span class='layout'>)</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- |</span>
+<a name="line-127"></a><span class='comment'>-- Checks the value of ENTITY attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-128"></a><span class='comment'>--</span>
+<a name="line-129"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the</span>
+<a name="line-130"></a><span class='comment'>--                    unparsed entity declarations</span>
+<a name="line-131"></a><span class='comment'>--</span>
+<a name="line-132"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-133"></a><span class='comment'>--</span>
+<a name="line-134"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-135"></a>
+<a name="line-136"></a><a name="checkValueEntity"></a><span class='definition'>checkValueEntity</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-137"></a><span class='definition'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-138"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-139"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-140"></a>      <span class='varid'>attrValue</span> <span class='varop'>`notElem`</span> <span class='varid'>upEntities</span>
+<a name="line-141"></a>	<span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-142"></a>                <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is not unparsed. "</span> <span class='varop'>++</span>
+<a name="line-143"></a>                <span class='str'>"The following unparsed entities exist: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upEntities</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-144"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-145"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-146"></a>      <span class='keyword'>where</span>
+<a name="line-147"></a>      <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-148"></a>
+<a name="line-149"></a>      <span class='varid'>upEntities</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-150"></a>      <span class='varid'>upEntities</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>isUnparsedEntity</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><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'>-- Checks the value of ENTITIES attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-154"></a><span class='comment'>--</span>
+<a name="line-155"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the</span>
+<a name="line-156"></a><span class='comment'>--                    unparsed entity declarations</span>
+<a name="line-157"></a><span class='comment'>--</span>
+<a name="line-158"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-159"></a><span class='comment'>--</span>
+<a name="line-160"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-161"></a>
+<a name="line-162"></a><a name="checkValueEntities"></a><span class='definition'>checkValueEntities</span> <span class='keyglyph'>::</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-163"></a><span class='definition'>checkValueEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-164"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-165"></a>	<span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>
+<a name="line-166"></a>	  <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span>
+<a name="line-167"></a>                    <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be one or more names."</span><span class='layout'>)</span>
+<a name="line-168"></a>          <span class='keyword'>else</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>valueList</span>
+<a name="line-169"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-170"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-171"></a>      <span class='keyword'>where</span>
+<a name="line-172"></a>      <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-173"></a>      <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>
+<a name="line-174"></a>
+<a name="line-175"></a><span class='comment'>-- |</span>
+<a name="line-176"></a><span class='comment'>-- Checks the value of NMTOKEN attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-177"></a><span class='comment'>--</span>
+<a name="line-178"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-179"></a><span class='comment'>--</span>
+<a name="line-180"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-181"></a>
+<a name="line-182"></a><a name="checkValueNmtoken"></a><span class='definition'>checkValueNmtoken</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'>XmlArrow</span>
+<a name="line-183"></a><span class='definition'>checkValueNmtoken</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-184"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-185"></a>	<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>attrValue</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkNmtoken</span>
+<a name="line-186"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-187"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-188"></a>      <span class='keyword'>where</span>
+<a name="line-189"></a>      <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-190"></a>      <span class='varid'>checkNmtoken</span>
+<a name="line-191"></a>	  <span class='keyglyph'>=</span> <span class='varid'>mkText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>parseNMToken</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-192"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-193"></a>	    <span class='varid'>isError</span>
+<a name="line-194"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-195"></a>	    <span class='varid'>getErrorMsg</span>
+<a name="line-196"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-197"></a>	    <span class='varid'>arr</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='str'>"Attribute value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-198"></a>			  <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be a name token, "</span><span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>!!</span> <span class='num'>1</span> <span class='varop'>++</span><span class='str'>"."</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-199"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-200"></a>	    <span class='varid'>mkError</span> <span class='varid'>c_err</span>
+<a name="line-201"></a>
+<a name="line-202"></a><span class='comment'>-- |</span>
+<a name="line-203"></a><span class='comment'>-- Checks the value of NMTOKENS attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-204"></a><span class='comment'>--</span>
+<a name="line-205"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-206"></a><span class='comment'>--</span>
+<a name="line-207"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-208"></a>
+<a name="line-209"></a><a name="checkValueNmtokens"></a><span class='definition'>checkValueNmtokens</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'>XmlArrow</span>
+<a name="line-210"></a><span class='definition'>checkValueNmtokens</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-211"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-212"></a>	<span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>
+<a name="line-213"></a>	  <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" of element "</span> <span class='varop'>++</span>
+<a name="line-214"></a>                     <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be one or more name tokens."</span><span class='layout'>)</span>
+<a name="line-215"></a>          <span class='keyword'>else</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueNmtoken</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>valueList</span>
+<a name="line-216"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-217"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-218"></a>      <span class='keyword'>where</span>
+<a name="line-219"></a>      <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-220"></a>      <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>
+<a name="line-221"></a>
+<a name="line-222"></a><span class='comment'>-- |</span>
+<a name="line-223"></a><span class='comment'>-- Checks the value of ID attribute types. (3.3.1 \/ p.25 in Spec)</span>
+<a name="line-224"></a><span class='comment'>--</span>
+<a name="line-225"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-226"></a><span class='comment'>--</span>
+<a name="line-227"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="checkValueId"></a><span class='definition'>checkValueId</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'>XmlArrow</span>
+<a name="line-230"></a><span class='definition'>checkValueId</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-231"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForName</span> <span class='str'>"Attribute value"</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-232"></a>
+<a name="line-233"></a>
+<a name="line-234"></a><span class='comment'>-- |</span>
+<a name="line-235"></a><span class='comment'>-- Checks the value of IDREF attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-236"></a><span class='comment'>--</span>
+<a name="line-237"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-238"></a><span class='comment'>--</span>
+<a name="line-239"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-240"></a>
+<a name="line-241"></a><a name="checkValueIdref"></a><span class='definition'>checkValueIdref</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'>XmlArrow</span>
+<a name="line-242"></a><span class='definition'>checkValueIdref</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-243"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForName</span> <span class='str'>"Attribute value"</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-244"></a>
+<a name="line-245"></a>
+<a name="line-246"></a><span class='comment'>-- |</span>
+<a name="line-247"></a><span class='comment'>-- Checks the value of IDREFS attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-248"></a><span class='comment'>--</span>
+<a name="line-249"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-250"></a><span class='comment'>--</span>
+<a name="line-251"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-252"></a>
+<a name="line-253"></a><a name="checkValueIdrefs"></a><span class='definition'>checkValueIdrefs</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'>XmlArrow</span>
+<a name="line-254"></a><span class='definition'>checkValueIdrefs</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-255"></a>    <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueIdref</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>attrValue</span>
+<a name="line-256"></a>
+<a name="line-257"></a>
+<a name="line-258"></a>
+<a name="line-259"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-260"></a><span class='comment'>-- General helper functions for checking attribute values</span>
+<a name="line-261"></a><span class='comment'>--</span>
+<a name="line-262"></a>
+<a name="line-263"></a><span class='comment'>-- |</span>
+<a name="line-264"></a><span class='comment'>-- Checks if the value of an attribute is a name.</span>
+<a name="line-265"></a><span class='comment'>--</span>
+<a name="line-266"></a><span class='comment'>--    * 1.parameter msg :  error message, should be "Entity" or "Attribute value"</span>
+<a name="line-267"></a><span class='comment'>--</span>
+<a name="line-268"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-269"></a><span class='comment'>--</span>
+<a name="line-270"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-271"></a>
+<a name="line-272"></a><a name="checkForName"></a><span class='definition'>checkForName</span> <span class='keyglyph'>::</span>  <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-273"></a><span class='definition'>checkForName</span> <span class='varid'>msg</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-274"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>attrValue</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkName</span>
+<a name="line-276"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-277"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-278"></a>    <span class='keyword'>where</span>
+<a name="line-279"></a>    <span class='varid'>al</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-280"></a>    <span class='varid'>checkName</span>
+<a name="line-281"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>parseName</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-282"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-283"></a>	  <span class='varid'>isError</span>
+<a name="line-284"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-285"></a>	  <span class='varid'>getErrorMsg</span>
+<a name="line-286"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-287"></a>	  <span class='varid'>arr</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='varid'>msg</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span><span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-288"></a>		       <span class='str'>" for element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" must be a name, "</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>!!</span> <span class='num'>1</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-289"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-290"></a>	  <span class='varid'>mkError</span> <span class='varid'>c_err</span>
+<a name="line-291"></a>
+<a name="line-292"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-293"></a>
+<a name="line-294"></a><a name="normalizeAttributeValue"></a><span class='comment'>-- |</span>
+<a name="line-295"></a><span class='comment'>-- Normalizes an attribute value with respect to its type. (3.3.3 \/ p.29 in Spec)</span>
+<a name="line-296"></a><span class='comment'>--</span>
+<a name="line-297"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected</span>
+<a name="line-298"></a><span class='comment'>--                   is a list. If the list is empty, no declaration exists.</span>
+<a name="line-299"></a><span class='comment'>--</span>
+<a name="line-300"></a><span class='comment'>--    - 2.parameter value :  the attribute value to be normalized</span>
+<a name="line-301"></a><span class='comment'>--</span>
+<a name="line-302"></a><span class='comment'>--    - returns : the normalized value</span>
+<a name="line-303"></a><span class='comment'>--</span>
+<a name="line-304"></a><span class='definition'>normalizeAttributeValue</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</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-305"></a><span class='definition'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>value</span>
+<a name="line-306"></a>    <span class='keyglyph'>=</span> <span class='varid'>normalizeAttribute</span> <span class='varid'>attrType</span>
+<a name="line-307"></a>      <span class='keyword'>where</span>
+<a name="line-308"></a>      <span class='varid'>al</span>	     <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-309"></a>      <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varid'>al</span>
+<a name="line-310"></a>
+<a name="line-311"></a>      <span class='varid'>normalizeAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-312"></a>      <span class='varid'>normalizeAttribute</span> <span class='varid'>typ</span>
+<a name="line-313"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_cdata</span>	<span class='keyglyph'>=</span> <span class='varid'>cdataNormalization</span> <span class='varid'>value</span>
+<a name="line-314"></a>          <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>otherNormalization</span> <span class='varid'>value</span>
+<a name="line-315"></a>
+<a name="line-316"></a><span class='comment'>-- Attribute not declared in DTD, normalization as CDATA</span>
+<a name="line-317"></a><span class='definition'>normalizeAttributeValue</span> <span class='conid'>Nothing</span> <span class='varid'>value</span>
+<a name="line-318"></a>    <span class='keyglyph'>=</span> <span class='varid'>cdataNormalization</span> <span class='varid'>value</span>
+<a name="line-319"></a>
+<a name="line-320"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-321"></a><span class='comment'>-- Helper functions for normalization</span>
+<a name="line-322"></a>
+<a name="line-323"></a><span class='comment'>-- |</span>
+<a name="line-324"></a><span class='comment'>-- Normalization of CDATA attribute values.</span>
+<a name="line-325"></a><span class='comment'>-- is already done when parsing</span>
+<a name="line-326"></a><span class='comment'>-- during entity substituion for attribute values</span>
+<a name="line-327"></a>
+<a name="line-328"></a><a name="cdataNormalization"></a><span class='definition'>cdataNormalization</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-329"></a><span class='definition'>cdataNormalization</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-330"></a>
+<a name="line-331"></a><span class='comment'>-- | Normalization of attribute values other than CDATA.</span>
+<a name="line-332"></a>
+<a name="line-333"></a><a name="otherNormalization"></a><span class='definition'>otherNormalization</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-334"></a><span class='definition'>otherNormalization</span> <span class='keyglyph'>=</span> <span class='varid'>reduceWSSequences</span> <span class='varop'>.</span> <span class='varid'>stringTrim</span> <span class='varop'>.</span> <span class='varid'>cdataNormalization</span>
+<a name="line-335"></a>
+<a name="line-336"></a><span class='comment'>-- | Reduce whitespace sequences to a single whitespace.</span>
+<a name="line-337"></a>
+<a name="line-338"></a><a name="reduceWSSequences"></a><span class='definition'>reduceWSSequences</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-339"></a><span class='definition'>reduceWSSequences</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>str</span><span class='layout'>)</span>
+<a name="line-340"></a>
+<a name="line-341"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-342"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-DTDValidation.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-DTDValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-DTDValidation.html
@@ -0,0 +1,600 @@
+<!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     : Text.XML.HXT.DTDValidation.TypeDefs
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides functions for validating the DTD of XML documents
+<a name="line-13"></a>   represented as XmlTree.
+<a name="line-14"></a>
+<a name="line-15"></a>   Unlike other popular XML validation tools the validation process returns
+<a name="line-16"></a>   a list of errors instead of aborting after the first error was found.
+<a name="line-17"></a>
+<a name="line-18"></a>
+<a name="line-19"></a>   Unlike validation of the document, the DTD branch is traversed four times:
+<a name="line-20"></a>
+<a name="line-21"></a>    - Validation of Notations
+<a name="line-22"></a>
+<a name="line-23"></a>    - Validation of Unparsed Entities
+<a name="line-24"></a>
+<a name="line-25"></a>    - Validation of Element declarations
+<a name="line-26"></a>
+<a name="line-27"></a>    - Validation of Attribute declarations
+<a name="line-28"></a>
+<a name="line-29"></a>-}</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><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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DTDValidation</span>
+<a name="line-34"></a>    <span class='layout'>(</span> <span class='varid'>removeDoublicateDefs</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>validateDTD</span>
+<a name="line-36"></a>    <span class='layout'>)</span>
+<a name="line-37"></a><span class='keyword'>where</span>
+<a name="line-38"></a>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>
+<a name="line-41"></a>
+<a name="line-42"></a><span class='comment'>-- |</span>
+<a name="line-43"></a><span class='comment'>-- Validate a DTD.</span>
+<a name="line-44"></a><span class='comment'>--</span>
+<a name="line-45"></a><span class='comment'>--    - returns : a functions which takes the DTD subset of the XmlTree, checks</span>
+<a name="line-46"></a><span class='comment'>--                  if the DTD is valid and returns a list of errors</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="validateDTD"></a><span class='definition'>validateDTD</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-49"></a><span class='definition'>validateDTD</span> <span class='comment'>-- dtdPart</span>
+<a name="line-50"></a>    <span class='keyglyph'>=</span> <span class='varid'>isDTDDoctype</span>
+<a name="line-51"></a>      <span class='varop'>`guards`</span>
+<a name="line-52"></a>      <span class='layout'>(</span> <span class='varid'>listA</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='layout'>(</span> <span class='varid'>validateParts</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getNotationNames</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getElemNames</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-55"></a>      <span class='layout'>)</span>
+<a name="line-56"></a>    <span class='keyword'>where</span>
+<a name="line-57"></a>    <span class='varid'>validateParts</span> <span class='varid'>notationNames</span> <span class='varid'>elemNames</span>
+<a name="line-58"></a>	<span class='keyglyph'>=</span> <span class='varid'>validateNotations</span>
+<a name="line-59"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-60"></a>	  <span class='varid'>validateEntities</span> <span class='varid'>notationNames</span>
+<a name="line-61"></a>          <span class='varop'>&lt;+&gt;</span>
+<a name="line-62"></a>	  <span class='varid'>validateElements</span> <span class='varid'>elemNames</span>
+<a name="line-63"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-64"></a>	  <span class='varid'>validateAttributes</span> <span class='varid'>elemNames</span> <span class='varid'>notationNames</span>
+<a name="line-65"></a>
+<a name="line-66"></a>    <span class='varid'>getNotationNames</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-67"></a>    <span class='varid'>getNotationNames</span>	<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDNotation</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
+<a name="line-68"></a>
+<a name="line-69"></a>    <span class='varid'>getElemNames</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-70"></a>    <span class='varid'>getElemNames</span>	<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDElement</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
+<a name="line-71"></a>
+<a name="line-72"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-73"></a>
+<a name="line-74"></a><a name="checkName"></a><span class='definition'>checkName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-75"></a><span class='definition'>checkName</span> <span class='varid'>name</span> <span class='varid'>msg</span>
+<a name="line-76"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getState</span>
+<a name="line-77"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-78"></a>	    <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='varop'>`elem`</span><span class='layout'>)</span>
+<a name="line-79"></a>	  <span class='layout'>)</span>
+<a name="line-80"></a>      <span class='varid'>msg</span>
+<a name="line-81"></a>      <span class='layout'>(</span><span class='varid'>nextState</span> <span class='layout'>(</span><span class='varid'>name</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>none</span><span class='layout'>)</span>
+<a name="line-82"></a>
+<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='comment'>-- |</span>
+<a name="line-86"></a><span class='comment'>-- Validation of Notations, checks if all notation names are unique.</span>
+<a name="line-87"></a><span class='comment'>-- Validity constraint: Unique Notation Name (4.7 \/ p.44 in Spec)</span>
+<a name="line-88"></a><span class='comment'>--</span>
+<a name="line-89"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-90"></a><span class='comment'>--</span>
+<a name="line-91"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="validateNotations"></a><span class='definition'>validateNotations</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-94"></a><span class='definition'>validateNotations</span>
+<a name="line-95"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-96"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-97"></a>		   <span class='varid'>isDTDNotation</span>
+<a name="line-98"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-99"></a>		   <span class='layout'>(</span><span class='varid'>checkForUniqueNotation</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-100"></a>		 <span class='layout'>)</span>
+<a name="line-101"></a>      <span class='keyword'>where</span>
+<a name="line-102"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-103"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='varid'>al</span>
+<a name="line-104"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>
+<a name="line-105"></a>	    <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Notation "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" was already specified."</span> <span class='layout'>)</span>
+<a name="line-106"></a>	  <span class='keyword'>where</span>
+<a name="line-107"></a>	  <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-108"></a>
+<a name="line-109"></a><span class='comment'>-- |</span>
+<a name="line-110"></a><span class='comment'>-- Validation of Entities.</span>
+<a name="line-111"></a><span class='comment'>--</span>
+<a name="line-112"></a><span class='comment'>-- 1. Issues a warning if entities are declared multiple times.</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>--    Optional warning: (4.2 \/ p.35 in Spec) </span>
+<a name="line-115"></a><span class='comment'>--</span>
+<a name="line-116"></a><span class='comment'>--</span>
+<a name="line-117"></a><span class='comment'>-- 2. Validates that a notation is declared for an unparsed entity.</span>
+<a name="line-118"></a><span class='comment'>--</span>
+<a name="line-119"></a><span class='comment'>--    Validity constraint: Notation Declared (4.2.2 \/ p.36 in Spec)</span>
+<a name="line-120"></a><span class='comment'>--</span>
+<a name="line-121"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-122"></a><span class='comment'>--</span>
+<a name="line-123"></a><span class='comment'>--    - 2.parameter notationNames :  list of all notation names declared in the DTD</span>
+<a name="line-124"></a><span class='comment'>--</span>
+<a name="line-125"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-126"></a>
+<a name="line-127"></a><a name="validateEntities"></a><span class='definition'>validateEntities</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='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-128"></a><span class='definition'>validateEntities</span> <span class='varid'>notationNames</span>
+<a name="line-129"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-130"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-131"></a>		     <span class='varid'>isDTDEntity</span>
+<a name="line-132"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-133"></a>		     <span class='layout'>(</span><span class='varid'>checkForUniqueEntity</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</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'>&lt;+&gt;</span>
+<a name="line-137"></a>      <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-138"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-139"></a>	<span class='varid'>isUnparsedEntity</span>
+<a name="line-140"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-141"></a>	<span class='layout'>(</span><span class='varid'>checkNotationDecl</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-142"></a>      <span class='layout'>)</span>
+<a name="line-143"></a>      <span class='keyword'>where</span>
+<a name="line-144"></a>
+<a name="line-145"></a>      <span class='comment'>-- Check if entities are declared multiple times</span>
+<a name="line-146"></a>
+<a name="line-147"></a>      <span class='varid'>checkForUniqueEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-148"></a>      <span class='varid'>checkForUniqueEntity</span> <span class='varid'>al</span>
+<a name="line-149"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>
+<a name="line-150"></a>	    <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"Entity "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" was already specified. "</span> <span class='varop'>++</span>
+<a name="line-151"></a>		    <span class='str'>"First declaration will be used."</span> <span class='layout'>)</span>
+<a name="line-152"></a>	  <span class='keyword'>where</span>
+<a name="line-153"></a>	  <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-154"></a>
+<a name="line-155"></a>      <span class='comment'>-- Find unparsed entities for which no notation is specified</span>
+<a name="line-156"></a>
+<a name="line-157"></a>      <span class='varid'>checkNotationDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-158"></a>      <span class='varid'>checkNotationDecl</span> <span class='varid'>al</span>
+<a name="line-159"></a>	  <span class='keyglyph'>|</span> <span class='varid'>notationName</span> <span class='varop'>`elem`</span> <span class='varid'>notationNames</span>
+<a name="line-160"></a>	      <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-161"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-162"></a>	      <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"The notation "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>notationName</span> <span class='varop'>++</span> <span class='str'>" must be declared "</span> <span class='varop'>++</span>
+<a name="line-163"></a>	              <span class='str'>"when referenced in the unparsed entity declaration for "</span> <span class='varop'>++</span>
+<a name="line-164"></a>		      <span class='varid'>show</span> <span class='varid'>upEntityName</span> <span class='varop'>++</span> <span class='str'>"."</span>
+<a name="line-165"></a>		    <span class='layout'>)</span>
+<a name="line-166"></a>	  <span class='keyword'>where</span>
+<a name="line-167"></a>	  <span class='varid'>notationName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>k_ndata</span> <span class='varid'>al</span>
+<a name="line-168"></a>	  <span class='varid'>upEntityName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span>  <span class='varid'>al</span>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='comment'>-- |</span>
+<a name="line-171"></a><span class='comment'>-- Validation of Element declarations.</span>
+<a name="line-172"></a><span class='comment'>--</span>
+<a name="line-173"></a><span class='comment'>-- 1. Validates that an element is not declared multiple times.</span>
+<a name="line-174"></a><span class='comment'>--</span>
+<a name="line-175"></a><span class='comment'>--    Validity constraint: Unique Element Type Declaration (3.2 \/ p.21 in Spec) </span>
+<a name="line-176"></a><span class='comment'>--</span>
+<a name="line-177"></a><span class='comment'>--</span>
+<a name="line-178"></a><span class='comment'>-- 2. Validates that an element name only appears once in a mixed-content declaration.</span>
+<a name="line-179"></a><span class='comment'>--</span>
+<a name="line-180"></a><span class='comment'>--    Validity constraint: No Duplicate Types (3.2 \/ p.21 in Spec) </span>
+<a name="line-181"></a><span class='comment'>--</span>
+<a name="line-182"></a><span class='comment'>--</span>
+<a name="line-183"></a><span class='comment'>-- 3. Issues a warning if an element mentioned in a content model is not declared in the</span>
+<a name="line-184"></a><span class='comment'>--    DTD.</span>
+<a name="line-185"></a><span class='comment'>--</span>
+<a name="line-186"></a><span class='comment'>--    Optional warning: (3.2 \/ p.21 in Spec)</span>
+<a name="line-187"></a><span class='comment'>--</span>
+<a name="line-188"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-189"></a><span class='comment'>--</span>
+<a name="line-190"></a><span class='comment'>--    - 2.parameter elemNames :  list of all element names declared in the DTD</span>
+<a name="line-191"></a><span class='comment'>--</span>
+<a name="line-192"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-193"></a>
+<a name="line-194"></a>
+<a name="line-195"></a><a name="validateElements"></a><span class='definition'>validateElements</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='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-196"></a><span class='definition'>validateElements</span> <span class='varid'>elemNames</span> <span class='comment'>-- dtdPart</span>
+<a name="line-197"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-198"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-199"></a>		     <span class='varid'>isDTDElement</span>
+<a name="line-200"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-201"></a>		     <span class='layout'>(</span><span class='varid'>checkForUniqueElement</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-202"></a>		   <span class='layout'>)</span>
+<a name="line-203"></a>      <span class='layout'>)</span>
+<a name="line-204"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-205"></a>      <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-206"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-207"></a>	<span class='varid'>isMixedContentElement</span>
+<a name="line-208"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-209"></a>	<span class='layout'>(</span><span class='varid'>checkMixedContent</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-210"></a>      <span class='layout'>)</span>
+<a name="line-211"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-212"></a>      <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-213"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-214"></a>	<span class='varid'>isDTDElement</span>
+<a name="line-215"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-216"></a>	<span class='layout'>(</span><span class='varid'>checkContentModel</span> <span class='varid'>elemNames</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-217"></a>      <span class='layout'>)</span>
+<a name="line-218"></a>      <span class='keyword'>where</span>
+<a name="line-219"></a>
+<a name="line-220"></a>      <span class='comment'>-- Validates that an element is not declared multiple times</span>
+<a name="line-221"></a>
+<a name="line-222"></a>      <span class='varid'>checkForUniqueElement</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-223"></a>      <span class='varid'>checkForUniqueElement</span> <span class='varid'>al</span>
+<a name="line-224"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>
+<a name="line-225"></a>	    <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Element type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-226"></a>		  <span class='str'>" must not be declared more than once."</span> <span class='layout'>)</span>
+<a name="line-227"></a>	  <span class='keyword'>where</span>
+<a name="line-228"></a>	  <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-229"></a>
+<a name="line-230"></a>      <span class='comment'>-- Validates that an element name only appears once in a mixed-content declaration</span>
+<a name="line-231"></a>
+<a name="line-232"></a>      <span class='varid'>checkMixedContent</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-233"></a>      <span class='varid'>checkMixedContent</span> <span class='varid'>al</span>
+<a name="line-234"></a>	  <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-235"></a>			 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-236"></a>			 <span class='varid'>getChildren</span>
+<a name="line-237"></a>			 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-238"></a>			 <span class='varid'>isDTDName</span>
+<a name="line-239"></a>			 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-240"></a>			 <span class='layout'>(</span><span class='varid'>check</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-241"></a>		       <span class='layout'>)</span>
+<a name="line-242"></a>	    <span class='keyword'>where</span>
+<a name="line-243"></a>	    <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-244"></a>	    <span class='varid'>check</span> <span class='varid'>al'</span>
+<a name="line-245"></a>		<span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>
+<a name="line-246"></a>		  <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"The element type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-247"></a>			 <span class='str'>" was already specified in the mixed-content model of the element declaration "</span> <span class='varop'>++</span>
+<a name="line-248"></a>		         <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='layout'>)</span>
+<a name="line-249"></a>		<span class='keyword'>where</span>
+<a name="line-250"></a>		<span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>
+<a name="line-251"></a>
+<a name="line-252"></a>      <span class='comment'>-- Issues a warning if an element mentioned in a content model is not</span>
+<a name="line-253"></a>      <span class='comment'>-- declared in the DTD.</span>
+<a name="line-254"></a>      <span class='varid'>checkContentModel</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='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-255"></a>      <span class='varid'>checkContentModel</span> <span class='varid'>names</span> <span class='varid'>al</span>
+<a name="line-256"></a>	  <span class='keyglyph'>|</span> <span class='varid'>cm</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>v_children</span><span class='layout'>,</span> <span class='varid'>v_mixed</span><span class='keyglyph'>]</span>
+<a name="line-257"></a>	      <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkContent</span>
+<a name="line-258"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-259"></a>	      <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-260"></a>	  <span class='keyword'>where</span>
+<a name="line-261"></a>	  <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-262"></a>	  <span class='varid'>cm</span>       <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varid'>al</span>
+<a name="line-263"></a>
+<a name="line-264"></a>	  <span class='varid'>checkContent</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-265"></a>	  <span class='varid'>checkContent</span>
+<a name="line-266"></a>	      <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-267"></a>		<span class='keyglyph'>[</span> <span class='varid'>isDTDName</span>    <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>checkName'</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span> <span class='layout'>)</span>
+<a name="line-268"></a>		<span class='layout'>,</span> <span class='varid'>isDTDContent</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'>checkContent</span> <span class='layout'>)</span>
+<a name="line-269"></a>		<span class='layout'>,</span> <span class='varid'>this</span>         <span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-270"></a>		<span class='keyglyph'>]</span>
+<a name="line-271"></a>	      <span class='keyword'>where</span>
+<a name="line-272"></a>	      <span class='varid'>checkName'</span> <span class='varid'>al'</span>
+<a name="line-273"></a>		  <span class='keyglyph'>|</span> <span class='varid'>childElemName</span> <span class='varop'>`elem`</span> <span class='varid'>names</span>
+<a name="line-274"></a>		      <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-275"></a>		  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-276"></a>		      <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"The element type "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>childElemName</span> <span class='varop'>++</span>
+<a name="line-277"></a>			       <span class='str'>", used in content model of element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span>
+<a name="line-278"></a>			       <span class='str'>", is not declared."</span>
+<a name="line-279"></a>			     <span class='layout'>)</span>
+<a name="line-280"></a>		  <span class='keyword'>where</span>
+<a name="line-281"></a>		  <span class='varid'>childElemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>
+<a name="line-282"></a>
+<a name="line-283"></a><span class='comment'>-- |</span>
+<a name="line-284"></a><span class='comment'>-- Validation of Attribute declarations.</span>
+<a name="line-285"></a><span class='comment'>--</span>
+<a name="line-286"></a><span class='comment'>-- (1) Issues a warning if an attribute is declared for an element type not itself</span>
+<a name="line-287"></a><span class='comment'>--    decared.</span>
+<a name="line-288"></a><span class='comment'>--</span>
+<a name="line-289"></a><span class='comment'>--    Optinal warning: (3.3 \/ p. 24 in Spec)</span>
+<a name="line-290"></a><span class='comment'>--</span>
+<a name="line-291"></a><span class='comment'>--</span>
+<a name="line-292"></a><span class='comment'>-- 2. Issues a warning if more than one definition is provided for the same</span>
+<a name="line-293"></a><span class='comment'>--    attribute of a given element type. Fist declaration is binding, later</span>
+<a name="line-294"></a><span class='comment'>--    definitions are ignored.</span>
+<a name="line-295"></a><span class='comment'>--</span>
+<a name="line-296"></a><span class='comment'>--    Optional warning: (3.3 \/ p.24 in Spec)</span>
+<a name="line-297"></a><span class='comment'>--</span>
+<a name="line-298"></a><span class='comment'>--</span>
+<a name="line-299"></a><span class='comment'>-- 3. Issues a warning if the same Nmtoken occures more than once in enumerated</span>
+<a name="line-300"></a><span class='comment'>--    attribute types of a single element type.</span>
+<a name="line-301"></a><span class='comment'>--</span>
+<a name="line-302"></a><span class='comment'>--    Optional warning: (3.3.1 \/ p.27 in Spec) </span>
+<a name="line-303"></a><span class='comment'>--</span>
+<a name="line-304"></a><span class='comment'>--</span>
+<a name="line-305"></a><span class='comment'>-- 4. Validates that an element type has not more than one ID attribute defined.</span>
+<a name="line-306"></a><span class='comment'>--</span>
+<a name="line-307"></a><span class='comment'>--    Validity constraint: One ID per Element Type (3.3.1 \/ p.26 in Spec) </span>
+<a name="line-308"></a><span class='comment'>--</span>
+<a name="line-309"></a><span class='comment'>--</span>
+<a name="line-310"></a><span class='comment'>-- 5. Validates that an element type has not more than one NOTATION attribute defined.</span>
+<a name="line-311"></a><span class='comment'>--</span>
+<a name="line-312"></a><span class='comment'>--    Validity constraint: One Notation per Element Type (3.3.1 \/ p.27 in Spec) </span>
+<a name="line-313"></a><span class='comment'>--</span>
+<a name="line-314"></a><span class='comment'>--</span>
+<a name="line-315"></a><span class='comment'>-- 6. Validates that an ID attributes has the type #IMPLIED or #REQUIRED.</span>
+<a name="line-316"></a><span class='comment'>--</span>
+<a name="line-317"></a><span class='comment'>--    Validity constraint: ID Attribute Default (3.3.1 \/ p.26 in Spec) </span>
+<a name="line-318"></a><span class='comment'>--</span>
+<a name="line-319"></a><span class='comment'>--</span>
+<a name="line-320"></a><span class='comment'>-- 7. Validates that all referenced notations are declared.</span>
+<a name="line-321"></a><span class='comment'>--</span>
+<a name="line-322"></a><span class='comment'>--    Validity constraint: Notation Attributes (3.3.1 \/ p.27 in Spec) </span>
+<a name="line-323"></a><span class='comment'>--</span>
+<a name="line-324"></a><span class='comment'>--</span>
+<a name="line-325"></a><span class='comment'>-- 8. Validates that notations are not declared for EMPTY elements.</span>
+<a name="line-326"></a><span class='comment'>--</span>
+<a name="line-327"></a><span class='comment'>--    Validity constraint: No Notation on Empty Element (3.3.1 \/p.27 in Spec) </span>
+<a name="line-328"></a><span class='comment'>--</span>
+<a name="line-329"></a><span class='comment'>--</span>
+<a name="line-330"></a><span class='comment'>-- 9. Validates that the default value matches the lexical constraints of it's type.</span>
+<a name="line-331"></a><span class='comment'>--</span>
+<a name="line-332"></a><span class='comment'>--    Validity constraint: Attribute default legal (3.3.2 \/ p.28 in Spec)</span>
+<a name="line-333"></a><span class='comment'>--</span>
+<a name="line-334"></a><span class='comment'>--</span>
+<a name="line-335"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-336"></a><span class='comment'>--</span>
+<a name="line-337"></a><span class='comment'>--    - 2.parameter elemNames :  list of all element names declared in the DTD</span>
+<a name="line-338"></a><span class='comment'>--</span>
+<a name="line-339"></a><span class='comment'>--    - 3.parameter notationNames :  list of all notation names declared in the DTD</span>
+<a name="line-340"></a><span class='comment'>--</span>
+<a name="line-341"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-342"></a>
+<a name="line-343"></a><a name="validateAttributes"></a><span class='definition'>validateAttributes</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'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-344"></a><span class='definition'>validateAttributes</span> <span class='varid'>elemNames</span> <span class='varid'>notationNames</span>
+<a name="line-345"></a>    <span class='keyglyph'>=</span> <span class='comment'>-- 1. Find attributes for which no elements are declared</span>
+<a name="line-346"></a>      <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='varid'>this</span> <span class='layout'>(</span><span class='varid'>checkDeclaredElements</span> <span class='varid'>elemNames</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-347"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-348"></a>      <span class='comment'>-- 2. Find attributes which are declared more than once</span>
+<a name="line-349"></a>      <span class='layout'>(</span> <span class='varid'>runNameCheck</span> <span class='varid'>this</span> <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='layout'>)</span>
+<a name="line-350"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-351"></a>      <span class='comment'>-- 3. Find enumerated attribute types which nmtokens are declared more than once</span>
+<a name="line-352"></a>      <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='layout'>(</span><span class='varid'>isEnumAttrType</span> <span class='varop'>`orElse`</span> <span class='varid'>isNotationAttrType</span><span class='layout'>)</span> <span class='varid'>checkEnumeratedTypes</span> <span class='layout'>)</span>
+<a name="line-353"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-354"></a>      <span class='comment'>-- 4. Validate that there exists only one ID attribute for an element</span>
+<a name="line-355"></a>      <span class='layout'>(</span> <span class='varid'>runNameCheck</span> <span class='varid'>isIdAttrType</span> <span class='varid'>checkForUniqueId</span> <span class='layout'>)</span>
+<a name="line-356"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-357"></a>      <span class='comment'>-- 5. Validate that there exists only one NOTATION attribute for an element</span>
+<a name="line-358"></a>      <span class='layout'>(</span> <span class='varid'>runNameCheck</span> <span class='varid'>isNotationAttrType</span> <span class='varid'>checkForUniqueNotation</span> <span class='layout'>)</span>
+<a name="line-359"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-360"></a>      <span class='comment'>-- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED</span>
+<a name="line-361"></a>      <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='varid'>isIdAttrType</span> <span class='varid'>checkIdKindConstraint</span> <span class='layout'>)</span>
+<a name="line-362"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-363"></a>      <span class='comment'>-- 7. Validate that all referenced notations are declared</span>
+<a name="line-364"></a>      <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='varid'>isNotationAttrType</span> <span class='layout'>(</span><span class='varid'>checkNotationDeclaration</span> <span class='varid'>notationNames</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-365"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-366"></a>      <span class='comment'>-- 8. Validate that notations are not declared for EMPTY elements</span>
+<a name="line-367"></a>      <span class='layout'>(</span> <span class='varid'>checkNoNotationForEmptyElements</span> <span class='varop'>$&lt;</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-368"></a>						   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-369"></a>						   <span class='varid'>isEmptyElement</span>
+<a name="line-370"></a>						   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-371"></a>						   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>
+<a name="line-372"></a>						 <span class='layout'>)</span>
+<a name="line-373"></a>      <span class='layout'>)</span>
+<a name="line-374"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-375"></a>      <span class='comment'>-- 9. Validate that the default value matches the lexical constraints of it's type</span>
+<a name="line-376"></a>      <span class='layout'>(</span> <span class='varid'>checkDefaultValueTypes</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-377"></a>
+<a name="line-378"></a>      <span class='keyword'>where</span>
+<a name="line-379"></a>      <span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-380"></a>      <span class='comment'>-- control structures</span>
+<a name="line-381"></a>
+<a name="line-382"></a>      <span class='varid'>runCheck</span> <span class='varid'>select</span> <span class='varid'>check</span>
+<a name="line-383"></a>	  <span class='keyglyph'>=</span> <span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDAttlist</span>
+<a name="line-384"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-385"></a>	    <span class='varid'>select</span>
+<a name="line-386"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-387"></a>	    <span class='layout'>(</span><span class='varid'>check</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-388"></a>      
+<a name="line-389"></a>      <span class='varid'>runNameCheck</span> <span class='varid'>select</span> <span class='varid'>check</span>
+<a name="line-390"></a>	  <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='varop'>$</span> <span class='varid'>runCheck</span> <span class='varid'>select</span> <span class='varid'>check</span>
+<a name="line-391"></a>
+<a name="line-392"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-393"></a>
+<a name="line-394"></a>      <span class='comment'>-- 1. Find attributes for which no elements are declared</span>
+<a name="line-395"></a>
+<a name="line-396"></a>      <span class='varid'>checkDeclaredElements</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='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-397"></a>      <span class='varid'>checkDeclaredElements</span> <span class='varid'>elemNames'</span> <span class='varid'>al</span>
+<a name="line-398"></a>	  <span class='keyglyph'>|</span> <span class='varid'>en</span> <span class='varop'>`elem`</span> <span class='varid'>elemNames'</span>
+<a name="line-399"></a>	      <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-400"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-401"></a>	      <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"The element type \""</span><span class='varop'>++</span> <span class='varid'>en</span> <span class='varop'>++</span> <span class='str'>"\" used in dclaration "</span><span class='varop'>++</span>
+<a name="line-402"></a>		       <span class='str'>"of attribute \""</span><span class='varop'>++</span> <span class='varid'>an</span> <span class='varop'>++</span><span class='str'>"\" is not declared."</span>
+<a name="line-403"></a>		     <span class='layout'>)</span>
+<a name="line-404"></a>	  <span class='keyword'>where</span>
+<a name="line-405"></a>	  <span class='varid'>en</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-406"></a>	  <span class='varid'>an</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-407"></a>
+<a name="line-408"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-409"></a>
+<a name="line-410"></a>      <span class='comment'>-- 2. Find attributes which are declared more than once</span>
+<a name="line-411"></a>
+<a name="line-412"></a>      <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='keyglyph'>::</span>  <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-413"></a>      <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='varid'>al</span>
+<a name="line-414"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>
+<a name="line-415"></a>	    <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"Attribute \""</span><span class='varop'>++</span> <span class='varid'>aname</span> <span class='varop'>++</span><span class='str'>"\" for element type \""</span><span class='varop'>++</span>
+<a name="line-416"></a>		   <span class='varid'>ename</span> <span class='varop'>++</span><span class='str'>"\" is already declared. First "</span><span class='varop'>++</span>
+<a name="line-417"></a>		   <span class='str'>"declaration will be used."</span> <span class='layout'>)</span>
+<a name="line-418"></a>	  <span class='keyword'>where</span>
+<a name="line-419"></a>	  <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-420"></a>	  <span class='varid'>aname</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-421"></a>	  <span class='varid'>name</span>  <span class='keyglyph'>=</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>aname</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>      <span class='comment'>-- 3. Find enumerated attribute types which nmtokens are declared more than once</span>
+<a name="line-426"></a>
+<a name="line-427"></a>      <span class='varid'>checkEnumeratedTypes</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-428"></a>      <span class='varid'>checkEnumeratedTypes</span> <span class='varid'>al</span>
+<a name="line-429"></a>          <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-430"></a>			 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-431"></a>			 <span class='varid'>isDTDName</span>
+<a name="line-432"></a>			 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-433"></a>			 <span class='layout'>(</span><span class='varid'>checkForUniqueType</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-434"></a>		       <span class='layout'>)</span>
+<a name="line-435"></a>	  <span class='keyword'>where</span>
+<a name="line-436"></a>	  <span class='varid'>checkForUniqueType</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-437"></a>          <span class='varid'>checkForUniqueType</span> <span class='varid'>al'</span>
+<a name="line-438"></a>	      <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>nmtoken</span> <span class='varop'>$</span>
+<a name="line-439"></a>	        <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"Nmtoken \""</span><span class='varop'>++</span> <span class='varid'>nmtoken</span> <span class='varop'>++</span><span class='str'>"\" should not "</span><span class='varop'>++</span>
+<a name="line-440"></a>		       <span class='str'>"occur more than once in attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span>
+<a name="line-441"></a>		       <span class='str'>"\" for element \""</span><span class='varop'>++</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\"."</span> <span class='layout'>)</span>
+<a name="line-442"></a>	      <span class='keyword'>where</span>
+<a name="line-443"></a>	      <span class='varid'>nmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>
+<a name="line-444"></a>
+<a name="line-445"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-446"></a>
+<a name="line-447"></a>      <span class='comment'>-- 4. Validate that there exists only one ID attribute for an element</span>
+<a name="line-448"></a>
+<a name="line-449"></a>      <span class='varid'>checkForUniqueId</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-450"></a>      <span class='varid'>checkForUniqueId</span> <span class='varid'>al</span>
+<a name="line-451"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>ename</span> <span class='varop'>$</span>
+<a name="line-452"></a>	    <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"\" already has attribute of type "</span><span class='varop'>++</span>
+<a name="line-453"></a>		  <span class='str'>"ID, another attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" of type ID is "</span><span class='varop'>++</span>
+<a name="line-454"></a>		  <span class='str'>"not permitted."</span> <span class='layout'>)</span>
+<a name="line-455"></a>	  <span class='keyword'>where</span>
+<a name="line-456"></a>	  <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-457"></a>
+<a name="line-458"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-459"></a>
+<a name="line-460"></a>      <span class='comment'>-- 5. Validate that there exists only one NOTATION attribute for an element</span>
+<a name="line-461"></a>
+<a name="line-462"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-463"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='varid'>al</span>
+<a name="line-464"></a>	  <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>ename</span> <span class='varop'>$</span>
+<a name="line-465"></a>	    <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"\" already has attribute of type "</span><span class='varop'>++</span>
+<a name="line-466"></a>		  <span class='str'>"NOTATION, another attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" of type NOTATION "</span><span class='varop'>++</span>
+<a name="line-467"></a>		  <span class='str'>"is not permitted."</span> <span class='layout'>)</span>
+<a name="line-468"></a>	  <span class='keyword'>where</span>
+<a name="line-469"></a>	  <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-470"></a>
+<a name="line-471"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-472"></a>
+<a name="line-473"></a>      <span class='comment'>-- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED</span>
+<a name="line-474"></a>
+<a name="line-475"></a>      <span class='varid'>checkIdKindConstraint</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-476"></a>      <span class='varid'>checkIdKindConstraint</span> <span class='varid'>al</span>
+<a name="line-477"></a>	  <span class='keyglyph'>|</span> <span class='varid'>attKind</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>k_implied</span><span class='layout'>,</span> <span class='varid'>k_required</span><span class='keyglyph'>]</span>
+<a name="line-478"></a>	      <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-479"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-480"></a>	      <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"ID attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" must have a declared default "</span><span class='varop'>++</span>
+<a name="line-481"></a>	              <span class='str'>"of \"#IMPLIED\" or \"REQUIRED\""</span><span class='layout'>)</span>
+<a name="line-482"></a>	  <span class='keyword'>where</span>
+<a name="line-483"></a>	  <span class='varid'>attKind</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_kind</span> <span class='varid'>al</span>
+<a name="line-484"></a>
+<a name="line-485"></a>
+<a name="line-486"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-487"></a>
+<a name="line-488"></a>      <span class='comment'>-- 7. Validate that all referenced notations are declared</span>
+<a name="line-489"></a>
+<a name="line-490"></a>      <span class='varid'>checkNotationDeclaration</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='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-491"></a>      <span class='varid'>checkNotationDeclaration</span> <span class='varid'>notations</span> <span class='varid'>al</span>
+<a name="line-492"></a>          <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-493"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-494"></a>	    <span class='varid'>isDTDName</span>
+<a name="line-495"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-496"></a>	    <span class='layout'>(</span><span class='varid'>checkNotations</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-497"></a>	  <span class='keyword'>where</span>
+<a name="line-498"></a>	  <span class='varid'>checkNotations</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-499"></a>	  <span class='varid'>checkNotations</span> <span class='varid'>al'</span>
+<a name="line-500"></a>	      <span class='keyglyph'>|</span> <span class='varid'>notation</span> <span class='varop'>`elem`</span> <span class='varid'>notations</span>
+<a name="line-501"></a>		  <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-502"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-503"></a>		  <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"The notation \""</span><span class='varop'>++</span> <span class='varid'>notation</span> <span class='varop'>++</span><span class='str'>"\" must be declared when "</span><span class='varop'>++</span>
+<a name="line-504"></a>		          <span class='str'>"referenced in the notation type list for attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span>
+<a name="line-505"></a>			  <span class='str'>"\" of element \""</span><span class='varop'>++</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\"."</span>
+<a name="line-506"></a>			<span class='layout'>)</span>
+<a name="line-507"></a>              <span class='keyword'>where</span>
+<a name="line-508"></a>	      <span class='varid'>notation</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>
+<a name="line-509"></a>
+<a name="line-510"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-511"></a>
+<a name="line-512"></a>      <span class='comment'>-- 8. Validate that notations are not declared for EMPTY elements</span>
+<a name="line-513"></a>
+<a name="line-514"></a>      <span class='varid'>checkNoNotationForEmptyElements</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='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-515"></a>      <span class='varid'>checkNoNotationForEmptyElements</span> <span class='varid'>emptyElems</span>
+<a name="line-516"></a>	  <span class='keyglyph'>=</span> <span class='varid'>unlistA</span>
+<a name="line-517"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-518"></a>	    <span class='varid'>isDTDAttlist</span>
+<a name="line-519"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-520"></a>	    <span class='varid'>isNotationAttrType</span>
+<a name="line-521"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-522"></a>	    <span class='layout'>(</span><span class='varid'>checkNoNotationForEmptyElement</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-523"></a>	  <span class='keyword'>where</span>
+<a name="line-524"></a>	  <span class='varid'>checkNoNotationForEmptyElement</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-525"></a>	  <span class='varid'>checkNoNotationForEmptyElement</span> <span class='varid'>al</span>
+<a name="line-526"></a>	      <span class='keyglyph'>|</span> <span class='varid'>ename</span> <span class='varop'>`elem`</span> <span class='varid'>emptyElems</span>
+<a name="line-527"></a>		  <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" of type NOTATION must not be "</span><span class='varop'>++</span>
+<a name="line-528"></a>			  <span class='str'>"declared on the element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span><span class='str'>"\" declared EMPTY."</span>
+<a name="line-529"></a>			<span class='layout'>)</span>
+<a name="line-530"></a>              <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-531"></a>		  <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-532"></a>	      <span class='keyword'>where</span>
+<a name="line-533"></a>	      <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-534"></a>
+<a name="line-535"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-536"></a>
+<a name="line-537"></a>      <span class='comment'>-- 9. Validate that default values meet the lexical constraints of the attribute types</span>
+<a name="line-538"></a>
+<a name="line-539"></a>      <span class='varid'>checkDefaultValueTypes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-540"></a>      <span class='varid'>checkDefaultValueTypes</span> <span class='varid'>dtdPart'</span>
+<a name="line-541"></a>	  <span class='keyglyph'>=</span> <span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDAttlist</span>
+<a name="line-542"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-543"></a>	    <span class='varid'>isDefaultAttrKind</span>
+<a name="line-544"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-545"></a>            <span class='layout'>(</span><span class='varid'>checkAttributeValue</span> <span class='varid'>dtdPart'</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span><span class='layout'>)</span>
+<a name="line-546"></a>
+<a name="line-547"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-548"></a>
+<a name="line-549"></a><span class='comment'>-- |</span>
+<a name="line-550"></a><span class='comment'>-- Removes doublicate declarations from the DTD, which first declaration is</span>
+<a name="line-551"></a><span class='comment'>-- binding. This is the case for ATTLIST and ENTITY declarations.</span>
+<a name="line-552"></a><span class='comment'>--</span>
+<a name="line-553"></a><span class='comment'>--    - returns : A function that replaces the children of DOCTYPE nodes by a list</span>
+<a name="line-554"></a><span class='comment'>--               where all multiple declarations are removed.</span>
+<a name="line-555"></a>
+<a name="line-556"></a><a name="removeDoublicateDefs"></a><span class='definition'>removeDoublicateDefs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-557"></a><span class='definition'>removeDoublicateDefs</span>
+<a name="line-558"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>
+<a name="line-559"></a>      <span class='layout'>(</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-560"></a>		     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-561"></a>		     <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDAttlist</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>removeDoubleAttlist</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-562"></a>			     <span class='layout'>,</span> <span class='varid'>isDTDEntity</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>removeDoubleEntity</span>  <span class='varop'>$&lt;</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>
+<a name="line-563"></a>			     <span class='layout'>,</span> <span class='varid'>this</span>         <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-564"></a>			     <span class='keyglyph'>]</span>
+<a name="line-565"></a>		   <span class='layout'>)</span>
+<a name="line-566"></a>      <span class='layout'>)</span>
+<a name="line-567"></a>      <span class='varop'>`when`</span>
+<a name="line-568"></a>      <span class='varid'>isDTDDoctype</span>
+<a name="line-569"></a>    <span class='keyword'>where</span>
+<a name="line-570"></a>    <span class='varid'>checkName'</span> <span class='varid'>n'</span>
+<a name="line-571"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getState</span>
+<a name="line-572"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-573"></a>		<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>n'</span> <span class='varop'>`elem`</span><span class='layout'>)</span>
+<a name="line-574"></a>	      <span class='layout'>)</span>
+<a name="line-575"></a>	  <span class='varid'>none</span>
+<a name="line-576"></a>	  <span class='layout'>(</span><span class='varid'>this</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>nextState</span> <span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-577"></a>
+<a name="line-578"></a>    <span class='varid'>removeDoubleAttlist</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-579"></a>    <span class='varid'>removeDoubleAttlist</span> <span class='varid'>al</span>
+<a name="line-580"></a>	<span class='keyglyph'>=</span> <span class='varid'>checkName'</span> <span class='varid'>elemAttr</span>
+<a name="line-581"></a>	<span class='keyword'>where</span>
+<a name="line-582"></a>	<span class='varid'>elemAttr</span> <span class='keyglyph'>=</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>attrName</span>
+<a name="line-583"></a>	<span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-584"></a>	<span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-585"></a>
+<a name="line-586"></a>    <span class='varid'>removeDoubleEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-587"></a>    <span class='varid'>removeDoubleEntity</span> <span class='varid'>al</span>
+<a name="line-588"></a>        <span class='keyglyph'>=</span> <span class='varid'>checkName'</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-589"></a>
+<a name="line-590"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-DocTransformation.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-DocTransformation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-DocTransformation.html
@@ -0,0 +1,220 @@
+<!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     : Text.XML.HXT.DTDValidation.DocTransformation
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides functions for transforming XML documents represented as
+<a name="line-13"></a>   XmlTree with respect to its DTD.
+<a name="line-14"></a>
+<a name="line-15"></a>   Transforming an XML document with respect to its DTD means:
+<a name="line-16"></a>
+<a name="line-17"></a>    - add all attributes with default values
+<a name="line-18"></a>
+<a name="line-19"></a>    - normalize all attribute values
+<a name="line-20"></a>
+<a name="line-21"></a>    - sort all attributes in lexical order
+<a name="line-22"></a>
+<a name="line-23"></a>   Note: Transformation should be started after validation.
+<a name="line-24"></a>
+<a name="line-25"></a>   Before the document is validated, a lookup-table is build on the basis of
+<a name="line-26"></a>   the DTD which maps element names to their transformation functions.
+<a name="line-27"></a>   After this initialization phase the whole document is traversed in preorder
+<a name="line-28"></a>   and every element is transformed by the XmlFilter from the lookup-table.
+<a name="line-29"></a>
+<a name="line-30"></a>-}</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><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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocTransformation</span>
+<a name="line-35"></a>    <span class='layout'>(</span> <span class='varid'>transform</span>
+<a name="line-36"></a>    <span class='layout'>)</span>
+<a name="line-37"></a><span class='keyword'>where</span>
+<a name="line-38"></a>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</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'>List</span>
+<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Ord</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><span class='comment'>-- |</span>
+<a name="line-49"></a><span class='comment'>-- Lookup-table which maps element names to their transformation functions. The</span>
+<a name="line-50"></a><span class='comment'>-- transformation functions are XmlArrows.</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="TransEnvTable"></a><span class='keyword'>type</span> <span class='conid'>TransEnvTable</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>TransEnv</span><span class='keyglyph'>]</span>
+<a name="line-53"></a><a name="TransEnv"></a><span class='keyword'>type</span> <span class='conid'>TransEnv</span> 		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>TransFct</span><span class='layout'>)</span>
+<a name="line-54"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span>		<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-55"></a><a name="TransFct"></a><span class='keyword'>type</span> <span class='conid'>TransFct</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlArrow</span>
+<a name="line-56"></a>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- |</span>
+<a name="line-61"></a><span class='comment'>-- filter for transforming the document.</span>
+<a name="line-62"></a><span class='comment'>--</span>
+<a name="line-63"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree</span>
+<a name="line-64"></a><span class='comment'>--</span>
+<a name="line-65"></a><span class='comment'>--    - 2.parameter doc :  the document subset of the XmlTree</span>
+<a name="line-66"></a><span class='comment'>--</span>
+<a name="line-67"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-68"></a>
+<a name="line-69"></a><a name="transform"></a><span class='definition'>transform</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-70"></a><span class='definition'>transform</span> <span class='varid'>dtdPart</span>
+<a name="line-71"></a>    <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>transTable</span>
+<a name="line-72"></a>    <span class='keyword'>where</span>
+<a name="line-73"></a>    <span class='varid'>transTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildAllTransformationFunctions</span> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='comment'>-- |</span>
+<a name="line-76"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>
+<a name="line-77"></a><span class='comment'>--</span>
+<a name="line-78"></a><span class='comment'>--    * 1.parameter transEnv :  lookup-table which maps element names to their transformation functions</span>
+<a name="line-79"></a><span class='comment'>--</span>
+<a name="line-80"></a><span class='comment'>--    - returns : the whole transformed document</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>TransEnvTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-83"></a><span class='definition'>traverseTree</span> <span class='varid'>transEnv</span>
+<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span>
+<a name="line-85"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>transFct</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-86"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-87"></a>	  <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>transEnv</span><span class='layout'>)</span>
+<a name="line-88"></a>	<span class='layout'>)</span>
+<a name="line-89"></a>       <span class='varop'>`when`</span>
+<a name="line-90"></a>       <span class='varid'>isElem</span>
+<a name="line-91"></a>      <span class='layout'>)</span>
+<a name="line-92"></a>    <span class='keyword'>where</span>
+<a name="line-93"></a>    <span class='varid'>transFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-94"></a>    <span class='varid'>transFct</span> <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>this</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>transEnv</span>
+<a name="line-95"></a>
+<a name="line-96"></a><span class='comment'>-- |</span>
+<a name="line-97"></a><span class='comment'>-- Build all transformation functions.</span>
+<a name="line-98"></a><span class='comment'>--</span>
+<a name="line-99"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset, root node should be of type @DOCTYPE@</span>
+<a name="line-100"></a><span class='comment'>--</span>
+<a name="line-101"></a><span class='comment'>--    - returns : lookup-table which maps element names to their transformation functions</span>
+<a name="line-102"></a>
+<a name="line-103"></a><a name="buildAllTransformationFunctions"></a><span class='definition'>buildAllTransformationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TransEnvTable</span>
+<a name="line-104"></a><span class='definition'>buildAllTransformationFunctions</span> <span class='varid'>dtdNodes</span>
+<a name="line-105"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>t_root</span><span class='layout'>,</span> <span class='varid'>this</span><span class='layout'>)</span>
+<a name="line-106"></a>      <span class='conop'>:</span>
+<a name="line-107"></a>      <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>buildTransformationFunctions</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span> <span class='varid'>dtdNodes</span>
+<a name="line-108"></a>
+<a name="line-109"></a><span class='comment'>-- |</span>
+<a name="line-110"></a><span class='comment'>-- Build transformation functions for an element.</span>
+<a name="line-111"></a><span class='comment'>--</span>
+<a name="line-112"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>--    * 1.parameter nd :  element declaration for which the transformation functions are</span>
+<a name="line-115"></a><span class='comment'>--                    created</span>
+<a name="line-116"></a><span class='comment'>--</span>
+<a name="line-117"></a><span class='comment'>--    - returns : entry for the lookup-table</span>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="buildTransformationFunctions"></a><span class='definition'>buildTransformationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>TransEnv</span><span class='keyglyph'>]</span>
+<a name="line-120"></a>
+<a name="line-121"></a><span class='definition'>buildTransformationFunctions</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-122"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>name</span><span class='layout'>,</span> <span class='varid'>transFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-123"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-124"></a>    <span class='keyword'>where</span>
+<a name="line-125"></a>    <span class='varid'>al</span>		<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-126"></a>    <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-127"></a>    <span class='varid'>transFct</span>	<span class='keyglyph'>=</span> <span class='varid'>setDefaultAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-128"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-129"></a>		  <span class='varid'>normalizeAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-130"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-131"></a>		  <span class='varid'>lexicographicAttributeOrder</span>
+<a name="line-132"></a>
+<a name="line-133"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-134"></a>
+<a name="line-135"></a><span class='comment'>-- |</span>
+<a name="line-136"></a><span class='comment'>-- Sort the attributes of an element in lexicographic order.</span>
+<a name="line-137"></a><span class='comment'>--</span>
+<a name="line-138"></a><span class='comment'>--    * returns : a function which takes an element (XTag), sorts its</span>
+<a name="line-139"></a><span class='comment'>--                  attributes in lexicographic order and returns the changed element</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="lexicographicAttributeOrder"></a><span class='definition'>lexicographicAttributeOrder</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-142"></a><span class='definition'>lexicographicAttributeOrder</span>
+<a name="line-143"></a>    <span class='keyglyph'>=</span> <span class='varid'>setAttrl</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>sortAttrl</span><span class='layout'>)</span>
+<a name="line-144"></a>      <span class='keyword'>where</span>
+<a name="line-145"></a>      <span class='varid'>sortAttrl</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-146"></a>      <span class='varid'>sortAttrl</span>		<span class='keyglyph'>=</span> <span class='varid'>sortBy</span> <span class='layout'>(</span><span class='varid'>comparing</span> <span class='varid'>nameOfAttr</span><span class='layout'>)</span>
+<a name="line-147"></a>
+<a name="line-148"></a><span class='comment'>-- |</span>
+<a name="line-149"></a><span class='comment'>-- Normalize attribute values.</span>
+<a name="line-150"></a><span class='comment'>--</span>
+<a name="line-151"></a><span class='comment'>--    * returns : a function which takes an element (XTag), normalizes its</span>
+<a name="line-152"></a><span class='comment'>--                  attribute values and returns the changed element</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="normalizeAttributeValues"></a><span class='definition'>normalizeAttributeValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-155"></a><span class='definition'>normalizeAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-156"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>normalizeAttr</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-157"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-158"></a>    <span class='keyword'>where</span>
+<a name="line-159"></a>    <span class='varid'>al</span>		 <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-160"></a>    <span class='varid'>elemName</span>	 <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-161"></a>    <span class='varid'>declaredAtts</span> <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-162"></a>
+<a name="line-163"></a>    <span class='varid'>normalizeAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-164"></a>    <span class='varid'>normalizeAttr</span> <span class='varid'>nameOfAtt</span>
+<a name="line-165"></a>	<span class='keyglyph'>=</span> <span class='varid'>normalizeAttrValue</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>attDescr</span>
+<a name="line-166"></a>			       <span class='keyword'>then</span> <span class='conid'>Nothing</span>
+<a name="line-167"></a>			       <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>attDescr</span><span class='layout'>)</span>
+<a name="line-168"></a>			     <span class='layout'>)</span>
+<a name="line-169"></a>	  <span class='keyword'>where</span>
+<a name="line-170"></a>	  <span class='varid'>attDescr</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nameOfAtt</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span><span class='layout'>)</span> <span class='varid'>declaredAtts</span>
+<a name="line-171"></a>
+<a name="line-172"></a>    <span class='varid'>normalizeAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-173"></a>    <span class='varid'>normalizeAttrValue</span> <span class='varid'>descr</span>
+<a name="line-174"></a>	<span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>normalizeAttributeValue</span> <span class='varid'>descr</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><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'>-- Set default attribute values if they are not set.</span>
+<a name="line-178"></a><span class='comment'>--</span>
+<a name="line-179"></a><span class='comment'>--    * returns : a function which takes an element (XTag), adds missing attribute</span>
+<a name="line-180"></a><span class='comment'>--                  defaults and returns the changed element</span>
+<a name="line-181"></a>
+<a name="line-182"></a><a name="setDefaultAttributeValues"></a><span class='definition'>setDefaultAttributeValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-183"></a><span class='definition'>setDefaultAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-184"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>setDefault</span> <span class='varid'>defaultAtts</span><span class='layout'>)</span>
+<a name="line-185"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-186"></a>    <span class='keyword'>where</span>
+<a name="line-187"></a>    <span class='varid'>elemName</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>
+<a name="line-188"></a>    <span class='varid'>defaultAtts</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span>
+<a name="line-189"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-190"></a>		    <span class='layout'>(</span> <span class='varid'>isFixedAttrKind</span>		<span class='comment'>-- select attributes with default values</span>
+<a name="line-191"></a>		      <span class='varop'>`orElse`</span>
+<a name="line-192"></a>		      <span class='varid'>isDefaultAttrKind</span>
+<a name="line-193"></a>		    <span class='layout'>)</span>
+<a name="line-194"></a>		  <span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-195"></a>
+<a name="line-196"></a>    <span class='varid'>setDefault</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-197"></a>    <span class='varid'>setDefault</span> <span class='varid'>attrDescr</span>			<span class='comment'>-- add the default attributes</span>
+<a name="line-198"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>attName</span> <span class='varid'>defaultValue</span>	<span class='comment'>-- to tag nodes with missing attributes</span>
+<a name="line-199"></a>	      <span class='varop'>`whenNot`</span>
+<a name="line-200"></a>	      <span class='varid'>hasAttr</span> <span class='varid'>attName</span>
+<a name="line-201"></a>	    <span class='layout'>)</span>
+<a name="line-202"></a>	    <span class='varop'>`when`</span>
+<a name="line-203"></a>	    <span class='varid'>isElem</span>
+<a name="line-204"></a>	<span class='keyword'>where</span>
+<a name="line-205"></a>	<span class='varid'>al</span>		<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDescr</span>
+<a name="line-206"></a>	<span class='varid'>attName</span>		<span class='keyglyph'>=</span> <span class='varid'>dtd_value</span>   <span class='varid'>al</span>
+<a name="line-207"></a>	<span class='varid'>defaultValue</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_default</span> <span class='varid'>al</span>
+<a name="line-208"></a>
+<a name="line-209"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-210"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-DocValidation.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-DocValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-DocValidation.html
@@ -0,0 +1,533 @@
+<!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     : Text.XML.HXT.DTDValidation.TypeDefs
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides functions for validating XML Documents represented as
+<a name="line-13"></a>   XmlTree.
+<a name="line-14"></a>
+<a name="line-15"></a>   Unlike other popular XML validation tools the validation process returns
+<a name="line-16"></a>   a list of errors instead of aborting after the first error was found.
+<a name="line-17"></a>
+<a name="line-18"></a>   Before the document is validated, a lookup-table is build on the basis of
+<a name="line-19"></a>   the DTD which maps element names to their validation functions.
+<a name="line-20"></a>   After this initialization phase the whole document is traversed in preorder
+<a name="line-21"></a>   and every element is validated by the XmlFilter from the lookup-table.
+<a name="line-22"></a>
+<a name="line-23"></a>-}</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-26"></a>
+<a name="line-27"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocValidation</span>
+<a name="line-28"></a>    <span class='layout'>(</span> <span class='varid'>validateDoc</span>
+<a name="line-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a><span class='keyword'>where</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>XmlRE</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</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'>-- |</span>
+<a name="line-42"></a><span class='comment'>-- Lookup-table which maps element names to their validation functions. The</span>
+<a name="line-43"></a><span class='comment'>-- validation functions are XmlArrows.</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="ValiEnvTable"></a><span class='keyword'>type</span> <span class='conid'>ValiEnvTable</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>
+<a name="line-46"></a><a name="ValiEnv"></a><span class='keyword'>type</span> <span class='conid'>ValiEnv</span> 		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>ValFct</span><span class='layout'>)</span>
+<a name="line-47"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span>		<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-48"></a><a name="ValFct"></a><span class='keyword'>type</span> <span class='conid'>ValFct</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlArrow</span>
+<a name="line-49"></a>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='comment'>-- |</span>
+<a name="line-54"></a><span class='comment'>-- Validate a document.</span>
+<a name="line-55"></a><span class='comment'>--</span>
+<a name="line-56"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree</span>
+<a name="line-57"></a><span class='comment'>--</span>
+<a name="line-58"></a><span class='comment'>--    - 2.parameter doc :  the document subset of the XmlTree</span>
+<a name="line-59"></a><span class='comment'>--</span>
+<a name="line-60"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-63"></a><span class='definition'>validateDoc</span> <span class='varid'>dtdPart</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>valTable</span>
+<a name="line-65"></a>    <span class='keyword'>where</span>
+<a name="line-66"></a>    <span class='varid'>valTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildAllValidationFunctions</span> <span class='varid'>dtdPart</span>
+<a name="line-67"></a>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='comment'>-- |</span>
+<a name="line-70"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>
+<a name="line-71"></a><span class='comment'>--</span>
+<a name="line-72"></a><span class='comment'>--    * 1.parameter valiEnv :  lookup-table which maps element names to their validation functions</span>
+<a name="line-73"></a><span class='comment'>--</span>
+<a name="line-74"></a><span class='comment'>--    - returns : list of errors</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span>	<span class='keyglyph'>::</span> <span class='conid'>ValiEnvTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-77"></a><span class='definition'>traverseTree</span> <span class='varid'>valiEnv</span>
+<a name="line-78"></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='layout'>(</span><span class='varid'>valFct</span> <span class='varop'>$&lt;</span> <span class='varid'>getQName</span><span class='layout'>)</span>
+<a name="line-79"></a>	      <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-80"></a>	      <span class='keyglyph'>]</span>
+<a name="line-81"></a>      <span class='varop'>&lt;+&gt;</span>
+<a name="line-82"></a>      <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>traverseTree</span> <span class='varid'>valiEnv</span> <span class='layout'>)</span>
+<a name="line-83"></a>    <span class='keyword'>where</span>
+<a name="line-84"></a>    <span class='varid'>valFct</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-85"></a>    <span class='varid'>valFct</span> <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>valiEnv</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-86"></a>		  <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</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'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" not declared in DTD."</span><span class='layout'>)</span>
+<a name="line-87"></a>		  <span class='conid'>Just</span> <span class='varid'>f</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>f</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'>-- Build all validation functions.</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@</span>
+<a name="line-95"></a><span class='comment'>--</span>
+<a name="line-96"></a><span class='comment'>--    - returns : lookup-table which maps element names to their validation functions</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="buildAllValidationFunctions"></a><span class='definition'>buildAllValidationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ValiEnvTable</span>
+<a name="line-99"></a><span class='definition'>buildAllValidationFunctions</span> <span class='varid'>dtdPart</span>
+<a name="line-100"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>
+<a name="line-101"></a>      <span class='varid'>buildValidateRoot</span> <span class='varid'>dtdPart</span> <span class='conop'>:</span>	      <span class='comment'>-- construct a list of validation filters for all element declarations</span>
+<a name="line-102"></a>      <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>buildValidateFunctions</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span> <span class='varid'>dtdNodes</span>
+<a name="line-103"></a>      <span class='keyword'>where</span>
+<a name="line-104"></a>      <span class='varid'>dtdNodes</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='comment'>-- |</span>
+<a name="line-107"></a><span class='comment'>-- Build a validation function for the document root. By root node @\/@</span>
+<a name="line-108"></a><span class='comment'>-- is meant, which is the topmost dummy created by the parser.</span>
+<a name="line-109"></a><span class='comment'>--</span>
+<a name="line-110"></a><span class='comment'>--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@</span>
+<a name="line-111"></a><span class='comment'>--</span>
+<a name="line-112"></a><span class='comment'>--    - returns : entry for the lookup-table</span>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="buildValidateRoot"></a><span class='definition'>buildValidateRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>
+<a name="line-115"></a><span class='definition'>buildValidateRoot</span> <span class='varid'>dn</span>
+<a name="line-116"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDDoctypeNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>t_root</span><span class='layout'>,</span> <span class='varid'>valFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-117"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-118"></a>      <span class='keyword'>where</span>
+<a name="line-119"></a>      <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>
+<a name="line-120"></a>
+<a name="line-121"></a>      <span class='varid'>valFct</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-122"></a>      <span class='varid'>valFct</span>	<span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-123"></a>		  <span class='varop'>`guards`</span>
+<a name="line-124"></a>		  <span class='layout'>(</span> <span class='varid'>checkRegex</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-125"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-126"></a>		    <span class='varid'>msgToErr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"Root Element must be "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>". "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-127"></a>		  <span class='layout'>)</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="checkRegex"></a><span class='definition'>checkRegex</span>	<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-130"></a><span class='definition'>checkRegex</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span>
+<a name="line-131"></a>		  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cs</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-132"></a>
+<a name="line-133"></a><span class='comment'>-- |</span>
+<a name="line-134"></a><span class='comment'>-- Build validation functions for an element.</span>
+<a name="line-135"></a><span class='comment'>--</span>
+<a name="line-136"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-137"></a><span class='comment'>--</span>
+<a name="line-138"></a><span class='comment'>--    - 2.parameter nd :  element declaration for which the validation functions are</span>
+<a name="line-139"></a><span class='comment'>--                   created</span>
+<a name="line-140"></a><span class='comment'>--</span>
+<a name="line-141"></a><span class='comment'>--    - returns : entry for the lookup-table</span>
+<a name="line-142"></a>
+<a name="line-143"></a><a name="buildValidateFunctions"></a><span class='definition'>buildValidateFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='definition'>buildValidateFunctions</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-146"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>valFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-147"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-148"></a>      <span class='keyword'>where</span>
+<a name="line-149"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>
+<a name="line-150"></a>
+<a name="line-151"></a>      <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-152"></a>      <span class='varid'>valFct</span> <span class='keyglyph'>=</span> <span class='varid'>buildContentValidation</span> <span class='varid'>dn</span>
+<a name="line-153"></a>               <span class='varop'>&lt;+&gt;</span>
+<a name="line-154"></a>	       <span class='varid'>buildAttributeValidation</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>
+<a name="line-155"></a>
+<a name="line-156"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-157"></a>
+<a name="line-158"></a>
+<a name="line-159"></a><span class='comment'>-- |</span>
+<a name="line-160"></a><span class='comment'>-- Build validation functions for the content model of an element.</span>
+<a name="line-161"></a><span class='comment'>-- Validity constraint: Element Valid (3 \/ p.18 in Spec)</span>
+<a name="line-162"></a><span class='comment'>--</span>
+<a name="line-163"></a><span class='comment'>--    * 1.parameter nd :  element declaration for which the content validation functions</span>
+<a name="line-164"></a><span class='comment'>--                  are built</span>
+<a name="line-165"></a><span class='comment'>--</span>
+<a name="line-166"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if its</span>
+<a name="line-167"></a><span class='comment'>--                  children match its content model and returns a list of errors</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="buildContentValidation"></a><span class='definition'>buildContentValidation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-170"></a><span class='definition'>buildContentValidation</span> <span class='varid'>nd</span>
+<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='varid'>contentValidation</span> <span class='varid'>attrType</span> <span class='varid'>nd</span>
+<a name="line-172"></a>      <span class='keyword'>where</span>
+<a name="line-173"></a>      <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>nd</span>
+<a name="line-174"></a>
+<a name="line-175"></a>
+<a name="line-176"></a>      <span class='comment'>-- Delegates construction of the validation function on the basis of the</span>
+<a name="line-177"></a>      <span class='comment'>-- content model type</span>
+<a name="line-178"></a>      <span class='varid'>contentValidation</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-179"></a>      <span class='varid'>contentValidation</span> <span class='varid'>typ</span> <span class='varid'>dn</span>
+<a name="line-180"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_pcdata</span>   <span class='keyglyph'>=</span> <span class='varid'>contentValidationPcdata</span>
+<a name="line-181"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_empty</span>    <span class='keyglyph'>=</span> <span class='varid'>contentValidationEmpty</span>
+<a name="line-182"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_any</span>      <span class='keyglyph'>=</span> <span class='varid'>contentValidationAny</span>
+<a name="line-183"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationChildren</span> <span class='varid'>cs</span>
+<a name="line-184"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span>    <span class='keyglyph'>=</span> <span class='varid'>contentValidationMixed</span> <span class='varid'>cs</span>
+<a name="line-185"></a>          <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>         <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-186"></a>	  <span class='keyword'>where</span>
+<a name="line-187"></a>	  <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dn</span>
+<a name="line-188"></a>
+<a name="line-189"></a>      <span class='comment'>-- Checks #PCDATA content models</span>
+<a name="line-190"></a>      <span class='varid'>contentValidationPcdata</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-191"></a>      <span class='varid'>contentValidationPcdata</span>
+<a name="line-192"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getQName</span><span class='layout'>)</span>
+<a name="line-193"></a>	    <span class='keyword'>where</span>
+<a name="line-194"></a>	    <span class='varid'>contentVal</span> <span class='varid'>name</span>
+<a name="line-195"></a>		<span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>k_pcdata</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-196"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-197"></a>		  <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>
+<a name="line-198"></a>			       <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-199"></a>			       <span class='str'>" must match (#PCDATA). "</span>
+<a name="line-200"></a>			     <span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-201"></a>			   <span class='layout'>)</span>
+<a name="line-202"></a>
+<a name="line-203"></a>      <span class='comment'>-- Checks EMPTY content models</span>
+<a name="line-204"></a>      <span class='varid'>contentValidationEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-205"></a>      <span class='varid'>contentValidationEmpty</span>
+<a name="line-206"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getQName</span><span class='layout'>)</span>
+<a name="line-207"></a>	    <span class='keyword'>where</span>
+<a name="line-208"></a>	    <span class='varid'>contentVal</span> <span class='varid'>name</span>
+<a name="line-209"></a>		<span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='varid'>re_unit</span>
+<a name="line-210"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-211"></a>		  <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>
+<a name="line-212"></a>				 <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-213"></a>				 <span class='str'>" must match EMPTY. "</span>
+<a name="line-214"></a>			     <span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-215"></a>			   <span class='layout'>)</span>
+<a name="line-216"></a>
+<a name="line-217"></a>      <span class='comment'>-- Checks ANY content models</span>
+<a name="line-218"></a>      <span class='varid'>contentValidationAny</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-219"></a>      <span class='varid'>contentValidationAny</span>
+<a name="line-220"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-221"></a>	    <span class='keyword'>where</span>
+<a name="line-222"></a>	    <span class='varid'>contentVal</span> <span class='varid'>name</span>
+<a name="line-223"></a>		<span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_dot</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-224"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-225"></a>		  <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>
+<a name="line-226"></a>			       <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-227"></a>			       <span class='str'>" must match ANY. "</span>
+<a name="line-228"></a>			     <span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-229"></a>			   <span class='layout'>)</span>
+<a name="line-230"></a>
+<a name="line-231"></a>      <span class='comment'>-- Checks "children" content models</span>
+<a name="line-232"></a>      <span class='varid'>contentValidationChildren</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-233"></a>      <span class='varid'>contentValidationChildren</span> <span class='varid'>cm</span>
+<a name="line-234"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-235"></a>	    <span class='keyword'>where</span>
+<a name="line-236"></a>	    <span class='varid'>contentVal</span> <span class='varid'>name</span>
+<a name="line-237"></a>		<span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='varid'>re</span>
+<a name="line-238"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-239"></a>		  <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>
+<a name="line-240"></a>			       <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-241"></a>			       <span class='str'>" must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span> <span class='varop'>++</span> <span class='str'>". "</span>
+<a name="line-242"></a>			     <span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-243"></a>			   <span class='layout'>)</span>
+<a name="line-244"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>createRE</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cm</span><span class='layout'>)</span>
+<a name="line-245"></a>
+<a name="line-246"></a>      <span class='comment'>-- Checks "mixed content" content models</span>
+<a name="line-247"></a>      <span class='varid'>contentValidationMixed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-248"></a>      <span class='varid'>contentValidationMixed</span> <span class='varid'>cm</span>
+<a name="line-249"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-250"></a>	    <span class='keyword'>where</span>
+<a name="line-251"></a>	    <span class='varid'>contentVal</span> <span class='varid'>name</span>
+<a name="line-252"></a>		<span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='varid'>re</span>
+<a name="line-253"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-254"></a>		  <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>
+<a name="line-255"></a>			       <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-256"></a>			       <span class='str'>" must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span> <span class='varop'>++</span> <span class='str'>". "</span>
+<a name="line-257"></a>			     <span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-258"></a>			   <span class='layout'>)</span>
+<a name="line-259"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>k_pcdata</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cm</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-260"></a>
+<a name="line-261"></a><span class='comment'>-- |</span>
+<a name="line-262"></a><span class='comment'>-- Build a regular expression from the content model. The regular expression</span>
+<a name="line-263"></a><span class='comment'>-- is provided by the module XmlRE.</span>
+<a name="line-264"></a><span class='comment'>--</span>
+<a name="line-265"></a><span class='comment'>--    * 1.parameter nd :  node of the content model. Expected: @CONTENT@ or</span>
+<a name="line-266"></a><span class='comment'>--              @NAME@</span>
+<a name="line-267"></a><span class='comment'>--</span>
+<a name="line-268"></a><span class='comment'>--    - returns : regular expression of the content model</span>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="createRE"></a><span class='definition'>createRE</span>	<span class='keyglyph'>::</span>  <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-271"></a><span class='definition'>createRE</span> <span class='varid'>dn</span>
+<a name="line-272"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDContentNode</span> <span class='varid'>dn</span>
+<a name="line-273"></a>	<span class='keyglyph'>=</span> <span class='varid'>processModifier</span> <span class='varid'>modifier</span>
+<a name="line-274"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDNameNode</span> <span class='varid'>dn</span>
+<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='varid'>re_sym</span> <span class='varid'>name</span>
+<a name="line-276"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-277"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"createRE: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>dn</span><span class='layout'>)</span>
+<a name="line-278"></a>    <span class='keyword'>where</span>
+<a name="line-279"></a>    <span class='varid'>al</span>		<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-280"></a>    <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_name</span>     <span class='varid'>al</span>
+<a name="line-281"></a>    <span class='varid'>modifier</span> 	<span class='keyglyph'>=</span> <span class='varid'>dtd_modifier</span> <span class='varid'>al</span>
+<a name="line-282"></a>    <span class='varid'>kind</span>     	<span class='keyglyph'>=</span> <span class='varid'>dtd_kind</span>     <span class='varid'>al</span>
+<a name="line-283"></a>    <span class='varid'>cs</span>		<span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dn</span>
+<a name="line-284"></a>
+<a name="line-285"></a>    <span class='varid'>processModifier</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-286"></a>    <span class='varid'>processModifier</span> <span class='varid'>m</span>
+<a name="line-287"></a>        <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_plus</span>	  <span class='keyglyph'>=</span> <span class='varid'>re_plus</span> <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>
+<a name="line-288"></a>	<span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_star</span>	  <span class='keyglyph'>=</span> <span class='varid'>re_rep</span>  <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>
+<a name="line-289"></a>	<span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_option</span>	  <span class='keyglyph'>=</span> <span class='varid'>re_opt</span>  <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>
+<a name="line-290"></a>	<span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_null</span>	  <span class='keyglyph'>=</span> <span class='varid'>processKind</span> <span class='varid'>kind</span>
+<a name="line-291"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>       <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Unknown modifier: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>m</span><span class='layout'>)</span>
+<a name="line-292"></a>
+<a name="line-293"></a>    <span class='varid'>processKind</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-294"></a>    <span class='varid'>processKind</span> <span class='varid'>k</span>
+<a name="line-295"></a>        <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_seq</span>	  <span class='keyglyph'>=</span> <span class='varid'>makeSequence</span> <span class='varid'>cs</span>
+<a name="line-296"></a>	<span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_choice</span>	  <span class='keyglyph'>=</span> <span class='varid'>makeChoice</span> <span class='varid'>cs</span>
+<a name="line-297"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Unknown kind: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>k</span><span class='layout'>)</span>
+<a name="line-298"></a>
+<a name="line-299"></a>    <span class='varid'>makeSequence</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-300"></a>    <span class='varid'>makeSequence</span> <span class='conid'>[]</span>     <span class='keyglyph'>=</span> <span class='varid'>re_unit</span>
+<a name="line-301"></a>    <span class='varid'>makeSequence</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'>re_seq</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>makeSequence</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-302"></a>
+<a name="line-303"></a>    <span class='varid'>makeChoice</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-304"></a>    <span class='varid'>makeChoice</span> <span class='conid'>[]</span>       <span class='keyglyph'>=</span> <span class='varid'>re_zero</span> <span class='str'>""</span>
+<a name="line-305"></a>    <span class='varid'>makeChoice</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'>re_alt</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>makeChoice</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-306"></a>
+<a name="line-307"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-308"></a>
+<a name="line-309"></a><span class='comment'>-- |</span>
+<a name="line-310"></a><span class='comment'>-- Build validation functions for the attributes of an element.</span>
+<a name="line-311"></a><span class='comment'>--</span>
+<a name="line-312"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-313"></a><span class='comment'>--</span>
+<a name="line-314"></a><span class='comment'>--    - 2.parameter nd :  element declaration for which the attribute validation functions</span>
+<a name="line-315"></a><span class='comment'>--                  are created</span>
+<a name="line-316"></a><span class='comment'>--</span>
+<a name="line-317"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if its</span>
+<a name="line-318"></a><span class='comment'>--                  attributes are valid and returns a list of errors</span>
+<a name="line-319"></a>
+<a name="line-320"></a><a name="buildAttributeValidation"></a><span class='definition'>buildAttributeValidation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-321"></a><span class='definition'>buildAttributeValidation</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span> <span class='keyglyph'>=</span>
+<a name="line-322"></a>    <span class='varid'>noDoublicateAttributes</span>
+<a name="line-323"></a>    <span class='varop'>&lt;+&gt;</span>
+<a name="line-324"></a>    <span class='varid'>checkNotDeclardAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>
+<a name="line-325"></a>    <span class='varop'>&lt;+&gt;</span>
+<a name="line-326"></a>    <span class='varid'>checkRequiredAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>
+<a name="line-327"></a>    <span class='varop'>&lt;+&gt;</span>
+<a name="line-328"></a>    <span class='varid'>checkFixedAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>
+<a name="line-329"></a>    <span class='varop'>&lt;+&gt;</span>
+<a name="line-330"></a>    <span class='varid'>checkValuesOfAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span>
+<a name="line-331"></a>    <span class='keyword'>where</span>
+<a name="line-332"></a>    <span class='varid'>attrDecls</span> <span class='keyglyph'>=</span> <span class='varid'>isDTDAttlist</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-333"></a>
+<a name="line-334"></a>
+<a name="line-335"></a><span class='comment'>-- |</span>
+<a name="line-336"></a><span class='comment'>-- Validate that all attributes of an element are unique.</span>
+<a name="line-337"></a><span class='comment'>-- Well-formdness constraint: Unique AttSpec (3.1 \/ p.19 in Spec)</span>
+<a name="line-338"></a><span class='comment'>--</span>
+<a name="line-339"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if its</span>
+<a name="line-340"></a><span class='comment'>--                  attributes are unique and returns a list of errors</span>
+<a name="line-341"></a>
+<a name="line-342"></a><a name="noDoublicateAttributes"></a><span class='definition'>noDoublicateAttributes</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-343"></a><span class='definition'>noDoublicateAttributes</span>
+<a name="line-344"></a>    <span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-345"></a>      <span class='varop'>`guards`</span>
+<a name="line-346"></a>      <span class='layout'>(</span> <span class='varid'>noDoubles'</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span> <span class='layout'>)</span>
+<a name="line-347"></a>    <span class='keyword'>where</span>
+<a name="line-348"></a>    <span class='varid'>noDoubles'</span> <span class='varid'>elemName</span>
+<a name="line-349"></a>	<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-350"></a>	  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>toErr</span> <span class='varop'>.</span> <span class='varid'>doubles</span> <span class='varop'>.</span> <span class='varid'>reverse</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-351"></a>	<span class='keyword'>where</span>
+<a name="line-352"></a>	<span class='varid'>toErr</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span> <span class='varop'>++</span>
+<a name="line-353"></a>			 <span class='str'>" was already specified for element "</span> <span class='varop'>++</span>
+<a name="line-354"></a>			 <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"."</span>
+<a name="line-355"></a>		       <span class='layout'>)</span>
+<a name="line-356"></a>
+<a name="line-357"></a><span class='comment'>-- |</span>
+<a name="line-358"></a><span class='comment'>-- Validate that all \#REQUIRED attributes are provided.</span>
+<a name="line-359"></a><span class='comment'>-- Validity constraint: Required Attributes (3.3.2 \/ p.28 in Spec)</span>
+<a name="line-360"></a><span class='comment'>--</span>
+<a name="line-361"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-362"></a><span class='comment'>--</span>
+<a name="line-363"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-364"></a><span class='comment'>--</span>
+<a name="line-365"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-366"></a><span class='comment'>--                  required attributes are provided and returns a list of errors</span>
+<a name="line-367"></a>
+<a name="line-368"></a><a name="checkRequiredAttributes"></a><span class='definition'>checkRequiredAttributes</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-369"></a><span class='definition'>checkRequiredAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dn</span>
+<a name="line-370"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>
+<a name="line-371"></a>	<span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-372"></a>	  <span class='varop'>`guards`</span>
+<a name="line-373"></a>	  <span class='layout'>(</span> <span class='varid'>checkRequired</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span> <span class='layout'>)</span>
+<a name="line-374"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-375"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-376"></a>      <span class='keyword'>where</span>
+<a name="line-377"></a>      <span class='varid'>elemName</span>     <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>
+<a name="line-378"></a>      <span class='varid'>requiredAtts</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRequiredAttrKind</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>
+<a name="line-379"></a>
+<a name="line-380"></a>      <span class='varid'>checkRequired</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-381"></a>      <span class='varid'>checkRequired</span> <span class='varid'>name</span>
+<a name="line-382"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkReq</span> <span class='varop'>$</span> <span class='varid'>requiredAtts</span>
+<a name="line-383"></a>	  <span class='keyword'>where</span>
+<a name="line-384"></a>	  <span class='varid'>checkReq</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-385"></a>	  <span class='varid'>checkReq</span> <span class='varid'>attrDecl</span>
+<a name="line-386"></a>	      <span class='keyglyph'>=</span> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>attName</span><span class='layout'>)</span>
+<a name="line-387"></a>		<span class='varop'>`guards`</span>
+<a name="line-388"></a>		<span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attName</span> <span class='varop'>++</span> <span class='str'>" must be declared for element type "</span> <span class='varop'>++</span>
+<a name="line-389"></a>		      <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='layout'>)</span>
+<a name="line-390"></a>	      <span class='keyword'>where</span>
+<a name="line-391"></a>	      <span class='varid'>attName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>attrDecl</span>
+<a name="line-392"></a>
+<a name="line-393"></a><span class='comment'>-- |</span>
+<a name="line-394"></a><span class='comment'>-- Validate that \#FIXED attributes match the default value.</span>
+<a name="line-395"></a><span class='comment'>-- Validity constraint: Fixed Attribute Default (3.3.2 \/ p.28 in Spec)</span>
+<a name="line-396"></a><span class='comment'>--</span>
+<a name="line-397"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-398"></a><span class='comment'>--</span>
+<a name="line-399"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-400"></a><span class='comment'>--</span>
+<a name="line-401"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-402"></a><span class='comment'>--                  fixed attributes match the default value and returns a list of errors</span>
+<a name="line-403"></a>
+<a name="line-404"></a><a name="checkFixedAttributes"></a><span class='definition'>checkFixedAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-405"></a><span class='definition'>checkFixedAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dn</span>
+<a name="line-406"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>
+<a name="line-407"></a>	<span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-408"></a>	  <span class='varop'>`guards`</span>
+<a name="line-409"></a>	  <span class='layout'>(</span> <span class='varid'>checkFixed</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span> <span class='layout'>)</span>
+<a name="line-410"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-411"></a>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-412"></a>      <span class='keyword'>where</span>
+<a name="line-413"></a>      <span class='varid'>elemName</span>  <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>
+<a name="line-414"></a>      <span class='varid'>fixedAtts</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isFixedAttrKind</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>
+<a name="line-415"></a>
+<a name="line-416"></a>      <span class='varid'>checkFixed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-417"></a>      <span class='varid'>checkFixed</span> <span class='varid'>name</span>
+<a name="line-418"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkFix</span> <span class='varop'>$</span> <span class='varid'>fixedAtts</span>
+<a name="line-419"></a>	  <span class='keyword'>where</span>
+<a name="line-420"></a>	  <span class='varid'>checkFix</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-421"></a>	  <span class='varid'>checkFix</span> <span class='varid'>an</span>
+<a name="line-422"></a>	      <span class='keyglyph'>|</span>  <span class='varid'>isDTDAttlistNode</span> <span class='varid'>an</span>
+<a name="line-423"></a>		  <span class='keyglyph'>=</span> <span class='varid'>checkFixedVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>attName</span>
+<a name="line-424"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-425"></a>		  <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-426"></a>	      <span class='keyword'>where</span>
+<a name="line-427"></a>	      <span class='varid'>al'</span>	<span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>an</span>
+<a name="line-428"></a>	      <span class='varid'>attName</span>   <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span>   <span class='varid'>al'</span>
+<a name="line-429"></a>	      <span class='varid'>defa</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_default</span> <span class='varid'>al'</span>
+<a name="line-430"></a>	      <span class='varid'>fixedValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>defa</span>
+<a name="line-431"></a>
+<a name="line-432"></a>              <span class='varid'>checkFixedVal</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-433"></a>	      <span class='varid'>checkFixedVal</span> <span class='varid'>val</span>
+<a name="line-434"></a>		  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>hasAttr</span> <span class='varid'>attName</span>
+<a name="line-435"></a>			<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-436"></a>			<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>attValue</span> <span class='varop'>/=</span> <span class='varid'>fixedValue</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-437"></a>		      <span class='layout'>)</span>
+<a name="line-438"></a>		      <span class='varop'>`guards`</span>
+<a name="line-439"></a>		      <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attName</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-440"></a>			    <span class='str'>" with value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attValue</span> <span class='varop'>++</span> <span class='str'>" must have a value of "</span> <span class='varop'>++</span>
+<a name="line-441"></a>			    <span class='varid'>show</span> <span class='varid'>fixedValue</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='layout'>)</span>
+<a name="line-442"></a>		    <span class='layout'>)</span>
+<a name="line-443"></a>		  <span class='keyword'>where</span>
+<a name="line-444"></a>		  <span class='varid'>attValue</span>   <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>val</span>
+<a name="line-445"></a>
+<a name="line-446"></a><span class='comment'>-- |</span>
+<a name="line-447"></a><span class='comment'>-- Validate that an element has no attributes which are not declared.</span>
+<a name="line-448"></a><span class='comment'>-- Validity constraint: Attribute Value Type (3.1 \/ p.19 in Spec)</span>
+<a name="line-449"></a><span class='comment'>--</span>
+<a name="line-450"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-451"></a><span class='comment'>--</span>
+<a name="line-452"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-453"></a><span class='comment'>--</span>
+<a name="line-454"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-455"></a><span class='comment'>--                  attributes are declared and returns a list of errors</span>
+<a name="line-456"></a>
+<a name="line-457"></a><a name="checkNotDeclardAttributes"></a><span class='definition'>checkNotDeclardAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-458"></a><span class='definition'>checkNotDeclardAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>elemDescr</span>
+<a name="line-459"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkNotDeclared</span>
+<a name="line-460"></a>      <span class='keyword'>where</span>
+<a name="line-461"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>elemDescr</span>
+<a name="line-462"></a>      <span class='varid'>decls</span>    <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>
+<a name="line-463"></a>
+<a name="line-464"></a>      <span class='varid'>checkNotDeclared</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-465"></a>      <span class='varid'>checkNotDeclared</span>
+<a name="line-466"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-467"></a>	    <span class='varop'>`guards`</span>
+<a name="line-468"></a>	    <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>elemName</span> <span class='varid'>decls</span> <span class='layout'>)</span>
+<a name="line-469"></a>
+<a name="line-470"></a>      <span class='varid'>searchForDeclaredAtt</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'>XmlArrow</span>
+<a name="line-471"></a>      <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>dn</span> <span class='conop'>:</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-472"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span>
+<a name="line-473"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span><span class='layout'>)</span> <span class='varop'>/=</span> <span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-474"></a>		<span class='varop'>`guards`</span>
+<a name="line-475"></a>		<span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='varid'>xs</span>
+<a name="line-476"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-477"></a>	      <span class='keyglyph'>=</span> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='varid'>xs</span>
+<a name="line-478"></a>
+<a name="line-479"></a>      <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='conid'>[]</span>
+<a name="line-480"></a>	  <span class='keyglyph'>=</span> <span class='varid'>mkErr</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span>
+<a name="line-481"></a>	    <span class='keyword'>where</span>
+<a name="line-482"></a>	    <span class='varid'>mkErr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span>
+<a name="line-483"></a>			    <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is not declared in DTD."</span> <span class='layout'>)</span>
+<a name="line-484"></a>
+<a name="line-485"></a><span class='comment'>-- |</span>
+<a name="line-486"></a><span class='comment'>-- Validate that the attribute value meets the lexical constraints of its type.</span>
+<a name="line-487"></a><span class='comment'>-- Validity constaint: Attribute Value Type (3.1 \/ p.19 in Spec)</span>
+<a name="line-488"></a><span class='comment'>--</span>
+<a name="line-489"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-490"></a><span class='comment'>--</span>
+<a name="line-491"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-492"></a><span class='comment'>--</span>
+<a name="line-493"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-494"></a><span class='comment'>--                  attributes meet the lexical constraints and returns a list of errors</span>
+<a name="line-495"></a>
+<a name="line-496"></a><a name="checkValuesOfAttributes"></a><span class='definition'>checkValuesOfAttributes</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-497"></a><span class='definition'>checkValuesOfAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dtdPart</span> <span class='varid'>elemDescr</span>
+<a name="line-498"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkValues</span>
+<a name="line-499"></a>      <span class='keyword'>where</span>
+<a name="line-500"></a>      <span class='varid'>elemName</span>	<span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>elemDescr</span>
+<a name="line-501"></a>      <span class='varid'>decls</span>     <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>
+<a name="line-502"></a>
+<a name="line-503"></a>      <span class='varid'>checkValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-504"></a>      <span class='varid'>checkValues</span>
+<a name="line-505"></a>	  <span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-506"></a>	    <span class='varop'>`guards`</span>
+<a name="line-507"></a>	    <span class='layout'>(</span> <span class='varid'>checkValue</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrl</span> <span class='layout'>)</span>
+<a name="line-508"></a>
+<a name="line-509"></a>      <span class='varid'>checkValue</span> <span class='varid'>att</span>
+<a name="line-510"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkVal</span> <span class='varop'>$</span> <span class='varid'>decls</span>
+<a name="line-511"></a>	    <span class='keyword'>where</span>
+<a name="line-512"></a>	    <span class='varid'>checkVal</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-513"></a>	    <span class='varid'>checkVal</span> <span class='varid'>attrDecl</span>
+<a name="line-514"></a>		<span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>
+<a name="line-515"></a>		  <span class='varop'>&amp;&amp;</span>
+<a name="line-516"></a>		  <span class='varid'>nameOfAttr</span> <span class='varid'>att</span> <span class='varop'>==</span> <span class='varid'>dtd_value</span> <span class='varid'>al'</span>
+<a name="line-517"></a>		      <span class='keyglyph'>=</span> <span class='varid'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span>
+<a name="line-518"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-519"></a>		    <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-520"></a>		<span class='keyword'>where</span>
+<a name="line-521"></a>		<span class='varid'>al'</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>
+<a name="line-522"></a>
+<a name="line-523"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-IdValidation.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-IdValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-IdValidation.html
@@ -0,0 +1,276 @@
+<!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     : Text.XML.HXT.DTDValidation.IdValidation
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides functions for checking special ID/IDREF/IDREFS constraints.
+<a name="line-13"></a>
+<a name="line-14"></a>   Checking special ID\/IDREF\/IDREFS constraints means:
+<a name="line-15"></a>
+<a name="line-16"></a>    - checking that all ID values are unique.
+<a name="line-17"></a>
+<a name="line-18"></a>    - checking that all IDREF\/IDREFS values match the value of some ID attribute
+<a name="line-19"></a>
+<a name="line-20"></a>   ID-Validation should be started before or after validating the document.
+<a name="line-21"></a>
+<a name="line-22"></a>   First all nodes with ID attributes are collected from the document, then
+<a name="line-23"></a>   it is validated that values of ID attributes do not occure more than once.
+<a name="line-24"></a>   During a second iteration over the document it is validated that there exists
+<a name="line-25"></a>   an ID attribute value for IDREF\/IDREFS attribute values.
+<a name="line-26"></a>
+<a name="line-27"></a>-}</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-30"></a>
+<a name="line-31"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>IdValidation</span>
+<a name="line-32"></a>    <span class='layout'>(</span> <span class='varid'>validateIds</span>
+<a name="line-33"></a>    <span class='layout'>)</span>
+<a name="line-34"></a><span class='keyword'>where</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-37"></a>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>
+<a name="line-40"></a>
+<a name="line-41"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-42"></a>
+<a name="line-43"></a><span class='comment'>-- |</span>
+<a name="line-44"></a><span class='comment'>-- Lookup-table which maps element names to their validation functions. The</span>
+<a name="line-45"></a><span class='comment'>-- validation functions are XmlFilters.</span>
+<a name="line-46"></a>
+<a name="line-47"></a><a name="IdEnvTable"></a><span class='keyword'>type</span> <span class='conid'>IdEnvTable</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>
+<a name="line-48"></a><a name="IdEnv"></a><span class='keyword'>type</span> <span class='conid'>IdEnv</span> 		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>IdFct</span><span class='layout'>)</span>
+<a name="line-49"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span>		<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-50"></a><a name="IdFct"></a><span class='keyword'>type</span> <span class='conid'>IdFct</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlArrow</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'>-- |</span>
+<a name="line-55"></a><span class='comment'>-- Perform the validation of the ID/IDREF/IDREFS constraints.</span>
+<a name="line-56"></a><span class='comment'>--</span>
+<a name="line-57"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree</span>
+<a name="line-58"></a><span class='comment'>--</span>
+<a name="line-59"></a><span class='comment'>--    - 2.parameter doc :  the document subset of the XmlTree</span>
+<a name="line-60"></a><span class='comment'>--</span>
+<a name="line-61"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-62"></a>
+<a name="line-63"></a><a name="validateIds"></a><span class='definition'>validateIds</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-64"></a><span class='definition'>validateIds</span> <span class='varid'>dtdPart</span>
+<a name="line-65"></a>    <span class='keyglyph'>=</span> <span class='varid'>validateIds'</span> <span class='varop'>$&lt;</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>idEnv</span><span class='layout'>)</span>
+<a name="line-66"></a>      <span class='keyword'>where</span>
+<a name="line-67"></a>      <span class='varid'>idAttrTypes</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isIdAttrType</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>
+<a name="line-68"></a>      <span class='varid'>elements</span>	  <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDElement</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>
+<a name="line-69"></a>      <span class='varid'>atts</span>        <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isDTDAttlist</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>
+<a name="line-70"></a>      <span class='varid'>idEnv</span>	  <span class='keyglyph'>=</span> <span class='varid'>buildIdCollectorFcts</span> <span class='varid'>idAttrTypes</span>
+<a name="line-71"></a>
+<a name="line-72"></a>      <span class='varid'>validateIds'</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-73"></a>      <span class='varid'>validateIds'</span> <span class='varid'>idNodeList</span>
+<a name="line-74"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>idNodeList</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkForUniqueIds</span> <span class='varid'>idAttrTypes</span> <span class='layout'>)</span>
+<a name="line-75"></a>	    <span class='varop'>&lt;+&gt;</span>
+<a name="line-76"></a>	    <span class='varid'>checkIdReferences</span> <span class='varid'>idRefEnv</span>
+<a name="line-77"></a>	  <span class='keyword'>where</span>
+<a name="line-78"></a>	  <span class='varid'>idRefEnv</span>   <span class='keyglyph'>=</span> <span class='varid'>buildIdrefValidationFcts</span> <span class='varid'>idAttrTypes</span> <span class='varid'>elements</span> <span class='varid'>atts</span> <span class='varid'>idNodeList</span>
+<a name="line-79"></a>
+<a name="line-80"></a>
+<a name="line-81"></a>
+<a name="line-82"></a><span class='comment'>-- |</span>
+<a name="line-83"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>
+<a name="line-84"></a><span class='comment'>--</span>
+<a name="line-85"></a><span class='comment'>--    * 1.parameter idEnv :  lookup-table which maps element names to their validation functions</span>
+<a name="line-86"></a><span class='comment'>--</span>
+<a name="line-87"></a><span class='comment'>--    - returns : list of errors</span>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>IdEnvTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-90"></a><span class='definition'>traverseTree</span> <span class='varid'>idEnv</span>
+<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>idFct</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-92"></a>      <span class='keyword'>where</span>
+<a name="line-93"></a>      <span class='varid'>idFct</span> 		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-94"></a>      <span class='varid'>idFct</span> <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>none</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>idEnv</span>
+<a name="line-95"></a>
+<a name="line-96"></a><span class='comment'>-- |</span>
+<a name="line-97"></a><span class='comment'>-- Returns the value of an element's ID attribute. The attribute name has to be</span>
+<a name="line-98"></a><span class='comment'>-- retrieved first from the DTD.</span>
+<a name="line-99"></a><span class='comment'>--</span>
+<a name="line-100"></a><span class='comment'>--    * 1.parameter dtdPart :  list of ID attribute definitions from the DTD</span>
+<a name="line-101"></a><span class='comment'>--</span>
+<a name="line-102"></a><span class='comment'>--    - 2.parameter n :  element which ID attribute value should be returned</span>
+<a name="line-103"></a><span class='comment'>--</span>
+<a name="line-104"></a><span class='comment'>--    - returns : normalized value of the ID attribute</span>
+<a name="line-105"></a>
+<a name="line-106"></a><a name="getIdValue"></a><span class='definition'>getIdValue</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-107"></a><span class='definition'>getIdValue</span> <span class='varid'>dns</span>
+<a name="line-108"></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'>single</span> <span class='varid'>getIdValue'</span><span class='layout'>)</span>
+<a name="line-109"></a>    <span class='keyword'>where</span>
+<a name="line-110"></a>    <span class='varid'>getIdValue'</span>	<span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-111"></a>    <span class='varid'>getIdValue'</span>
+<a name="line-112"></a>	<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='varid'>catA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>getIdVal</span> <span class='varid'>dns</span><span class='layout'>)</span>
+<a name="line-113"></a>	<span class='keyword'>where</span>
+<a name="line-114"></a>	<span class='varid'>getIdVal</span> <span class='varid'>dn</span>
+<a name="line-115"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='varid'>hasName</span> <span class='varid'>elemName</span>
+<a name="line-116"></a>					  <span class='varop'>`guards`</span>
+<a name="line-117"></a>					  <span class='layout'>(</span> <span class='varid'>getAttrValue0</span> <span class='varid'>attrName</span>
+<a name="line-118"></a>					    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-119"></a>					    <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>dn</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-120"></a>					  <span class='layout'>)</span>
+<a name="line-121"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-122"></a>	    <span class='keyword'>where</span>
+<a name="line-123"></a>	    <span class='varid'>al</span>       <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-124"></a>	    <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span>  <span class='varid'>al</span>
+<a name="line-125"></a>	    <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-126"></a>
+<a name="line-127"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-128"></a>
+<a name="line-129"></a>
+<a name="line-130"></a><span class='comment'>-- |</span>
+<a name="line-131"></a><span class='comment'>-- Build collector functions which return XTag nodes with ID attributes from</span>
+<a name="line-132"></a><span class='comment'>-- a document.</span>
+<a name="line-133"></a><span class='comment'>--</span>
+<a name="line-134"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-135"></a><span class='comment'>--</span>
+<a name="line-136"></a><span class='comment'>--    - returns : lookup-table which maps element names to their collector function</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="buildIdCollectorFcts"></a><span class='definition'>buildIdCollectorFcts</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IdEnvTable</span>
+<a name="line-139"></a><span class='definition'>buildIdCollectorFcts</span> <span class='varid'>idAttrTypes</span>
+<a name="line-140"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>buildIdCollectorFct</span> <span class='varid'>idAttrTypes</span>
+<a name="line-141"></a>      <span class='keyword'>where</span>
+<a name="line-142"></a>      <span class='varid'>buildIdCollectorFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>
+<a name="line-143"></a>      <span class='varid'>buildIdCollectorFct</span> <span class='varid'>dn</span>
+<a name="line-144"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>hasAttr</span> <span class='varid'>attrName</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-145"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-146"></a>	  <span class='keyword'>where</span>
+<a name="line-147"></a>	  <span class='varid'>al</span>       <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-148"></a>          <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span>  <span class='varid'>al</span>
+<a name="line-149"></a>	  <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-150"></a>
+<a name="line-151"></a><span class='comment'>-- |</span>
+<a name="line-152"></a><span class='comment'>-- Build validation functions for checking if IDREF\/IDREFS values match a value</span>
+<a name="line-153"></a><span class='comment'>-- of some ID attributes.</span>
+<a name="line-154"></a><span class='comment'>--</span>
+<a name="line-155"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-156"></a><span class='comment'>--</span>
+<a name="line-157"></a><span class='comment'>--    - 2.parameter idNodeList :  list of all XTag nodes with ID attributes</span>
+<a name="line-158"></a><span class='comment'>--</span>
+<a name="line-159"></a><span class='comment'>--    - returns : lookup-table which maps element names to their validation function</span>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="buildIdrefValidationFcts"></a><span class='definition'>buildIdrefValidationFcts</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'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IdEnvTable</span>
+<a name="line-162"></a><span class='definition'>buildIdrefValidationFcts</span> <span class='varid'>idAttrTypes</span> <span class='varid'>elements</span> <span class='varid'>atts</span> <span class='varid'>idNodeList</span>
+<a name="line-163"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>buildElemValidationFct</span> <span class='varid'>elements</span>
+<a name="line-164"></a>      <span class='keyword'>where</span>
+<a name="line-165"></a>      <span class='varid'>idValueList</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getIdValue</span> <span class='varid'>idAttrTypes</span><span class='layout'>)</span> <span class='varid'>idNodeList</span>
+<a name="line-166"></a>
+<a name="line-167"></a>      <span class='varid'>buildElemValidationFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>
+<a name="line-168"></a>      <span class='varid'>buildElemValidationFct</span> <span class='varid'>dn</span>
+<a name="line-169"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>buildIdrefValidationFct</span> <span class='varid'>idRefAttrTypes</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-170"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-171"></a>	  <span class='keyword'>where</span>
+<a name="line-172"></a>	  <span class='varid'>al</span>             <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-173"></a>	  <span class='varid'>elemName</span>       <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>
+<a name="line-174"></a>	  <span class='varid'>idRefAttrTypes</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isIdRefAttrType</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>atts</span>
+<a name="line-175"></a>
+<a name="line-176"></a>      <span class='varid'>buildIdrefValidationFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-177"></a>      <span class='varid'>buildIdrefValidationFct</span>
+<a name="line-178"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>buildIdref</span>
+<a name="line-179"></a>
+<a name="line-180"></a>      <span class='varid'>buildIdref</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-181"></a>      <span class='varid'>buildIdref</span> <span class='varid'>dn</span>
+<a name="line-182"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span>	<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>checkIdref</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span>
+<a name="line-183"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-184"></a>	  <span class='keyword'>where</span>
+<a name="line-185"></a>	  <span class='varid'>al</span>             <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>
+<a name="line-186"></a>	  <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>
+<a name="line-187"></a>	  <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span>  <span class='varid'>al</span>
+<a name="line-188"></a>
+<a name="line-189"></a>	  <span class='varid'>checkIdref</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-190"></a>	  <span class='varid'>checkIdref</span> <span class='varid'>name</span>
+<a name="line-191"></a>	      <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='varid'>attrName</span>
+<a name="line-192"></a>		<span class='varop'>`guards`</span>
+<a name="line-193"></a>		<span class='layout'>(</span> <span class='varid'>checkIdVal</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>attrName</span> <span class='layout'>)</span>
+<a name="line-194"></a>	      <span class='keyword'>where</span>
+<a name="line-195"></a>	      <span class='varid'>checkIdVal</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-196"></a>	      <span class='varid'>checkIdVal</span> <span class='varid'>av</span>
+<a name="line-197"></a>		  <span class='keyglyph'>|</span> <span class='varid'>attrType</span> <span class='varop'>==</span> <span class='varid'>k_idref</span>
+<a name="line-198"></a>		      <span class='keyglyph'>=</span> <span class='varid'>checkValueDeclared</span> <span class='varid'>attrValue</span>
+<a name="line-199"></a>		  <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>valueList</span>
+<a name="line-200"></a>		      <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrName</span> <span class='varop'>++</span>
+<a name="line-201"></a>			      <span class='str'>" of Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-202"></a>			      <span class='str'>" must have at least one name."</span>
+<a name="line-203"></a>			    <span class='layout'>)</span>
+<a name="line-204"></a>		  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-205"></a>		      <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkValueDeclared</span> <span class='varop'>$</span> <span class='varid'>valueList</span>
+<a name="line-206"></a>		  <span class='keyword'>where</span>
+<a name="line-207"></a>		  <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>
+<a name="line-208"></a>		  <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>dn</span><span class='layout'>)</span> <span class='varid'>av</span>
+<a name="line-209"></a>
+<a name="line-210"></a>	  <span class='varid'>checkValueDeclared</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlArrow</span>
+<a name="line-211"></a>	  <span class='varid'>checkValueDeclared</span>  <span class='varid'>attrValue</span>
+<a name="line-212"></a>	      <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>attrValue</span> <span class='varop'>`elem`</span> <span class='varid'>idValueList</span>
+<a name="line-213"></a>		<span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-214"></a>		<span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"An Element with identifier "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span>
+<a name="line-215"></a>		           <span class='str'>" must appear in the document."</span>
+<a name="line-216"></a>			 <span class='layout'>)</span>
+<a name="line-217"></a>
+<a name="line-218"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-219"></a>
+<a name="line-220"></a>
+<a name="line-221"></a><span class='comment'>-- |</span>
+<a name="line-222"></a><span class='comment'>-- Validate that all ID values are unique within a document.</span>
+<a name="line-223"></a><span class='comment'>-- Validity constraint: ID (3.3.1 \/p. 25 in Spec)</span>
+<a name="line-224"></a><span class='comment'>--</span>
+<a name="line-225"></a><span class='comment'>--    * 1.parameter idNodeList :  list of all XTag nodes with ID attributes</span>
+<a name="line-226"></a><span class='comment'>--</span>
+<a name="line-227"></a><span class='comment'>--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-228"></a><span class='comment'>--</span>
+<a name="line-229"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-230"></a>
+<a name="line-231"></a><a name="checkForUniqueIds"></a><span class='definition'>checkForUniqueIds</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>
+<a name="line-232"></a><span class='definition'>checkForUniqueIds</span> <span class='varid'>idAttrTypes</span>		 <span class='comment'>-- idNodeList</span>
+<a name="line-233"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>
+<a name="line-234"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-235"></a>		   <span class='varid'>isElem</span>
+<a name="line-236"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-237"></a>		   <span class='layout'>(</span><span class='varid'>checkForUniqueId</span> <span class='varop'>$&lt;&lt;</span> <span class='varid'>getName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span><span class='layout'>)</span>
+<a name="line-238"></a>		 <span class='layout'>)</span>
+<a name="line-239"></a>      <span class='keyword'>where</span>
+<a name="line-240"></a>      <span class='varid'>checkForUniqueId</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-241"></a>      <span class='varid'>checkForUniqueId</span> <span class='varid'>name</span> <span class='varid'>x</span>
+<a name="line-242"></a>	  <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getState</span>
+<a name="line-243"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-244"></a>		  <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>attrValue</span> <span class='varop'>`elem`</span><span class='layout'>)</span>
+<a name="line-245"></a>		<span class='layout'>)</span>
+<a name="line-246"></a>	    <span class='layout'>(</span><span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of type ID for element "</span> <span class='varop'>++</span>
+<a name="line-247"></a>	           <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" must be unique within the document."</span> <span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-248"></a>            <span class='layout'>(</span><span class='varid'>nextState</span> <span class='layout'>(</span><span class='varid'>attrValue</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>none</span><span class='layout'>)</span>
+<a name="line-249"></a>	  <span class='keyword'>where</span>
+<a name="line-250"></a>	  <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>getIdValue</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>name</span> <span class='varop'>$$</span> <span class='varid'>idAttrTypes</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-251"></a>
+<a name="line-252"></a><span class='comment'>-- |</span>
+<a name="line-253"></a><span class='comment'>-- Validate that all IDREF\/IDREFS values match the value of some ID attribute.</span>
+<a name="line-254"></a><span class='comment'>-- Validity constraint: IDREF (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-255"></a><span class='comment'>--</span>
+<a name="line-256"></a><span class='comment'>--    * 1.parameter idRefEnv :  lookup-table which maps element names to their validation function</span>
+<a name="line-257"></a><span class='comment'>--</span>
+<a name="line-258"></a><span class='comment'>--    - 2.parameter doc :  the document to validate</span>
+<a name="line-259"></a><span class='comment'>--</span>
+<a name="line-260"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="checkIdReferences"></a><span class='definition'>checkIdReferences</span> <span class='keyglyph'>::</span> <span class='conid'>IdEnvTable</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'>checkIdReferences</span> <span class='varid'>idRefEnv</span>
+<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>idRefEnv</span>
+<a name="line-265"></a>
+<a name="line-266"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-RE.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-RE.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-RE.html
@@ -0,0 +1,351 @@
+<!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     : Text.XML.HXT.DTDValidation.RE
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   A module for regular expression matching based on derivatives of regular expressions.
+<a name="line-13"></a>
+<a name="line-14"></a>   The code was taken from Joe English (&lt;<a href="http://www.flightlab.com/~joe/sgml/validate.html">http://www.flightlab.com/~joe/sgml/validate.html</a>&gt;).
+<a name="line-15"></a>   Tested and extended by Martin Schmidt.
+<a name="line-16"></a>
+<a name="line-17"></a>   Further references for the algorithm:
+<a name="line-18"></a>
+<a name="line-19"></a>   Janusz A. Brzozowski.
+<a name="line-20"></a>
+<a name="line-21"></a>   	Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. 
+<a name="line-22"></a>
+<a name="line-23"></a>   Mark Hopkins.
+<a name="line-24"></a>
+<a name="line-25"></a>	Regular Expression Package. Posted to comp.compilers, 1994.
+<a name="line-26"></a>        Available per FTP at &lt;ftp://iecc.com/pub/file/regex.tar.gz&gt;.
+<a name="line-27"></a>-}</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-30"></a>
+<a name="line-31"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>RE</span>
+<a name="line-32"></a>    <span class='layout'>(</span> <span class='conid'>RE</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>re_unit</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>re_zero</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>re_sym</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>re_rep</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>re_plus</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>re_opt</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>re_seq</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>re_alt</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>re_dot</span>
+<a name="line-43"></a>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>checkRE</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>matches</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>nullable</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>printRE</span>
+<a name="line-48"></a>  <span class='layout'>)</span>
+<a name="line-49"></a><span class='keyword'>where</span>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- |</span>
+<a name="line-52"></a><span class='comment'>-- Data type for regular expressions.</span>
+<a name="line-53"></a>
+<a name="line-54"></a><a name="RE"></a><span class='keyword'>data</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>=</span>
+<a name="line-55"></a>	<span class='conid'>RE_ZERO</span>	<span class='conid'>String</span>		<span class='comment'>--' L(0)   = {} (empty set)</span>
+<a name="line-56"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_UNIT</span>		<span class='comment'>--' L(1)   = { [] } (empty sequence)</span>
+<a name="line-57"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_SYM</span> <span class='varid'>a</span>		<span class='comment'>--' L(x)   = { [x] }</span>
+<a name="line-58"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_DOT</span>                <span class='comment'>--' accept any single symbol</span>
+<a name="line-59"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>		<span class='comment'>--' L(e*)  = { [] } `union` L(e+)</span>
+<a name="line-60"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_PLUS</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>	<span class='comment'>--' L(e+)  = { x ++ y | x &lt;- L(e), y &lt;- L(e*) }</span>
+<a name="line-61"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_OPT</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>		<span class='comment'>--' L(e?)  = L(e) `union` { [] }</span>
+<a name="line-62"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_SEQ</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>	<span class='comment'>--' L(e,f) = { x ++ y | x &lt;- L(e), y &lt;- L(f) }</span>
+<a name="line-63"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_ALT</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>	<span class='comment'>--' L(e|f) = L(e) `union` L(f)</span>
+<a name="line-64"></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>
+<a name="line-65"></a>
+<a name="line-66"></a>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-69"></a><span class='comment'>-- Constructor functions to simplify regular expressions when constructing them.</span>
+<a name="line-70"></a>
+<a name="line-71"></a><span class='comment'>-- |</span>
+<a name="line-72"></a><span class='comment'>-- Constructs a regular expression for an empty set.</span>
+<a name="line-73"></a><span class='comment'>--</span>
+<a name="line-74"></a><span class='comment'>--    * 1.parameter errMsg :  error message</span>
+<a name="line-75"></a><span class='comment'>--</span>
+<a name="line-76"></a><span class='comment'>--    - returns : regular expression for an empty set</span>
+<a name="line-77"></a>
+<a name="line-78"></a><a name="re_zero"></a><span class='definition'>re_zero</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-79"></a><span class='definition'>re_zero</span> <span class='varid'>m</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-80"></a>
+<a name="line-81"></a>
+<a name="line-82"></a><span class='comment'>-- |</span>
+<a name="line-83"></a><span class='comment'>-- Constructs a regular expression for an empty sequence.</span>
+<a name="line-84"></a><span class='comment'>--</span>
+<a name="line-85"></a><span class='comment'>--    - returns : regular expression for an empty sequence</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="re_unit"></a><span class='definition'>re_unit</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-88"></a><span class='definition'>re_unit</span>			<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-89"></a>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- |</span>
+<a name="line-92"></a><span class='comment'>-- Constructs a regular expression for accepting a symbol</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>--    * 1.parameter sym :  the symbol to be accepted</span>
+<a name="line-95"></a><span class='comment'>--</span>
+<a name="line-96"></a><span class='comment'>--    - returns : regular expression for accepting a symbol</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="re_sym"></a><span class='definition'>re_sym</span>			<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-99"></a><span class='definition'>re_sym</span> <span class='varid'>x</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_SYM</span> <span class='varid'>x</span>
+<a name="line-100"></a>
+<a name="line-101"></a>
+<a name="line-102"></a><span class='comment'>-- |</span>
+<a name="line-103"></a><span class='comment'>-- Constructs a regular expression for accepting any singel symbol</span>
+<a name="line-104"></a><span class='comment'>--</span>
+<a name="line-105"></a><span class='comment'>--    - returns : regular expression for accepting any singel symbol</span>
+<a name="line-106"></a>
+<a name="line-107"></a><a name="re_dot"></a><span class='definition'>re_dot</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-108"></a><span class='definition'>re_dot</span>			<span class='keyglyph'>=</span> <span class='conid'>RE_DOT</span>
+<a name="line-109"></a>
+<a name="line-110"></a>
+<a name="line-111"></a><span class='comment'>-- |</span>
+<a name="line-112"></a><span class='comment'>-- Constructs an optional repetition (*) of a regular expression</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>--    * 1.parameter re_a :  regular expression to be repeted</span>
+<a name="line-115"></a><span class='comment'>--</span>
+<a name="line-116"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="re_rep"></a><span class='definition'>re_rep</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-119"></a><span class='definition'>re_rep</span> <span class='conid'>RE_UNIT</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-120"></a><span class='definition'>re_rep</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-121"></a><span class='definition'>re_rep</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e</span><span class='layout'>)</span>		<span class='comment'>-- remove nested reps</span>
+<a name="line-122"></a><span class='definition'>re_rep</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e</span><span class='layout'>)</span>		<span class='comment'>-- remove nested reps in alternatives</span>
+<a name="line-123"></a><span class='definition'>re_rep</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='varid'>e</span>
+<a name="line-124"></a>
+<a name="line-125"></a><span class='comment'>-- |</span>
+<a name="line-126"></a><span class='comment'>-- remove redundant nested *'s in RE</span>
+<a name="line-127"></a><span class='comment'>-- theoretically this is unneccessary,</span>
+<a name="line-128"></a><span class='comment'>-- but without this simplification the runtime can increase exponentally</span>
+<a name="line-129"></a><span class='comment'>-- when computing deltas, e.g. for a** or (a|b*)* which is the same as (a|b)*</span>
+<a name="line-130"></a>
+<a name="line-131"></a><a name="rem_rep"></a><span class='definition'>rem_rep</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-132"></a><span class='definition'>rem_rep</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_ALT</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e2</span><span class='layout'>)</span>
+<a name="line-133"></a><span class='definition'>rem_rep</span> <span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='varid'>e1</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rem_rep</span> <span class='varid'>e1</span>
+<a name="line-134"></a><span class='definition'>rem_rep</span> <span class='varid'>e1</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-135"></a>
+<a name="line-136"></a>
+<a name="line-137"></a><span class='comment'>-- |</span>
+<a name="line-138"></a><span class='comment'>-- Constructs a repetition (+) of a regular expression</span>
+<a name="line-139"></a><span class='comment'>--</span>
+<a name="line-140"></a><span class='comment'>--    * 1.parameter re_a :  regular expression to be repeted</span>
+<a name="line-141"></a><span class='comment'>--</span>
+<a name="line-142"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="re_plus"></a><span class='definition'>re_plus</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-145"></a><span class='definition'>re_plus</span> <span class='conid'>RE_UNIT</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-146"></a><span class='definition'>re_plus</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-147"></a><span class='definition'>re_plus</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>
+<a name="line-148"></a>
+<a name="line-149"></a>
+<a name="line-150"></a><span class='comment'>-- |</span>
+<a name="line-151"></a><span class='comment'>-- Constructs an option (?) of a regular expression</span>
+<a name="line-152"></a><span class='comment'>--</span>
+<a name="line-153"></a><span class='comment'>--    * 1.parameter re_a :  regular expression to be optional</span>
+<a name="line-154"></a><span class='comment'>--</span>
+<a name="line-155"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="re_opt"></a><span class='definition'>re_opt</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-158"></a><span class='definition'>re_opt</span> <span class='conid'>RE_UNIT</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-159"></a><span class='definition'>re_opt</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-160"></a><span class='definition'>re_opt</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_OPT</span> <span class='varid'>e</span>
+<a name="line-161"></a>
+<a name="line-162"></a>
+<a name="line-163"></a><span class='comment'>-- |</span>
+<a name="line-164"></a><span class='comment'>-- Constructs a sequence (,) of two regular expressions</span>
+<a name="line-165"></a><span class='comment'>--</span>
+<a name="line-166"></a><span class='comment'>--    * 1.parameter re_a :  first regular expression in sequence</span>
+<a name="line-167"></a><span class='comment'>--</span>
+<a name="line-168"></a><span class='comment'>--    - 2.parameter re_b :  second regular expression in sequence</span>
+<a name="line-169"></a><span class='comment'>--</span>
+<a name="line-170"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="re_seq"></a><span class='definition'>re_seq</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-173"></a><span class='definition'>re_seq</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-174"></a><span class='definition'>re_seq</span> <span class='conid'>RE_UNIT</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-175"></a><span class='definition'>re_seq</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-176"></a><span class='definition'>re_seq</span> <span class='varid'>e</span> <span class='conid'>RE_UNIT</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-177"></a><span class='definition'>re_seq</span> <span class='varid'>e</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</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'>-- Constructs an alternative (|) of two regular expressions</span>
+<a name="line-182"></a><span class='comment'>--</span>
+<a name="line-183"></a><span class='comment'>--    * 1.parameter re_a :  first regular expression of alternative</span>
+<a name="line-184"></a><span class='comment'>--</span>
+<a name="line-185"></a><span class='comment'>--    - 2.parameter re_b :  second regular expression of alternative</span>
+<a name="line-186"></a><span class='comment'>--</span>
+<a name="line-187"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-188"></a>
+<a name="line-189"></a><a name="re_alt"></a><span class='definition'>re_alt</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-190"></a><span class='definition'>re_alt</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-191"></a><span class='definition'>re_alt</span> <span class='varid'>e</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-192"></a><span class='definition'>re_alt</span> <span class='varid'>e</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-193"></a>
+<a name="line-194"></a>
+<a name="line-195"></a>
+<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-197"></a>
+<a name="line-198"></a>
+<a name="line-199"></a><span class='comment'>-- |</span>
+<a name="line-200"></a><span class='comment'>-- Checks if a regular expression matches the empty sequence.</span>
+<a name="line-201"></a><span class='comment'>--</span>
+<a name="line-202"></a><span class='comment'>-- nullable e == [] `in` L(e)</span>
+<a name="line-203"></a><span class='comment'>--</span>
+<a name="line-204"></a><span class='comment'>-- This check indicates if a regular expression fits to a sentence or not.</span>
+<a name="line-205"></a><span class='comment'>--</span>
+<a name="line-206"></a><span class='comment'>--    * 1.parameter re :  regular expression to be checked</span>
+<a name="line-207"></a><span class='comment'>--</span>
+<a name="line-208"></a><span class='comment'>--    - returns : true if regular expression matches the empty sequence,</span>
+<a name="line-209"></a><span class='comment'>--                otherwise false</span>
+<a name="line-210"></a>
+<a name="line-211"></a><a name="nullable"></a><span class='definition'>nullable</span>		<span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-212"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-213"></a><span class='definition'>nullable</span> <span class='conid'>RE_UNIT</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-214"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_SYM</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-215"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-216"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_PLUS</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-217"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_OPT</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-218"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>nullable</span> <span class='varid'>f</span>
+<a name="line-219"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>f</span>
+<a name="line-220"></a><span class='definition'>nullable</span> <span class='conid'>RE_DOT</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-221"></a>
+<a name="line-222"></a>
+<a name="line-223"></a><span class='comment'>-- |</span>
+<a name="line-224"></a><span class='comment'>-- Derives a regular expression with respect to one symbol.</span>
+<a name="line-225"></a><span class='comment'>--</span>
+<a name="line-226"></a><span class='comment'>-- L(delta e x) = x \ L(e)</span>
+<a name="line-227"></a><span class='comment'>--</span>
+<a name="line-228"></a><span class='comment'>--    * 1.parameter re :  regular expression to be derived</span>
+<a name="line-229"></a><span class='comment'>--</span>
+<a name="line-230"></a><span class='comment'>--    - 2.parameter sym :  the symbol on which the regular expression is applied</span>
+<a name="line-231"></a><span class='comment'>--</span>
+<a name="line-232"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-233"></a>
+<a name="line-234"></a><a name="delta"></a><span class='definition'>delta</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='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-235"></a><span class='definition'>delta</span> <span class='varid'>re</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>
+<a name="line-236"></a>	<span class='conid'>RE_ZERO</span>	<span class='keyword'>_</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re</span>					<span class='comment'>-- re_zero m</span>
+<a name="line-237"></a>	<span class='conid'>RE_UNIT</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>" unexpected."</span><span class='layout'>)</span>
+<a name="line-238"></a>	<span class='conid'>RE_SYM</span> <span class='varid'>sym</span>
+<a name="line-239"></a>		<span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>sym</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-240"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sym</span> <span class='varop'>++</span> <span class='str'>" expected, but symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>" found."</span><span class='layout'>)</span>
+<a name="line-241"></a>	<span class='conid'>RE_REP</span>  <span class='varid'>e</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>re</span>		<span class='comment'>-- (re_rep e)</span>
+<a name="line-242"></a>	<span class='conid'>RE_PLUS</span> <span class='varid'>e</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-243"></a>	<span class='conid'>RE_OPT</span>  <span class='varid'>e</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span>
+<a name="line-244"></a>	<span class='conid'>RE_SEQ</span>  <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-245"></a>		<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-246"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-247"></a>	<span class='conid'>RE_ALT</span>  <span class='varid'>e</span> <span class='varid'>f</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-248"></a>	<span class='conid'>RE_DOT</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-249"></a>
+<a name="line-250"></a>
+<a name="line-251"></a><span class='comment'>-- |</span>
+<a name="line-252"></a><span class='comment'>-- Derives a regular expression with respect to a sentence.</span>
+<a name="line-253"></a><span class='comment'>--</span>
+<a name="line-254"></a><span class='comment'>--    * 1.parameter re :  regular expression</span>
+<a name="line-255"></a><span class='comment'>--</span>
+<a name="line-256"></a><span class='comment'>--    - 2.parameter s :  sentence to which the regular expression is applied</span>
+<a name="line-257"></a><span class='comment'>--</span>
+<a name="line-258"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-259"></a>
+<a name="line-260"></a><a name="matches"></a><span class='definition'>matches</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='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>RE</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='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-261"></a><span class='definition'>matches</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span> <span class='varid'>e</span>
+<a name="line-262"></a>
+<a name="line-263"></a>
+<a name="line-264"></a><span class='comment'>-- |</span>
+<a name="line-265"></a><span class='comment'>-- Checks if an input matched a regular expression. The function should be</span>
+<a name="line-266"></a><span class='comment'>-- called after matches.</span>
+<a name="line-267"></a><span class='comment'>--</span>
+<a name="line-268"></a><span class='comment'>-- Was the sentence used in @matches@ in the language of the regular expression?</span>
+<a name="line-269"></a><span class='comment'>-- -&gt; matches e s == s `in` L(e)?</span>
+<a name="line-270"></a><span class='comment'>--</span>
+<a name="line-271"></a><span class='comment'>--    * 1.parameter re :  the derived regular expression</span>
+<a name="line-272"></a><span class='comment'>--</span>
+<a name="line-273"></a><span class='comment'>--    - returns : empty String if input matched the regular expression, otherwise</span>
+<a name="line-274"></a><span class='comment'>--               an error message is returned</span>
+<a name="line-275"></a>
+<a name="line-276"></a><a name="checkRE"></a><span class='definition'>checkRE</span> <span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-277"></a><span class='definition'>checkRE</span> <span class='layout'>(</span><span class='conid'>RE_UNIT</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-278"></a><span class='definition'>checkRE</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>m</span>
+<a name="line-279"></a><span class='definition'>checkRE</span> <span class='varid'>re</span>
+<a name="line-280"></a>	<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-281"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='str'>"Input must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span>
+<a name="line-282"></a>
+<a name="line-283"></a>
+<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="line-288"></a>
+<a name="line-289"></a><span class='comment'>-- |</span>
+<a name="line-290"></a><span class='comment'>-- Constructs a string representation of a regular expression.</span>
+<a name="line-291"></a><span class='comment'>--</span>
+<a name="line-292"></a><span class='comment'>--    * 1.parameter re :  a regular expression</span>
+<a name="line-293"></a><span class='comment'>--</span>
+<a name="line-294"></a><span class='comment'>--    - returns : the string representation of the regular expression</span>
+<a name="line-295"></a>
+<a name="line-296"></a><a name="printRE"></a><span class='definition'>printRE</span> <span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-297"></a><span class='definition'>printRE</span> <span class='varid'>re'</span>
+<a name="line-298"></a>    <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>re'</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-299"></a>      <span class='keyword'>where</span>
+<a name="line-300"></a>      <span class='varid'>printRE1</span> <span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-301"></a>      <span class='varid'>printRE1</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>
+<a name="line-302"></a>	  <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>				<span class='keyglyph'>-&gt;</span> <span class='str'>"ERROR: "</span> <span class='varop'>++</span> <span class='varid'>m</span>
+<a name="line-303"></a>	  <span class='conid'>RE_UNIT</span>				<span class='keyglyph'>-&gt;</span> <span class='str'>""</span>
+<a name="line-304"></a>	  <span class='conid'>RE_SYM</span> <span class='varid'>sym</span>				<span class='keyglyph'>-&gt;</span> <span class='varid'>show</span> <span class='varid'>sym</span>
+<a name="line-305"></a>	  <span class='conid'>RE_DOT</span>				<span class='keyglyph'>-&gt;</span> <span class='str'>"."</span>
+<a name="line-306"></a>	  <span class='conid'>RE_REP</span> <span class='varid'>e</span>
+<a name="line-307"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"*"</span>
+<a name="line-308"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>
+<a name="line-309"></a>	  <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>
+<a name="line-310"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"+"</span>
+<a name="line-311"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>
+<a name="line-312"></a>	  <span class='conid'>RE_OPT</span> <span class='varid'>e</span>
+<a name="line-313"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"?"</span>
+<a name="line-314"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>
+<a name="line-315"></a>	  <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-316"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isAlt</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isAlt</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") , "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-317"></a>	      <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isAlt</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isAlt</span> <span class='varid'>f</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" , ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-318"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isAlt</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>isAlt</span> <span class='varid'>f</span>		<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") , ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-319"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" , "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-320"></a>	  <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-321"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSeq</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isSeq</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") | "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-322"></a>	      <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isSeq</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isSeq</span> <span class='varid'>f</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" | ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-323"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSeq</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>isSeq</span> <span class='varid'>f</span>		<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") | ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-324"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" | "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-325"></a>
+<a name="line-326"></a>
+<a name="line-327"></a>      <span class='varid'>isSingle</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-328"></a>      <span class='varid'>isSingle</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-329"></a>      <span class='varid'>isSingle</span> <span class='conid'>RE_UNIT</span>        <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-330"></a>      <span class='varid'>isSingle</span> <span class='layout'>(</span><span class='conid'>RE_SYM</span> <span class='keyword'>_</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-331"></a>      <span class='varid'>isSingle</span> <span class='keyword'>_</span>              <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-332"></a>
+<a name="line-333"></a>
+<a name="line-334"></a>      <span class='varid'>isSeq</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-335"></a>      <span class='varid'>isSeq</span> <span class='layout'>(</span><span class='conid'>RE_SEQ</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-336"></a>      <span class='varid'>isSeq</span> <span class='keyword'>_</span>                 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-337"></a>
+<a name="line-338"></a>
+<a name="line-339"></a>      <span class='varid'>isAlt</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-340"></a>      <span class='varid'>isAlt</span> <span class='layout'>(</span><span class='conid'>RE_ALT</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-341"></a>      <span class='varid'>isAlt</span> <span class='keyword'>_</span>                 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-TypeDefs.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-TypeDefs.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-TypeDefs.html
@@ -0,0 +1,175 @@
+<!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     : Text.XML.HXT.DTDValidation.TypeDefs
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides all datatypes for DTD validation
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</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'>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'>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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='keyword'>module</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='layout'>,</span> <span class='keyword'>module</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='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-27"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-28"></a>    <span class='layout'>,</span> <span class='keyword'>module</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-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a><span class='keyword'>where</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='comment'>-- classes</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'>ArrowList</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'>ArrowIf</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'>ArrowState</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'>ArrowTree</span>
+<a name="line-37"></a>
+<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>		<span class='comment'>-- arrow types</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'>StateListArrow</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'>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'>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-44"></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-45"></a>
+<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='keyword'>infixr</span> <span class='num'>0</span> <span class='varop'>$$</span>
+<a name="line-49"></a>
+<a name="line-50"></a><a name="XmlArrow"></a><span class='keyword'>type</span> <span class='conid'>XmlArrow</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-51"></a><a name="XmlArrowS"></a><span class='keyword'>type</span> <span class='conid'>XmlArrowS</span>	<span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTrees</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="dtd_name"></a><span class='definition'>dtd_name</span>
+<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>dtd_value</span>
+<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>dtd_type</span>
+<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>dtd_kind</span>
+<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>dtd_modifier</span>
+<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>dtd_default</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-61"></a>
+<a name="line-62"></a><span class='definition'>dtd_name</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>
+<a name="line-63"></a><a name="dtd_value"></a><span class='definition'>dtd_value</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span>
+<a name="line-64"></a><a name="dtd_type"></a><span class='definition'>dtd_type</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span>
+<a name="line-65"></a><a name="dtd_kind"></a><span class='definition'>dtd_kind</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_kind</span>
+<a name="line-66"></a><a name="dtd_modifier"></a><span class='definition'>dtd_modifier</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_modifier</span>
+<a name="line-67"></a><a name="dtd_default"></a><span class='definition'>dtd_default</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_default</span>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-70"></a>
+<a name="line-71"></a><a name="isUnparsedEntity"></a><span class='definition'>isUnparsedEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-72"></a><span class='definition'>isUnparsedEntity</span>	<span class='keyglyph'>=</span> <span class='varid'>filterA</span> <span class='varop'>$</span>
+<a name="line-73"></a>			  <span class='varid'>getDTDAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>k_ndata</span><span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="hasDTDAttrValue"></a><span class='definition'>hasDTDAttrValue</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</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='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-76"></a><span class='definition'>hasDTDAttrValue</span>	<span class='varid'>an</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>filterA</span> <span class='varop'>$</span>
+<a name="line-77"></a>			  <span class='varid'>getDTDAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>lookup1</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="isRequiredAttrKind"></a><span class='definition'>isRequiredAttrKind</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-80"></a><span class='definition'>isRequiredAttrKind</span>	<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_kind</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_required</span><span class='layout'>)</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="isDefaultAttrKind"></a><span class='definition'>isDefaultAttrKind</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-83"></a><span class='definition'>isDefaultAttrKind</span>	<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_kind</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_default</span><span class='layout'>)</span>
+<a name="line-84"></a>
+<a name="line-85"></a><a name="isFixedAttrKind"></a><span class='definition'>isFixedAttrKind</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-86"></a><span class='definition'>isFixedAttrKind</span>		<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_kind</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_fixed</span><span class='layout'>)</span>
+<a name="line-87"></a>
+<a name="line-88"></a><a name="isMixedContentElement"></a><span class='definition'>isMixedContentElement</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-89"></a><span class='definition'>isMixedContentElement</span>	<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>v_mixed</span><span class='layout'>)</span>
+<a name="line-90"></a>
+<a name="line-91"></a><a name="isEmptyElement"></a><span class='definition'>isEmptyElement</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-92"></a><span class='definition'>isEmptyElement</span>		<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_empty</span><span class='layout'>)</span>
+<a name="line-93"></a>
+<a name="line-94"></a><a name="isEnumAttrType"></a><span class='definition'>isEnumAttrType</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-95"></a><span class='definition'>isEnumAttrType</span>		<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_enumeration</span><span class='layout'>)</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="isIdAttrType"></a><span class='definition'>isIdAttrType</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-98"></a><span class='definition'>isIdAttrType</span>		<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_id</span><span class='layout'>)</span>
+<a name="line-99"></a>
+<a name="line-100"></a><a name="isIdRefAttrType"></a><span class='definition'>isIdRefAttrType</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-101"></a><span class='definition'>isIdRefAttrType</span>		<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>k_idref</span><span class='layout'>,</span> <span class='varid'>k_idrefs</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-102"></a>
+<a name="line-103"></a><a name="isNotationAttrType"></a><span class='definition'>isNotationAttrType</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-104"></a><span class='definition'>isNotationAttrType</span>	<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_notation</span><span class='layout'>)</span>
+<a name="line-105"></a>
+<a name="line-106"></a><a name="isAttlistOfElement"></a><span class='definition'>isAttlistOfElement</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-107"></a><span class='definition'>isAttlistOfElement</span> <span class='varid'>el</span>	<span class='keyglyph'>=</span> <span class='varid'>isDTDAttlist</span>
+<a name="line-108"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-109"></a>			  <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_name</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="valueOfDTD"></a><span class='definition'>valueOfDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-112"></a><span class='definition'>valueOfDTD</span> <span class='varid'>n</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'>getDTDAttrl</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>lookup1</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="valueOf"></a><span class='definition'>valueOf</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-115"></a><span class='definition'>valueOf</span> <span class='varid'>n</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'>getAttrValue</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="getDTDAttributes"></a><span class='definition'>getDTDAttributes</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span>
+<a name="line-118"></a><span class='definition'>getDTDAttributes</span>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>getDTDAttrl</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="isDTDDoctypeNode"></a><span class='definition'>isDTDDoctypeNode</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-121"></a><span class='definition'>isDTDDoctypeNode</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'>runLA</span> <span class='varid'>isDTDDoctype</span>
+<a name="line-122"></a>
+<a name="line-123"></a><a name="isDTDElementNode"></a><span class='definition'>isDTDElementNode</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-124"></a><span class='definition'>isDTDElementNode</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'>runLA</span> <span class='varid'>isDTDElement</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="isDTDAttlistNode"></a><span class='definition'>isDTDAttlistNode</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-127"></a><span class='definition'>isDTDAttlistNode</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'>runLA</span> <span class='varid'>isDTDAttlist</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="isDTDContentNode"></a><span class='definition'>isDTDContentNode</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-130"></a><span class='definition'>isDTDContentNode</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'>runLA</span> <span class='varid'>isDTDContent</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="isDTDNameNode"></a><span class='definition'>isDTDNameNode</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-133"></a><span class='definition'>isDTDNameNode</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'>runLA</span> <span class='varid'>isDTDName</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="isElemNode"></a><span class='definition'>isElemNode</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-136"></a><span class='definition'>isElemNode</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'>runLA</span> <span class='varid'>isElem</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="nameOfAttr"></a><span class='definition'>nameOfAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-139"></a><span class='definition'>nameOfAttr</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'>getAttrName</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>qualifiedName</span><span class='layout'>)</span>
+<a name="line-140"></a>
+<a name="line-141"></a><a name="nameOfElem"></a><span class='definition'>nameOfElem</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-142"></a><span class='definition'>nameOfElem</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'>getElemName</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>qualifiedName</span><span class='layout'>)</span>
+<a name="line-143"></a>
+<a name="line-144"></a><span class='comment'>-- |</span>
+<a name="line-145"></a><span class='comment'>-- infix operator for applying an arrow to a list of trees</span>
+<a name="line-146"></a><span class='comment'>--</span>
+<a name="line-147"></a><span class='comment'>--    * 1.parameter f :  the arrow</span>
+<a name="line-148"></a><span class='comment'>--</span>
+<a name="line-149"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>
+<a name="line-150"></a><span class='comment'>--</span>
+<a name="line-151"></a><span class='comment'>--    - returns : list of results</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="$$"></a><span class='layout'>(</span><span class='varop'>$$</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-154"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>$$</span> <span class='varid'>l</span>		<span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>l</span>
+<a name="line-155"></a>
+<a name="line-156"></a><span class='comment'>-- | create an error message</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="msgToErr"></a><span class='definition'>msgToErr</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-159"></a><span class='definition'>msgToErr</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>mkErr</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
+<a name="line-160"></a>		  <span class='keyword'>where</span>
+<a name="line-161"></a>		  <span class='varid'>mkErr</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-162"></a>		  <span class='varid'>mkErr</span> <span class='varid'>s</span>  <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-163"></a>
+<a name="line-164"></a>
+<a name="line-165"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-Validation.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-Validation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-Validation.html
@@ -0,0 +1,140 @@
+<!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     : Text.XML.HXT.DTDValidation.Validation
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This module provides functions for validating XML documents represented as
+<a name="line-13"></a>   XmlTree.
+<a name="line-14"></a>
+<a name="line-15"></a>   Unlike other popular XML validation tools the validation functions return
+<a name="line-16"></a>   a list of errors instead of aborting after the first error was found.
+<a name="line-17"></a>
+<a name="line-18"></a>   Note: The validation process has been split into validation and transformation!
+<a name="line-19"></a>   If @validate@ did not report any errors, @transform@
+<a name="line-20"></a>   should be called, to change the document the way a validating parser
+<a name="line-21"></a>   is expected to do.
+<a name="line-22"></a>
+<a name="line-23"></a>-}</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-26"></a>
+<a name="line-27"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>Validation</span>
+<a name="line-28"></a>    <span class='layout'>(</span> <span class='varid'>getDTDSubset</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>validate</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>validateDTD</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>validateDoc</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>removeDoublicateDefs</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>transform</span>
+<a name="line-34"></a>    <span class='layout'>)</span>
+<a name="line-35"></a>
+<a name="line-36"></a><span class='keyword'>where</span>
+<a name="line-37"></a>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<a name="line-39"></a>
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DTDValidation</span>     <span class='keyword'>as</span> <span class='conid'>DTDValidation</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocValidation</span>     <span class='keyword'>as</span> <span class='conid'>DocValidation</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>IdValidation</span>      <span class='keyword'>as</span> <span class='conid'>IdValidation</span>
+<a name="line-43"></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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocTransformation</span> <span class='keyword'>as</span> <span class='conid'>DocTransformation</span>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='comment'>-- |</span>
+<a name="line-46"></a><span class='comment'>-- Main validation filter. Check if the DTD and the document are valid.</span>
+<a name="line-47"></a><span class='comment'>--</span>
+<a name="line-48"></a><span class='comment'>--</span>
+<a name="line-49"></a><span class='comment'>--    - returns : a function which expects a complete document as XmlTree input</span>
+<a name="line-50"></a><span class='comment'>--                     and returns a list of all errors found.</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="validate"></a><span class='definition'>validate</span> 	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-53"></a><span class='definition'>validate</span>	<span class='keyglyph'>=</span> <span class='varid'>validateDTD</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>validateDoc</span>
+<a name="line-54"></a>
+<a name="line-55"></a><span class='comment'>-- |</span>
+<a name="line-56"></a><span class='comment'>-- Check if the DTD is valid.</span>
+<a name="line-57"></a><span class='comment'>--</span>
+<a name="line-58"></a><span class='comment'>--</span>
+<a name="line-59"></a><span class='comment'>--    - returns : a function which expects an XmlTree from the parser as input</span>
+<a name="line-60"></a><span class='comment'>--                     and returns a list of all errors found in the DTD.</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="validateDTD"></a><span class='definition'>validateDTD</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-63"></a><span class='definition'>validateDTD</span>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-64"></a>		  <span class='keyglyph'>[</span> <span class='varid'>getDTDSubset</span>	<span class='conop'>:-&gt;</span> <span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='varid'>validateDTD</span>
+<a name="line-65"></a>		  <span class='layout'>,</span> <span class='varid'>this</span>		<span class='conop'>:-&gt;</span> <span class='varid'>err</span> <span class='str'>"Can't validate DTD: There is no DOCTYPE declaration in the document."</span>
+<a name="line-66"></a>		  <span class='keyglyph'>]</span>
+<a name="line-67"></a><span class='comment'>-- |</span>
+<a name="line-68"></a><span class='comment'>-- Check if the document corresponds to the given DTD.</span>
+<a name="line-69"></a><span class='comment'>--</span>
+<a name="line-70"></a><span class='comment'>--</span>
+<a name="line-71"></a><span class='comment'>--    - returns : a function which expects a complete document as XmlTree input</span>
+<a name="line-72"></a><span class='comment'>--                     and returns a list of all errors found in the content part.</span>
+<a name="line-73"></a>
+<a name="line-74"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-75"></a><span class='definition'>validateDoc</span>
+<a name="line-76"></a>    <span class='keyglyph'>=</span> <span class='varid'>validateDoc'</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTD</span>
+<a name="line-77"></a>    <span class='keyword'>where</span>
+<a name="line-78"></a>    <span class='varid'>validateDoc'</span> <span class='conid'>[]</span>		<span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='str'>"Can't validate document: There is no DOCTYPE declaration in the document."</span>
+<a name="line-79"></a>    <span class='varid'>validateDoc'</span> <span class='layout'>(</span><span class='varid'>dtdPart</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>DocValidation</span><span class='varop'>.</span><span class='varid'>validateDoc</span> <span class='varid'>dtdPart</span>
+<a name="line-80"></a>				  <span class='varop'>&lt;+&gt;</span>
+<a name="line-81"></a>				  <span class='conid'>IdValidation</span><span class='varop'>.</span><span class='varid'>validateIds</span>  <span class='varid'>dtdPart</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="getDTD"></a><span class='definition'>getDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlArrowS</span>
+<a name="line-84"></a><span class='definition'>getDTD</span>		<span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getDTDSubset</span>
+<a name="line-85"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-86"></a>			  <span class='varid'>removeDoublicateDefs</span>
+<a name="line-87"></a>			<span class='layout'>)</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='comment'>-- |</span>
+<a name="line-90"></a><span class='comment'>-- filter for transforming a document with respect to the given DTD.</span>
+<a name="line-91"></a><span class='comment'>--</span>
+<a name="line-92"></a><span class='comment'>-- Validating parsers</span>
+<a name="line-93"></a><span class='comment'>-- are expected to  normalize attribute values and add default values.</span>
+<a name="line-94"></a><span class='comment'>-- This function should be called after a successful validation.</span>
+<a name="line-95"></a><span class='comment'>--</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>--    - returns : a function which expects a complete XML document tree</span>
+<a name="line-98"></a><span class='comment'>--                and returns the transformed XmlTree</span>
+<a name="line-99"></a>
+<a name="line-100"></a><a name="transform"></a><span class='definition'>transform</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-101"></a><span class='definition'>transform</span>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-102"></a>		  <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>transformDoc</span> <span class='varop'>$&lt;</span> <span class='varid'>getDTD</span><span class='layout'>)</span>
+<a name="line-103"></a>		  <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>fatal</span> <span class='str'>"Can't transform document: No document root given"</span>
+<a name="line-104"></a>		  <span class='keyglyph'>]</span>
+<a name="line-105"></a>                  <span class='keyword'>where</span>
+<a name="line-106"></a>		  <span class='varid'>transformDoc</span> <span class='conid'>[]</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-107"></a>		  <span class='varid'>transformDoc</span> <span class='varid'>dtd</span>	<span class='keyglyph'>=</span> <span class='conid'>DocTransformation</span><span class='varop'>.</span><span class='varid'>transform</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>dtd</span><span class='layout'>)</span>
+<a name="line-108"></a>
+<a name="line-109"></a><span class='comment'>-- |</span>
+<a name="line-110"></a><span class='comment'>-- Removes doublicate declarations from the DTD which first declaration is</span>
+<a name="line-111"></a><span class='comment'>-- binding. This is the case for ATTLIST and ENTITY declarations.</span>
+<a name="line-112"></a><span class='comment'>--</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>--    - returns : A function that replaces the children of DOCTYPE nodes by a list</span>
+<a name="line-115"></a><span class='comment'>--               where all multiple declarations are removed.</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="removeDoublicateDefs"></a><span class='definition'>removeDoublicateDefs</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-118"></a><span class='definition'>removeDoublicateDefs</span>	<span class='keyglyph'>=</span> <span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='varid'>removeDoublicateDefs</span>
+<a name="line-119"></a>
+<a name="line-120"></a><span class='comment'>--</span>
+<a name="line-121"></a><span class='comment'>-- selects the DTD part of a document</span>
+<a name="line-122"></a><span class='comment'>-- but only, if there is more than the internal part for the 4 predefined XML entities</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="getDTDSubset"></a><span class='definition'>getDTDSubset</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-125"></a><span class='definition'>getDTDSubset</span>		<span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-126"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-127"></a>			  <span class='layout'>(</span> <span class='varid'>filterA</span> <span class='varop'>$</span> <span class='varid'>isDTDDoctype</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>a_name</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-128"></a>
+<a name="line-129"></a>
+<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-DTDValidation-XmlRE.html b/doc/hdoc/src/Text-XML-HXT-DTDValidation-XmlRE.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-DTDValidation-XmlRE.html
@@ -0,0 +1,126 @@
+<!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     : Text.XML.HXT.DTDValidation.XmlRE
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   A module for regular expression matching, adapted for XML DTDs.
+<a name="line-13"></a>
+<a name="line-14"></a>   This module is based on the module RE.
+<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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>XmlRE</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='conid'>RE</span>
+<a name="line-22"></a>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>checkRE</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>matches</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>printRE</span>
+<a name="line-26"></a>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>re_unit</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>re_zero</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>re_sym</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>re_rep</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>re_plus</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>re_opt</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>re_seq</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>re_alt</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>re_dot</span>
+<a name="line-36"></a>    <span class='layout'>)</span>
+<a name="line-37"></a><span class='keyword'>where</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='comment'>-- import Debug.Trace(trace)</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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>RE</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>matches</span><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'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>
+<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'>Edit</span>
+<a name="line-45"></a>    <span class='layout'>(</span> <span class='varid'>removeComment</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-47"></a>    <span class='layout'>)</span>
+<a name="line-48"></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-49"></a>
+<a name="line-50"></a><span class='comment'>-- |</span>
+<a name="line-51"></a><span class='comment'>-- Derives a regular expression with respect to a list of elements.</span>
+<a name="line-52"></a><span class='comment'>--</span>
+<a name="line-53"></a><span class='comment'>--    * 1.parameter re :  regular expression</span>
+<a name="line-54"></a><span class='comment'>--</span>
+<a name="line-55"></a><span class='comment'>--    - 2.parameter list :  list of elements to which the regular expression is applied</span>
+<a name="line-56"></a><span class='comment'>--</span>
+<a name="line-57"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-58"></a>
+<a name="line-59"></a><a name="matches"></a><span class='definition'>matches</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-60"></a><span class='definition'>matches</span> <span class='varid'>re</span> <span class='varid'>list</span>
+<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>removeUnimportantStuff</span> <span class='varop'>$$</span> <span class='varid'>list</span><span class='layout'>)</span>
+<a name="line-62"></a>      <span class='keyword'>where</span>
+<a name="line-63"></a>      <span class='varid'>removeUnimportantStuff</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>
+<a name="line-64"></a>      <span class='varid'>removeUnimportantStuff</span> <span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span> <span class='layout'>(</span><span class='varid'>removeWhiteSpace</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>removeComment</span><span class='layout'>)</span>
+<a name="line-65"></a>
+<a name="line-66"></a>      <span class='comment'>-- trace of growth of REs</span>
+<a name="line-67"></a>      <span class='comment'>-- delta' re el = delta (trace (("RE : " ++) . (++ "\n" ) . show $ re) re) el</span>
+<a name="line-68"></a>
+<a name="line-69"></a>
+<a name="line-70"></a><span class='comment'>-- |</span>
+<a name="line-71"></a><span class='comment'>-- Derives a regular expression with respect to one element.</span>
+<a name="line-72"></a><span class='comment'>--</span>
+<a name="line-73"></a><span class='comment'>-- L(delta e x) = x \ L(e)</span>
+<a name="line-74"></a><span class='comment'>--</span>
+<a name="line-75"></a><span class='comment'>--    * 1.parameter re :  regular expression to be derived</span>
+<a name="line-76"></a><span class='comment'>--</span>
+<a name="line-77"></a><span class='comment'>--    - 2.parameter el :  the element on which the regular expression is applied</span>
+<a name="line-78"></a><span class='comment'>--</span>
+<a name="line-79"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="delta"></a><span class='definition'>delta</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-82"></a><span class='definition'>delta</span> <span class='varid'>re</span> <span class='varid'>el</span>
+<a name="line-83"></a>    <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>allowed</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>re</span>
+<a name="line-84"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>        <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>
+<a name="line-85"></a>        <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>		 <span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='varid'>m</span>
+<a name="line-86"></a>        <span class='conid'>RE_UNIT</span>			 <span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" unexpected."</span><span class='layout'>)</span>
+<a name="line-87"></a>        <span class='conid'>RE_SYM</span> <span class='varid'>sym</span>
+<a name="line-88"></a>    	    <span class='keyglyph'>|</span> <span class='varid'>sym</span> <span class='varop'>==</span> <span class='varid'>k_pcdata</span>	 <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCdata</span> <span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-89"></a>				    <span class='keyword'>then</span> <span class='varid'>re_unit</span>
+<a name="line-90"></a>				    <span class='keyword'>else</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Character data expected, but "</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" found."</span><span class='layout'>)</span>
+<a name="line-91"></a>       	    <span class='keyglyph'>|</span> <span class='varid'>expectedNode</span> <span class='varid'>el</span> <span class='varid'>sym</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-92"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sym</span> <span class='varop'>++</span><span class='str'>" expected, but "</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" found."</span><span class='layout'>)</span>
+<a name="line-93"></a>        <span class='conid'>RE_REP</span> <span class='varid'>e</span>                  <span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-94"></a>        <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>                 <span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-95"></a>        <span class='conid'>RE_OPT</span> <span class='varid'>e</span>                  <span class='keyglyph'>-&gt;</span> <span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span>
+<a name="line-96"></a>        <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-97"></a>       	    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e</span>          <span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-98"></a>       	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-99"></a>        <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>                <span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-100"></a>        <span class='conid'>RE_DOT</span>                    <span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-101"></a>
+<a name="line-102"></a>    <span class='keyword'>where</span>
+<a name="line-103"></a>    <span class='varid'>expectedNode</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'>Bool</span>
+<a name="line-104"></a>    <span class='varid'>expectedNode</span> <span class='varid'>n</span> <span class='varid'>sym</span>
+<a name="line-105"></a>	<span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>nameOfElem</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>sym</span>
+<a name="line-106"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-107"></a>
+<a name="line-108"></a>    <span class='varid'>elemName</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-109"></a>    <span class='varid'>elemName</span> <span class='varid'>n</span>
+<a name="line-110"></a>	<span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='str'>"element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOfElem</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-111"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='str'>"character data"</span>
+<a name="line-112"></a>
+<a name="line-113"></a>    <span class='varid'>allowed</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-114"></a>    <span class='varid'>allowed</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>n</span> <span class='varop'>||</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>n</span> <span class='varop'>||</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCdata</span> <span class='varid'>n</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html
@@ -0,0 +1,90 @@
+<!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'>--</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-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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-IO-GetHTTPCurl.html b/doc/hdoc/src/Text-XML-HXT-IO-GetHTTPCurl.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-IO-GetHTTPCurl.html
@@ -0,0 +1,179 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- GET for http access with curl</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: GetHTTPCurl.hs,v 1.3 2005/04/14 12:52:52 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'>GetHTTPCurl</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>getCont</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'>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-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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>
+<a name="line-16"></a>    <span class='layout'>(</span> <span class='varid'>parseContentType</span>
+<a name="line-17"></a>    <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'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='conid'>Parser</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>parse</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>anyChar</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>char</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>digit</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>getInput</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>many1</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>manyTill</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>spaces</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>string</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span>
+<a name="line-31"></a>    <span class='layout'>)</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='keyword'>qualified</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='keyword'>as</span> <span class='conid'>Parsec</span> <span class='layout'>(</span><span class='varid'>try</span><span class='layout'>)</span>	<span class='comment'>-- try</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>PipeOpen</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>popen</span>
+<a name="line-37"></a>    <span class='layout'>)</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-40"></a>    <span class='layout'>(</span> <span class='varid'>toLower</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>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-46"></a><span class='comment'>--</span>
+<a name="line-47"></a><span class='comment'>-- the http protocol handler implemented by calling external program curl</span>
+<a name="line-48"></a>
+<a name="line-49"></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'>String</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='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> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-50"></a><span class='definition'>getCont</span> <span class='varid'>curlOptions</span> <span class='varid'>uri</span> <span class='varid'>proxy</span>
+<a name="line-51"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-52"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>errs</span><span class='layout'>,</span> <span class='varid'>rc</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>popen</span> <span class='varid'>cmd</span> <span class='varid'>allArgs</span>
+<a name="line-53"></a>      <span class='keyword'>if</span> <span class='varid'>rc</span> <span class='varop'>/=</span> <span class='num'>0</span>
+<a name="line-54"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"http error when requesting URI "</span>
+<a name="line-55"></a>			      <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-56"></a>			      <span class='varop'>++</span> <span class='str'>": (rc="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>rc</span> <span class='varop'>++</span> <span class='str'>") "</span>
+<a name="line-57"></a>			      <span class='varop'>++</span> <span class='varid'>errs</span>
+<a name="line-58"></a>			    <span class='layout'>)</span>
+<a name="line-59"></a>	 <span class='keyword'>else</span> <span class='keyword'>let</span>
+<a name="line-60"></a>	      <span class='layout'>(</span><span class='varid'>st</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parseResponse</span> <span class='varid'>res</span>
+<a name="line-61"></a>	      <span class='keyword'>in</span>
+<a name="line-62"></a>	      <span class='keyword'>if</span> <span class='varid'>st</span> <span class='varop'>&gt;=</span> <span class='num'>200</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>st</span> <span class='varop'>&lt;</span> <span class='num'>300</span>
+<a name="line-63"></a>		 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span><span class='layout'>)</span>
+<a name="line-64"></a>		 <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"http error when accessing URI "</span>
+<a name="line-65"></a>				      <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-66"></a>				      <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-67"></a>				      <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>st</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'>cmd</span>		<span class='keyglyph'>=</span> <span class='str'>"curl"</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='varid'>allArgs</span>	<span class='keyglyph'>=</span> <span class='varid'>args</span>
+<a name="line-73"></a>		  <span class='varop'>++</span> <span class='varid'>proxyArgs</span> <span class='varid'>proxy</span>
+<a name="line-74"></a>		  <span class='varop'>++</span> <span class='varid'>words</span> <span class='varid'>curlOptions</span>
+<a name="line-75"></a>
+<a name="line-76"></a>    <span class='varid'>args</span> 	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"--silent"</span>
+<a name="line-77"></a>		  <span class='layout'>,</span> <span class='str'>"--show-error"</span>
+<a name="line-78"></a>		  <span class='layout'>,</span> <span class='str'>"--dump-header"</span><span class='layout'>,</span> <span class='str'>"-"</span>
+<a name="line-79"></a>		  <span class='layout'>,</span> <span class='varid'>uri</span>
+<a name="line-80"></a>		  <span class='keyglyph'>]</span>
+<a name="line-81"></a>    <span class='varid'>proxyArgs</span> <span class='str'>""</span>
+<a name="line-82"></a>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-83"></a>    <span class='varid'>proxyArgs</span> <span class='varid'>prx</span>
+<a name="line-84"></a>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"--proxy"</span><span class='layout'>,</span> <span class='varid'>prx</span> <span class='keyglyph'>]</span>
+<a name="line-85"></a>
+<a name="line-86"></a><a name="parseResponse"></a><span class='definition'>parseResponse</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Int</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> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-87"></a><span class='definition'>parseResponse</span> <span class='varid'>inp</span>
+<a name="line-88"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</span>
+<a name="line-89"></a>          <span class='layout'>(</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='num'>999</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>transferMessage</span><span class='layout'>,</span> <span class='str'>"illegal HTTP response"</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='varid'>inp</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-90"></a>          <span class='varid'>id</span>
+<a name="line-91"></a>	<span class='varop'>.</span>
+<a name="line-92"></a>	<span class='varid'>parse</span> <span class='varid'>parseHttpResponse</span> <span class='str'>"HTTP Header"</span>
+<a name="line-93"></a>      <span class='layout'>)</span> <span class='varid'>inp</span>
+<a name="line-94"></a>
+<a name="line-95"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="parseHttpResponse"></a><span class='definition'>parseHttpResponse</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='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> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-98"></a><span class='definition'>parseHttpResponse</span>
+<a name="line-99"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-100"></a>      <span class='varid'>allResponses</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>parse1Response</span>
+<a name="line-101"></a>      <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span><span class='layout'>,</span> <span class='varid'>rhs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>last</span> <span class='varid'>allResponses</span>
+<a name="line-102"></a>      <span class='varid'>content</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getInput</span>
+<a name="line-103"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span> <span class='varop'>++</span> <span class='varid'>rhs</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span>
+<a name="line-104"></a>    <span class='keyword'>where</span>
+<a name="line-105"></a>
+<a name="line-106"></a>    <span class='varid'>parse1Response</span>
+<a name="line-107"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-108"></a>	  <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseResp</span>
+<a name="line-109"></a>	  <span class='varid'>rhs</span>      <span class='keyglyph'>&lt;-</span> <span class='varid'>parseHeaders</span>
+<a name="line-110"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span><span class='layout'>,</span> <span class='varid'>rhs</span><span class='layout'>)</span>
+<a name="line-111"></a>
+<a name="line-112"></a>    <span class='varid'>crlf</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
+<a name="line-113"></a>    <span class='varid'>crlf</span>
+<a name="line-114"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-115"></a>	  <span class='layout'>(</span> <span class='conid'>Parsec</span><span class='varop'>.</span><span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"\r\n"</span><span class='layout'>)</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>string</span> <span class='str'>"\n"</span> <span class='layout'>)</span>
+<a name="line-116"></a>	  <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-117"></a>
+<a name="line-118"></a>    <span class='varid'>parseResp</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='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-119"></a>    <span class='varid'>parseResp</span>
+<a name="line-120"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-121"></a>	  <span class='varid'>vers</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-122"></a>		    <span class='varid'>http</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>string</span> <span class='str'>"HTTP/"</span>
+<a name="line-123"></a>		    <span class='varid'>mav</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-124"></a>		    <span class='varid'>char</span> <span class='chr'>'.'</span>
+<a name="line-125"></a>		    <span class='varid'>miv</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-126"></a>		    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>http</span> <span class='varop'>++</span> <span class='varid'>mav</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>miv</span><span class='layout'>)</span>
+<a name="line-127"></a>		  <span class='layout'>)</span>
+<a name="line-128"></a>	  <span class='varid'>spaces</span>
+<a name="line-129"></a>	  <span class='varid'>ds</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-130"></a>	  <span class='varid'>spaces</span>
+<a name="line-131"></a>	  <span class='varid'>reason</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>manyTill</span> <span class='varid'>anyChar</span> <span class='varid'>crlf</span>
+<a name="line-132"></a>	  <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>read</span> <span class='varid'>ds</span><span class='layout'>,</span>
+<a name="line-133"></a>		   <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>transferMessage</span><span class='layout'>,</span> <span class='varid'>reason</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>transferVersion</span><span class='layout'>,</span> <span class='varid'>vers</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-134"></a>		 <span class='layout'>)</span>
+<a name="line-135"></a>
+<a name="line-136"></a>    <span class='varid'>parseHeaders</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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-137"></a>    <span class='varid'>parseHeaders</span>
+<a name="line-138"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-139"></a>	    <span class='varid'>crlf</span>
+<a name="line-140"></a>	    <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-141"></a>	  <span class='layout'>)</span>
+<a name="line-142"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-143"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-144"></a>	    <span class='varid'>header1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parse1Header</span>
+<a name="line-145"></a>	    <span class='varid'>rest</span>    <span class='keyglyph'>&lt;-</span> <span class='varid'>parseHeaders</span>
+<a name="line-146"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>header1</span> <span class='varop'>++</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-147"></a>	  <span class='layout'>)</span>
+<a name="line-148"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-149"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-150"></a>	    <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='str'>"IllegalHeaders"</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-151"></a>	  <span class='layout'>)</span>
+<a name="line-152"></a>
+<a name="line-153"></a>    <span class='varid'>parse1Header</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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-154"></a>    <span class='varid'>parse1Header</span>
+<a name="line-155"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-156"></a>	  <span class='varid'>header</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>manyTill</span> <span class='varid'>anyChar</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>':'</span><span class='layout'>)</span>
+<a name="line-157"></a>	  <span class='varid'>spaces</span>
+<a name="line-158"></a>	  <span class='varid'>value</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>manyTill</span> <span class='varid'>anyChar</span> <span class='varid'>crlf</span>
+<a name="line-159"></a>	  <span class='keyword'>let</span> <span class='varid'>ct</span> <span class='keyglyph'>=</span> <span class='varid'>parseCT</span> <span class='varid'>header</span> <span class='varid'>value</span>
+<a name="line-160"></a>	  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>ct</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='varid'>header</span><span class='layout'>,</span> <span class='varid'>value</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-161"></a>	<span class='keyword'>where</span>
+<a name="line-162"></a>	<span class='varid'>parseCT</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='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-163"></a>	<span class='varid'>parseCT</span> <span class='varid'>h</span> <span class='varid'>v</span>
+<a name="line-164"></a>	    <span class='keyglyph'>|</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>h</span> <span class='varop'>==</span> <span class='str'>"content-type"</span>
+<a name="line-165"></a>		<span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parseContentType</span> <span class='varid'>h</span> <span class='varop'>$</span> <span class='varid'>v</span>
+<a name="line-166"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-167"></a>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-168"></a>
+<a name="line-169"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-IO-GetHTTPNative.html b/doc/hdoc/src/Text-XML-HXT-IO-GetHTTPNative.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-IO-GetHTTPNative.html
@@ -0,0 +1,161 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- GET for native http access</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: GetHTTPNative.hs,v 1.2 2005/04/14 12:52:52 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'>GetHTTPNative</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'>GetHTTPNative</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'>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-14"></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'>stringTrim</span> <span class='layout'>)</span>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>	<span class='layout'>(</span> <span class='varid'>parseContentType</span> <span class='layout'>)</span>
+<a name="line-16"></a>
+<a name="line-17"></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'>parse</span> <span class='layout'>)</span>
+<a name="line-18"></a>
+<a name="line-19"></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'>fromJust</span>
+<a name="line-20"></a>			<span class='layout'>)</span>
+<a name="line-21"></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='varid'>hPutStrLn</span>
+<a name="line-22"></a>			<span class='layout'>,</span> <span class='varid'>stderr</span>
+<a name="line-23"></a>			<span class='layout'>)</span>
+<a name="line-24"></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-25"></a>			<span class='layout'>,</span> <span class='varid'>try</span>
+<a name="line-26"></a>			<span class='layout'>)</span>
+<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>Browser</span>	<span class='layout'>(</span> <span class='conid'>Proxy</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-28"></a>			<span class='layout'>,</span> <span class='varid'>browse</span>
+<a name="line-29"></a>			<span class='layout'>,</span> <span class='varid'>defaultGETRequest</span>
+<a name="line-30"></a>			<span class='layout'>,</span> <span class='varid'>request</span>
+<a name="line-31"></a>			<span class='layout'>,</span> <span class='varid'>setOutHandler</span>
+<a name="line-32"></a>			<span class='layout'>,</span> <span class='varid'>setErrHandler</span>
+<a name="line-33"></a>			<span class='layout'>,</span> <span class='varid'>setProxy</span>
+<a name="line-34"></a>			<span class='layout'>)</span>
+<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>HTTP</span>	<span class='layout'>(</span> <span class='conid'>Header</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-36"></a>			<span class='layout'>,</span> <span class='conid'>HeaderName</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-37"></a>			<span class='layout'>,</span> <span class='conid'>Response</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-38"></a>			<span class='layout'>,</span> <span class='varid'>httpVersion</span>
+<a name="line-39"></a>			<span class='layout'>)</span>
+<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>Socket</span>	<span class='layout'>(</span> <span class='varid'>withSocketsDo</span>
+<a name="line-41"></a>			<span class='layout'>)</span>
+<a name="line-42"></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='conid'>URI</span>
+<a name="line-43"></a>			<span class='layout'>,</span> <span class='varid'>parseURIReference</span>
+<a name="line-44"></a>			<span class='layout'>)</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'>-- the native http protocol handler</span>
+<a name="line-49"></a>
+<a name="line-50"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-51"></a><span class='comment'>--</span>
+<a name="line-52"></a><span class='comment'>-- the http protocol handler, haskell implementation</span>
+<a name="line-53"></a>
+<a name="line-54"></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'>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='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> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-55"></a><span class='definition'>getCont</span> <span class='varid'>uri</span> <span class='varid'>proxy</span>
+<a name="line-56"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-57"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>getHttp</span> <span class='conid'>False</span> <span class='varid'>uri1</span> <span class='varid'>proxy</span><span class='layout'>)</span>
+<a name="line-58"></a>      <span class='varid'>either</span> <span class='varid'>processError</span> <span class='varid'>processResponse</span> <span class='varid'>res</span>
+<a name="line-59"></a>    <span class='keyword'>where</span>
+<a name="line-60"></a>    <span class='varid'>uri1</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='layout'>(</span><span class='varid'>parseURIReference</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-61"></a>
+<a name="line-62"></a>    <span class='varid'>processError</span> <span class='varid'>e</span>
+<a name="line-63"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"http error when requesting URI "</span>
+<a name="line-64"></a>			  <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-65"></a>			  <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-66"></a>			  <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
+<a name="line-67"></a>			  <span class='varop'>++</span> <span class='str'>" (perhaps server does not understand HTTP/1.1) "</span>
+<a name="line-68"></a>			<span class='layout'>)</span>
+<a name="line-69"></a>
+<a name="line-70"></a>    <span class='varid'>processResponse</span> <span class='varid'>response</span>
+<a name="line-71"></a>	<span class='keyglyph'>|</span> <span class='varid'>st</span> <span class='varop'>&gt;=</span> <span class='num'>200</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>st</span> <span class='varop'>&lt;</span> <span class='num'>300</span>
+<a name="line-72"></a>	    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-73"></a>
+<a name="line-74"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-75"></a>	    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"http error when accessing URI "</span>
+<a name="line-76"></a>			      <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-77"></a>			      <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-78"></a>			      <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>st</span>
+<a name="line-79"></a>			      <span class='varop'>++</span> <span class='str'>" "</span>
+<a name="line-80"></a>			      <span class='varop'>++</span> <span class='varid'>rspReason</span> <span class='varid'>response</span>
+<a name="line-81"></a>			    <span class='layout'>)</span>
+<a name="line-82"></a>	<span class='keyword'>where</span>
+<a name="line-83"></a>	<span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>convertResponseHeaders</span> <span class='varid'>response</span>
+<a name="line-84"></a>	<span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>rspBody</span> <span class='varid'>response</span>
+<a name="line-85"></a>	<span class='varid'>st</span> <span class='keyglyph'>=</span> <span class='varid'>convertResponseStatus</span> <span class='layout'>(</span><span class='varid'>rspCode</span> <span class='varid'>response</span><span class='layout'>)</span>
+<a name="line-86"></a>
+<a name="line-87"></a>    <span class='varid'>getHttp</span>		<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>Response</span>
+<a name="line-88"></a>    <span class='varid'>getHttp</span> <span class='varid'>trc'</span> <span class='varid'>uri'</span> <span class='varid'>proxy'</span>
+<a name="line-89"></a>	<span class='keyglyph'>=</span> <span class='varid'>withSocketsDo</span> <span class='varop'>$</span>
+<a name="line-90"></a>	  <span class='varid'>browse</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-91"></a>		   <span class='varid'>setOutHandler</span> <span class='layout'>(</span><span class='varid'>trcFct</span><span class='layout'>)</span>
+<a name="line-92"></a>		   <span class='varid'>setErrHandler</span> <span class='layout'>(</span><span class='varid'>trcFct</span><span class='layout'>)</span>
+<a name="line-93"></a>
+<a name="line-94"></a>		   <span class='varid'>setProxy'</span> <span class='varid'>proxy'</span>
+<a name="line-95"></a>		   <span class='layout'>(</span><span class='sel'>_ruri</span><span class='layout'>,</span> <span class='varid'>rsp</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>request</span> <span class='varid'>rq</span>
+<a name="line-96"></a>		   <span class='varid'>return</span> <span class='varid'>rsp</span>
+<a name="line-97"></a>		 <span class='layout'>)</span>
+<a name="line-98"></a>	<span class='keyword'>where</span>
+<a name="line-99"></a>	<span class='varid'>trcFct</span> <span class='varid'>s</span>
+<a name="line-100"></a>	    <span class='keyglyph'>|</span> <span class='varid'>trc'</span>
+<a name="line-101"></a>		<span class='keyglyph'>=</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='layout'>(</span><span class='str'>"-- (5) http: "</span> <span class='varop'>++</span> <span class='varid'>s</span><span class='layout'>)</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'>return</span> <span class='conid'>()</span>
+<a name="line-104"></a>
+<a name="line-105"></a>	<span class='varid'>rq</span> <span class='keyglyph'>=</span> <span class='varid'>defaultGETRequest</span> <span class='varid'>uri'</span>
+<a name="line-106"></a>	
+<a name="line-107"></a>	<span class='varid'>setProxy'</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-108"></a>	<span class='varid'>setProxy'</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>setProxy</span> <span class='layout'>(</span><span class='conid'>Proxy</span> <span class='varid'>p</span> <span class='conid'>Nothing</span><span class='layout'>)</span>
+<a name="line-109"></a>
+<a name="line-110"></a>    <span class='varid'>convertResponseStatus</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-111"></a>    <span class='varid'>convertResponseStatus</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-112"></a>	<span class='keyglyph'>=</span> <span class='num'>100</span> <span class='varop'>*</span> <span class='varid'>a</span> <span class='varop'>+</span> <span class='num'>10</span> <span class='varop'>*</span> <span class='varid'>b</span> <span class='varop'>+</span> <span class='varid'>c</span>
+<a name="line-113"></a>
+<a name="line-114"></a>    <span class='varid'>convertResponseHeaders</span>	<span class='keyglyph'>::</span> <span class='conid'>Response</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-115"></a>    <span class='varid'>convertResponseHeaders</span> <span class='varid'>r'</span>
+<a name="line-116"></a>	<span class='keyglyph'>=</span> <span class='varid'>cvResponseCode</span> <span class='layout'>(</span><span class='varid'>rspCode</span> <span class='varid'>r'</span><span class='layout'>)</span>
+<a name="line-117"></a>	  <span class='varop'>++</span>
+<a name="line-118"></a>	  <span class='varid'>cvResponseReason</span> <span class='layout'>(</span><span class='varid'>rspReason</span> <span class='varid'>r'</span><span class='layout'>)</span>
+<a name="line-119"></a>          <span class='varop'>++</span>
+<a name="line-120"></a>	  <span class='varid'>cvResponseHeaders</span> <span class='layout'>(</span><span class='varid'>rspHeaders</span> <span class='varid'>r'</span><span class='layout'>)</span>
+<a name="line-121"></a>	<span class='keyword'>where</span>
+<a name="line-122"></a>	<span class='varid'>cvResponseCode</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</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-123"></a>	<span class='varid'>cvResponseCode</span> <span class='varid'>st'</span>
+<a name="line-124"></a>	    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferStatus</span><span class='layout'>,</span>	<span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>convertResponseStatus</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-125"></a>	      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>transferVersion</span><span class='layout'>,</span>	<span class='varid'>httpVersion</span><span class='layout'>)</span>
+<a name="line-126"></a>	      <span class='keyglyph'>]</span>
+<a name="line-127"></a>
+<a name="line-128"></a>	<span class='varid'>cvResponseReason</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-129"></a>	<span class='varid'>cvResponseReason</span> <span class='varid'>r''</span>
+<a name="line-130"></a>	    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferMessage</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>stringTrim</span> <span class='varid'>r''</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-131"></a>
+<a name="line-132"></a>	<span class='varid'>cvResponseHeaders</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Header</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-133"></a>	<span class='varid'>cvResponseHeaders</span>
+<a name="line-134"></a>	    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>cvResponseHeader</span>
+<a name="line-135"></a>
+<a name="line-136"></a>	<span class='varid'>cvResponseHeader</span>	<span class='keyglyph'>::</span> <span class='conid'>Header</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-137"></a>	<span class='varid'>cvResponseHeader</span> <span class='layout'>(</span><span class='conid'>Header</span> <span class='varid'>name</span> <span class='varid'>value</span><span class='layout'>)</span>
+<a name="line-138"></a>	    <span class='keyglyph'>|</span> <span class='varid'>name</span> <span class='varop'>==</span> <span class='conid'>HdrContentType</span>
+<a name="line-139"></a>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>parse</span> <span class='varid'>parseContentType</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='conid'>HdrContentType</span><span class='layout'>)</span> <span class='varid'>value</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-140"></a>		    <span class='conid'>Right</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>res</span>
+<a name="line-141"></a>		    <span class='conid'>Left</span>  <span class='keyword'>_</span>   <span class='keyglyph'>-&gt;</span> <span class='conid'>[]</span>
+<a name="line-142"></a>		  <span class='layout'>)</span>
+<a name="line-143"></a>                  <span class='varop'>++</span>
+<a name="line-144"></a>		  <span class='varid'>addHttpAttr</span>
+<a name="line-145"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-146"></a>		<span class='keyglyph'>=</span> <span class='varid'>addHttpAttr</span>
+<a name="line-147"></a>	    <span class='keyword'>where</span>
+<a name="line-148"></a>	    <span class='varid'>addHttpAttr</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>value</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-149"></a>
+<a name="line-150"></a>
+<a name="line-151"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-DTDProcessing.html b/doc/hdoc/src/Text-XML-HXT-Parser-DTDProcessing.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-DTDProcessing.html
@@ -0,0 +1,942 @@
+<!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     : Text.XML.HXT.Parser.DTDProcessing
+<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: DTDProcessing.hs,v 1.15 2006/11/12 14:53:00 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   DTD processing function for
+<a name="line-14"></a>   including external parts of a DTD
+<a name="line-15"></a>   parameter entity substitution and general entity substitution
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>DTDProcessing</span>
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>getWellformedDoc</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>checkWellformedDoc</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>processDTD</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>processGeneralEntities</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'>XmlTree</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlOutput</span>
+<a name="line-32"></a>    <span class='layout'>(</span> <span class='varid'>traceTree</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>traceSource</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>traceMsg</span>
+<a name="line-35"></a>    <span class='layout'>)</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParser</span>
+<a name="line-38"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDoc</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDPart</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlAttrValue</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlGeneralEntityValue</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'>XmlDTDParser</span>
+<a name="line-45"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDdeclPart</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDEntityValue</span>
+<a name="line-48"></a>    <span class='layout'>)</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'>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'>XmlInput</span>
+<a name="line-51"></a>    <span class='layout'>(</span> <span class='varid'>getXmlContents</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>runInLocalURIContext</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>runInNewURIContext</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>getBaseURI</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>setBaseURI</span>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>getAbsolutURI</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>isStandaloneDocument</span>
+<a name="line-59"></a>    <span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></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'>EditFilters</span>
+<a name="line-62"></a>    <span class='layout'>(</span> <span class='varid'>transfCharRef</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCharRef</span>
+<a name="line-64"></a>    <span class='layout'>)</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlState</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-69"></a>
+<a name="line-70"></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-71"></a>    <span class='layout'>(</span> <span class='conid'>Map</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>empty</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>lookup</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>insert</span>
+<a name="line-75"></a>    <span class='comment'>-- , foldWithKey</span>
+<a name="line-76"></a>    <span class='layout'>)</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-79"></a><span class='comment'>--</span>
+<a name="line-80"></a><span class='comment'>-- the "main" building blocks</span>
+<a name="line-81"></a>
+<a name="line-82"></a><span class='comment'>-- |</span>
+<a name="line-83"></a><span class='comment'>-- monadic filter for reading, parsing and checking a wellformed document.</span>
+<a name="line-84"></a><span class='comment'>-- the input tree must consist of a root node with a source attribute</span>
+<a name="line-85"></a><span class='comment'>-- in its attribute list.</span>
+<a name="line-86"></a><span class='comment'>--</span>
+<a name="line-87"></a><span class='comment'>-- All attributes from the document root are copied into the system state,</span>
+<a name="line-88"></a><span class='comment'>-- and may be queried by the monadic filters, e.g. trace options.</span>
+<a name="line-89"></a><span class='comment'>--</span>
+<a name="line-90"></a><span class='comment'>-- Result is the single element list containing the well-formed document tree</span>
+<a name="line-91"></a><span class='comment'>-- or, in case of errors, the document root with an empty list as children</span>
+<a name="line-92"></a><span class='comment'>-- and attributes 'a_status' and 'a_module' for error level and the module,</span>
+<a name="line-93"></a><span class='comment'>-- where the error occured.</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a><span class='comment'>-- this is a shortcut for 'getXmlContents' .\&gt;\&gt; 'checkWellformedDoc'</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>-- example for a main program:</span>
+<a name="line-98"></a><span class='comment'>--</span>
+<a name="line-99"></a><span class='comment'>-- @</span>
+<a name="line-100"></a><span class='comment'>-- main =</span>
+<a name="line-101"></a><span class='comment'>--   run\' \$</span>
+<a name="line-102"></a><span class='comment'>--   do</span>
+<a name="line-103"></a><span class='comment'>--   res  \&lt;- getWellformedDoc \$ newDocument \"myfile.xml\"</span>
+<a name="line-104"></a><span class='comment'>--   ...</span>
+<a name="line-105"></a><span class='comment'>-- @</span>
+<a name="line-106"></a>
+<a name="line-107"></a><a name="getWellformedDoc"></a><span class='definition'>getWellformedDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-108"></a><span class='definition'>getWellformedDoc</span>
+<a name="line-109"></a>    <span class='keyglyph'>=</span> <span class='varid'>setSystemParams</span>
+<a name="line-110"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-111"></a>      <span class='varid'>getXmlContents</span>
+<a name="line-112"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-113"></a>      <span class='varid'>checkWellformedDoc</span>
+<a name="line-114"></a>
+<a name="line-115"></a><span class='comment'>-- |</span>
+<a name="line-116"></a><span class='comment'>-- parses a text node with 'parseXmlDoc', processes the DTD and general entities</span>
+<a name="line-117"></a><span class='comment'>-- and transforms all char references into characters</span>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="checkWellformedDoc"></a><span class='definition'>checkWellformedDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-120"></a><span class='definition'>checkWellformedDoc</span>
+<a name="line-121"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlDoc</span>
+<a name="line-122"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-123"></a>      <span class='varid'>processDTD</span>
+<a name="line-124"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-125"></a>      <span class='varid'>processGeneralEntities</span>
+<a name="line-126"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-127"></a>      <span class='varid'>liftMf</span> <span class='varid'>transfAllCharRef</span>
+<a name="line-128"></a>
+<a name="line-129"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-130"></a><span class='comment'>--</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="RecList"></a><span class='keyword'>type</span> <span class='conid'>RecList</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-133"></a>
+<a name="line-134"></a><a name="DTDState"></a><span class='keyword'>type</span> <span class='conid'>DTDState</span> <span class='varid'>res</span>	<span class='keyglyph'>=</span> <span class='conid'>XState</span> <span class='conid'>PeEnv</span> <span class='varid'>res</span>
+<a name="line-135"></a>
+<a name="line-136"></a><a name="DTDStateFilter"></a><span class='keyword'>type</span> <span class='conid'>DTDStateFilter</span>	<span class='keyglyph'>=</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDState</span> <span class='conid'>XmlTrees</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="DTDPart"></a><span class='keyword'>data</span> <span class='conid'>DTDPart</span>		<span class='keyglyph'>=</span> <span class='conid'>Internal</span>
+<a name="line-139"></a>			<span class='keyglyph'>|</span> <span class='conid'>External</span>
+<a name="line-140"></a>			  <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>)</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="PeEnv"></a><span class='keyword'>type</span> <span class='conid'>PeEnv</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'>XmlTree</span>
+<a name="line-145"></a>
+<a name="line-146"></a><a name="emptyPeEnv"></a><span class='definition'>emptyPeEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>PeEnv</span>
+<a name="line-147"></a><span class='definition'>emptyPeEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-148"></a>
+<a name="line-149"></a><a name="lookupPeEnv"></a><span class='definition'>lookupPeEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PeEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>
+<a name="line-150"></a><span class='definition'>lookupPeEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span>
+<a name="line-151"></a>
+<a name="line-152"></a><a name="addPeEntry"></a><span class='definition'>addPeEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PeEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PeEnv</span>
+<a name="line-153"></a><span class='definition'>addPeEntry</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span>
+<a name="line-154"></a>
+<a name="line-155"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-156"></a>
+<a name="line-157"></a><span class='comment'>-- |</span>
+<a name="line-158"></a><span class='comment'>-- a filter for DTD processing</span>
+<a name="line-159"></a><span class='comment'>--</span>
+<a name="line-160"></a><span class='comment'>-- inclusion of external parts of DTD,</span>
+<a name="line-161"></a><span class='comment'>-- parameter entity substitution</span>
+<a name="line-162"></a><span class='comment'>-- conditional section evaluation</span>
+<a name="line-163"></a><span class='comment'>--</span>
+<a name="line-164"></a><span class='comment'>-- input tree must represent a complete document including root node</span>
+<a name="line-165"></a>
+<a name="line-166"></a><a name="processDTD"></a><span class='definition'>processDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-167"></a><span class='definition'>processDTD</span>
+<a name="line-168"></a>    <span class='keyglyph'>=</span> <span class='varid'>runInLocalURIContext</span>
+<a name="line-169"></a>         <span class='layout'>(</span> <span class='varid'>processRoot</span>
+<a name="line-170"></a>	   <span class='varop'>.&gt;&gt;</span>
+<a name="line-171"></a>	   <span class='varid'>traceTree</span>
+<a name="line-172"></a>	   <span class='varop'>.&gt;&gt;</span>
+<a name="line-173"></a>	   <span class='varid'>traceSource</span>
+<a name="line-174"></a>	 <span class='layout'>)</span>
+<a name="line-175"></a>      <span class='varop'>`whenM`</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>.&gt;</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-176"></a>      <span class='keyword'>where</span>
+<a name="line-177"></a>
+<a name="line-178"></a>      <span class='varid'>processRoot</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-179"></a>      <span class='varid'>processRoot</span> <span class='varid'>t</span>
+<a name="line-180"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-181"></a>	    <span class='varid'>sequence_</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'>a</span><span class='layout'>,</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>setSysParamTree</span> <span class='varid'>a</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>toTreel</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-182"></a>	    <span class='varid'>setSysParam</span> <span class='varid'>a_standalone</span> <span class='str'>""</span>
+<a name="line-183"></a>	    <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"processDTD: process parameter entities"</span><span class='layout'>)</span>
+<a name="line-184"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-185"></a>	      <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>modifyChildren</span> <span class='varid'>addDoctype</span><span class='layout'>)</span>
+<a name="line-186"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-187"></a>	      <span class='varid'>processChildrenM</span> <span class='varid'>substParamEntities</span>
+<a name="line-188"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-189"></a>	      <span class='varid'>checkResult</span> <span class='str'>"in XML DTD processing"</span>
+<a name="line-190"></a>	      <span class='layout'>)</span> <span class='varop'>`whenM`</span> <span class='varid'>statusOk</span>
+<a name="line-191"></a>	      <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-192"></a>
+<a name="line-193"></a>      <span class='comment'>-- Adds an empty DOCTYPE node to document. Needed for documents without a DTD.</span>
+<a name="line-194"></a>      <span class='comment'>-- Otherwise processor can not substitute predefined entities. If an xml declaration</span>
+<a name="line-195"></a>      <span class='comment'>-- is present, the node is inserted after this node.</span>
+<a name="line-196"></a>      <span class='varid'>addDoctype</span> <span class='keyglyph'>::</span> <span class='conid'>XmlSFilter</span>
+<a name="line-197"></a>      <span class='varid'>addDoctype</span> <span class='varid'>docChilds</span>
+<a name="line-198"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>doctype</span>
+<a name="line-199"></a>            <span class='keyword'>then</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>xmlDecl</span>
+<a name="line-200"></a>                 <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>mkXDTDTree</span> <span class='conid'>DOCTYPE</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>docChilds</span>
+<a name="line-201"></a>                 <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>docChilds</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='keyglyph'>[</span><span class='varid'>mkXDTDTree</span> <span class='conid'>DOCTYPE</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>docChilds</span><span class='layout'>)</span>
+<a name="line-202"></a>            <span class='keyword'>else</span> <span class='varid'>docChilds</span>
+<a name="line-203"></a>            <span class='keyword'>where</span>
+<a name="line-204"></a>            <span class='varid'>doctype</span> <span class='keyglyph'>=</span> <span class='varid'>isDoctype</span> <span class='varop'>$$</span> <span class='varid'>docChilds</span>
+<a name="line-205"></a>            <span class='varid'>xmlDecl</span> <span class='keyglyph'>=</span> <span class='varid'>isPi</span> <span class='varid'>t_xml</span> <span class='varop'>$$</span> <span class='varid'>isXPi</span> <span class='varop'>$$</span> <span class='varid'>docChilds</span>
+<a name="line-206"></a>
+<a name="line-207"></a>
+<a name="line-208"></a><a name="substParamEntities"></a><span class='definition'>substParamEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-209"></a><span class='definition'>substParamEntities</span>
+<a name="line-210"></a>    <span class='keyglyph'>=</span> <span class='varid'>processParamEntities</span>
+<a name="line-211"></a>      <span class='varop'>`whenM`</span>
+<a name="line-212"></a>      <span class='varid'>isDoctype</span>
+<a name="line-213"></a>      <span class='keyword'>where</span>
+<a name="line-214"></a>
+<a name="line-215"></a>      <span class='varid'>processParamEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-216"></a>      <span class='varid'>processParamEntities</span> <span class='varid'>t'</span>
+<a name="line-217"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-218"></a>	    <span class='layout'>(</span><span class='varid'>dtdPre</span><span class='layout'>,</span> <span class='varid'>envPre</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>processPredef</span>
+<a name="line-219"></a>
+<a name="line-220"></a>	    <span class='comment'>-- process internal part of DTD with initial empty env for parameter entities</span>
+<a name="line-221"></a>	    <span class='layout'>(</span><span class='varid'>dtdInt</span><span class='layout'>,</span> <span class='varid'>envInt</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>processInt</span> <span class='varid'>envPre</span> <span class='varid'>t'</span>
+<a name="line-222"></a>
+<a name="line-223"></a>	    <span class='comment'>-- process external part of DTD with resulting env from internal DTD</span>
+<a name="line-224"></a>	    <span class='varid'>dtdExt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>runInLocalURIContext</span> <span class='layout'>(</span><span class='varid'>processExt</span> <span class='varid'>envInt</span><span class='layout'>)</span> <span class='varid'>t'</span>
+<a name="line-225"></a>
+<a name="line-226"></a>	    <span class='comment'>-- merge predefined, internal and external part</span>
+<a name="line-227"></a>	    <span class='varid'>trace</span> <span class='num'>2</span> <span class='str'>"substParamEntities: merge internal and external DTD parts"</span>
+<a name="line-228"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>foldl1</span> <span class='varid'>mergeDTDs</span> <span class='keyglyph'>[</span><span class='varid'>dtdPre</span><span class='layout'>,</span> <span class='varid'>dtdInt</span><span class='layout'>,</span> <span class='varid'>dtdExt</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varid'>t'</span><span class='layout'>)</span>
+<a name="line-229"></a>
+<a name="line-230"></a>      <span class='varid'>processPredef</span>
+<a name="line-231"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-232"></a>	    <span class='varid'>trace</span> <span class='num'>2</span> <span class='str'>"substParamEntities: substitute predefined entities"</span>
+<a name="line-233"></a>	    <span class='varid'>chain'</span> <span class='varid'>emptyPeEnv</span> <span class='layout'>(</span><span class='varid'>substParamEntity</span> <span class='conid'>Internal</span> <span class='varop'>$$&lt;</span> <span class='varid'>predefDTDPart</span><span class='layout'>)</span>
+<a name="line-234"></a>
+<a name="line-235"></a>      <span class='varid'>processInt</span> <span class='varid'>env'</span> <span class='varid'>n'</span>
+<a name="line-236"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-237"></a>	    <span class='varid'>trace</span> <span class='num'>2</span> <span class='str'>"substParamEntities: substitute parameter entities in internal DTD part"</span>
+<a name="line-238"></a>	    <span class='varid'>chain'</span> <span class='varid'>env'</span> <span class='layout'>(</span><span class='varid'>substParamEntity</span> <span class='conid'>Internal</span> <span class='varop'>$$&lt;</span> <span class='varid'>getChildren</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-239"></a>
+<a name="line-240"></a>      <span class='varid'>processExt</span> <span class='varid'>env'</span> <span class='varid'>n'</span>
+<a name="line-241"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-242"></a>	    <span class='varid'>trace</span> <span class='num'>2</span> <span class='str'>"substParamEntities: process external part of DTD"</span>
+<a name="line-243"></a>            <span class='varid'>extDtd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>processExternalDTD</span> <span class='varid'>n'</span>
+<a name="line-244"></a>	    <span class='varid'>trace</span> <span class='num'>2</span> <span class='str'>"substParamEntities: substitute parameter entities in external DTD part"</span>
+<a name="line-245"></a>	    <span class='varid'>chain</span> <span class='varid'>env'</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>substParamEntity</span> <span class='conid'>External</span><span class='layout'>)</span> <span class='varop'>$$&lt;</span> <span class='varid'>extDtd</span><span class='layout'>)</span>
+<a name="line-246"></a>
+<a name="line-247"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-248"></a><span class='comment'>-- |</span>
+<a name="line-249"></a><span class='comment'>-- substitute parameter entities</span>
+<a name="line-250"></a><span class='comment'>-- result is the input tree with the list of text nodes as children or an error message</span>
+<a name="line-251"></a>
+<a name="line-252"></a><a name="substPEref'"></a><span class='definition'>substPEref'</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDPart</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PeEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-253"></a>
+<a name="line-254"></a><span class='definition'>substPEref'</span> <span class='varid'>loc</span> <span class='varid'>env</span> <span class='varid'>n</span><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'>PEREF</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-255"></a>    <span class='keyglyph'>|</span> <span class='varid'>isInternalRef</span>	<span class='keyglyph'>=</span> <span class='varid'>xerr</span> <span class='layout'>(</span><span class='str'>"a parameter entity reference of "</span> <span class='varop'>++</span> <span class='varid'>peName'</span> <span class='varop'>++</span> <span class='str'>" occurs in the internal subset of the DTD"</span><span class='layout'>)</span>
+<a name="line-256"></a>
+<a name="line-257"></a>    <span class='keyglyph'>|</span> <span class='varid'>isUndefinedRef</span>	<span class='keyglyph'>=</span> <span class='varid'>xerr</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>peName'</span> <span class='varop'>++</span> <span class='str'>" not found (forward reference?)"</span><span class='layout'>)</span>
+<a name="line-258"></a>
+<a name="line-259"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>baseUri</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>setChildren</span> <span class='varid'>peContent</span> <span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-260"></a>
+<a name="line-261"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <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'>PEREF</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_url</span><span class='layout'>,</span><span class='varid'>baseUri</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>al</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>peContent</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-262"></a>    <span class='keyword'>where</span>
+<a name="line-263"></a>    <span class='varid'>peName</span>		<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-264"></a>    <span class='varid'>peName'</span>		<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>peName</span>
+<a name="line-265"></a>    <span class='varid'>peVal</span>		<span class='keyglyph'>=</span> <span class='varid'>lookupPeEnv</span> <span class='varid'>peName</span> <span class='varid'>env</span>
+<a name="line-266"></a>    <span class='varid'>isInternalRef</span>	<span class='keyglyph'>=</span> <span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>Internal</span>
+<a name="line-267"></a>    <span class='varid'>isUndefinedRef</span>	<span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varid'>peVal</span>
+<a name="line-268"></a>
+<a name="line-269"></a>    <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>PENTITY</span> <span class='varid'>peAl</span><span class='layout'>)</span> <span class='varid'>peContent</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varid'>peVal</span>
+<a name="line-270"></a>    <span class='varid'>baseUri</span>		<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_url</span> <span class='varid'>peAl</span>
+<a name="line-271"></a>
+<a name="line-272"></a>    <span class='comment'>-- peContent		= getChildren $ fromJust peVal</span>
+<a name="line-273"></a>
+<a name="line-274"></a><span class='definition'>substPEref'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>n</span>
+<a name="line-275"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-276"></a>
+<a name="line-277"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-278"></a>
+<a name="line-279"></a><span class='comment'>{-
+<a name="line-280"></a>dumpPE	:: DTDStateFilter
+<a name="line-281"></a>dumpPE t
+<a name="line-282"></a>    = do
+<a name="line-283"></a>      env &lt;- getState
+<a name="line-284"></a>      ( traceMsg 2 ("dumpPE: parameter entity environment\n" ++ M.foldWithKey showPE "" env)
+<a name="line-285"></a>	.&gt;&gt;
+<a name="line-286"></a>	thisM ) t
+<a name="line-287"></a>    where
+<a name="line-288"></a>    showPE k v b = k ++ "\t" ++ show v ++ "\n" ++ b
+<a name="line-289"></a>-}</span>
+<a name="line-290"></a>
+<a name="line-291"></a><a name="traceDTD"></a><span class='definition'>traceDTD</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-292"></a><span class='definition'>traceDTD</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>4</span> <span class='varid'>msg</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>traceTree</span>
+<a name="line-293"></a>
+<a name="line-294"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-295"></a>
+<a name="line-296"></a><a name="getExternalParamEntityValue"></a><span class='definition'>getExternalParamEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-297"></a><span class='definition'>getExternalParamEntityValue</span> <span class='varid'>n</span><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'>PENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-298"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-299"></a>      <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-300"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-301"></a>	      <span class='varid'>liftMf</span> <span class='varid'>getChildren</span>
+<a name="line-302"></a>	    <span class='layout'>)</span>
+<a name="line-303"></a>	    <span class='varop'>$</span> <span class='varid'>newDocument'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_source</span><span class='layout'>,</span> <span class='varid'>sysVal</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-304"></a>      <span class='varid'>base</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getBaseURI</span>
+<a name="line-305"></a>      <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rl</span>
+<a name="line-306"></a>	 <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"illegal external parameter entity value for entity %"</span> <span class='varop'>++</span> <span class='varid'>peName</span> <span class='varop'>++</span><span class='str'>";"</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-307"></a>	 <span class='keyword'>else</span> <span class='varid'>thisM</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>PENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_url</span><span class='layout'>,</span> <span class='varid'>base</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-308"></a>    <span class='keyword'>where</span>
+<a name="line-309"></a>    <span class='varid'>sysVal</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>k_system</span> <span class='varid'>al</span>
+<a name="line-310"></a>    <span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>   <span class='varid'>al</span>
+<a name="line-311"></a>
+<a name="line-312"></a><span class='definition'>getExternalParamEntityValue</span> <span class='varid'>n</span>
+<a name="line-313"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"getExternalParamEntityValue: illegal argument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-314"></a>
+<a name="line-315"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-316"></a>
+<a name="line-317"></a><span class='comment'>-- |</span>
+<a name="line-318"></a><span class='comment'>-- the dtd parameter entity substitution filter</span>
+<a name="line-319"></a>
+<a name="line-320"></a><a name="substParamEntity"></a><span class='definition'>substParamEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDPart</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-321"></a>
+<a name="line-322"></a><span class='definition'>substParamEntity</span> <span class='varid'>loc</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>xn</span> <span class='sel'>_cs</span><span class='layout'>)</span>
+<a name="line-323"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElemNode</span> <span class='conid'>ENTITY</span> <span class='varid'>xn</span>					<span class='comment'>-- ENITITY and parameter ENTITY decl</span>
+<a name="line-324"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceDTD</span> <span class='layout'>(</span><span class='str'>"ENTITY declaration before DTD declaration parsing"</span><span class='layout'>)</span>
+<a name="line-325"></a>	  <span class='varop'>.&gt;&gt;</span>
+<a name="line-326"></a>	  <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>substPeRefsInDTDdecl</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-327"></a>          <span class='varop'>.&gt;&gt;</span>
+<a name="line-328"></a>	  <span class='varid'>liftF</span> <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-329"></a>          <span class='varop'>.&gt;&gt;</span>
+<a name="line-330"></a>	  <span class='varid'>substRefsInEntityValue</span>
+<a name="line-331"></a>          <span class='varop'>.&gt;&gt;</span>
+<a name="line-332"></a>	  <span class='varid'>processEntityDecl</span>
+<a name="line-333"></a>          <span class='varop'>.&gt;&gt;</span>
+<a name="line-334"></a>          <span class='varid'>traceDTD</span> <span class='layout'>(</span><span class='str'>"ENTITY declaration after DTD declaration parsing"</span><span class='layout'>)</span>
+<a name="line-335"></a>          <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-336"></a>
+<a name="line-337"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElemNode</span> <span class='conid'>PEREF</span> <span class='varid'>xn</span>					<span class='comment'>-- parameter entity ref in DTD</span>
+<a name="line-338"></a>	<span class='keyglyph'>=</span> <span class='varid'>substPeRefsInDTDpart</span> <span class='conid'>[]</span> <span class='varid'>n</span>
+<a name="line-339"></a>
+<a name="line-340"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElemNode</span> <span class='conid'>ELEMENT</span> <span class='varid'>xn</span>					<span class='comment'>-- ELEMENT, ATTLIST, NOTATION</span>
+<a name="line-341"></a>      <span class='varop'>||</span>
+<a name="line-342"></a>      <span class='varid'>isDTDElemNode</span> <span class='conid'>ATTLIST</span> <span class='varid'>xn</span>
+<a name="line-343"></a>      <span class='varop'>||</span>
+<a name="line-344"></a>      <span class='varid'>isDTDElemNode</span> <span class='conid'>NOTATION</span> <span class='varid'>xn</span>
+<a name="line-345"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceDTD</span>  <span class='str'>"DTD declaration before PE substitution"</span>
+<a name="line-346"></a>	  <span class='varop'>.&gt;&gt;</span>
+<a name="line-347"></a>	  <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>substPeRefsInDTDdecl</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-348"></a>          <span class='varop'>.&gt;&gt;</span>
+<a name="line-349"></a>	  <span class='varid'>liftF</span> <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-350"></a>          <span class='varop'>.&gt;&gt;</span>
+<a name="line-351"></a>	  <span class='varid'>traceDTD</span> <span class='str'>"DTD declaration after DTD declaration parsing"</span>
+<a name="line-352"></a>	  <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-353"></a>
+<a name="line-354"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElemNode</span> <span class='conid'>CONDSECT</span> <span class='varid'>xn</span>					<span class='comment'>-- conditional section</span>
+<a name="line-355"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-356"></a>      <span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>Internal</span>
+<a name="line-357"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-358"></a>	    <span class='varid'>issueErr</span> <span class='str'>"conditional sections in internal part of the DTD is not allowed"</span> <span class='varid'>n</span>
+<a name="line-359"></a>            <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-360"></a>
+<a name="line-361"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDElemNode</span> <span class='conid'>CONDSECT</span> <span class='varid'>xn</span>					<span class='comment'>-- conditional section</span>
+<a name="line-362"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-363"></a>      <span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>External</span>
+<a name="line-364"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-365"></a>	    <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xn</span>
+<a name="line-366"></a>	    <span class='varid'>content</span>	<span class='keyglyph'>=</span> <span class='varid'>mkXTextTree</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-367"></a>	    <span class='keyword'>in</span>
+<a name="line-368"></a>	    <span class='varid'>traceDTD</span> <span class='str'>"substParamEntity: process conditional section"</span>
+<a name="line-369"></a>	    <span class='varop'>.&gt;&gt;</span>
+<a name="line-370"></a>	    <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>substPeRefsInCondSect</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-371"></a>            <span class='varop'>.&gt;&gt;</span>
+<a name="line-372"></a>	    <span class='varid'>liftF</span> <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-373"></a>	    <span class='varop'>.&gt;&gt;</span>
+<a name="line-374"></a>            <span class='varid'>evalCond</span> <span class='varid'>content</span>
+<a name="line-375"></a>	    <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-376"></a>
+<a name="line-377"></a>    <span class='keyglyph'>|</span> <span class='varid'>isXCmtNode</span> <span class='varid'>xn</span>						<span class='comment'>-- remove comments</span>
+<a name="line-378"></a>	<span class='keyglyph'>=</span> <span class='varid'>noneM</span> <span class='varid'>n</span>
+<a name="line-379"></a>
+<a name="line-380"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>							<span class='comment'>-- default: keep things unchanged (should not occur)</span>
+<a name="line-381"></a>	<span class='keyglyph'>=</span> <span class='varid'>thisM</span> <span class='varid'>n</span>
+<a name="line-382"></a>    <span class='keyword'>where</span>
+<a name="line-383"></a>
+<a name="line-384"></a>    <span class='varid'>processEntityDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-385"></a>    <span class='varid'>processEntityDecl</span> <span class='varid'>n'</span><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'>ENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isExtern</span>
+<a name="line-386"></a>	  <span class='keyword'>then</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-387"></a>		 <span class='varid'>url</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getAbsolutURI</span> <span class='varid'>sysVal</span>			<span class='comment'>-- add the absolute URI</span>
+<a name="line-388"></a>		 <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_url</span><span class='layout'>,</span> <span class='varid'>url</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>
+<a name="line-389"></a>	       <span class='layout'>)</span>
+<a name="line-390"></a>	  <span class='keyword'>else</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>substChildren</span> <span class='layout'>(</span><span class='varid'>xmlTreesToText</span> <span class='varop'>.</span> <span class='varid'>getChildren</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n'</span>
+<a name="line-391"></a>	<span class='keyword'>where</span>
+<a name="line-392"></a>	<span class='varid'>isExtern</span> <span class='keyglyph'>=</span> <span class='varid'>hasEntry</span> <span class='varid'>k_system</span> <span class='varid'>al</span>
+<a name="line-393"></a>	<span class='varid'>sysVal</span>   <span class='keyglyph'>=</span> <span class='varid'>lookup1</span>  <span class='varid'>k_system</span> <span class='varid'>al</span>
+<a name="line-394"></a>      
+<a name="line-395"></a>    <span class='varid'>processEntityDecl</span> <span class='varid'>n'</span><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'>PENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-396"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-397"></a>	  <span class='varid'>env</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-398"></a>	  <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookupPeEnv</span> <span class='varid'>peName</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>env</span>
+<a name="line-399"></a>	     <span class='keyword'>then</span>
+<a name="line-400"></a>	     <span class='varid'>issueWarn</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" already defined"</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-401"></a>	     <span class='keyword'>else</span>
+<a name="line-402"></a>	     <span class='layout'>(</span> <span class='varid'>ifM</span> <span class='varid'>isExternalParameterEntity</span>
+<a name="line-403"></a>	           <span class='layout'>(</span> <span class='varid'>runInLocalURIContext</span> <span class='varid'>getExternalParamEntityValue</span> <span class='layout'>)</span>
+<a name="line-404"></a>                   <span class='layout'>(</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>substChildren</span> <span class='layout'>(</span><span class='varid'>xmlTreesToText</span> <span class='varop'>.</span> <span class='varid'>getChildren</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-405"></a>	       <span class='varop'>.&gt;&gt;</span>
+<a name="line-406"></a>	       <span class='varid'>addPE</span> <span class='varid'>peName</span>
+<a name="line-407"></a>	     <span class='layout'>)</span> <span class='varid'>n'</span>
+<a name="line-408"></a>	  <span class='keyword'>where</span>
+<a name="line-409"></a>	  <span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-410"></a>
+<a name="line-411"></a>    <span class='varid'>processEntityDecl</span> <span class='varid'>n'</span>
+<a name="line-412"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"processEntityDecl called with wrong argument"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-413"></a>
+<a name="line-414"></a>    <span class='varid'>addPE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-415"></a>    <span class='varid'>addPE</span> <span class='varid'>name</span> <span class='varid'>t</span>
+<a name="line-416"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-417"></a>	  <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"substParamEntity: add entity to env: "</span> <span class='varop'>++</span> <span class='varid'>xshow</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-418"></a>	  <span class='varid'>changeState</span> <span class='varop'>$</span> <span class='varid'>addPeEntry</span> <span class='varid'>name</span> <span class='varid'>t</span>
+<a name="line-419"></a>	  <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-420"></a>
+<a name="line-421"></a>    <span class='varid'>substPEref</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-422"></a>    <span class='varid'>substPEref</span> <span class='varid'>n'</span>
+<a name="line-423"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-424"></a>	  <span class='varid'>env</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-425"></a>	  <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>substPEref'</span> <span class='varid'>loc</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n'</span>
+<a name="line-426"></a>
+<a name="line-427"></a>    <span class='varid'>substPeRefsInValue</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='conid'>DTDStateFilter</span>
+<a name="line-428"></a>    <span class='varid'>substPeRefsInValue</span> <span class='varid'>recList</span> <span class='varid'>n'</span><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'>PEREF</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-429"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>peName</span> <span class='varop'>`elem`</span> <span class='varid'>recList</span>
+<a name="line-430"></a>	    <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive call of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" in entity value"</span><span class='layout'>)</span>
+<a name="line-431"></a>	    <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>substPEref</span>
+<a name="line-432"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-433"></a>		   <span class='varid'>liftF</span> <span class='varid'>parseXmlDTDEntityValue</span>
+<a name="line-434"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-435"></a>		   <span class='varid'>liftF</span> <span class='varid'>transfCharRef</span>
+<a name="line-436"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-437"></a>		   <span class='layout'>(</span> <span class='varid'>substPeRefsInValue</span> <span class='layout'>(</span><span class='varid'>peName</span> <span class='conop'>:</span> <span class='varid'>recList</span><span class='layout'>)</span>
+<a name="line-438"></a>		     <span class='varop'>`whenM`</span>
+<a name="line-439"></a>		     <span class='varid'>isPeRef</span>
+<a name="line-440"></a>		   <span class='layout'>)</span>
+<a name="line-441"></a>		 <span class='layout'>)</span>
+<a name="line-442"></a>	  <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n'</span>
+<a name="line-443"></a>	<span class='keyword'>where</span>
+<a name="line-444"></a>	<span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-445"></a>
+<a name="line-446"></a>    <span class='varid'>substPeRefsInValue</span> <span class='keyword'>_</span> <span class='varid'>n'</span>
+<a name="line-447"></a>	<span class='keyglyph'>=</span> <span class='varid'>thisM</span> <span class='varid'>n'</span>
+<a name="line-448"></a>
+<a name="line-449"></a>    <span class='varid'>substRefsInEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-450"></a>    <span class='varid'>substRefsInEntityValue</span> <span class='varid'>n'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>decl</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-451"></a>	<span class='keyglyph'>|</span> <span class='varid'>decl</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>ENTITY</span><span class='layout'>,</span> <span class='conid'>PENTITY</span><span class='keyglyph'>]</span>
+<a name="line-452"></a>	    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>hasEntry</span> <span class='varid'>k_system</span> <span class='varid'>al</span>
+<a name="line-453"></a>		<span class='keyword'>then</span> <span class='varid'>thisM</span>							<span class='comment'>-- externals not yet handled ??? really</span>
+<a name="line-454"></a>		<span class='keyword'>else</span> <span class='varid'>processChildrenM</span> <span class='layout'>(</span> <span class='varid'>liftF</span> <span class='varid'>transfCharRef</span>
+<a name="line-455"></a>					<span class='varop'>.&gt;&gt;</span>
+<a name="line-456"></a>					<span class='varid'>substPeRefsInValue</span> <span class='conid'>[]</span>
+<a name="line-457"></a>				      <span class='layout'>)</span>
+<a name="line-458"></a>	      <span class='layout'>)</span> <span class='varid'>n'</span>
+<a name="line-459"></a>    <span class='varid'>substRefsInEntityValue</span>  <span class='varid'>n'</span>
+<a name="line-460"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"substRefsInEntityValue called with wrong argument"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-461"></a>
+<a name="line-462"></a>    <span class='varid'>runInPeContext</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDStateFilter</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-463"></a>    <span class='varid'>runInPeContext</span> <span class='varid'>f</span> <span class='varid'>n'</span><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'>PEREF</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-464"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>base</span>
+<a name="line-465"></a>	    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>n'</span>
+<a name="line-466"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-467"></a>	    <span class='keyglyph'>=</span> <span class='varid'>runInNewURIContext</span> <span class='varid'>base</span> <span class='varid'>f</span> <span class='varid'>n'</span>
+<a name="line-468"></a>	<span class='keyword'>where</span>
+<a name="line-469"></a>	<span class='varid'>base</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_url</span> <span class='varid'>al</span>
+<a name="line-470"></a>
+<a name="line-471"></a>    <span class='varid'>runInPeContext</span> <span class='varid'>f</span> <span class='varid'>n'</span>
+<a name="line-472"></a>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>n'</span>
+<a name="line-473"></a>
+<a name="line-474"></a>    <span class='varid'>substPeRefsInDTDdecl</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='conid'>DTDStateFilter</span>
+<a name="line-475"></a>    <span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>recList</span> <span class='varid'>n'</span><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'>PEREF</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-476"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>peName</span> <span class='varop'>`elem`</span> <span class='varid'>recList</span>
+<a name="line-477"></a>	    <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive call of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" in DTD declaration"</span><span class='layout'>)</span>
+<a name="line-478"></a>	    <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>substPEref</span>
+<a name="line-479"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-480"></a>		   <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: parseXmlDTDdeclPart"</span>
+<a name="line-481"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-482"></a>		   <span class='layout'>(</span> <span class='varid'>runInPeContext</span>
+<a name="line-483"></a>		     <span class='layout'>(</span> <span class='varid'>liftF</span> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdeclPart</span> <span class='layout'>)</span>
+<a name="line-484"></a>		       <span class='varop'>.&gt;&gt;</span>
+<a name="line-485"></a>		       <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: after parseXmlDTDdeclPart"</span>
+<a name="line-486"></a>		       <span class='varop'>.&gt;&gt;</span>
+<a name="line-487"></a>		       <span class='varid'>processChildrenM</span> <span class='layout'>(</span> <span class='varid'>substPeRefsInDTDdecl</span> <span class='layout'>(</span><span class='varid'>peName</span> <span class='conop'>:</span> <span class='varid'>recList</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-488"></a>		     <span class='layout'>)</span>
+<a name="line-489"></a>		     <span class='varop'>`whenM`</span>
+<a name="line-490"></a>		     <span class='varid'>isPeRef</span>
+<a name="line-491"></a>		   <span class='layout'>)</span>
+<a name="line-492"></a>		 <span class='layout'>)</span>
+<a name="line-493"></a>	  <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n'</span>
+<a name="line-494"></a>	<span class='keyword'>where</span>
+<a name="line-495"></a>	<span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-496"></a>
+<a name="line-497"></a>    <span class='varid'>substPeRefsInDTDdecl</span> <span class='keyword'>_</span> <span class='varid'>n'</span>
+<a name="line-498"></a>	<span class='keyglyph'>=</span> <span class='varid'>thisM</span> <span class='varid'>n'</span>
+<a name="line-499"></a>
+<a name="line-500"></a>    <span class='varid'>substPeRefsInDTDpart</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='conid'>DTDStateFilter</span>
+<a name="line-501"></a>    <span class='varid'>substPeRefsInDTDpart</span> <span class='varid'>recList</span> <span class='varid'>n'</span><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'>PEREF</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-502"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>peName</span> <span class='varop'>`elem`</span> <span class='varid'>recList</span>
+<a name="line-503"></a>	    <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive call of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" in DTD part"</span><span class='layout'>)</span>
+<a name="line-504"></a>	    <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>substPEref</span>
+<a name="line-505"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-506"></a>		   <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDpart: parseXmlDTDPart"</span>
+<a name="line-507"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-508"></a>		   <span class='varid'>runInPeContext</span>
+<a name="line-509"></a>		   <span class='layout'>(</span> <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>parseXmlDTDPart</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-510"></a>		     <span class='varop'>.&gt;&gt;</span>
+<a name="line-511"></a>		     <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: after parseXmlDTDPart"</span>
+<a name="line-512"></a>		     <span class='varop'>.&gt;&gt;</span>
+<a name="line-513"></a>		     <span class='varid'>substParamEntity</span> <span class='varid'>loc</span> <span class='comment'>-- cyclic check not yet done (peName : recList)</span>
+<a name="line-514"></a>		   <span class='layout'>)</span>
+<a name="line-515"></a>		 <span class='layout'>)</span>
+<a name="line-516"></a>	  <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n'</span>
+<a name="line-517"></a>	<span class='keyword'>where</span>
+<a name="line-518"></a>	<span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-519"></a>
+<a name="line-520"></a>    <span class='varid'>substPeRefsInDTDpart</span> <span class='keyword'>_</span> <span class='varid'>n'</span>
+<a name="line-521"></a>	<span class='keyglyph'>=</span> <span class='varid'>thisM</span> <span class='varid'>n'</span>
+<a name="line-522"></a>
+<a name="line-523"></a>    <span class='varid'>substPeRefsInCondSect</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='conid'>DTDStateFilter</span>
+<a name="line-524"></a>    <span class='varid'>substPeRefsInCondSect</span> <span class='varid'>recList</span> <span class='varid'>n'</span><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'>PEREF</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-525"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>peName</span> <span class='varop'>`elem`</span> <span class='varid'>recList</span>
+<a name="line-526"></a>	    <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive call of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" in conditional section"</span><span class='layout'>)</span>
+<a name="line-527"></a>	    <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>substPEref</span>
+<a name="line-528"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-529"></a>		   <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInCondSect: parseXmlDTDdeclPart"</span>
+<a name="line-530"></a>		   <span class='varop'>.&gt;&gt;</span>
+<a name="line-531"></a>		   <span class='layout'>(</span> <span class='varid'>runInPeContext</span>
+<a name="line-532"></a>		     <span class='layout'>(</span> <span class='varid'>liftF</span> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdeclPart</span> <span class='layout'>)</span>
+<a name="line-533"></a>		       <span class='varop'>.&gt;&gt;</span>
+<a name="line-534"></a>		       <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInCondSect: after parseXmlDTDdeclPart"</span>
+<a name="line-535"></a>		       <span class='varop'>.&gt;&gt;</span>
+<a name="line-536"></a>		       <span class='varid'>processChildrenM</span> <span class='layout'>(</span> <span class='varid'>substPeRefsInCondSect</span> <span class='layout'>(</span><span class='varid'>peName</span> <span class='conop'>:</span> <span class='varid'>recList</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-537"></a>		     <span class='layout'>)</span>
+<a name="line-538"></a>		     <span class='varop'>`whenM`</span>
+<a name="line-539"></a>		     <span class='varid'>isPeRef</span>
+<a name="line-540"></a>		   <span class='layout'>)</span>
+<a name="line-541"></a>		 <span class='layout'>)</span>
+<a name="line-542"></a>	  <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n'</span>
+<a name="line-543"></a>	<span class='keyword'>where</span>
+<a name="line-544"></a>	<span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-545"></a>
+<a name="line-546"></a>    <span class='varid'>substPeRefsInCondSect</span> <span class='keyword'>_</span> <span class='varid'>n'</span>
+<a name="line-547"></a>	<span class='keyglyph'>=</span> <span class='varid'>thisM</span> <span class='varid'>n'</span>
+<a name="line-548"></a>
+<a name="line-549"></a>
+<a name="line-550"></a><a name="evalCond"></a><span class='definition'>evalCond</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDStateFilter</span>
+<a name="line-551"></a><span class='definition'>evalCond</span> <span class='varid'>content</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-552"></a>    <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='varid'>k_include</span>
+<a name="line-553"></a>	<span class='keyglyph'>=</span> <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>parseXmlDTDPart</span> <span class='str'>"conditional section"</span><span class='layout'>)</span>
+<a name="line-554"></a>	  <span class='varop'>.&gt;&gt;</span>
+<a name="line-555"></a>	  <span class='varid'>traceDTD</span> <span class='str'>"evalCond: DTD part"</span>
+<a name="line-556"></a>	  <span class='varop'>.&gt;&gt;</span>
+<a name="line-557"></a>	  <span class='varid'>substParamEntity</span> <span class='conid'>External</span>
+<a name="line-558"></a>          <span class='varop'>$</span> <span class='varid'>content</span> 
+<a name="line-559"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-560"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-561"></a>    <span class='keyword'>where</span>
+<a name="line-562"></a>    <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>textOfXNode</span> <span class='varid'>n</span>
+<a name="line-563"></a>
+<a name="line-564"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-565"></a>
+<a name="line-566"></a><a name="processExternalDTD"></a><span class='definition'>processExternalDTD</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-567"></a><span class='definition'>processExternalDTD</span> <span class='varid'>n</span><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'>DOCTYPE</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_dtd</span><span class='layout'>)</span>
+<a name="line-568"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>sysVal</span>
+<a name="line-569"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-570"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-571"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-572"></a>	  <span class='varid'>checkStandalone</span>
+<a name="line-573"></a>	  <span class='varid'>dtdContent</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-574"></a>			  <span class='varop'>.&gt;&gt;</span>
+<a name="line-575"></a>			  <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"processExternalDTD: parsing DTD part for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sysVal</span><span class='layout'>)</span>
+<a name="line-576"></a>			  <span class='varop'>.&gt;&gt;</span>
+<a name="line-577"></a>			  <span class='varid'>liftMf</span> <span class='varid'>getChildren</span>
+<a name="line-578"></a>			  <span class='varop'>.&gt;&gt;</span>
+<a name="line-579"></a>			  <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>parseXmlDTDPart</span> <span class='varid'>sysVal</span><span class='layout'>)</span>
+<a name="line-580"></a>			<span class='layout'>)</span>
+<a name="line-581"></a>		       <span class='varop'>$</span> <span class='varid'>newDocument</span> <span class='varid'>sysVal</span>
+<a name="line-582"></a>	  <span class='varid'>trace</span> <span class='num'>2</span> <span class='str'>"processExternalDTD: parsing DTD part done"</span>
+<a name="line-583"></a>	  <span class='varid'>traceTree</span> <span class='varop'>$</span> <span class='varid'>mkRootTree</span> <span class='conid'>[]</span> <span class='varid'>dtdContent</span>
+<a name="line-584"></a>	  <span class='varid'>return</span> <span class='varid'>dtdContent</span>
+<a name="line-585"></a>    <span class='keyword'>where</span>
+<a name="line-586"></a>    <span class='varid'>sysVal</span>		<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>k_system</span> <span class='varid'>al</span>
+<a name="line-587"></a>    <span class='varid'>checkStandalone</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-588"></a>			  <span class='sel'>_isAlone</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>isStandaloneDocument</span>
+<a name="line-589"></a>			  <span class='keyword'>if</span> <span class='conid'>False</span> <span class='comment'>-- isAlone</span>
+<a name="line-590"></a>			     <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"external DTD "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sysVal</span> <span class='varop'>++</span> <span class='str'>" specified for standalone document"</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-591"></a>			     <span class='keyword'>else</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-592"></a>
+<a name="line-593"></a><span class='definition'>processExternalDTD</span>  <span class='keyword'>_</span>
+<a name="line-594"></a>    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-595"></a>
+<a name="line-596"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-597"></a><span class='comment'>-- |</span>
+<a name="line-598"></a><span class='comment'>-- merge the external and the internal part of a DTD into one internal part.</span>
+<a name="line-599"></a><span class='comment'>-- parameter entity substitution should be made before applying this filter</span>
+<a name="line-600"></a><span class='comment'>-- internal definitions shadow external ones</span>
+<a name="line-601"></a><span class='comment'>--</span>
+<a name="line-602"></a><span class='comment'>--</span>
+<a name="line-603"></a><span class='comment'>-- preliminary: no real merge is done</span>
+<a name="line-604"></a>
+<a name="line-605"></a><a name="mergeDTDs"></a><span class='definition'>mergeDTDs</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'>XmlTrees</span>
+<a name="line-606"></a><span class='definition'>mergeDTDs</span> <span class='varid'>dtdInt</span> <span class='varid'>dtdExt</span>
+<a name="line-607"></a>    <span class='keyglyph'>=</span> <span class='varid'>dtdInt</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>mergeDTDentry</span> <span class='varid'>dtdInt</span> <span class='varop'>$$</span> <span class='varid'>dtdExt</span><span class='layout'>)</span>
+<a name="line-608"></a>
+<a name="line-609"></a><a name="mergeDTDentry"></a><span class='definition'>mergeDTDentry</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-610"></a><span class='definition'>mergeDTDentry</span> <span class='varid'>dtdPart</span>
+<a name="line-611"></a>    <span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>found</span>
+<a name="line-612"></a>      <span class='keyword'>where</span>
+<a name="line-613"></a>      <span class='varid'>filterList</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>filterDTDNode</span> <span class='varid'>dtdPart</span>	<span class='comment'>-- construct the list of filters</span>
+<a name="line-614"></a>      <span class='varid'>found</span>      <span class='keyglyph'>=</span> <span class='varid'>cat</span> <span class='varid'>filterList</span>		<span class='comment'>-- concatenate the filters (set union)</span>
+<a name="line-615"></a>
+<a name="line-616"></a>
+<a name="line-617"></a><a name="filterDTDNode"></a><span class='definition'>filterDTDNode</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-618"></a>
+<a name="line-619"></a><span class='definition'>filterDTDNode</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>dtdElem</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-620"></a>    <span class='keyglyph'>|</span> <span class='varid'>dtdElem</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>ELEMENT</span><span class='layout'>,</span> <span class='conid'>NOTATION</span><span class='layout'>,</span> <span class='conid'>ENTITY</span><span class='keyglyph'>]</span>
+<a name="line-621"></a>	<span class='keyglyph'>=</span> <span class='varid'>filterElement</span>
+<a name="line-622"></a>	  <span class='keyword'>where</span>
+<a name="line-623"></a>	  <span class='varid'>filterElement</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>dtdElem'</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='sel'>_cl'</span><span class='layout'>)</span>
+<a name="line-624"></a>	      <span class='keyglyph'>|</span> <span class='varid'>dtdElem</span> <span class='varop'>==</span> <span class='varid'>dtdElem'</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-625"></a>		<span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varid'>al'</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-626"></a>		  <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-627"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-628"></a>		  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-629"></a>	  <span class='varid'>filterElement</span> <span class='keyword'>_</span>
+<a name="line-630"></a>	      <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-631"></a>
+<a name="line-632"></a><span class='definition'>filterDTDNode</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-633"></a>    <span class='keyglyph'>=</span> <span class='varid'>filterAttlist</span>
+<a name="line-634"></a>      <span class='keyword'>where</span>
+<a name="line-635"></a>      <span class='varid'>filterAttlist</span> <span class='varid'>n</span><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'>ATTLIST</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='sel'>_cl'</span><span class='layout'>)</span>
+<a name="line-636"></a>	  <span class='keyglyph'>|</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span>  <span class='varid'>al'</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span>  <span class='varid'>al</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-637"></a>	    <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al'</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al</span>
+<a name="line-638"></a>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-639"></a>      <span class='varid'>filterAttlist</span> <span class='keyword'>_</span>
+<a name="line-640"></a>	  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-641"></a>
+<a name="line-642"></a><span class='definition'>filterDTDNode</span> <span class='keyword'>_</span>
+<a name="line-643"></a>    <span class='keyglyph'>=</span>  <span class='varid'>none</span>
+<a name="line-644"></a>
+<a name="line-645"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-646"></a>
+<a name="line-647"></a><a name="predefinedEntities"></a><span class='definition'>predefinedEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-648"></a><span class='definition'>predefinedEntities</span>
+<a name="line-649"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='str'>"&lt;!ENTITY lt   '&amp;#38;#60;'&gt;"</span>
+<a name="line-650"></a>	     <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY gt   '&amp;#62;'&gt;"</span>
+<a name="line-651"></a>	     <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY amp  '&amp;#38;#38;'&gt;"</span>
+<a name="line-652"></a>	     <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY apos '&amp;#39;'&gt;"</span>
+<a name="line-653"></a>	     <span class='layout'>,</span> <span class='str'>"&lt;!ENTITY quot '&amp;#34;'&gt;"</span>
+<a name="line-654"></a>	     <span class='keyglyph'>]</span>
+<a name="line-655"></a>
+<a name="line-656"></a><a name="predefDTDPart"></a><span class='definition'>predefDTDPart</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span>
+<a name="line-657"></a><span class='definition'>predefDTDPart</span>
+<a name="line-658"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlDTDPart</span> <span class='str'>"predefined entities"</span> <span class='varop'>$</span> <span class='varid'>mkXTextTree</span> <span class='varid'>predefinedEntities</span>
+<a name="line-659"></a>
+<a name="line-660"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-661"></a><span class='comment'>--</span>
+<a name="line-662"></a><span class='comment'>-- 4.4 XML Processor Treatment of General Entities and References</span>
+<a name="line-663"></a>
+<a name="line-664"></a><a name="GeContext"></a><span class='keyword'>data</span> <span class='conid'>GeContext</span>
+<a name="line-665"></a>    <span class='keyglyph'>=</span> <span class='conid'>ReferenceInContent</span>
+<a name="line-666"></a>    <span class='keyglyph'>|</span> <span class='conid'>ReferenceInAttributeValue</span>
+<a name="line-667"></a>    <span class='keyglyph'>|</span> <span class='conid'>ReferenceInEntityValue</span>
+<a name="line-668"></a>    <span class='comment'>-- or OccursInAttributeValue				-- not used during substitution but during validation</span>
+<a name="line-669"></a>    <span class='comment'>-- or ReferenceInDTD					-- not used: syntax check detects errors</span>
+<a name="line-670"></a>
+<a name="line-671"></a><a name="GeFct"></a><span class='keyword'>type</span> <span class='conid'>GeFct</span>		<span class='keyglyph'>=</span> <span class='conid'>GeContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-672"></a>
+<a name="line-673"></a><a name="GeState"></a><span class='keyword'>type</span> <span class='conid'>GeState</span> <span class='varid'>res</span>	<span class='keyglyph'>=</span> <span class='conid'>XState</span> <span class='conid'>GeEnv</span> <span class='varid'>res</span>
+<a name="line-674"></a>
+<a name="line-675"></a><a name="GeStateFilter"></a><span class='keyword'>type</span> <span class='conid'>GeStateFilter</span>	<span class='keyglyph'>=</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeState</span> <span class='conid'>XmlTrees</span>
+<a name="line-676"></a>
+<a name="line-677"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-678"></a>
+<a name="line-679"></a><a name="GeEnv"></a><span class='keyword'>newtype</span> <span class='conid'>GeEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>GeEnv</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>GeFct</span><span class='layout'>)</span>
+<a name="line-680"></a>
+<a name="line-681"></a><a name="emptyGeEnv"></a><span class='definition'>emptyGeEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>GeEnv</span>
+<a name="line-682"></a><span class='definition'>emptyGeEnv</span>	<span class='keyglyph'>=</span> <span class='conid'>GeEnv</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-683"></a>
+<a name="line-684"></a><a name="lookupGeEnv"></a><span class='definition'>lookupGeEnv</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>GeFct</span>
+<a name="line-685"></a><span class='definition'>lookupGeEnv</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='conid'>GeEnv</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-686"></a>    <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varid'>env</span>
+<a name="line-687"></a>
+<a name="line-688"></a><a name="addGeEntry"></a><span class='definition'>addGeEntry</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeFct</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeEnv</span>
+<a name="line-689"></a><span class='definition'>addGeEntry</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>GeEnv</span> <span class='varid'>env</span><span class='layout'>)</span>
+<a name="line-690"></a>    <span class='keyglyph'>=</span> <span class='conid'>GeEnv</span> <span class='varop'>$</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='varid'>env</span>
+<a name="line-691"></a>
+<a name="line-692"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-693"></a>
+<a name="line-694"></a><span class='comment'>-- |</span>
+<a name="line-695"></a><span class='comment'>-- substitution of general entities</span>
+<a name="line-696"></a><span class='comment'>--</span>
+<a name="line-697"></a><span class='comment'>-- input: a complete document tree including root node</span>
+<a name="line-698"></a>
+<a name="line-699"></a><a name="processGeneralEntities"></a><span class='definition'>processGeneralEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-700"></a><span class='definition'>processGeneralEntities</span>
+<a name="line-701"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"processGeneralEntities: collect and substitute general entities"</span>
+<a name="line-702"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-703"></a>	<span class='varid'>processEntities</span>
+<a name="line-704"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-705"></a>	<span class='varid'>checkResult</span> <span class='str'>"in general entity processing"</span>
+<a name="line-706"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-707"></a>	<span class='varid'>traceTree</span>
+<a name="line-708"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-709"></a>	<span class='varid'>traceSource</span>
+<a name="line-710"></a>      <span class='layout'>)</span>
+<a name="line-711"></a>      <span class='varop'>`whenM`</span> <span class='varid'>statusOk</span>
+<a name="line-712"></a>      <span class='keyword'>where</span>
+<a name="line-713"></a>      <span class='varid'>processEntities</span> <span class='varid'>t'</span>
+<a name="line-714"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-715"></a>	    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>chain</span> <span class='varid'>initialEnv</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInContent</span> <span class='conid'>[]</span> <span class='varop'>$$&lt;</span> <span class='varid'>getChildren</span> <span class='varid'>t'</span><span class='layout'>)</span>
+<a name="line-716"></a>	    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>replaceChildren</span> <span class='varid'>res</span> <span class='varid'>t'</span>
+<a name="line-717"></a>	    <span class='keyword'>where</span>
+<a name="line-718"></a>	    <span class='varid'>initialEnv</span> <span class='keyglyph'>=</span> <span class='varid'>emptyGeEnv</span>
+<a name="line-719"></a>
+<a name="line-720"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-721"></a>
+<a name="line-722"></a><a name="processGeneralEntity"></a><span class='definition'>processGeneralEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>GeContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-723"></a><span class='definition'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span> <span class='varid'>n</span><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'>DOCTYPE</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-724"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-725"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span> <span class='varop'>$$&lt;</span> <span class='varid'>dtdPart</span>
+<a name="line-726"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>replaceChildren</span> <span class='varid'>res</span> <span class='varid'>n</span>
+<a name="line-727"></a>
+<a name="line-728"></a><span class='definition'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span> <span class='varid'>n</span><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'>ENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-729"></a>    <span class='keyglyph'>|</span> <span class='varid'>isIntern</span>
+<a name="line-730"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-731"></a>	  <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"processGeneralEnity: general entity definition for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-732"></a>	  <span class='varid'>value</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>parseXmlGeneralEntityValue</span> <span class='layout'>(</span><span class='str'>"general internal entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>mkXTextTree</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-733"></a>	  <span class='varid'>res</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInEntityValue</span> <span class='layout'>(</span><span class='varid'>name</span><span class='conop'>:</span><span class='varid'>rl</span><span class='layout'>)</span> <span class='varop'>$$&lt;</span> <span class='varid'>value</span>
+<a name="line-734"></a>	  <span class='varid'>insertEntity</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>substInternal</span> <span class='varid'>res</span><span class='layout'>)</span>
+<a name="line-735"></a>    <span class='keyglyph'>|</span> <span class='varid'>isExtern</span>
+<a name="line-736"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-737"></a>	  <span class='varid'>baseUri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getBaseURI</span>
+<a name="line-738"></a>	  <span class='varid'>insertEntity</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>substExternalParsed1Time</span> <span class='varid'>baseUri</span><span class='layout'>)</span>
+<a name="line-739"></a>
+<a name="line-740"></a>    <span class='keyglyph'>|</span> <span class='varid'>isUnparsed</span>
+<a name="line-741"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-742"></a>	  <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"processGeneralEnity: unparsed entity definition for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-743"></a>	  <span class='varid'>insertEntity</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>substUnparsed</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-744"></a>    <span class='keyword'>where</span>
+<a name="line-745"></a>    <span class='varid'>isUnparsed</span>	<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varid'>isIntern</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>isExtern</span>
+<a name="line-746"></a>    <span class='varid'>isExtern</span>	<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varid'>isIntern</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>k_ndata</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-747"></a>    <span class='varid'>isIntern</span>	<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>k_system</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-748"></a>
+<a name="line-749"></a>    <span class='varid'>name</span>	<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>   <span class='varid'>al</span>
+<a name="line-750"></a>    <span class='comment'>-- sysVal	= lookup1 k_system al</span>
+<a name="line-751"></a>    <span class='varid'>url</span>		<span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_url</span>    <span class='varid'>al</span>		<span class='comment'>-- a_url contains absolut url for k_system</span>
+<a name="line-752"></a>    <span class='varid'>context</span>	<span class='keyglyph'>=</span> <span class='varid'>addEntry</span> <span class='varid'>a_source</span> <span class='varid'>url</span> <span class='varid'>al</span>
+<a name="line-753"></a>
+<a name="line-754"></a>    <span class='varid'>processExternalEntityContents</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeState</span> <span class='conid'>XmlTrees</span>
+<a name="line-755"></a>    <span class='varid'>processExternalEntityContents</span> <span class='varid'>cl'</span>
+<a name="line-756"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>cl'</span>						<span class='comment'>-- reading content did not succeed</span>
+<a name="line-757"></a>	    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-758"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>txt'</span>						<span class='comment'>-- something weird in entity content</span>
+<a name="line-759"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-760"></a>	      <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"illegal external parsed entity value for entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-761"></a>	      <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-762"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>						<span class='comment'>-- o.k.: parse the contents</span>
+<a name="line-763"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-764"></a>	      <span class='varid'>res'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>parseXmlGeneralEntityValue</span> <span class='layout'>(</span><span class='str'>"external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$$&lt;</span> <span class='varid'>txt'</span>
+<a name="line-765"></a>	      <span class='layout'>(</span> <span class='varid'>traceSource</span>
+<a name="line-766"></a>		<span class='varop'>.&gt;&gt;</span>
+<a name="line-767"></a>		<span class='varid'>traceTree</span> <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>mkRootTree</span> <span class='layout'>(</span><span class='varid'>fromAttrl</span> <span class='varid'>context</span><span class='layout'>)</span> <span class='varid'>res'</span>
+<a name="line-768"></a>	      <span class='varid'>return</span> <span class='varid'>res'</span>
+<a name="line-769"></a>	<span class='keyword'>where</span>
+<a name="line-770"></a>	<span class='varid'>txt'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>isXText</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>cl'</span>
+<a name="line-771"></a>
+<a name="line-772"></a>    <span class='varid'>insertEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeFct</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeState</span> <span class='conid'>XmlTrees</span>
+<a name="line-773"></a>    <span class='varid'>insertEntity</span> <span class='varid'>name'</span> <span class='varid'>fct'</span>
+<a name="line-774"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-775"></a>	  <span class='varid'>geEnv'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-776"></a>	  <span class='keyword'>case</span> <span class='varid'>lookupGeEnv</span> <span class='varid'>name'</span> <span class='varid'>geEnv'</span> <span class='keyword'>of</span>
+<a name="line-777"></a>	    <span class='conid'>Just</span> <span class='sel'>_fct</span>
+<a name="line-778"></a>		<span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-779"></a>		   <span class='varid'>issueWarn</span> <span class='layout'>(</span><span class='str'>"entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" already defined, repeated definition ignored"</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-780"></a>		   <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-781"></a>            <span class='conid'>Nothing</span>
+<a name="line-782"></a>		<span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-783"></a>		   <span class='varid'>changeState</span> <span class='varop'>$</span> <span class='varid'>addGeEntry</span> <span class='varid'>name'</span> <span class='varid'>fct'</span> 
+<a name="line-784"></a>		   <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>this</span> <span class='varid'>n</span>
+<a name="line-785"></a>
+<a name="line-786"></a>    <span class='comment'>-- --------</span>
+<a name="line-787"></a>    <span class='comment'>--</span>
+<a name="line-788"></a>    <span class='comment'>-- 4.4 XML Processor Treatment of Entities and References</span>
+<a name="line-789"></a>
+<a name="line-790"></a>    <span class='varid'>substInternal</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-791"></a>    <span class='varid'>substInternal</span> <span class='varid'>nl</span> <span class='conid'>ReferenceInContent</span> <span class='varid'>rl'</span> <span class='sel'>_n'</span>
+<a name="line-792"></a>	<span class='keyglyph'>=</span> <span class='varid'>included</span> <span class='varid'>nl</span> <span class='varid'>rl'</span>
+<a name="line-793"></a>
+<a name="line-794"></a>    <span class='varid'>substInternal</span> <span class='varid'>nl</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='varid'>rl'</span> <span class='sel'>_n'</span>
+<a name="line-795"></a>	<span class='keyglyph'>=</span> <span class='varid'>includedInLiteral</span> <span class='varid'>nl</span> <span class='varid'>rl'</span>
+<a name="line-796"></a>
+<a name="line-797"></a>    <span class='varid'>substInternal</span> <span class='sel'>_nl</span> <span class='conid'>ReferenceInEntityValue</span> <span class='sel'>_rl</span> <span class='varid'>n'</span>
+<a name="line-798"></a>	<span class='keyglyph'>=</span> <span class='varid'>bypassed</span> <span class='varid'>n'</span>
+<a name="line-799"></a>
+<a name="line-800"></a>    <span class='comment'>-- --------</span>
+<a name="line-801"></a>
+<a name="line-802"></a>    <span class='varid'>substExternalParsed1Time</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-803"></a>    <span class='varid'>substExternalParsed1Time</span> <span class='varid'>baseUri'</span> <span class='varid'>cx'</span> <span class='varid'>rl'</span> <span class='varid'>n'</span>
+<a name="line-804"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-805"></a>	  <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"substExternalParsed1Time: read and parse external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-806"></a>	  <span class='varid'>res</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>runInLocalURIContext</span> <span class='varid'>getContents'</span> <span class='varop'>$</span> <span class='varid'>newDocument'</span> <span class='varid'>context</span>
+<a name="line-807"></a>	  <span class='varid'>changeState</span> <span class='varop'>$</span> <span class='varid'>addGeEntry</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>substExternalParsed</span> <span class='varid'>res</span><span class='layout'>)</span>
+<a name="line-808"></a>	  <span class='varid'>substExternalParsed</span> <span class='varid'>res</span> <span class='varid'>cx'</span> <span class='varid'>rl'</span> <span class='varid'>n'</span> 
+<a name="line-809"></a>	  <span class='keyword'>where</span>
+<a name="line-810"></a>	  <span class='varid'>getContents'</span>	<span class='keyglyph'>::</span> <span class='conid'>GeStateFilter</span>
+<a name="line-811"></a>	  <span class='varid'>getContents'</span> <span class='varid'>t''</span>
+<a name="line-812"></a>	      <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-813"></a>		<span class='varid'>setBaseURI</span> <span class='varid'>baseUri'</span>
+<a name="line-814"></a>		<span class='varid'>rs'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getXmlEntityContents</span> <span class='varid'>t''</span>
+<a name="line-815"></a>		<span class='varid'>processExternalEntityContents</span> <span class='varid'>rs'</span>
+<a name="line-816"></a>
+<a name="line-817"></a>
+<a name="line-818"></a>    <span class='varid'>substExternalParsed</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-819"></a>    <span class='varid'>substExternalParsed</span>  <span class='varid'>nl</span> <span class='conid'>ReferenceInContent</span> <span class='varid'>rl'</span> <span class='sel'>_n'</span>
+<a name="line-820"></a>	<span class='keyglyph'>=</span> <span class='varid'>includedIfValidating</span> <span class='varid'>nl</span> <span class='varid'>rl'</span>
+<a name="line-821"></a>
+<a name="line-822"></a>    <span class='varid'>substExternalParsed</span> <span class='sel'>_nl</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='sel'>_rl</span> <span class='sel'>_n'</span>
+<a name="line-823"></a>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='str'>"external parsed general"</span> <span class='str'>"in attribute value"</span>
+<a name="line-824"></a>
+<a name="line-825"></a>    <span class='varid'>substExternalParsed</span> <span class='sel'>_nl</span> <span class='conid'>ReferenceInEntityValue</span> <span class='sel'>_rl</span> <span class='varid'>n'</span>
+<a name="line-826"></a>	<span class='keyglyph'>=</span> <span class='varid'>bypassed</span> <span class='varid'>n'</span>
+<a name="line-827"></a>
+<a name="line-828"></a>    <span class='comment'>-- --------</span>
+<a name="line-829"></a>
+<a name="line-830"></a>    <span class='varid'>substUnparsed</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeContext</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-831"></a>    <span class='varid'>substUnparsed</span> <span class='sel'>_nl</span> <span class='conid'>ReferenceInContent</span> <span class='sel'>_rl</span> <span class='sel'>_n'</span>
+<a name="line-832"></a>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='str'>"unparsed"</span> <span class='str'>"content"</span>
+<a name="line-833"></a>    <span class='varid'>substUnparsed</span> <span class='sel'>_nl</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='sel'>_rl</span> <span class='sel'>_n'</span>
+<a name="line-834"></a>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='str'>"unparsed"</span> <span class='str'>"attribute value"</span>
+<a name="line-835"></a>    <span class='varid'>substUnparsed</span> <span class='sel'>_nl</span> <span class='conid'>ReferenceInEntityValue</span> <span class='sel'>_rl</span> <span class='sel'>_n'</span>
+<a name="line-836"></a>	<span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='str'>"unparsed"</span> <span class='str'>"entity value"</span>
+<a name="line-837"></a>
+<a name="line-838"></a>    <span class='comment'>-- --------</span>
+<a name="line-839"></a>							<span class='comment'>-- see XML 1.0 chapter:</span>
+<a name="line-840"></a>
+<a name="line-841"></a>    <span class='varid'>included</span> <span class='varid'>nl</span>	<span class='varid'>rl'</span>					<span class='comment'>-- 4.4.2</span>
+<a name="line-842"></a>	<span class='keyglyph'>=</span> <span class='varid'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='varid'>name</span><span class='conop'>:</span><span class='varid'>rl'</span><span class='layout'>)</span> <span class='varop'>$$&lt;</span> <span class='varid'>nl</span>
+<a name="line-843"></a>
+<a name="line-844"></a>    <span class='varid'>includedIfValidating</span>				<span class='comment'>-- 4.4.3</span>
+<a name="line-845"></a>	<span class='keyglyph'>=</span> <span class='varid'>included</span>
+<a name="line-846"></a>
+<a name="line-847"></a>    <span class='varid'>includedInLiteral</span>					<span class='comment'>-- 4.4.5</span>
+<a name="line-848"></a>	<span class='keyglyph'>=</span> <span class='varid'>included</span>
+<a name="line-849"></a>
+<a name="line-850"></a>    <span class='varid'>bypassed</span> <span class='varid'>n'</span>						<span class='comment'>-- 4.4.7</span>
+<a name="line-851"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>this</span> <span class='varid'>n'</span>
+<a name="line-852"></a>
+<a name="line-853"></a>    <span class='varid'>forbidden</span> <span class='varid'>msg'</span> <span class='varid'>cx'</span>					<span class='comment'>-- 4.4.4</span>
+<a name="line-854"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-855"></a>	  <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"reference of "</span> <span class='varop'>++</span> <span class='varid'>msg'</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" forbidden in "</span> <span class='varop'>++</span> <span class='varid'>cx'</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-856"></a>          <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-857"></a>
+<a name="line-858"></a>							<span class='comment'>-- normalize default value in ATTLIST</span>
+<a name="line-859"></a><span class='definition'>processGeneralEntity</span> <span class='sel'>_cx</span> <span class='varid'>rl</span> <span class='varid'>n</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='sel'>_cl</span><span class='layout'>)</span>
+<a name="line-860"></a>    <span class='keyglyph'>|</span> <span class='varid'>hasDefaultValue</span>
+<a name="line-861"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-862"></a>	  <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>parseXmlAttrValue</span> <span class='str'>"default value of attribute "</span><span class='layout'>)</span>
+<a name="line-863"></a>                   <span class='varop'>.&gt;&gt;</span>
+<a name="line-864"></a>		   <span class='varid'>substGeneralEntityInAValue</span> <span class='varid'>rl</span>
+<a name="line-865"></a>		 <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>mkXTextTree</span> <span class='varid'>defaultValue</span>
+<a name="line-866"></a>	  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>addDTDAttr</span> <span class='varid'>a_default</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-867"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-868"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>this</span> <span class='varid'>n</span>
+<a name="line-869"></a>    <span class='keyword'>where</span>
+<a name="line-870"></a>    <span class='varid'>hasDefaultValue</span> <span class='keyglyph'>=</span> <span class='varid'>hasEntry</span>  <span class='varid'>a_default</span> <span class='varid'>al</span>
+<a name="line-871"></a>    <span class='varid'>defaultValue</span>    <span class='keyglyph'>=</span> <span class='varid'>lookup1</span>   <span class='varid'>a_default</span> <span class='varid'>al</span>
+<a name="line-872"></a>
+<a name="line-873"></a><span class='definition'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-874"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-875"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"processGeneralEnity: entity reference for entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-876"></a>      <span class='varid'>trace</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'>rl</span><span class='layout'>)</span>
+<a name="line-877"></a>      <span class='varid'>geEnv</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-878"></a>      <span class='keyword'>case</span> <span class='varid'>lookupGeEnv</span> <span class='varid'>name</span> <span class='varid'>geEnv</span> <span class='keyword'>of</span>
+<a name="line-879"></a>        <span class='conid'>Just</span> <span class='varid'>fct</span>
+<a name="line-880"></a>	  <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>rl</span>
+<a name="line-881"></a>	     <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-882"></a>		  <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive substitution of general entity reference "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>ref</span> <span class='varop'>++</span> <span class='str'>" not processed"</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-883"></a>		  <span class='varid'>return</span> <span class='varid'>nl</span>
+<a name="line-884"></a>	     <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-885"></a>		  <span class='varid'>fct</span> <span class='varid'>cx</span> <span class='varid'>rl</span> <span class='varid'>n</span>
+<a name="line-886"></a>        <span class='conid'>Nothing</span>
+<a name="line-887"></a>	  <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-888"></a>	     <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"general entity reference "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>ref</span> <span class='varop'>++</span> <span class='str'>" not processed, no definition found, (forward reference?)"</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-889"></a>	     <span class='varid'>return</span> <span class='varid'>nl</span>
+<a name="line-890"></a>      <span class='keyword'>where</span>
+<a name="line-891"></a>      <span class='varid'>nl</span>  <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varid'>n</span>
+<a name="line-892"></a>      <span class='varid'>ref</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varid'>nl</span>
+<a name="line-893"></a>
+<a name="line-894"></a>
+<a name="line-895"></a><span class='definition'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='sel'>_tagName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-896"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-897"></a>      <span class='varid'>al'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>substGeneralEntityInAttr</span> <span class='varid'>rl</span> <span class='varop'>$$&lt;</span> <span class='varid'>al</span>
+<a name="line-898"></a>      <span class='varid'>cl'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span>  <span class='varop'>$$&lt;</span> <span class='varid'>cl</span>
+<a name="line-899"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>replaceAttrl</span> <span class='varid'>al'</span> <span class='varop'>.&gt;</span> <span class='varid'>replaceChildren</span> <span class='varid'>cl'</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-900"></a>
+<a name="line-901"></a><span class='definition'>processGeneralEntity</span> <span class='sel'>_cx</span> <span class='sel'>_rl</span> <span class='varid'>n</span>
+<a name="line-902"></a>    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>this</span> <span class='varid'>n</span>
+<a name="line-903"></a>
+<a name="line-904"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-905"></a>
+<a name="line-906"></a><a name="substGeneralEntityInAttr"></a><span class='definition'>substGeneralEntityInAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeState</span> <span class='conid'>XmlTrees</span>
+<a name="line-907"></a><span class='definition'>substGeneralEntityInAttr</span> <span class='varid'>rl</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='keyword'>_</span><span class='layout'>)</span> <span class='varid'>aValue</span><span class='layout'>)</span>
+<a name="line-908"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-909"></a>      <span class='varid'>nv</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>substGeneralEntityInAValue</span> <span class='varid'>rl</span> <span class='varop'>$$&lt;</span> <span class='varid'>aValue</span>
+<a name="line-910"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='varid'>nv</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-911"></a>
+<a name="line-912"></a><span class='definition'>substGeneralEntityInAttr</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-913"></a>    <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-914"></a>
+<a name="line-915"></a><a name="substGeneralEntityInAValue"></a><span class='definition'>substGeneralEntityInAValue</span>	<span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GeStateFilter</span>
+<a name="line-916"></a><span class='definition'>substGeneralEntityInAValue</span> <span class='varid'>rl</span>
+<a name="line-917"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='varid'>rl</span>
+<a name="line-918"></a>	<span class='varop'>`whenM`</span>
+<a name="line-919"></a>	<span class='varid'>isXEntityRef</span>
+<a name="line-920"></a>      <span class='layout'>)</span>
+<a name="line-921"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-922"></a>      <span class='varid'>liftMf</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>modifyText</span> <span class='varid'>normalizeWhiteSpace</span> <span class='varop'>`when`</span> <span class='varid'>isXText</span><span class='layout'>)</span>
+<a name="line-923"></a>	      <span class='varop'>.&gt;</span>
+<a name="line-924"></a>	      <span class='layout'>(</span><span class='varid'>transfCharRef</span> <span class='varop'>`when`</span> <span class='varid'>isXCharRef</span><span class='layout'>)</span>
+<a name="line-925"></a>	    <span class='layout'>)</span>
+<a name="line-926"></a>      <span class='keyword'>where</span>
+<a name="line-927"></a>      <span class='varid'>normalizeWhiteSpace</span>
+<a name="line-928"></a>	  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"\n\t\r"</span> <span class='keyword'>then</span> <span class='chr'>' '</span> <span class='keyword'>else</span> <span class='varid'>c</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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-DefaultURI.html b/doc/hdoc/src/Text-XML-HXT-Parser-DefaultURI.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-DefaultURI.html
@@ -0,0 +1,59 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- defaut uri computation</span>
+<a name="line-4"></a><span class='comment'>-- this routine is platform dependent</span>
+<a name="line-5"></a><span class='comment'>-- and must be exchanged when porting the toolbox e.g. to windows</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- Version : $Id: DefaultURI.hs,v 1.4 2006/03/02 10:13:57 hxml Exp $</span>
+<a name="line-8"></a>
+<a name="line-9"></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'>Parser</span><span class='varop'>.</span><span class='conid'>DefaultURI</span>
+<a name="line-10"></a>    <span class='layout'>(</span> <span class='varid'>setDefaultURI</span>
+<a name="line-11"></a>    <span class='layout'>)</span>
+<a name="line-12"></a>
+<a name="line-13"></a><span class='keyword'>where</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'>XmlTree</span>
+<a name="line-16"></a>
+<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'>XmlState</span>
+<a name="line-18"></a>
+<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>getCurrentDirectory</span>
+<a name="line-21"></a>    <span class='layout'>)</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>escapeURIChar</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>isUnescapedInURI</span>
+<a name="line-26"></a>    <span class='layout'>)</span>
+<a name="line-27"></a>
+<a name="line-28"></a><a name="setDefaultURI"></a><span class='definition'>setDefaultURI</span>   <span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-29"></a><span class='definition'>setDefaultURI</span>
+<a name="line-30"></a>     <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-31"></a>       <span class='varid'>wd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varid'>getCurrentDirectory</span>
+<a name="line-32"></a>       <span class='varid'>setSysParam</span> <span class='varid'>transferDefaultURI</span> <span class='layout'>(</span><span class='str'>"file://"</span> <span class='varop'>++</span> <span class='varid'>normalize</span> <span class='varid'>wd</span> <span class='varop'>++</span> <span class='str'>"/"</span><span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a>       <span class='keyword'>where</span>
+<a name="line-35"></a>
+<a name="line-36"></a>       <span class='comment'>-- under Windows getCurrentDirectory returns something like: "c:\path\to\file"</span>
+<a name="line-37"></a>       <span class='comment'>-- backslaches are not allowed in URIs and paths must start with a /</span>
+<a name="line-38"></a>       <span class='comment'>-- so this is transformed into "/c:/path/to/file"</span>
+<a name="line-39"></a>
+<a name="line-40"></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-41"></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-42"></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-43"></a>       <span class='varid'>normalize</span> <span class='varid'>wd'</span>
+<a name="line-44"></a>	   <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>wd'</span>
+<a name="line-45"></a>				 
+<a name="line-46"></a>       <span class='varid'>win32ToUriChar</span> <span class='chr'>'\\'</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span>
+<a name="line-47"></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-48"></a>
+<a name="line-49"></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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-HtmlParsec.html b/doc/hdoc/src/Text-XML-HXT-Parser-HtmlParsec.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-HtmlParsec.html
@@ -0,0 +1,547 @@
+<!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     : Text.XML.HXT.Parser.HtmlParsec
+<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  : stable
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This parser tries to interprete everything as HTML
+<a name="line-13"></a>   no errors are emitted during parsing. If something looks
+<a name="line-14"></a>   weired, warning messages are inserted in the document tree.
+<a name="line-15"></a>  
+<a name="line-16"></a>   All filter are pure XmlFilter,
+<a name="line-17"></a>   errror handling and IO is done in 'Text.XML.HXT.Parser.HtmlParser'
+<a name="line-18"></a>   or other modules
+<a name="line-19"></a>
+<a name="line-20"></a>-}</span>
+<a name="line-21"></a>
+<a name="line-22"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-23"></a>
+<a name="line-24"></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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>
+<a name="line-25"></a>    <span class='layout'>(</span> <span class='varid'>parseHtmlText</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlDocument</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlContent</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>isEmptyHtmlTag</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>emptyHtmlTags</span>
+<a name="line-32"></a>    <span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a><span class='keyword'>where</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>
+<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'>XmlNode</span>
+<a name="line-39"></a>    <span class='layout'>(</span> <span class='varid'>mkText</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>mkCmt</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>mkElement</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>mkDTDElem</span>
+<a name="line-45"></a>    <span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></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-48"></a>    <span class='layout'>(</span> <span class='conid'>Parser</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='conid'>SourcePos</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>anyChar</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>between</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>char</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>eof</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>getPosition</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>many</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>noneOf</span>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>option</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>parse</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>satisfy</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>string</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>try</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span>
+<a name="line-63"></a>    <span class='layout'>)</span>
+<a name="line-64"></a>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>
+<a name="line-66"></a>    <span class='layout'>(</span> <span class='varid'>allBut</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>dq</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>eq</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>gt</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>name</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>pubidLiteral</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>skipS</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>skipS0</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>sq</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>systemLiteral</span>
+<a name="line-76"></a>
+<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>singleCharsT</span>
+<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>referenceT</span>
+<a name="line-79"></a>    <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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>
+<a name="line-82"></a>    <span class='layout'>(</span> <span class='varid'>cDSect</span>
+<a name="line-83"></a>    <span class='layout'>,</span> <span class='varid'>charData'</span>
+<a name="line-84"></a>    <span class='layout'>,</span> <span class='varid'>misc</span>
+<a name="line-85"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlText</span>
+<a name="line-86"></a>    <span class='layout'>,</span> <span class='varid'>pI</span>
+<a name="line-87"></a>    <span class='layout'>,</span> <span class='varid'>xMLDecl'</span>
+<a name="line-88"></a>    <span class='layout'>)</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>
+<a name="line-91"></a>    <span class='layout'>(</span> <span class='varid'>xmlChar</span>
+<a name="line-92"></a>    <span class='layout'>)</span>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-95"></a>    <span class='layout'>(</span> <span class='varid'>fromMaybe</span>
+<a name="line-96"></a>    <span class='layout'>)</span>
+<a name="line-97"></a>
+<a name="line-98"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-99"></a>    <span class='layout'>(</span> <span class='varid'>toLower</span>
+<a name="line-100"></a>    <span class='layout'>,</span> <span class='varid'>toUpper</span>
+<a name="line-101"></a>    <span class='layout'>)</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="parseHtmlText"></a><span class='definition'>parseHtmlText</span>	<span class='keyglyph'>::</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-106"></a><span class='definition'>parseHtmlText</span> <span class='varid'>loc</span> <span class='varid'>t</span>
+<a name="line-107"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlText</span> <span class='varid'>htmlDocument</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>t</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="parseHtmlFromString"></a><span class='definition'>parseHtmlFromString</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-112"></a><span class='definition'>parseHtmlFromString</span> <span class='varid'>parser</span> <span class='varid'>loc</span>
+<a name="line-113"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</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'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>loc</span>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="parseHtmlDocument"></a><span class='definition'>parseHtmlDocument</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'>XmlTrees</span>
+<a name="line-116"></a><span class='definition'>parseHtmlDocument</span>	<span class='keyglyph'>=</span> <span class='varid'>parseHtmlFromString</span> <span class='varid'>htmlDocument</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="parseHtmlContent"></a><span class='definition'>parseHtmlContent</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-119"></a><span class='definition'>parseHtmlContent</span>	<span class='keyglyph'>=</span> <span class='varid'>parseHtmlFromString</span> <span class='varid'>htmlContent</span> <span class='str'>"text"</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><a name="htmlDocument"></a><span class='definition'>htmlDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-124"></a><span class='definition'>htmlDocument</span>
+<a name="line-125"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-126"></a>      <span class='varid'>pl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>htmlProlog</span>
+<a name="line-127"></a>      <span class='varid'>el</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>htmlContent</span>
+<a name="line-128"></a>      <span class='varid'>eof</span>
+<a name="line-129"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>pl</span> <span class='varop'>++</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-130"></a>
+<a name="line-131"></a><a name="htmlProlog"></a><span class='definition'>htmlProlog</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-132"></a><span class='definition'>htmlProlog</span>
+<a name="line-133"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-134"></a>      <span class='varid'>xml</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span>
+<a name="line-135"></a>	     <span class='layout'>(</span> <span class='varid'>try</span> <span class='varid'>xMLDecl'</span>
+<a name="line-136"></a>	       <span class='varop'>&lt;|&gt;</span>
+<a name="line-137"></a>	       <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-138"></a>		 <span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-139"></a>		 <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"&lt;?"</span><span class='layout'>)</span>
+<a name="line-140"></a>		 <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" wrong XML declaration"</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-141"></a>	       <span class='layout'>)</span>
+<a name="line-142"></a>	     <span class='layout'>)</span>
+<a name="line-143"></a>      <span class='varid'>misc1</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>misc</span>
+<a name="line-144"></a>      <span class='varid'>dtdPart</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span>
+<a name="line-145"></a>		 <span class='layout'>(</span> <span class='varid'>try</span> <span class='varid'>doctypedecl</span>
+<a name="line-146"></a>		   <span class='varop'>&lt;|&gt;</span>
+<a name="line-147"></a>		   <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-148"></a>		     <span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-149"></a>		     <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>upperCaseString</span> <span class='str'>"&lt;!DOCTYPE"</span><span class='layout'>)</span>
+<a name="line-150"></a>		     <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" HTML DOCTYPE declaration ignored"</span><span class='layout'>)</span><span class='keyglyph'>]</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='varid'>return</span> <span class='layout'>(</span><span class='varid'>xml</span> <span class='varop'>++</span> <span class='varid'>misc1</span> <span class='varop'>++</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-154"></a>
+<a name="line-155"></a><a name="doctypedecl"></a><span class='definition'>doctypedecl</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-156"></a><span class='definition'>doctypedecl</span>
+<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>upperCaseString</span> <span class='str'>"&lt;!DOCTYPE"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'&gt;'</span><span class='layout'>)</span>
+<a name="line-158"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-159"></a>	<span class='varid'>skipS</span>
+<a name="line-160"></a>	<span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-161"></a>	<span class='varid'>exId</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-162"></a>	          <span class='varid'>skipS</span>
+<a name="line-163"></a>		  <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>externalID</span>
+<a name="line-164"></a>		<span class='layout'>)</span>
+<a name="line-165"></a>	<span class='varid'>skipS0</span>
+<a name="line-166"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>exId</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>
+<a name="line-167"></a>      <span class='layout'>)</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="externalID"></a><span class='definition'>externalID</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Attributes</span>
+<a name="line-170"></a><span class='definition'>externalID</span>
+<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-172"></a>      <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>upperCaseString</span> <span class='varid'>k_public</span><span class='layout'>)</span>
+<a name="line-173"></a>      <span class='varid'>skipS</span>
+<a name="line-174"></a>      <span class='varid'>pl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pubidLiteral</span>
+<a name="line-175"></a>      <span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='varop'>$</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-176"></a>			      <span class='varid'>skipS</span>
+<a name="line-177"></a>			      <span class='varid'>systemLiteral</span>
+<a name="line-178"></a>			    <span class='layout'>)</span>
+<a name="line-179"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>sl</span> <span class='keyword'>then</span> <span class='conid'>[]</span> <span class='keyword'>else</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>sl</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-180"></a>
+<a name="line-181"></a><a name="htmlContent"></a><span class='definition'>htmlContent</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-182"></a><span class='definition'>htmlContent</span>
+<a name="line-183"></a>    <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span>
+<a name="line-184"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-185"></a>	<span class='varid'>context</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hContent</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-186"></a>	<span class='varid'>pos</span>     <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-187"></a>	<span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>closeTags</span> <span class='varid'>pos</span> <span class='varid'>context</span>
+<a name="line-188"></a>      <span class='layout'>)</span>
+<a name="line-189"></a>      <span class='keyword'>where</span>
+<a name="line-190"></a>      <span class='varid'>closeTags</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-191"></a>	  <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varid'>body</span>
+<a name="line-192"></a>      <span class='varid'>closeTags</span> <span class='varid'>pos'</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>tn</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>body1</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>restOpen</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-193"></a>	  <span class='keyglyph'>=</span> <span class='varid'>closeTags</span> <span class='varid'>pos'</span> <span class='layout'>(</span><span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos'</span> <span class='varop'>++</span> <span class='str'>": no closing tag found for \"&lt;"</span> <span class='varop'>++</span> <span class='varid'>tn</span> <span class='varop'>++</span> <span class='str'>" ...&gt;\""</span><span class='layout'>)</span>
+<a name="line-194"></a>			    <span class='varop'>.</span>
+<a name="line-195"></a>			    <span class='varid'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='varid'>body</span>
+<a name="line-196"></a>			    <span class='varop'>$</span>
+<a name="line-197"></a>			    <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>restOpen</span><span class='layout'>)</span>
+<a name="line-198"></a>			   <span class='layout'>)</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="OpenTags"></a><span class='keyword'>type</span> <span class='conid'>OpenTags</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'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-201"></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='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>OpenTags</span><span class='layout'>)</span>
+<a name="line-202"></a>
+<a name="line-203"></a><a name="hElement"></a><span class='definition'>hElement</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Context</span>
+<a name="line-204"></a><span class='definition'>hElement</span> <span class='varid'>context</span>
+<a name="line-205"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-206"></a>	<span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hSimpleData</span>
+<a name="line-207"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>addHtmlElems</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='varid'>context</span><span class='layout'>)</span>
+<a name="line-208"></a>      <span class='layout'>)</span>
+<a name="line-209"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-210"></a>      <span class='varid'>hOpenTag</span> <span class='varid'>context</span>
+<a name="line-211"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-212"></a>      <span class='varid'>hCloseTag</span> <span class='varid'>context</span>
+<a name="line-213"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-214"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>			<span class='comment'>-- wrong tag, take it as text</span>
+<a name="line-215"></a>	<span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-216"></a>	<span class='varid'>c</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>xmlChar</span>
+<a name="line-217"></a>	<span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" markup char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='str'>" not allowed in this context"</span><span class='layout'>)</span>
+<a name="line-218"></a>		 <span class='varop'>.</span>
+<a name="line-219"></a>		 <span class='varid'>addHtmlElems</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-220"></a>		 <span class='varop'>$</span>
+<a name="line-221"></a>		 <span class='varid'>context</span>
+<a name="line-222"></a>	       <span class='layout'>)</span>
+<a name="line-223"></a>      <span class='layout'>)</span>
+<a name="line-224"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-225"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-226"></a>	<span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-227"></a>	<span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>anyChar</span>
+<a name="line-228"></a>	<span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span> <span class='varid'>show</span> <span class='varid'>pos</span>
+<a name="line-229"></a>			       <span class='varop'>++</span> <span class='str'>" illegal data in input or illegal XML char "</span>
+<a name="line-230"></a>			       <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>
+<a name="line-231"></a>			       <span class='varop'>++</span> <span class='str'>" found and ignored, possibly wrong encoding scheme used"</span><span class='layout'>)</span>
+<a name="line-232"></a>		 <span class='varop'>$</span>
+<a name="line-233"></a>		 <span class='varid'>context</span>
+<a name="line-234"></a>	       <span class='layout'>)</span>
+<a name="line-235"></a>      <span class='layout'>)</span>
+<a name="line-236"></a>
+<a name="line-237"></a>
+<a name="line-238"></a><a name="hSimpleData"></a><span class='definition'>hSimpleData</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span>
+<a name="line-239"></a><span class='definition'>hSimpleData</span>
+<a name="line-240"></a>    <span class='keyglyph'>=</span> <span class='varid'>charData'</span>
+<a name="line-241"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-242"></a>      <span class='varid'>try</span> <span class='varid'>referenceT</span>
+<a name="line-243"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-244"></a>      <span class='varid'>try</span> <span class='varid'>hComment</span>
+<a name="line-245"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-246"></a>      <span class='varid'>try</span> <span class='varid'>pI</span>
+<a name="line-247"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-248"></a>      <span class='varid'>try</span> <span class='varid'>cDSect</span>
+<a name="line-249"></a>
+<a name="line-250"></a><a name="hCloseTag"></a><span class='definition'>hCloseTag</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Context</span>
+<a name="line-251"></a><span class='definition'>hCloseTag</span> <span class='varid'>context</span>
+<a name="line-252"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-253"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-254"></a>		 <span class='varid'>string</span> <span class='str'>"&lt;/"</span>
+<a name="line-255"></a>		 <span class='varid'>lowerCaseName</span>
+<a name="line-256"></a>	       <span class='layout'>)</span>
+<a name="line-257"></a>      <span class='varid'>skipS0</span>
+<a name="line-258"></a>      <span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-259"></a>      <span class='varid'>checkSymbol</span> <span class='varid'>gt</span> <span class='layout'>(</span><span class='str'>"closing &gt; in tag \"&lt;/"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"\" expected"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>closeTag</span> <span class='varid'>pos</span> <span class='varid'>n</span> <span class='varid'>context</span><span class='layout'>)</span>
+<a name="line-260"></a>
+<a name="line-261"></a><a name="hOpenTag"></a><span class='definition'>hOpenTag</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Context</span>
+<a name="line-262"></a><span class='definition'>hOpenTag</span> <span class='varid'>context</span>
+<a name="line-263"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-264"></a>	<span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-265"></a>	<span class='varid'>e</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>hOpenTagStart</span>
+<a name="line-266"></a>	<span class='varid'>hOpenTagRest</span> <span class='varid'>pos</span> <span class='varid'>e</span> <span class='varid'>context</span>
+<a name="line-267"></a>      <span class='layout'>)</span>
+<a name="line-268"></a>
+<a name="line-269"></a><a name="hOpenTagStart"></a><span class='definition'>hOpenTagStart</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='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-270"></a><span class='definition'>hOpenTagStart</span>
+<a name="line-271"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-272"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-273"></a>		 <span class='varid'>char</span> <span class='chr'>'&lt;'</span>
+<a name="line-274"></a>		 <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>lowerCaseName</span>
+<a name="line-275"></a>		 <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-276"></a>	       <span class='layout'>)</span>
+<a name="line-277"></a>      <span class='varid'>skipS0</span>
+<a name="line-278"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hAttrList</span>
+<a name="line-279"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='keyword'>as</span><span class='layout'>)</span>
+<a name="line-280"></a>
+<a name="line-281"></a><a name="hOpenTagRest"></a><span class='definition'>hOpenTagRest</span>	<span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Context</span>
+<a name="line-282"></a><span class='definition'>hOpenTagRest</span> <span class='varid'>pos</span> <span class='layout'>(</span><span class='varid'>tn</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>context</span>
+<a name="line-283"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-284"></a>	<span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"/&gt;"</span>
+<a name="line-285"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='conid'>[]</span> <span class='varid'>context</span><span class='layout'>)</span>
+<a name="line-286"></a>      <span class='layout'>)</span>
+<a name="line-287"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-288"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-289"></a>	<span class='varid'>context1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>checkSymbol</span> <span class='varid'>gt</span> <span class='layout'>(</span><span class='str'>"closing &gt; in tag \"&lt;"</span> <span class='varop'>++</span> <span class='varid'>tn</span> <span class='varop'>++</span> <span class='str'>"...\" expected"</span><span class='layout'>)</span> <span class='varid'>context</span>
+<a name="line-290"></a>	<span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>let</span> <span class='varid'>context2</span> <span class='keyglyph'>=</span> <span class='varid'>closePrevTag</span> <span class='varid'>pos</span> <span class='varid'>tn</span> <span class='varid'>context1</span>
+<a name="line-291"></a>		 <span class='keyword'>in</span>
+<a name="line-292"></a>		 <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isEmptyHtmlTag</span> <span class='varid'>tn</span>
+<a name="line-293"></a>		   <span class='keyword'>then</span> <span class='varid'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='conid'>[]</span>
+<a name="line-294"></a>		   <span class='keyword'>else</span> <span class='varid'>openTag</span> <span class='varid'>tn</span> <span class='varid'>al</span>
+<a name="line-295"></a>		 <span class='layout'>)</span> <span class='varid'>context2</span>
+<a name="line-296"></a>	       <span class='layout'>)</span>
+<a name="line-297"></a>      <span class='layout'>)</span>
+<a name="line-298"></a>
+<a name="line-299"></a><a name="hAttrList"></a><span class='definition'>hAttrList</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-300"></a><span class='definition'>hAttrList</span>
+<a name="line-301"></a>    <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varid'>hAttribute</span><span class='layout'>)</span>
+<a name="line-302"></a>      <span class='keyword'>where</span>
+<a name="line-303"></a>      <span class='varid'>hAttribute</span>
+<a name="line-304"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-305"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>lowerCaseName</span>
+<a name="line-306"></a>	    <span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hAttrValue</span>
+<a name="line-307"></a>	    <span class='varid'>skipS0</span>
+<a name="line-308"></a>	    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>v</span>
+<a name="line-309"></a>
+<a name="line-310"></a><a name="hAttrValue"></a><span class='definition'>hAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-311"></a><span class='definition'>hAttrValue</span>
+<a name="line-312"></a>    <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span>
+<a name="line-313"></a>      <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-314"></a>	      <span class='varid'>eq</span>
+<a name="line-315"></a>	      <span class='varid'>hAttrValue'</span>
+<a name="line-316"></a>	    <span class='layout'>)</span>
+<a name="line-317"></a>      <span class='layout'>)</span>
+<a name="line-318"></a>
+<a name="line-319"></a><a name="hAttrValue'"></a><span class='definition'>hAttrValue'</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-320"></a><span class='definition'>hAttrValue'</span>
+<a name="line-321"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>hAttrValue''</span> <span class='str'>"&amp;\""</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-322"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-323"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>hAttrValue''</span> <span class='str'>"&amp;\'"</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-324"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-325"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>			<span class='comment'>-- HTML allows unquoted attribute values</span>
+<a name="line-326"></a>	<span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>noneOf</span> <span class='str'>" \r\t\n&gt;\"\'"</span><span class='layout'>)</span>
+<a name="line-327"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>
+<a name="line-328"></a>      <span class='layout'>)</span>
+<a name="line-329"></a>
+<a name="line-330"></a><a name="hAttrValue''"></a><span class='definition'>hAttrValue''</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-331"></a><span class='definition'>hAttrValue''</span> <span class='varid'>notAllowed</span>
+<a name="line-332"></a>    <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='varid'>hReference'</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>singleCharsT</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>
+<a name="line-333"></a>
+<a name="line-334"></a><a name="hReference'"></a><span class='definition'>hReference'</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span>
+<a name="line-335"></a><span class='definition'>hReference'</span>
+<a name="line-336"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='varid'>referenceT</span>
+<a name="line-337"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-338"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-339"></a>	<span class='varid'>char</span> <span class='chr'>'&amp;'</span>
+<a name="line-340"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='str'>"&amp;"</span><span class='layout'>)</span>
+<a name="line-341"></a>      <span class='layout'>)</span>
+<a name="line-342"></a>
+<a name="line-343"></a><a name="hContent"></a><span class='definition'>hContent</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Context</span>
+<a name="line-344"></a><span class='definition'>hContent</span> <span class='varid'>context</span>
+<a name="line-345"></a>    <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='varid'>context</span>
+<a name="line-346"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-347"></a>	<span class='varid'>context1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hElement</span> <span class='varid'>context</span>
+<a name="line-348"></a>	<span class='varid'>hContent</span> <span class='varid'>context1</span>
+<a name="line-349"></a>      <span class='layout'>)</span>
+<a name="line-350"></a>
+<a name="line-351"></a><span class='comment'>-- hComment allows "--" in comments</span>
+<a name="line-352"></a><span class='comment'>-- comment from XML spec does not</span>
+<a name="line-353"></a>
+<a name="line-354"></a><a name="hComment"></a><span class='definition'>hComment</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span>
+<a name="line-355"></a><span class='definition'>hComment</span>
+<a name="line-356"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-357"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!--"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"--&gt;"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"--&gt;"</span><span class='layout'>)</span>
+<a name="line-358"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkCmt</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-359"></a>
+<a name="line-360"></a><a name="checkSymbol"></a><span class='definition'>checkSymbol</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Context</span>
+<a name="line-361"></a><span class='definition'>checkSymbol</span> <span class='varid'>p</span> <span class='varid'>msg</span> <span class='varid'>context</span>
+<a name="line-362"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-363"></a>      <span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-364"></a>      <span class='varid'>option</span> <span class='layout'>(</span><span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>context</span><span class='layout'>)</span>
+<a name="line-365"></a>       <span class='layout'>(</span> <span class='keyword'>do</span> 
+<a name="line-366"></a>	 <span class='varid'>try</span> <span class='varid'>p</span>
+<a name="line-367"></a>	 <span class='varid'>return</span> <span class='varid'>context</span>
+<a name="line-368"></a>       <span class='layout'>)</span>
+<a name="line-369"></a>
+<a name="line-370"></a><a name="lowerCaseName"></a><span class='definition'>lowerCaseName</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-371"></a><span class='definition'>lowerCaseName</span>
+<a name="line-372"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-373"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-374"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-375"></a>
+<a name="line-376"></a><a name="upperCaseString"></a><span class='definition'>upperCaseString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-377"></a><span class='definition'>upperCaseString</span>
+<a name="line-378"></a>    <span class='keyglyph'>=</span> <span class='varid'>sequence</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='layout'>(</span> <span class='varop'>==</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>toUpper</span><span class='layout'>)</span><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><a name="addHtmlTag"></a><span class='definition'>addHtmlTag</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'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-383"></a><span class='definition'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='varid'>body</span> <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>
+<a name="line-384"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>tn</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>body</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>
+<a name="line-385"></a>
+<a name="line-386"></a><a name="addHtmlWarn"></a><span class='definition'>addHtmlWarn</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-387"></a><span class='definition'>addHtmlWarn</span> <span class='varid'>msg</span>
+<a name="line-388"></a>    <span class='keyglyph'>=</span> <span class='varid'>addHtmlElems</span> <span class='keyglyph'>[</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='varid'>msg</span><span class='keyglyph'>]</span>
+<a name="line-389"></a>
+<a name="line-390"></a><a name="addHtmlElems"></a><span class='definition'>addHtmlElems</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-391"></a><span class='definition'>addHtmlElems</span> <span class='varid'>elems</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>
+<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>elems</span> <span class='varop'>++</span> <span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>
+<a name="line-393"></a>
+<a name="line-394"></a><a name="openTag"></a><span class='definition'>openTag</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'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-395"></a><span class='definition'>openTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>
+<a name="line-396"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>tn</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>body</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>openTags</span><span class='layout'>)</span>
+<a name="line-397"></a>
+<a name="line-398"></a><a name="closeTag"></a><span class='definition'>closeTag</span>	<span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-399"></a><span class='definition'>closeTag</span> <span class='varid'>pos</span> <span class='varid'>n</span> <span class='varid'>context</span>
+<a name="line-400"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>`elem`</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n1</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>snd</span> <span class='varid'>context</span><span class='layout'>)</span>
+<a name="line-401"></a>	<span class='keyglyph'>=</span> <span class='varid'>closeTag'</span> <span class='varid'>n</span> <span class='varid'>context</span>
+<a name="line-402"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-403"></a>	<span class='keyglyph'>=</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" no opening tag found for &lt;/"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"&gt;"</span><span class='layout'>)</span>
+<a name="line-404"></a>	  <span class='varop'>.</span>
+<a name="line-405"></a>	  <span class='varid'>addHtmlTag</span> <span class='varid'>n</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-406"></a>          <span class='varop'>$</span>
+<a name="line-407"></a>	  <span class='varid'>context</span>
+<a name="line-408"></a>    <span class='keyword'>where</span>
+<a name="line-409"></a>    <span class='varid'>closeTag'</span> <span class='varid'>n'</span> <span class='layout'>(</span><span class='varid'>body'</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='varid'>al1</span><span class='layout'>,</span> <span class='varid'>body1</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>restOpen</span><span class='layout'>)</span>
+<a name="line-410"></a>	<span class='keyglyph'>=</span> <span class='varid'>close</span> <span class='varid'>context1</span>
+<a name="line-411"></a>	  <span class='keyword'>where</span>
+<a name="line-412"></a>	  <span class='varid'>context1</span>
+<a name="line-413"></a>	      <span class='keyglyph'>=</span> <span class='varid'>addHtmlTag</span> <span class='varid'>n1</span> <span class='varid'>al1</span> <span class='varid'>body'</span> <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>restOpen</span><span class='layout'>)</span>
+<a name="line-414"></a>	  <span class='varid'>close</span>
+<a name="line-415"></a>	      <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>==</span> <span class='varid'>n1</span>
+<a name="line-416"></a>		<span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-417"></a>	      <span class='keyglyph'>|</span> <span class='varid'>n1</span> <span class='varop'>`isInnerHtmlTagOf`</span> <span class='varid'>n'</span>
+<a name="line-418"></a>		  <span class='keyglyph'>=</span> <span class='varid'>closeTag</span> <span class='varid'>pos</span> <span class='varid'>n'</span>
+<a name="line-419"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-420"></a>		<span class='keyglyph'>=</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" no closing tag found for \"&lt;"</span> <span class='varop'>++</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" ...&gt;\""</span><span class='layout'>)</span>
+<a name="line-421"></a>		  <span class='varop'>.</span>
+<a name="line-422"></a>		  <span class='varid'>closeTag'</span> <span class='varid'>n'</span>
+<a name="line-423"></a>    <span class='varid'>closeTag'</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-424"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal argument for closeTag'"</span>
+<a name="line-425"></a>
+<a name="line-426"></a><a name="closePrevTag"></a><span class='definition'>closePrevTag</span>	<span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-427"></a><span class='definition'>closePrevTag</span> <span class='sel'>_pos</span> <span class='sel'>_n</span> <span class='varid'>context</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='sel'>_body</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-428"></a>    <span class='keyglyph'>=</span> <span class='varid'>context</span>
+<a name="line-429"></a><span class='definition'>closePrevTag</span> <span class='varid'>pos</span> <span class='varid'>n</span> <span class='varid'>context</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='varid'>al1</span><span class='layout'>,</span> <span class='varid'>body1</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>restOpen</span><span class='layout'>)</span>
+<a name="line-430"></a>    <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>`closes`</span> <span class='varid'>n1</span>
+<a name="line-431"></a>	<span class='keyglyph'>=</span> <span class='varid'>closePrevTag</span> <span class='varid'>pos</span> <span class='varid'>n</span>
+<a name="line-432"></a>	  <span class='layout'>(</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" tag \"&lt;"</span> <span class='varop'>++</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" ...&gt;\" implicitly closed by opening tag \"&lt;"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" ...&gt;\""</span><span class='layout'>)</span>
+<a name="line-433"></a>	    <span class='varop'>.</span>
+<a name="line-434"></a>	    <span class='varid'>addHtmlTag</span> <span class='varid'>n1</span> <span class='varid'>al1</span> <span class='varid'>body</span>
+<a name="line-435"></a>	    <span class='varop'>$</span>
+<a name="line-436"></a>	    <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>restOpen</span><span class='layout'>)</span>
+<a name="line-437"></a>	  <span class='layout'>)</span>
+<a name="line-438"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-439"></a>	<span class='keyglyph'>=</span> <span class='varid'>context</span>
+<a name="line-440"></a>
+<a name="line-441"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-442"></a><span class='comment'>--</span>
+<a name="line-443"></a><span class='comment'>-- taken from HaXml and extended</span>
+<a name="line-444"></a>
+<a name="line-445"></a><a name="isEmptyHtmlTag"></a><span class='definition'>isEmptyHtmlTag</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-446"></a><span class='definition'>isEmptyHtmlTag</span> <span class='varid'>n</span>
+<a name="line-447"></a>    <span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='varop'>`elem`</span>
+<a name="line-448"></a>      <span class='varid'>emptyHtmlTags</span>
+<a name="line-449"></a>
+<a name="line-450"></a><a name="emptyHtmlTags"></a><span class='definition'>emptyHtmlTags</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-451"></a><span class='definition'>emptyHtmlTags</span>
+<a name="line-452"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"area"</span>
+<a name="line-453"></a>      <span class='layout'>,</span> <span class='str'>"base"</span>
+<a name="line-454"></a>      <span class='layout'>,</span> <span class='str'>"br"</span>
+<a name="line-455"></a>      <span class='layout'>,</span> <span class='str'>"col"</span>
+<a name="line-456"></a>      <span class='layout'>,</span> <span class='str'>"frame"</span>
+<a name="line-457"></a>      <span class='layout'>,</span> <span class='str'>"hr"</span>
+<a name="line-458"></a>      <span class='layout'>,</span> <span class='str'>"img"</span>
+<a name="line-459"></a>      <span class='layout'>,</span> <span class='str'>"input"</span>
+<a name="line-460"></a>      <span class='layout'>,</span> <span class='str'>"link"</span>
+<a name="line-461"></a>      <span class='layout'>,</span> <span class='str'>"meta"</span>
+<a name="line-462"></a>      <span class='layout'>,</span> <span class='str'>"param"</span>
+<a name="line-463"></a>      <span class='keyglyph'>]</span>
+<a name="line-464"></a>
+<a name="line-465"></a><a name="isInnerHtmlTagOf"></a><span class='definition'>isInnerHtmlTagOf</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-466"></a><a name="isInnerHtmlTagOf"></a><span class='definition'>n</span> <span class='varop'>`isInnerHtmlTagOf`</span> <span class='varid'>tn</span>
+<a name="line-467"></a>    <span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='varop'>`elem`</span>
+<a name="line-468"></a>      <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>tn</span>
+<a name="line-469"></a>      <span class='varop'>$</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"body"</span><span class='layout'>,</span>    <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-470"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"caption"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-471"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dd"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-472"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"div"</span><span class='layout'>,</span>     <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-473"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dl"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"dt"</span><span class='layout'>,</span><span class='str'>"dd"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-474"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dt"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-475"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"li"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-476"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"map"</span><span class='layout'>,</span>     <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-477"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"object"</span><span class='layout'>,</span>  <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-478"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ol"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"li"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-479"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"table"</span><span class='layout'>,</span>   <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='layout'>,</span><span class='str'>"thead"</span><span class='layout'>,</span><span class='str'>"tfoot"</span><span class='layout'>,</span><span class='str'>"tbody"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-480"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tbody"</span><span class='layout'>,</span>   <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-481"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"td"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-482"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tfoot"</span><span class='layout'>,</span>   <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-483"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"th"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-484"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thead"</span><span class='layout'>,</span>   <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-485"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tr"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-486"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ul"</span><span class='layout'>,</span>      <span class='keyglyph'>[</span><span class='str'>"li"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-487"></a>	<span class='keyglyph'>]</span>
+<a name="line-488"></a>      <span class='layout'>)</span>
+<a name="line-489"></a>
+<a name="line-490"></a><a name="closesHtmlTag"></a><span class='definition'>closesHtmlTag</span>
+<a name="line-491"></a>  <span class='layout'>,</span> <span class='varid'>closes</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-492"></a>
+<a name="line-493"></a><span class='definition'>closesHtmlTag</span>	<span class='keyglyph'>=</span> <span class='varid'>closes</span>
+<a name="line-494"></a>
+<a name="line-495"></a><span class='str'>"a"</span>	<span class='varop'>`closes`</span> <span class='str'>"a"</span>					<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-496"></a><span class='str'>"li"</span>	<span class='varop'>`closes`</span> <span class='str'>"li"</span>					<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-497"></a><span class='str'>"th"</span>	<span class='varop'>`closes`</span>  <span class='varid'>t</span>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-498"></a><span class='str'>"td"</span>	<span class='varop'>`closes`</span>  <span class='varid'>t</span>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-499"></a><span class='str'>"tr"</span>	<span class='varop'>`closes`</span>  <span class='varid'>t</span>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='keyglyph'>]</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-500"></a><span class='str'>"dt"</span>	<span class='varop'>`closes`</span>  <span class='varid'>t</span>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"dt"</span><span class='layout'>,</span><span class='str'>"dd"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-501"></a><span class='str'>"dd"</span>	<span class='varop'>`closes`</span>  <span class='varid'>t</span>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"dt"</span><span class='layout'>,</span><span class='str'>"dd"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-502"></a><span class='str'>"hr"</span>	<span class='varop'>`closes`</span>  <span class='str'>"p"</span>                                   <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-503"></a><span class='str'>"colgroup"</span> 
+<a name="line-504"></a>	<span class='varop'>`closes`</span> <span class='str'>"colgroup"</span>				<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-505"></a><span class='str'>"form"</span>	<span class='varop'>`closes`</span> <span class='str'>"form"</span>					<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-506"></a><span class='str'>"label"</span>	<span class='varop'>`closes`</span> <span class='str'>"label"</span>				<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-507"></a><span class='str'>"map"</span>	<span class='varop'>`closes`</span> <span class='str'>"map"</span>					<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-508"></a><span class='str'>"object"</span>
+<a name="line-509"></a>	<span class='varop'>`closes`</span> <span class='str'>"object"</span>				<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-510"></a><span class='keyword'>_</span>	<span class='varop'>`closes`</span> <span class='varid'>t</span>  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"option"</span>
+<a name="line-511"></a>			       <span class='layout'>,</span><span class='str'>"script"</span>
+<a name="line-512"></a>			       <span class='layout'>,</span><span class='str'>"style"</span>
+<a name="line-513"></a>			       <span class='layout'>,</span><span class='str'>"textarea"</span>
+<a name="line-514"></a>			       <span class='layout'>,</span><span class='str'>"title"</span>
+<a name="line-515"></a>			       <span class='keyglyph'>]</span>			<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-516"></a><a name="closes"></a><span class='definition'>t</span>	<span class='varop'>`closes`</span> <span class='str'>"select"</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>/=</span> <span class='str'>"option"</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-517"></a><span class='str'>"thead"</span>	<span class='varop'>`closes`</span> <span class='varid'>t</span>  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"colgroup"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-518"></a><span class='str'>"tfoot"</span>	<span class='varop'>`closes`</span> <span class='varid'>t</span>  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"thead"</span>
+<a name="line-519"></a>			       <span class='layout'>,</span><span class='str'>"colgroup"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-520"></a><span class='str'>"tbody"</span>	<span class='varop'>`closes`</span> <span class='varid'>t</span>  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"tbody"</span>
+<a name="line-521"></a>			       <span class='layout'>,</span><span class='str'>"tfoot"</span>
+<a name="line-522"></a>			       <span class='layout'>,</span><span class='str'>"thead"</span>
+<a name="line-523"></a>			       <span class='layout'>,</span><span class='str'>"colgroup"</span><span class='keyglyph'>]</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-524"></a><a name="closes"></a><span class='definition'>t</span>	<span class='varop'>`closes`</span> <span class='varid'>t2</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"h1"</span><span class='layout'>,</span><span class='str'>"h2"</span><span class='layout'>,</span><span class='str'>"h3"</span>
+<a name="line-525"></a>			       <span class='layout'>,</span><span class='str'>"h4"</span><span class='layout'>,</span><span class='str'>"h5"</span><span class='layout'>,</span><span class='str'>"h6"</span>
+<a name="line-526"></a>			       <span class='layout'>,</span><span class='str'>"dl"</span><span class='layout'>,</span><span class='str'>"ol"</span><span class='layout'>,</span><span class='str'>"ul"</span>
+<a name="line-527"></a>			       <span class='layout'>,</span><span class='str'>"table"</span>
+<a name="line-528"></a>			       <span class='layout'>,</span><span class='str'>"div"</span><span class='layout'>,</span><span class='str'>"p"</span>
+<a name="line-529"></a>			       <span class='keyglyph'>]</span>
+<a name="line-530"></a>		      <span class='varop'>&amp;&amp;</span>
+<a name="line-531"></a>                      <span class='varid'>t2</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"h1"</span><span class='layout'>,</span><span class='str'>"h2"</span><span class='layout'>,</span><span class='str'>"h3"</span>
+<a name="line-532"></a>				<span class='layout'>,</span><span class='str'>"h4"</span><span class='layout'>,</span><span class='str'>"h5"</span><span class='layout'>,</span><span class='str'>"h6"</span>
+<a name="line-533"></a>				<span class='layout'>,</span><span class='str'>"p"</span>			<span class='comment'>-- not "div"</span>
+<a name="line-534"></a>				<span class='keyglyph'>]</span>			<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-535"></a><span class='keyword'>_</span>	<span class='varop'>`closes`</span> <span class='keyword'>_</span>					<span class='keyglyph'>=</span> <span class='conid'>False</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-Parser-HtmlParser.html b/doc/hdoc/src/Text-XML-HXT-Parser-HtmlParser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-HtmlParser.html
@@ -0,0 +1,180 @@
+<!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     : Text.XML.HXT.Parser.HtmlParser
+<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  : stable
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   This parser tries to interprete everything as HTML
+<a name="line-13"></a>   no errors are emitted during parsing. If something looks
+<a name="line-14"></a>   weired, warning messages are inserted in the document tree.
+<a name="line-15"></a>  
+<a name="line-16"></a>   Module contains state filter for easy parsing and error handling
+<a name="line-17"></a>   real work is done in 'Text.XML.HXT.Parser.HtmlParsec'
+<a name="line-18"></a>
+<a name="line-19"></a>-}</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParser</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>getHtmlDoc</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>parseHtmlDoc</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>runHtmlParser</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>substHtmlEntities</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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>
+<a name="line-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='keyword'>where</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'>XmlTree</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'>XmlState</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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlInput</span>
+<a name="line-38"></a>    <span class='layout'>(</span> <span class='varid'>getXmlContents</span>
+<a name="line-39"></a>    <span class='layout'>)</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlOutput</span>
+<a name="line-42"></a>    <span class='layout'>(</span> <span class='varid'>traceTree</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>traceSource</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>traceMsg</span>
+<a name="line-45"></a>    <span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></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-48"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-49"></a>    <span class='layout'>)</span>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='comment'>-- |</span>
+<a name="line-54"></a><span class='comment'>-- read a document and parse it with 'parseHtmlDoc'. The main entry point of this module</span>
+<a name="line-55"></a><span class='comment'>--</span>
+<a name="line-56"></a><span class='comment'>-- The input tree must be a root tree like in '	Text.XML.HXT.Parser.MainFunctions.getXmlDoc'. The content is read with 'Text.XML.HXT.Parser.XmlInput.getXmlContents',</span>
+<a name="line-57"></a><span class='comment'>-- is parsed with 'parseHtmlDoc' and canonicalized (char refs are substituted in content and attributes,</span>
+<a name="line-58"></a><span class='comment'>-- but comment is preserved)</span>
+<a name="line-59"></a><span class='comment'>--</span>
+<a name="line-60"></a><span class='comment'>-- see also : 'Text.XML.HXT.Parser.DTDProcessing.getWellformedDoc'</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="getHtmlDoc"></a><span class='definition'>getHtmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-63"></a><span class='definition'>getHtmlDoc</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>setSystemParams</span>
+<a name="line-65"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-66"></a>      <span class='varid'>getXmlContents</span>
+<a name="line-67"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-68"></a>      <span class='varid'>parseHtmlDoc</span>
+<a name="line-69"></a>
+<a name="line-70"></a><span class='comment'>-- | The HTML parsing filter</span>
+<a name="line-71"></a><span class='comment'>--</span>
+<a name="line-72"></a><span class='comment'>-- The input is parsed with 'runHtmlParser', everything is interpreted as HTML,</span>
+<a name="line-73"></a><span class='comment'>-- if errors ocuur, the parser will try to do some meaningfull action and continues</span>
+<a name="line-74"></a><span class='comment'>-- parsing. Afterwards the entitiy references for defined for XHTML are resovled,</span>
+<a name="line-75"></a><span class='comment'>-- any unresolved reference is transformed into plain text.</span>
+<a name="line-76"></a><span class='comment'>--</span>
+<a name="line-77"></a><span class='comment'>-- Error messages</span>
+<a name="line-78"></a><span class='comment'>-- during parsing and entity resolving are added as warning nodes into the resulting tree.</span>
+<a name="line-79"></a><span class='comment'>--</span>
+<a name="line-80"></a><span class='comment'>-- The warnings are issued, if the 1. parameter noWarnings is set to True,</span>
+<a name="line-81"></a><span class='comment'>-- afterwards all are removed from the resulting tree.</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="parseHtmlDoc"></a><span class='definition'>parseHtmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-84"></a><span class='definition'>parseHtmlDoc</span>
+<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseDoc</span>
+<a name="line-86"></a>      <span class='varop'>`whenM`</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>.&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>isXText</span> <span class='layout'>)</span>
+<a name="line-87"></a>      <span class='keyword'>where</span>
+<a name="line-88"></a>      <span class='varid'>parseDoc</span> <span class='varid'>t'</span>
+<a name="line-89"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"parseHtmlDoc: parse HTML document "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>loc</span><span class='layout'>)</span>
+<a name="line-90"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-91"></a>	      <span class='varid'>runHtmlParser</span>
+<a name="line-92"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-93"></a>	      <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>substHtmlEntities</span><span class='layout'>)</span>
+<a name="line-94"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-95"></a>	      <span class='varid'>removeWarnings</span>
+<a name="line-96"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-97"></a>	      <span class='varid'>traceTree</span>
+<a name="line-98"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-99"></a>	      <span class='varid'>traceSource</span>
+<a name="line-100"></a>              <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>t'</span>
+<a name="line-101"></a>	  <span class='keyword'>where</span>
+<a name="line-102"></a>	  <span class='varid'>loc</span>    <span class='keyglyph'>=</span> <span class='varid'>valueOf</span> <span class='varid'>a_source</span> <span class='varid'>t'</span>			<span class='comment'>-- get document source uri</span>
+<a name="line-103"></a>
+<a name="line-104"></a>      <span class='varid'>removeWarnings</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-105"></a>      <span class='varid'>removeWarnings</span> <span class='varid'>t'</span>
+<a name="line-106"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-107"></a>	    <span class='varid'>noWarnings</span>  <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='layout'>(</span><span class='varid'>hasOption</span> <span class='varid'>a_issue_warnings</span><span class='layout'>)</span> <span class='varid'>t'</span><span class='layout'>)</span>
+<a name="line-108"></a>	    <span class='varid'>selWarnings</span> <span class='keyglyph'>=</span> <span class='varid'>deep</span>
+<a name="line-109"></a>			  <span class='layout'>(</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isWarning</span> <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-110"></a>				   <span class='layout'>,</span> <span class='varid'>isXTag</span>    <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>.&gt;</span> <span class='varid'>selWarnings</span><span class='layout'>)</span>
+<a name="line-111"></a>				   <span class='keyglyph'>]</span>
+<a name="line-112"></a>			  <span class='layout'>)</span>
+<a name="line-113"></a>	    <span class='varid'>remWarnings</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span>
+<a name="line-114"></a>			  <span class='layout'>(</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isWarning</span> <span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-115"></a>				   <span class='layout'>,</span> <span class='varid'>isXTag</span>    <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>remWarnings</span> <span class='varop'>$$</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-116"></a>				   <span class='layout'>,</span> <span class='varid'>this</span>      <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-117"></a>				   <span class='keyglyph'>]</span>
+<a name="line-118"></a>			  <span class='layout'>)</span>
+<a name="line-119"></a>	    <span class='varid'>warnings</span> <span class='keyglyph'>=</span> <span class='varid'>selWarnings</span> <span class='varid'>t'</span>
+<a name="line-120"></a>	    <span class='keyword'>in</span> <span class='keyword'>do</span> 
+<a name="line-121"></a>	       <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>warnings</span>
+<a name="line-122"></a>		  <span class='keyword'>then</span> <span class='varid'>thisM</span> <span class='varid'>t'</span>
+<a name="line-123"></a>		  <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-124"></a>		       <span class='keyword'>if</span> <span class='varid'>noWarnings</span>
+<a name="line-125"></a>			  <span class='keyword'>then</span> <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-126"></a>			  <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-127"></a>			       <span class='varid'>issueError</span> <span class='varop'>$$&lt;</span> <span class='varid'>warnings</span>
+<a name="line-128"></a>		       <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>remWarnings</span> <span class='varid'>t'</span><span class='layout'>)</span>
+<a name="line-129"></a>
+<a name="line-130"></a><span class='comment'>-- | The pure HTML parser, usually called via 'parseHtmlDoc'.</span>
+<a name="line-131"></a><span class='comment'>--</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="runHtmlParser"></a><span class='definition'>runHtmlParser</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-134"></a><span class='definition'>runHtmlParser</span> <span class='varid'>t</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>errs</span>
+<a name="line-136"></a>      <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-137"></a>	   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='varid'>res</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-138"></a>      <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-139"></a>	   <span class='varid'>issueError</span> <span class='varop'>$$&lt;</span> <span class='varid'>errs</span>
+<a name="line-140"></a>	   <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>setStatus</span> <span class='varid'>c_err</span> <span class='str'>"parsing HTML"</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-141"></a>      <span class='keyword'>where</span>
+<a name="line-142"></a>      <span class='varid'>res</span>  <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>parseHtmlText</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-143"></a>      <span class='varid'>errs</span> <span class='keyglyph'>=</span> <span class='varid'>isXError</span> <span class='varop'>.&gt;</span> <span class='varid'>neg</span> <span class='varid'>isWarning</span> <span class='varop'>$$</span> <span class='varid'>res</span>
+<a name="line-144"></a>      <span class='varid'>loc</span>  <span class='keyglyph'>=</span> <span class='varid'>valueOf</span> <span class='varid'>a_source</span> <span class='varid'>t</span>
+<a name="line-145"></a>
+<a name="line-146"></a>
+<a name="line-147"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-148"></a><span class='comment'>--</span>
+<a name="line-149"></a><span class='comment'>-- XHTML entities</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="substHtmlEntities"></a><span class='definition'>substHtmlEntities</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-152"></a><span class='definition'>substHtmlEntities</span>
+<a name="line-153"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isXEntityRef</span>	<span class='conop'>:-&gt;</span> <span class='varid'>substEntity</span>
+<a name="line-154"></a>	     <span class='layout'>,</span> <span class='varid'>isXTag</span>		<span class='conop'>:-&gt;</span> <span class='varid'>processAttr</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varid'>substHtmlEntities</span><span class='layout'>)</span>
+<a name="line-155"></a>	     <span class='layout'>,</span> <span class='varid'>this</span>		<span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-156"></a>	     <span class='keyglyph'>]</span>
+<a name="line-157"></a>      <span class='keyword'>where</span>
+<a name="line-158"></a>      <span class='varid'>substEntity</span> <span class='varid'>t'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>en</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-159"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>en</span> <span class='varid'>xhtmlEntities</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-160"></a>	    <span class='conid'>Just</span> <span class='varid'>i</span>
+<a name="line-161"></a>		<span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>mkXCharRefTree</span> <span class='varid'>i</span><span class='keyglyph'>]</span>
+<a name="line-162"></a>	    <span class='conid'>Nothing</span>
+<a name="line-163"></a>		<span class='keyglyph'>-&gt;</span> <span class='varid'>xwarn</span> <span class='layout'>(</span><span class='str'>"no XHTML entity found for reference: \"&amp;"</span> <span class='varop'>++</span> <span class='varid'>en</span> <span class='varop'>++</span> <span class='str'>";\""</span><span class='layout'>)</span>
+<a name="line-164"></a>		   <span class='varop'>++</span>
+<a name="line-165"></a>		   <span class='layout'>(</span><span class='varid'>xmlTreesToText</span> <span class='keyglyph'>[</span><span class='varid'>t'</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-166"></a>
+<a name="line-167"></a>      <span class='varid'>substEntity</span> <span class='keyword'>_</span>
+<a name="line-168"></a>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"substHtmlEntities: illegal argument"</span>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-MainFunctions.html b/doc/hdoc/src/Text-XML-HXT-Parser-MainFunctions.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-MainFunctions.html
@@ -0,0 +1,468 @@
+<!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'>-- Simple parse functions.</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- Version : $Id: MainFunctions.hs,v 1.2 2004/11/20 16:53:15 hxml Exp $</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- the main building blocks for an application.</span>
+<a name="line-8"></a><span class='comment'>-- this module exports complex filters and functions for</span>
+<a name="line-9"></a><span class='comment'>-- common tasks for input and parsing, output and option handling.</span>
+<a name="line-10"></a><span class='comment'>--</span>
+<a name="line-11"></a>
+<a name="line-12"></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'>Parser</span><span class='varop'>.</span><span class='conid'>MainFunctions</span>
+<a name="line-13"></a>    <span class='layout'>(</span> <span class='varid'>getXmlDocument</span>
+<a name="line-14"></a>    <span class='layout'>,</span> <span class='varid'>putXmlDocument</span>
+<a name="line-15"></a>
+<a name="line-16"></a>    <span class='layout'>,</span> <span class='varid'>parseDocument</span>
+<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>writeDocument</span>
+<a name="line-18"></a>    <span class='layout'>)</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'>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'>XmlTree</span>
+<a name="line-22"></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'>XmlState</span>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParser</span>
+<a name="line-24"></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'>XmlInput</span>
+<a name="line-25"></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'>XmlOutput</span>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>DTDProcessing</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'>Validator</span><span class='varop'>.</span><span class='conid'>Validation</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'>EditFilters</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'>Namespace</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='comment'>-- ------------------------------------------------------------</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- |</span>
+<a name="line-36"></a><span class='comment'>-- convenient function for reading a XML document without</span>
+<a name="line-37"></a><span class='comment'>-- dealing with state monads, error messages collection and other details</span>
+<a name="line-38"></a><span class='comment'>--</span>
+<a name="line-39"></a><span class='comment'>-- getXmlDocument calls 'parseDocument' with the list of parsing options</span>
+<a name="line-40"></a><span class='comment'>-- and an url or filename as document source.</span>
+<a name="line-41"></a><span class='comment'>--</span>
+<a name="line-42"></a><span class='comment'>-- result is a triple</span>
+<a name="line-43"></a><span class='comment'>--</span>
+<a name="line-44"></a><span class='comment'>-- * the resulting document tree with a root node containing all</span>
+<a name="line-45"></a><span class='comment'>--   meta info about the document (options, status info, http header, ...)</span>
+<a name="line-46"></a><span class='comment'>--</span>
+<a name="line-47"></a><span class='comment'>-- - the list of errors and warnings</span>
+<a name="line-48"></a><span class='comment'>--</span>
+<a name="line-49"></a><span class='comment'>-- - the error level: one of 'c_ok', 'c_warn', 'c_err', 'c_fatal'</span>
+<a name="line-50"></a><span class='comment'>--</span>
+<a name="line-51"></a><span class='comment'>-- example for input (see also example in 'putXmlDocument' and example in 'writeDocument')</span>
+<a name="line-52"></a><span class='comment'>--</span>
+<a name="line-53"></a><span class='comment'>-- &gt; main :: IO ()</span>
+<a name="line-54"></a><span class='comment'>-- &gt; main</span>
+<a name="line-55"></a><span class='comment'>-- &gt;   = do</span>
+<a name="line-56"></a><span class='comment'>-- &gt;     (res, errs, rc) &lt;- getXmlDocument [] "test.xml"</span>
+<a name="line-57"></a><span class='comment'>-- &gt;     if rc &gt;= c_err</span>
+<a name="line-58"></a><span class='comment'>-- &gt;       then issueErrors errs</span>
+<a name="line-59"></a><span class='comment'>-- &gt;       else processTree res</span>
+<a name="line-60"></a><span class='comment'>-- &gt;</span>
+<a name="line-61"></a><span class='comment'>-- &gt; issueErrors :: XmlTrees -&gt; IO ()</span>
+<a name="line-62"></a><span class='comment'>-- &gt;</span>
+<a name="line-63"></a><span class='comment'>-- &gt; processTree :: XmlTree  -&gt; IO ()</span>
+<a name="line-64"></a><span class='comment'>--</span>
+<a name="line-65"></a><span class='comment'>-- for options see 'parseDocument', 'a_collect_errors' is set implicitly</span>
+<a name="line-66"></a>
+<a name="line-67"></a><a name="getXmlDocument"></a><span class='definition'>getXmlDocument</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'>IO</span> <span class='layout'>(</span><span class='conid'>XmlTree</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span>
+<a name="line-68"></a><span class='definition'>getXmlDocument</span> <span class='varid'>options</span> <span class='varid'>url</span>
+<a name="line-69"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-70"></a>      <span class='keyword'>let</span> <span class='varid'>options'</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_collect_errors</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span>		<span class='comment'>-- collect errors</span>
+<a name="line-71"></a>		     <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_issue_errors</span><span class='layout'>,</span>   <span class='varid'>v_0</span><span class='layout'>)</span>		<span class='comment'>-- but don't issue</span>
+<a name="line-72"></a>		     <span class='keyglyph'>]</span>					<span class='comment'>-- can be overwritten by supporting other values in options</span>
+<a name="line-73"></a>	             <span class='varop'>++</span>
+<a name="line-74"></a>		     <span class='varid'>options</span>
+<a name="line-75"></a>		     <span class='varop'>++</span>
+<a name="line-76"></a>		     <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_source</span><span class='layout'>,</span> <span class='varid'>url</span><span class='layout'>)</span>			<span class='comment'>-- set the source url</span>
+<a name="line-77"></a>		     <span class='keyglyph'>]</span>
+<a name="line-78"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>run'</span> <span class='varop'>$</span> <span class='varid'>parseDocument</span> <span class='varid'>options'</span> <span class='varid'>emptyRoot</span>
+<a name="line-79"></a>      <span class='keyword'>let</span> <span class='varid'>root</span> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varid'>res</span>
+<a name="line-80"></a>      <span class='keyword'>let</span> <span class='varid'>errs</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>res</span>
+<a name="line-81"></a>      <span class='keyword'>let</span> <span class='varid'>elvl</span> <span class='keyglyph'>=</span> <span class='varid'>intValueOf</span> <span class='varid'>a_status</span> <span class='varid'>root</span>
+<a name="line-82"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>root</span><span class='layout'>,</span> <span class='varid'>errs</span><span class='layout'>,</span> <span class='varid'>elvl</span><span class='layout'>)</span>
+<a name="line-83"></a>
+<a name="line-84"></a>
+<a name="line-85"></a><span class='comment'>-- |</span>
+<a name="line-86"></a><span class='comment'>-- the inverse operation to 'getXmlDocument'</span>
+<a name="line-87"></a><span class='comment'>--</span>
+<a name="line-88"></a><span class='comment'>-- writes a complete document tree to a file, writing can be</span>
+<a name="line-89"></a><span class='comment'>-- controlled by options, the real work is done with filter 'writeDocument'.</span>
+<a name="line-90"></a><span class='comment'>-- useful options are the options of 'writeDocument'.</span>
+<a name="line-91"></a><span class='comment'>--</span>
+<a name="line-92"></a><span class='comment'>-- result is a pair: 1.part is a list of error messages, 2. part is the return code,</span>
+<a name="line-93"></a><span class='comment'>-- the status info of the write filter</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a><span class='comment'>-- this filter is useful, when processing XML in an arbitray context in the IO monad</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>-- an example main program for such an application is:</span>
+<a name="line-98"></a><span class='comment'>--</span>
+<a name="line-99"></a><span class='comment'>-- &gt; main :: IO ()</span>
+<a name="line-100"></a><span class='comment'>-- &gt; main</span>
+<a name="line-101"></a><span class='comment'>-- &gt;   = do</span>
+<a name="line-102"></a><span class='comment'>-- &gt;     (input, readErrs, rc) &lt;- getXmlDocument [...] "test.xml"</span>
+<a name="line-103"></a><span class='comment'>-- &gt;     if rc &gt;= c_err</span>
+<a name="line-104"></a><span class='comment'>-- &gt;       then issueErrors readErrs</span>
+<a name="line-105"></a><span class='comment'>-- &gt;       else processTree input</span>
+<a name="line-106"></a><span class='comment'>-- &gt;</span>
+<a name="line-107"></a><span class='comment'>-- &gt; processTree :: XmlTree -&gt; IO ()</span>
+<a name="line-108"></a><span class='comment'>-- &gt; processTree t</span>
+<a name="line-109"></a><span class='comment'>-- &gt;   = let res = computeNewTree input</span>
+<a name="line-110"></a><span class='comment'>-- &gt;     in do</span>
+<a name="line-111"></a><span class='comment'>-- &gt;        (writeErrs, rc2) &lt;- putXmlDocument [...] "out.xml" res</span>
+<a name="line-112"></a><span class='comment'>-- &gt;        if rc2 &gt;= c_err</span>
+<a name="line-113"></a><span class='comment'>-- &gt;          then issueErrors writeErrs</span>
+<a name="line-114"></a><span class='comment'>-- &gt;          else return ()</span>
+<a name="line-115"></a><span class='comment'>-- &gt;</span>
+<a name="line-116"></a><span class='comment'>-- &gt; issueErrors :: XmlTrees -&gt; IO ()</span>
+<a name="line-117"></a><span class='comment'>-- &gt;</span>
+<a name="line-118"></a><span class='comment'>-- &gt; computeNewTree :: XmlTree -&gt; XmlTree</span>
+<a name="line-119"></a>
+<a name="line-120"></a>
+<a name="line-121"></a><a name="putXmlDocument"></a><span class='definition'>putXmlDocument</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'>IO</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span>
+<a name="line-122"></a><span class='definition'>putXmlDocument</span> <span class='varid'>options</span> <span class='varid'>fileName</span> <span class='varid'>t</span>
+<a name="line-123"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-124"></a>      <span class='keyword'>let</span> <span class='varid'>options'</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_collect_errors</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span>		<span class='comment'>-- collect errors</span>
+<a name="line-125"></a>		     <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_issue_errors</span><span class='layout'>,</span>   <span class='varid'>v_0</span><span class='layout'>)</span>		<span class='comment'>-- but don't issue</span>
+<a name="line-126"></a>		     <span class='keyglyph'>]</span>					<span class='comment'>-- can be overwritten by supporting other values in options</span>
+<a name="line-127"></a>	             <span class='varop'>++</span>
+<a name="line-128"></a>		     <span class='varid'>options</span>
+<a name="line-129"></a>		     <span class='varop'>++</span>
+<a name="line-130"></a>		     <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_output_file</span><span class='layout'>,</span> <span class='varid'>fileName</span><span class='layout'>)</span>	<span class='comment'>-- set the source url</span>
+<a name="line-131"></a>		     <span class='keyglyph'>]</span>
+<a name="line-132"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>run'</span> <span class='varop'>$</span> <span class='varid'>writeDocument</span> <span class='varid'>options'</span> <span class='varid'>t</span>
+<a name="line-133"></a>      <span class='keyword'>let</span> <span class='varid'>root</span> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varid'>res</span>
+<a name="line-134"></a>      <span class='keyword'>let</span> <span class='varid'>errs</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>res</span>
+<a name="line-135"></a>      <span class='keyword'>let</span> <span class='varid'>elvl</span> <span class='keyglyph'>=</span> <span class='varid'>intValueOf</span> <span class='varid'>a_status</span> <span class='varid'>root</span>
+<a name="line-136"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>errs</span><span class='layout'>,</span> <span class='varid'>elvl</span><span class='layout'>)</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'>-- the main parsing filter</span>
+<a name="line-142"></a><span class='comment'>--</span>
+<a name="line-143"></a><span class='comment'>-- this filter can be configured by an option list, a list of</span>
+<a name="line-144"></a><span class='comment'>-- option name, option value pairs.</span>
+<a name="line-145"></a><span class='comment'>-- the input tree must be a possibly empty document root tree.</span>
+<a name="line-146"></a><span class='comment'>-- all the options are stored as attributes in this root node to control processing.</span>
+<a name="line-147"></a><span class='comment'>--</span>
+<a name="line-148"></a><span class='comment'>-- available options:</span>
+<a name="line-149"></a><span class='comment'>--</span>
+<a name="line-150"></a><span class='comment'>-- * 'a_parse_html': use HTML parser, else use XML parser (default)</span>
+<a name="line-151"></a><span class='comment'>--</span>
+<a name="line-152"></a><span class='comment'>-- - 'a_validate' : validate document (default), else skip validation</span>
+<a name="line-153"></a><span class='comment'>--</span>
+<a name="line-154"></a><span class='comment'>-- - 'a_check_namespaces' : check namespaces, else skip namespace processing (default)</span>
+<a name="line-155"></a><span class='comment'>--</span>
+<a name="line-156"></a><span class='comment'>-- - 'a_canonicalize' : canonicalize document (default), else skip canonicalization</span>
+<a name="line-157"></a><span class='comment'>--</span>
+<a name="line-158"></a><span class='comment'>-- - 'a_preserve_comment' : preserve comments during canonicalization, else remove comments (default)</span>
+<a name="line-159"></a><span class='comment'>--</span>
+<a name="line-160"></a><span class='comment'>-- - 'a_remove_whitespace' : remove all whitespace, used for document indentation, else skip this step (default)</span>
+<a name="line-161"></a><span class='comment'>--</span>
+<a name="line-162"></a><span class='comment'>-- - 'a_indent' : indent document by inserting whitespace, else skip this step (default)</span>
+<a name="line-163"></a><span class='comment'>--</span>
+<a name="line-164"></a><span class='comment'>-- - 'a_issue_warnings' : issue warnings, when parsing HTML (default), else ignore HTML parser warnings</span>
+<a name="line-165"></a><span class='comment'>--</span>
+<a name="line-166"></a><span class='comment'>-- - 'a_issue_errors' : issue all error messages on stderr (default), or ignore all error messages</span>
+<a name="line-167"></a><span class='comment'>--</span>
+<a name="line-168"></a><span class='comment'>-- - 'a_collect_errors' : all error messages are collected during processing and appended to the result document</span>
+<a name="line-169"></a><span class='comment'>-- 			  for further processing within the calling modules</span>
+<a name="line-170"></a><span class='comment'>--</span>
+<a name="line-171"></a><span class='comment'>-- - 'a_trace' : trace level: values: 0 -4</span>
+<a name="line-172"></a><span class='comment'>--</span>
+<a name="line-173"></a><span class='comment'>-- - 'a_proxy' : proxy for http access, e.g. www-cache:3128</span>
+<a name="line-174"></a><span class='comment'>--</span>
+<a name="line-175"></a><span class='comment'>-- - 'a_use_curl' : for http access via external programm curl, default is native HTTP access</span>
+<a name="line-176"></a><span class='comment'>--</span>
+<a name="line-177"></a><span class='comment'>-- - 'a_options_curl' : more options for external program curl</span>
+<a name="line-178"></a><span class='comment'>--</span>
+<a name="line-179"></a><span class='comment'>-- - 'a_source' : the document source url</span>
+<a name="line-180"></a><span class='comment'>--</span>
+<a name="line-181"></a><span class='comment'>-- - 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', ...)</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; parseDocument [ (a_source,   "test.xml")</span>
+<a name="line-186"></a><span class='comment'>-- &gt;               , (a_validate, "0")</span>
+<a name="line-187"></a><span class='comment'>-- &gt;               , (a_encoding, isoLatin1)</span>
+<a name="line-188"></a><span class='comment'>-- &gt;               ] emptyRoot</span>
+<a name="line-189"></a><span class='comment'>--</span>
+<a name="line-190"></a><span class='comment'>-- reads document \"test.xml\" without validation and default encoding 'isoLatin1'</span>
+<a name="line-191"></a><span class='comment'>--</span>
+<a name="line-192"></a><span class='comment'>-- &gt; parseDocument [ (a_source,         "<a href="http://www.haskell.org/">http://www.haskell.org/</a>")</span>
+<a name="line-193"></a><span class='comment'>-- &gt;               , (a_parse_html,     "1")</span>
+<a name="line-194"></a><span class='comment'>-- &gt;               , (a_proxy,          "www-cache:3128")</span>
+<a name="line-195"></a><span class='comment'>-- &gt;               , (a_curl,           "1")</span>
+<a name="line-196"></a><span class='comment'>-- &gt;               , (a_issue_warnings, "0")</span>
+<a name="line-197"></a><span class='comment'>-- &gt;               ] emptyRoot</span>
+<a name="line-198"></a><span class='comment'>--</span>
+<a name="line-199"></a><span class='comment'>-- reads Haskell homepage with HTML parser ignoring any warnings and with http access via external program curl and proxy \"www-cache\" at port 3128</span>
+<a name="line-200"></a><span class='comment'>--</span>
+<a name="line-201"></a><span class='comment'>-- &gt; parseDocument [ (a_source,            "<a href="http://www.w3c.org/">http://www.w3c.org/</a>")</span>
+<a name="line-202"></a><span class='comment'>-- &gt;               , (a_parse_html,        "0")                       -- default</span>
+<a name="line-203"></a><span class='comment'>-- &gt;               , (a_validate,          "1")                       -- default</span>
+<a name="line-204"></a><span class='comment'>-- &gt;               , (a_check_namespace,   "1")</span>
+<a name="line-205"></a><span class='comment'>-- &gt;               , (a_remove_whitespace, "1")</span>
+<a name="line-206"></a><span class='comment'>-- &gt;               , (a_trace,             "2")</span>
+<a name="line-207"></a><span class='comment'>-- &gt;               ] emptyRoot</span>
+<a name="line-208"></a><span class='comment'>--</span>
+<a name="line-209"></a><span class='comment'>-- read w3c home page, validate and chech namespaces, remove whitespace between tags, trace activities with level 2</span>
+<a name="line-210"></a><span class='comment'>--</span>
+<a name="line-211"></a><span class='comment'>-- &gt; parseDocument [ (a_source,   "test.xml")</span>
+<a name="line-212"></a><span class='comment'>-- &gt;               , (a_validate,        "1")</span>
+<a name="line-213"></a><span class='comment'>-- &gt;               , (a_check_namespace, "1")</span>
+<a name="line-214"></a><span class='comment'>-- &gt;               , (a_collect_errors,  "1")</span>
+<a name="line-215"></a><span class='comment'>-- &gt;               , (a_issue_errors,    "0")</span>
+<a name="line-216"></a><span class='comment'>-- &gt;               ] emptyRoot</span>
+<a name="line-217"></a><span class='comment'>--</span>
+<a name="line-218"></a><span class='comment'>-- reads file \"test.xml\", validates it, checks namespaces, does not issue any erros</span>
+<a name="line-219"></a><span class='comment'>-- but collects errors and appends the list of errors to the single element list for the document.</span>
+<a name="line-220"></a><span class='comment'>-- this enables the calling application to define own error handlers.</span>
+<a name="line-221"></a>
+<a name="line-222"></a><a name="parseDocument"></a><span class='definition'>parseDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-223"></a><span class='definition'>parseDocument</span> <span class='varid'>userOptions</span>
+<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='varid'>processDocument</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>
+<a name="line-225"></a>      <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"parseDocument: options added, start processing"</span>
+<a name="line-226"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-227"></a>	<span class='varid'>traceTree</span>
+<a name="line-228"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-229"></a>	<span class='varid'>getXmlContents</span>					<span class='comment'>-- get the content as text</span>
+<a name="line-230"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-231"></a>	<span class='varid'>choiceM</span>						<span class='comment'>-- select parser</span>
+<a name="line-232"></a>	<span class='keyglyph'>[</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_html</span>
+<a name="line-233"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>parseHtmlDoc</span>			<span class='comment'>-- parse everything as HTML</span>
+<a name="line-234"></a>	<span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-235"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>checkWellformedDoc</span>			<span class='comment'>-- parse XML and process entities</span>
+<a name="line-236"></a>	            <span class='varop'>.&gt;&gt;</span>
+<a name="line-237"></a>                    <span class='layout'>(</span> <span class='varid'>getValidatedDoc</span>			<span class='comment'>-- validate</span>
+<a name="line-238"></a>		      <span class='varop'>`whenM`</span>
+<a name="line-239"></a>		      <span class='varid'>hasOption</span> <span class='varid'>a_validate</span>
+<a name="line-240"></a>		    <span class='layout'>)</span>
+<a name="line-241"></a>	<span class='keyglyph'>]</span>
+<a name="line-242"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-243"></a>	<span class='layout'>(</span> <span class='varid'>propagateAndValidateNamespaces</span>			<span class='comment'>-- namespace processing</span>
+<a name="line-244"></a>	  <span class='varop'>`whenM`</span>
+<a name="line-245"></a>	  <span class='varid'>hasOption</span> <span class='varid'>a_check_namespaces</span>
+<a name="line-246"></a>	<span class='layout'>)</span>
+<a name="line-247"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-248"></a>	<span class='varid'>liftMf</span>						<span class='comment'>-- canonicalization</span>
+<a name="line-249"></a>	<span class='layout'>(</span> <span class='varid'>choice</span>
+<a name="line-250"></a>	  <span class='keyglyph'>[</span> <span class='varid'>hasOption</span> <span class='varid'>a_preserve_comment</span>		<span class='comment'>-- don't remove comments (in XPath required)</span>
+<a name="line-251"></a> 	  	<span class='conop'>:-&gt;</span> <span class='varid'>canonicalizeForXPath</span>
+<a name="line-252"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-253"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>canonicalizeAllNodes</span>		<span class='comment'>-- do normal canonicaliazion</span>
+<a name="line-254"></a>	  <span class='keyglyph'>]</span>
+<a name="line-255"></a>	  <span class='varop'>`when`</span>
+<a name="line-256"></a>	  <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>			<span class='comment'>-- caconicalization can be switched off</span>
+<a name="line-257"></a>	<span class='layout'>)</span>
+<a name="line-258"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-259"></a>	<span class='varid'>liftMf</span>
+<a name="line-260"></a>	<span class='layout'>(</span> <span class='varid'>removeDocWhiteSpace</span>				<span class='comment'>-- remove all whitespace between tags</span>
+<a name="line-261"></a>	  <span class='varop'>`when`</span>
+<a name="line-262"></a>	  <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>
+<a name="line-263"></a>	<span class='layout'>)</span>
+<a name="line-264"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-265"></a>	<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"parseDocument: document processed"</span>	<span class='comment'>-- trace output</span>
+<a name="line-266"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-267"></a>	<span class='varid'>traceSource</span>
+<a name="line-268"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-269"></a>	<span class='varid'>traceTree</span>
+<a name="line-270"></a>      <span class='layout'>)</span>
+<a name="line-271"></a>    <span class='keyword'>where</span>
+<a name="line-272"></a>    <span class='varid'>defaultOptions</span>
+<a name="line-273"></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-274"></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-275"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_issue_errors</span><span class='layout'>,</span>		<span class='varid'>v_1</span> <span class='layout'>)</span>
+<a name="line-276"></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-277"></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-278"></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-279"></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-280"></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-281"></a>	  <span class='keyglyph'>]</span>
+<a name="line-282"></a>
+<a name="line-283"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-284"></a>
+<a name="line-285"></a><a name="addOptions"></a><span class='definition'>addOptions</span>		<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-286"></a><span class='definition'>addOptions</span>
+<a name="line-287"></a>    <span class='keyglyph'>=</span> <span class='varid'>seqF</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'>n</span><span class='layout'>,</span><span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addAttr</span> <span class='varid'>n</span> <span class='varid'>v</span> <span class='layout'>)</span>
+<a name="line-288"></a>
+<a name="line-289"></a><a name="addDefaultOptions"></a><span class='definition'>addDefaultOptions</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-290"></a><span class='definition'>addDefaultOptions</span>
+<a name="line-291"></a>    <span class='keyglyph'>=</span> <span class='varid'>seqF</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'>n</span><span class='layout'>,</span><span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>addAttr</span> <span class='varid'>n</span> <span class='varid'>v</span> <span class='varop'>`whenNot`</span> <span class='varid'>hasAttr</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-292"></a>
+<a name="line-293"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-294"></a>
+<a name="line-295"></a><span class='comment'>-- |</span>
+<a name="line-296"></a><span class='comment'>-- the main filter for writing documents</span>
+<a name="line-297"></a><span class='comment'>--</span>
+<a name="line-298"></a><span class='comment'>-- this filter can be configured by an option list like 'getXmlDocument'</span>
+<a name="line-299"></a><span class='comment'>--</span>
+<a name="line-300"></a><span class='comment'>-- available options are</span>
+<a name="line-301"></a><span class='comment'>--</span>
+<a name="line-302"></a><span class='comment'>-- * 'a_indent' : indent document for readability, (default: no indentation)</span>
+<a name="line-303"></a><span class='comment'>--</span>
+<a name="line-304"></a><span class='comment'>-- - 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)</span>
+<a name="line-305"></a><span class='comment'>--</span>
+<a name="line-306"></a><span class='comment'>-- - 'a_output_file' : destination file for document, default is \"-\" for stdout</span>
+<a name="line-307"></a><span class='comment'>--</span>
+<a name="line-308"></a><span class='comment'>-- - 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'</span>
+<a name="line-309"></a><span class='comment'>--</span>
+<a name="line-310"></a><span class='comment'>-- - 'a_output_xml' : (default) issue XML: quote special XML chars \&gt;,\&lt;,\",\',&amp;</span>
+<a name="line-311"></a><span class='comment'>--                    add XML processing instruction</span>
+<a name="line-312"></a><span class='comment'>--                    and encode document with respect to 'a_output_encoding',</span>
+<a name="line-313"></a><span class='comment'>--                    if explizitly switched of, the plain text is issued, this is useful</span>
+<a name="line-314"></a><span class='comment'>--                    for non XML output, e.g. generated Haskell code, LaTex, Java, ...</span>
+<a name="line-315"></a><span class='comment'>--</span>
+<a name="line-316"></a><span class='comment'>-- - 'a_show_tree' : show tree representation of document (for debugging)</span>
+<a name="line-317"></a><span class='comment'>--</span>
+<a name="line-318"></a><span class='comment'>-- - 'a_show_haskell' : show Haskell representaion of document (for debugging)</span>
+<a name="line-319"></a><span class='comment'>--</span>
+<a name="line-320"></a><span class='comment'>-- - 'a_issue_errors', 'a_collect_errors' : see 'parseDocument'</span>
+<a name="line-321"></a><span class='comment'>--</span>
+<a name="line-322"></a><span class='comment'>--  a typical main program running in the XmlState monad</span>
+<a name="line-323"></a><span class='comment'>--  has the following structure:</span>
+<a name="line-324"></a><span class='comment'>--</span>
+<a name="line-325"></a><span class='comment'>-- &gt;</span>
+<a name="line-326"></a><span class='comment'>-- &gt; main :: IO ()</span>
+<a name="line-327"></a><span class='comment'>-- &gt; main</span>
+<a name="line-328"></a><span class='comment'>-- &gt;     = do</span>
+<a name="line-329"></a><span class='comment'>-- &gt;       argv &lt;- getArgs                                              -- get the commandline arguments</span>
+<a name="line-330"></a><span class='comment'>-- &gt;       (inp, outp, options) &lt;- cmdlineOpts argv                     -- and evaluate them, return a key-value list</span>
+<a name="line-331"></a><span class='comment'>-- &gt;                                                                    -- and input and output</span>
+<a name="line-332"></a><span class='comment'>-- &gt;       res  &lt;- run' $ application inp outp options $ emptyRoot      -- run the application</span>
+<a name="line-333"></a><span class='comment'>-- &gt; </span>
+<a name="line-334"></a><span class='comment'>-- &gt;       exitWith (if null res</span>
+<a name="line-335"></a><span class='comment'>-- &gt;                 then ExitFailure (-1)</span>
+<a name="line-336"></a><span class='comment'>-- &gt;                 else exitSuccess</span>
+<a name="line-337"></a><span class='comment'>-- &gt;                )</span>
+<a name="line-338"></a><span class='comment'>-- &gt;</span>
+<a name="line-339"></a><span class='comment'>-- &gt; application :: String -&gt; String -&gt; Attributes -&gt; XmlStateFilter ()</span>
+<a name="line-340"></a><span class='comment'>-- &gt; application inp outp al</span>
+<a name="line-341"></a><span class='comment'>-- &gt;   = parseDocument (al ++ [(a_source, inp)])                        -- set options and source</span>
+<a name="line-342"></a><span class='comment'>-- &gt;     .&gt;&gt;                                                            -- and parse document</span>
+<a name="line-343"></a><span class='comment'>-- &gt;     processDocument                                                -- the hard work</span>
+<a name="line-344"></a><span class='comment'>-- &gt;     .&gt;&gt;</span>
+<a name="line-345"></a><span class='comment'>-- &gt;     writeDocument [(a_output_file, outp)]                          -- issue results</span>
+<a name="line-346"></a><span class='comment'>-- &gt;     .&gt;&gt;</span>
+<a name="line-347"></a><span class='comment'>-- &gt;     checkStatus                                                    -- check errors</span>
+<a name="line-348"></a><span class='comment'>-- &gt;</span>
+<a name="line-349"></a>
+<a name="line-350"></a>
+<a name="line-351"></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'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-352"></a><span class='definition'>writeDocument</span> <span class='varid'>userOptions</span>
+<a name="line-353"></a>    <span class='keyglyph'>=</span> <span class='varid'>processDocument</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>
+<a name="line-354"></a>      <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"writeDocument: options added, start processing"</span>
+<a name="line-355"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-356"></a>	<span class='varid'>liftMf</span>
+<a name="line-357"></a>	<span class='layout'>(</span> <span class='varid'>choice</span>
+<a name="line-358"></a>	  <span class='keyglyph'>[</span> <span class='varid'>hasOption</span> <span class='varid'>a_indent</span>			<span class='conop'>:-&gt;</span> <span class='varid'>indentDoc</span>			<span class='comment'>-- document indentation</span>
+<a name="line-359"></a>	  <span class='layout'>,</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>	<span class='conop'>:-&gt;</span> <span class='varid'>removeDocWhiteSpace</span>		<span class='comment'>-- remove all whitespace between tags</span>
+<a name="line-360"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>				<span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-361"></a>	  <span class='keyglyph'>]</span>
+<a name="line-362"></a>	<span class='layout'>)</span>
+<a name="line-363"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-364"></a>	<span class='varid'>liftMf</span>
+<a name="line-365"></a>	<span class='layout'>(</span> <span class='varid'>choice</span>
+<a name="line-366"></a>	  <span class='keyglyph'>[</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_tree</span>	<span class='conop'>:-&gt;</span> <span class='varid'>treeRepOfXmlDoc</span>
+<a name="line-367"></a>	  <span class='layout'>,</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_haskell</span>	<span class='conop'>:-&gt;</span> <span class='varid'>haskellRepOfXmlDoc</span>
+<a name="line-368"></a>	  <span class='layout'>,</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_xml</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>escapeXmlDoc</span>		<span class='comment'>-- escape lt, gt, amp, quot, </span>
+<a name="line-369"></a>					      <span class='varop'>.&gt;</span>
+<a name="line-370"></a>					      <span class='varid'>addXmlPiToDoc</span>		<span class='comment'>-- add &lt;?xml ... &gt; pi</span>
+<a name="line-371"></a>					      <span class='varop'>.&gt;</span>
+<a name="line-372"></a>					      <span class='varid'>unparseXmlDoc</span>		<span class='comment'>-- convert doc into text with respect to output encoding</span>
+<a name="line-373"></a>					    <span class='layout'>)</span>
+<a name="line-374"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>			<span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-375"></a>	  <span class='keyglyph'>]</span>
+<a name="line-376"></a>	<span class='layout'>)</span>
+<a name="line-377"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-378"></a>	<span class='varid'>writeXmlDoc</span>
+<a name="line-379"></a>	<span class='varop'>.&gt;&gt;</span>
+<a name="line-380"></a>	<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"writeDocument: finished"</span>
+<a name="line-381"></a>      <span class='layout'>)</span>
+<a name="line-382"></a>    <span class='keyword'>where</span>
+<a name="line-383"></a>    <span class='varid'>defaultOptions</span>
+<a name="line-384"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_output_file</span><span class='layout'>,</span>		<span class='str'>"-"</span> <span class='layout'>)</span>
+<a name="line-385"></a>	  <span class='layout'>,</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-386"></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-387"></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-388"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_encoding</span><span class='layout'>,</span>       <span class='varid'>utf8</span> <span class='layout'>)</span>
+<a name="line-389"></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-390"></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-391"></a>	  <span class='keyglyph'>]</span>
+<a name="line-392"></a>
+<a name="line-393"></a><a name="writeXmlDoc"></a><span class='definition'>writeXmlDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-394"></a><span class='definition'>writeXmlDoc</span> <span class='varid'>t'</span>
+<a name="line-395"></a>    <span class='keyglyph'>=</span> <span class='varid'>put</span> <span class='varid'>t'</span>
+<a name="line-396"></a>    <span class='keyword'>where</span>
+<a name="line-397"></a>    <span class='varid'>put</span>
+<a name="line-398"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>fn</span> <span class='varop'>||</span> <span class='varid'>fn</span> <span class='varop'>==</span> <span class='str'>"-"</span>	<span class='keyglyph'>=</span> <span class='varid'>putXmlDoc</span>
+<a name="line-399"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>putXmlDocToFile</span> <span class='varid'>fn</span>
+<a name="line-400"></a>
+<a name="line-401"></a>    <span class='varid'>fn</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getValue</span> <span class='varid'>a_output_file</span> <span class='varop'>$</span> <span class='varid'>t'</span>
+<a name="line-402"></a>
+<a name="line-403"></a>
+<a name="line-404"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-405"></a><span class='comment'>--</span>
+<a name="line-406"></a>
+<a name="line-407"></a><span class='comment'>-- |</span>
+<a name="line-408"></a><span class='comment'>-- wrapper filter for running a monadic filter</span>
+<a name="line-409"></a><span class='comment'>-- controlled by common options</span>
+<a name="line-410"></a><span class='comment'>--</span>
+<a name="line-411"></a><span class='comment'>-- input tree must be a complete document</span>
+<a name="line-412"></a><span class='comment'>-- parameters and default parameters can be used to contol</span>
+<a name="line-413"></a><span class='comment'>-- the filer and common tasks like error message handling</span>
+<a name="line-414"></a>
+<a name="line-415"></a><a name="processDocument"></a><span class='definition'>processDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-416"></a><span class='definition'>processDocument</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span> <span class='varid'>processFilter</span>
+<a name="line-417"></a>    <span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>isRoot</span>
+<a name="line-418"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-419"></a>      <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>addOptions</span> <span class='varid'>userOptions</span>
+<a name="line-420"></a>	      <span class='varop'>.&gt;</span>
+<a name="line-421"></a>	      <span class='varid'>addOptions</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_status</span><span class='layout'>,</span> <span class='varid'>show</span> <span class='varid'>c_ok</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-422"></a>	     <span class='layout'>)</span>
+<a name="line-423"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-424"></a>      <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>addDefaultOptions</span> <span class='varid'>defaultOptions</span><span class='layout'>)</span>
+<a name="line-425"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-426"></a>      <span class='varid'>setSystemParams</span>							<span class='comment'>-- store options in system state</span>
+<a name="line-427"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-428"></a>      <span class='varid'>choiceM</span>
+<a name="line-429"></a>      <span class='keyglyph'>[</span> <span class='varid'>hasOption</span> <span class='varid'>a_propagate_errors</span>					<span class='comment'>-- error handling is set by calling environment</span>
+<a name="line-430"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>thisM</span>
+<a name="line-431"></a>
+<a name="line-432"></a>      <span class='layout'>,</span> <span class='varid'>hasOption</span> <span class='varid'>a_collect_errors</span>
+<a name="line-433"></a>	<span class='varop'>.&gt;</span>
+<a name="line-434"></a>	<span class='varid'>hasOption</span> <span class='varid'>a_issue_errors</span>
+<a name="line-435"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>performAction</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>setSysErrorHandler</span> <span class='layout'>(</span><span class='varid'>errorMsgLogging</span><span class='varop'>.&gt;&gt;</span> <span class='varid'>errorMsgToStderr</span><span class='layout'>)</span>	<span class='layout'>)</span>
+<a name="line-436"></a>
+<a name="line-437"></a>      <span class='layout'>,</span> <span class='varid'>hasOption</span> <span class='varid'>a_collect_errors</span>
+<a name="line-438"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>performAction</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>setSysErrorHandler</span> <span class='varid'>errorMsgLogging</span>	<span class='layout'>)</span>
+<a name="line-439"></a>
+<a name="line-440"></a>      <span class='layout'>,</span> <span class='varid'>hasOption</span> <span class='varid'>a_issue_errors</span>
+<a name="line-441"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>performAction</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>setSysErrorHandler</span> <span class='varid'>errorMsgToStderr</span>	<span class='layout'>)</span>
+<a name="line-442"></a>
+<a name="line-443"></a>      <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-444"></a>		<span class='conop'>:-&gt;</span> <span class='varid'>performAction</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>setSysErrorHandler</span> <span class='varid'>noneM</span>		<span class='layout'>)</span>
+<a name="line-445"></a>      <span class='keyglyph'>]</span>
+<a name="line-446"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-447"></a>      <span class='varid'>processFilter</span>
+<a name="line-448"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-449"></a>      <span class='layout'>(</span> <span class='varid'>thisM</span>
+<a name="line-450"></a>        <span class='varop'>+++&gt;&gt;</span>
+<a name="line-451"></a>	<span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_collect_errors</span>
+<a name="line-452"></a>          <span class='varop'>`guardsM`</span>
+<a name="line-453"></a>	  <span class='varid'>getErrorMsg</span>
+<a name="line-454"></a>	<span class='layout'>)</span>
+<a name="line-455"></a>      <span class='layout'>)</span>
+<a name="line-456"></a>
+<a name="line-457"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-458"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandler.html b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandler.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandler.html
@@ -0,0 +1,125 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- protocol handler functions</span>
+<a name="line-4"></a><span class='comment'>-- configuration file</span>
+<a name="line-5"></a><span class='comment'>-- real handler is generated with cpp</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- Version : $Id: ProtocolHandler.hs,v 1.4 2006/03/03 14:20:17 hxml Exp $</span>
+<a name="line-8"></a>
+<a name="line-9"></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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandler</span>
+<a name="line-10"></a>    <span class='layout'>(</span> <span class='varid'>getProtocolHandler</span>
+<a name="line-11"></a>    <span class='layout'>)</span>
+<a name="line-12"></a>
+<a name="line-13"></a><span class='keyword'>where</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'>XmlState</span>
+<a name="line-16"></a>
+<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-18"></a><span class='comment'>--</span>
+<a name="line-19"></a><span class='comment'>-- file io and network</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>fromMaybe</span>
+<a name="line-23"></a>    <span class='layout'>)</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-26"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>uriScheme</span>
+<a name="line-28"></a>    <span class='layout'>)</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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerFile</span>
+<a name="line-31"></a>    <span class='layout'>(</span> <span class='varid'>getFileContents</span>
+<a name="line-32"></a>    <span class='layout'>)</span>
+<a name="line-33"></a>
+<a name="line-34"></a>
+<a name="line-35"></a>
+<a name="line-36"></a>
+<a name="line-37"></a>
+<a name="line-38"></a>
+<a name="line-39"></a>
+<a name="line-40"></a>
+<a name="line-41"></a>
+<a name="line-42"></a>
+<a name="line-43"></a>
+<a name="line-44"></a>
+<a name="line-45"></a>
+<a name="line-46"></a>
+<a name="line-47"></a>
+<a name="line-48"></a>
+<a name="line-49"></a>
+<a name="line-50"></a>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerHttpNativeOrCurl</span>
+<a name="line-52"></a>    <span class='layout'>(</span> <span class='varid'>getHttpContentsNativeOrWithCurl</span>
+<a name="line-53"></a>    <span class='layout'>)</span>
+<a name="line-54"></a>
+<a name="line-55"></a>
+<a name="line-56"></a>
+<a name="line-57"></a>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-60"></a><span class='comment'>--</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="getProtocolHandler"></a><span class='definition'>getProtocolHandler</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-63"></a><span class='definition'>getProtocolHandler</span> <span class='varid'>proto</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>getUnsupported</span> <span class='varid'>handler</span>
+<a name="line-65"></a>      <span class='keyword'>where</span>
+<a name="line-66"></a>      <span class='varid'>handler</span>  <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>proto</span> <span class='varid'>protocolHandler</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>--</span>
+<a name="line-69"></a><span class='comment'>-- the fall back protocol handler</span>
+<a name="line-70"></a>
+<a name="line-71"></a><a name="getUnsupported"></a><span class='definition'>getUnsupported</span>	<span class='keyglyph'>::</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-72"></a><span class='definition'>getUnsupported</span> <span class='varid'>uri</span>
+<a name="line-73"></a>    <span class='keyglyph'>=</span> <span class='varid'>addFatal</span> <span class='layout'>(</span> <span class='str'>"unsupported protocol "</span>
+<a name="line-74"></a>		 <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>uriScheme</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-75"></a>		 <span class='varop'>++</span> <span class='str'>" in URI: "</span>
+<a name="line-76"></a>		 <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-77"></a>	       <span class='layout'>)</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-80"></a><span class='comment'>--</span>
+<a name="line-81"></a><span class='comment'>-- the table of potocol handlers</span>
+<a name="line-82"></a><span class='comment'>-- looked up in getProtocolHandler</span>
+<a name="line-83"></a>
+<a name="line-84"></a><a name="protocolHandler"></a><span class='definition'>protocolHandler</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'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-85"></a><span class='definition'>protocolHandler</span>
+<a name="line-86"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"file"</span><span class='layout'>,</span> <span class='varid'>getFileContents</span><span class='layout'>)</span>
+<a name="line-87"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"http"</span><span class='layout'>,</span>
+<a name="line-88"></a>
+<a name="line-89"></a>
+<a name="line-90"></a>
+<a name="line-91"></a>
+<a name="line-92"></a>
+<a name="line-93"></a>
+<a name="line-94"></a>
+<a name="line-95"></a>
+<a name="line-96"></a>
+<a name="line-97"></a>
+<a name="line-98"></a>
+<a name="line-99"></a>
+<a name="line-100"></a>
+<a name="line-101"></a>
+<a name="line-102"></a>
+<a name="line-103"></a>
+<a name="line-104"></a>
+<a name="line-105"></a>	 <span class='varid'>getHttpContentsNativeOrWithCurl</span>
+<a name="line-106"></a>
+<a name="line-107"></a>
+<a name="line-108"></a>
+<a name="line-109"></a>
+<a name="line-110"></a>	<span class='layout'>)</span>
+<a name="line-111"></a>      <span class='keyglyph'>]</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-114"></a>
+<a name="line-115"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerFile.html b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerFile.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerFile.html
@@ -0,0 +1,89 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- protocol handler function for file protocol</span>
+<a name="line-4"></a><span class='comment'>-- implemented as filer</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>-- Version : $Id: ProtocolHandlerFile.hs,v 1.5 2006/03/03 14:20:17 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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerFile</span>
+<a name="line-9"></a>    <span class='layout'>(</span> <span class='varid'>getFileContents</span>
+<a name="line-10"></a>    <span class='layout'>)</span>
+<a name="line-11"></a>
+<a name="line-12"></a><span class='keyword'>where</span>
+<a name="line-13"></a>
+<a name="line-14"></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'>XmlTree</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'>XmlState</span>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>doesFileExist</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>getPermissions</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>readable</span>
+<a name="line-22"></a>    <span class='layout'>)</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-25"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>unEscapeString</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>uriPath</span>
+<a name="line-28"></a>    <span class='layout'>)</span>
+<a name="line-29"></a>
+<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-31"></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-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 file protocol handler</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="getFileContents"></a><span class='definition'>getFileContents</span>	<span class='keyglyph'>::</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-38"></a><span class='definition'>getFileContents</span> <span class='varid'>uri</span> <span class='varid'>n</span>
+<a name="line-39"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-40"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"getFileContent: reading file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source</span><span class='layout'>)</span>
+<a name="line-41"></a>      <span class='varid'>exists</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>doesFileExist</span> <span class='varid'>source</span>
+<a name="line-42"></a>      <span class='keyword'>if</span> <span class='varid'>exists</span>
+<a name="line-43"></a>	 <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-44"></a>	      <span class='varid'>perm</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>getPermissions</span> <span class='varid'>source</span>
+<a name="line-45"></a>	      <span class='keyword'>if</span> <span class='varid'>readable</span> <span class='varid'>perm</span>
+<a name="line-46"></a>		 <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-47"></a>		      <span class='varid'>h</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>openFile</span> <span class='varid'>source</span> <span class='conid'>ReadMode</span> <span class='layout'>)</span>
+<a name="line-48"></a>		      <span class='keyword'>case</span> <span class='varid'>h</span> <span class='keyword'>of</span>
+<a name="line-49"></a>			     <span class='conid'>Left</span> <span class='varid'>e</span>
+<a name="line-50"></a>				 <span class='keyglyph'>-&gt;</span> <span class='varid'>readErr</span> <span class='layout'>(</span> <span class='str'>"system error when reading file "</span>
+<a name="line-51"></a>					      <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source</span>
+<a name="line-52"></a>					      <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-53"></a>					      <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
+<a name="line-54"></a>					    <span class='layout'>)</span>
+<a name="line-55"></a>			     <span class='conid'>Right</span> <span class='varid'>h'</span>
+<a name="line-56"></a>				 <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>
+<a name="line-57"></a>				    <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>hGetContents</span> <span class='varid'>h'</span>
+<a name="line-58"></a>				    <span class='varid'>return</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>addAttrInt</span> <span class='varid'>transferStatus</span> <span class='num'>200</span>
+<a name="line-59"></a>					       <span class='varop'>.&gt;</span>
+<a name="line-60"></a>					       <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>
+<a name="line-61"></a>					       <span class='varop'>.&gt;</span>
+<a name="line-62"></a>					       <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xtext</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-63"></a>					     <span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-64"></a>					   <span class='layout'>)</span>
+<a name="line-65"></a>
+<a name="line-66"></a>		 <span class='keyword'>else</span> <span class='varid'>readErr</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>
+<a name="line-67"></a>         <span class='keyword'>else</span> <span class='varid'>readErr</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>
+<a name="line-68"></a>    <span class='keyword'>where</span>
+<a name="line-69"></a>    <span class='varid'>source</span>	<span class='keyglyph'>=</span> <span class='varid'>fileUriPath</span> <span class='varop'>.</span> <span class='varid'>unEscapeString</span> <span class='varop'>.</span> <span class='varid'>uriPath</span> <span class='varop'>$</span> <span class='varid'>uri</span>
+<a name="line-70"></a>    <span class='varid'>readErr</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>addFatal</span> <span class='varid'>msg</span> <span class='varid'>n</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'>fileUriPath</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'>fileUriPath</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><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
@@ -0,0 +1,204 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- protocol handler functions for native http access</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: ProtocolHandlerHttpCurl.hs,v 1.3 2005/04/14 12:52:53 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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerHttpCurl</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>getHttpContentsWithCurl</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'>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'>XmlTree</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'>XmlState</span>
+<a name="line-16"></a>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>
+<a name="line-18"></a>    <span class='layout'>(</span> <span class='varid'>parseContentType</span>
+<a name="line-19"></a>    <span class='layout'>)</span>
+<a name="line-20"></a>
+<a name="line-21"></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-22"></a>    <span class='layout'>(</span> <span class='conid'>Parser</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>parse</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>anyChar</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>char</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>digit</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>getInput</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>many1</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>manyTill</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>spaces</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>string</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span>
+<a name="line-33"></a>    <span class='layout'>)</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='keyword'>import</span> <span class='keyword'>qualified</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-36"></a>    <span class='layout'>(</span> <span class='varid'>try</span>
+<a name="line-37"></a>    <span class='layout'>)</span>
+<a name="line-38"></a>
+<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-40"></a>    <span class='layout'>(</span> <span class='conid'>URI</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'>PipeOpen</span>
+<a name="line-44"></a>    <span class='layout'>(</span> <span class='varid'>popen</span>
+<a name="line-45"></a>    <span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-48"></a>    <span class='layout'>(</span> <span class='varid'>toLower</span>
+<a name="line-49"></a>    <span class='layout'>)</span>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-52"></a><span class='comment'>--</span>
+<a name="line-53"></a><span class='comment'>-- the http protocol handler implemented by calling external program curl</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="getHttpContentsWithCurl"></a><span class='definition'>getHttpContentsWithCurl</span>	<span class='keyglyph'>::</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-56"></a><span class='definition'>getHttpContentsWithCurl</span> <span class='varid'>uri</span> <span class='varid'>n</span>
+<a name="line-57"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-58"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"getHttpContentWithCurl: reading from URL "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='layout'>)</span>
+<a name="line-59"></a>
+<a name="line-60"></a>      <span class='varid'>proxy</span>       <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>a_proxy</span>
+<a name="line-61"></a>      <span class='varid'>curlOptions</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>a_options_curl</span>
+<a name="line-62"></a>
+<a name="line-63"></a>      <span class='keyword'>let</span> <span class='varid'>allArgs</span> <span class='keyglyph'>=</span> <span class='varid'>args</span> <span class='varop'>++</span> <span class='varid'>proxyArgs</span> <span class='varid'>proxy</span> <span class='varop'>++</span> <span class='varid'>words</span> <span class='varid'>curlOptions</span>
+<a name="line-64"></a>
+<a name="line-65"></a>      <span class='varid'>trace</span> <span class='num'>4</span> <span class='layout'>(</span> <span class='str'>"getHttpContentWithCurl: running "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='layout'>(</span><span class='varid'>cmd</span> <span class='conop'>:</span> <span class='varid'>allArgs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-66"></a>
+<a name="line-67"></a>      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>errs</span><span class='layout'>,</span> <span class='varid'>rc</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span> <span class='varid'>popen</span> <span class='varid'>cmd</span> <span class='varid'>allArgs</span>
+<a name="line-68"></a>
+<a name="line-69"></a>      <span class='varid'>trace</span> <span class='num'>4</span> <span class='layout'>(</span> <span class='str'>"getHttpContentWithCurl: PID:    "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>rc</span>   <span class='layout'>)</span>
+<a name="line-70"></a>      <span class='varid'>trace</span> <span class='num'>4</span> <span class='layout'>(</span> <span class='str'>"getHttpContentWithCurl: stdin:  "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>res</span>  <span class='layout'>)</span>
+<a name="line-71"></a>      <span class='varid'>trace</span> <span class='num'>4</span> <span class='layout'>(</span> <span class='str'>"getHttpContentWithCurl: stderr: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>errs</span> <span class='layout'>)</span>
+<a name="line-72"></a>
+<a name="line-73"></a>      <span class='keyword'>if</span> <span class='varid'>rc</span> <span class='varop'>/=</span> <span class='num'>0</span>
+<a name="line-74"></a>	 <span class='keyword'>then</span> <span class='varid'>addFatal</span> <span class='layout'>(</span> <span class='str'>"http error when requesting URI (rc="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>rc</span> <span class='varop'>++</span> <span class='str'>") "</span>
+<a name="line-75"></a>			 <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-76"></a>			 <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-77"></a>			 <span class='varop'>++</span> <span class='varid'>errs</span>
+<a name="line-78"></a>		       <span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-79"></a>	 <span class='keyword'>else</span> <span class='keyword'>let</span>
+<a name="line-80"></a>	      <span class='layout'>(</span><span class='varid'>st</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parseResponse</span> <span class='varid'>res</span>
+<a name="line-81"></a>	      <span class='keyword'>in</span>
+<a name="line-82"></a>	      <span class='varid'>liftMf</span> <span class='layout'>(</span> <span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-83"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-84"></a>		       <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xtext</span> <span class='varid'>contents</span><span class='layout'>)</span>
+<a name="line-85"></a>		     <span class='layout'>)</span>
+<a name="line-86"></a>	      <span class='varop'>.&gt;&gt;</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>st</span> <span class='varop'>&gt;=</span> <span class='num'>200</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>st</span> <span class='varop'>&lt;</span> <span class='num'>300</span>
+<a name="line-87"></a>		    <span class='keyword'>then</span> <span class='varid'>thisM</span>
+<a name="line-88"></a>		    <span class='keyword'>else</span>
+<a name="line-89"></a>		    <span class='varid'>addFatal</span> <span class='layout'>(</span> <span class='str'>"http error when accessing URI "</span>
+<a name="line-90"></a>			       <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-91"></a>			       <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-92"></a>			       <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>st</span>
+<a name="line-93"></a>			       <span class='varop'>++</span> <span class='str'>" "</span>
+<a name="line-94"></a>			       <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>valueOf</span> <span class='varid'>transferMessage</span> <span class='varop'>$</span> <span class='varid'>newRoot</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-95"></a>			     <span class='layout'>)</span>
+<a name="line-96"></a>		  <span class='layout'>)</span>
+<a name="line-97"></a>	      <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-98"></a>    <span class='keyword'>where</span>
+<a name="line-99"></a>    <span class='varid'>cmd</span>  <span class='keyglyph'>=</span> <span class='str'>"curl"</span>
+<a name="line-100"></a>    <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"--silent"</span>
+<a name="line-101"></a>	   <span class='layout'>,</span> <span class='str'>"--show-error"</span>
+<a name="line-102"></a>	   <span class='layout'>,</span> <span class='str'>"--dump-header"</span><span class='layout'>,</span> <span class='str'>"-"</span>
+<a name="line-103"></a>	   <span class='layout'>,</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-104"></a>	   <span class='keyglyph'>]</span>
+<a name="line-105"></a>    <span class='varid'>proxyArgs</span> <span class='str'>""</span>
+<a name="line-106"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-107"></a>    <span class='varid'>proxyArgs</span> <span class='varid'>prx</span>
+<a name="line-108"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"--proxy"</span><span class='layout'>,</span> <span class='varid'>prx</span> <span class='keyglyph'>]</span>
+<a name="line-109"></a>
+<a name="line-110"></a><a name="parseResponse"></a><span class='definition'>parseResponse</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-111"></a><span class='definition'>parseResponse</span> <span class='varid'>inp</span>
+<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>parse</span> <span class='varid'>parseHttpResponse</span> <span class='str'>"HTTP Header"</span> <span class='varid'>inp</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-113"></a>      <span class='conid'>Right</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>res</span>
+<a name="line-114"></a>      <span class='conid'>Left</span>  <span class='keyword'>_</span>   <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='num'>999</span><span class='layout'>,</span> <span class='varid'>xattr</span> <span class='varid'>transferMessage</span> <span class='str'>"illegal HTTP response"</span><span class='layout'>,</span> <span class='varid'>inp</span><span class='layout'>)</span>
+<a name="line-115"></a>
+<a name="line-116"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-117"></a><span class='comment'>--</span>
+<a name="line-118"></a><span class='comment'>-- parsers for HTTP response</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="parseHttpResponse"></a><span class='definition'>parseHttpResponse</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'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-121"></a><span class='definition'>parseHttpResponse</span>
+<a name="line-122"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-123"></a>      <span class='varid'>allResponses</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span>
+<a name="line-124"></a>		      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-125"></a>			<span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseResp</span>
+<a name="line-126"></a>			<span class='varid'>rhs</span>      <span class='keyglyph'>&lt;-</span> <span class='varid'>parseHeaders</span>
+<a name="line-127"></a>			<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span><span class='layout'>,</span> <span class='varid'>rhs</span><span class='layout'>)</span>
+<a name="line-128"></a>		      <span class='layout'>)</span>
+<a name="line-129"></a>      <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span><span class='layout'>,</span> <span class='varid'>rhs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>last</span> <span class='varid'>allResponses</span>
+<a name="line-130"></a>      <span class='varid'>content</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>getInput</span>
+<a name="line-131"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>rc</span><span class='layout'>,</span> <span class='varid'>rh</span> <span class='varop'>++</span> <span class='varid'>rhs</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span>
+<a name="line-132"></a>    <span class='keyword'>where</span>
+<a name="line-133"></a>
+<a name="line-134"></a>    <span class='varid'>crlf</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>()</span>
+<a name="line-135"></a>    <span class='varid'>crlf</span>
+<a name="line-136"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-137"></a>	  <span class='layout'>(</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='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"\r\n"</span><span class='layout'>)</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>string</span> <span class='str'>"\n"</span> <span class='layout'>)</span>
+<a name="line-138"></a>	  <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-139"></a>
+<a name="line-140"></a>    <span class='varid'>parseResp</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'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-141"></a>    <span class='varid'>parseResp</span>
+<a name="line-142"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-143"></a>	  <span class='varid'>vers</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-144"></a>		    <span class='varid'>http</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>string</span> <span class='str'>"HTTP/"</span>
+<a name="line-145"></a>		    <span class='varid'>mav</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-146"></a>		    <span class='varid'>char</span> <span class='chr'>'.'</span>
+<a name="line-147"></a>		    <span class='varid'>miv</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-148"></a>		    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>http</span> <span class='varop'>++</span> <span class='varid'>mav</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>miv</span><span class='layout'>)</span>
+<a name="line-149"></a>		  <span class='layout'>)</span>
+<a name="line-150"></a>	  <span class='varid'>spaces</span>
+<a name="line-151"></a>	  <span class='varid'>ds</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-152"></a>	  <span class='varid'>spaces</span>
+<a name="line-153"></a>	  <span class='varid'>reason</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>manyTill</span> <span class='varid'>anyChar</span> <span class='varid'>crlf</span>
+<a name="line-154"></a>	  <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>read</span> <span class='varid'>ds</span><span class='layout'>,</span>
+<a name="line-155"></a>		   <span class='varid'>xattr</span> <span class='varid'>transferMessage</span> <span class='varid'>reason</span> <span class='varop'>++</span> <span class='varid'>xattr</span> <span class='varid'>transferVersion</span> <span class='varid'>vers</span>
+<a name="line-156"></a>		 <span class='layout'>)</span>
+<a name="line-157"></a>
+<a name="line-158"></a>    <span class='varid'>parseHeaders</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-159"></a>    <span class='varid'>parseHeaders</span>
+<a name="line-160"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-161"></a>	    <span class='varid'>crlf</span>
+<a name="line-162"></a>	    <span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-163"></a>	  <span class='layout'>)</span>
+<a name="line-164"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-165"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-166"></a>	    <span class='varid'>header1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parse1Header</span>
+<a name="line-167"></a>	    <span class='varid'>rest</span>    <span class='keyglyph'>&lt;-</span> <span class='varid'>parseHeaders</span>
+<a name="line-168"></a>	    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>header1</span> <span class='varop'>++</span> <span class='varid'>rest</span>
+<a name="line-169"></a>	  <span class='layout'>)</span>
+<a name="line-170"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-171"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-172"></a>	    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>xattr</span> <span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='str'>"IllegalHeaders"</span><span class='layout'>)</span> <span class='str'>""</span>
+<a name="line-173"></a>	  <span class='layout'>)</span>
+<a name="line-174"></a>
+<a name="line-175"></a>    <span class='varid'>parse1Header</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>
+<a name="line-176"></a>    <span class='varid'>parse1Header</span>
+<a name="line-177"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-178"></a>	  <span class='varid'>header</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>manyTill</span> <span class='varid'>anyChar</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>':'</span><span class='layout'>)</span>
+<a name="line-179"></a>	  <span class='varid'>spaces</span>
+<a name="line-180"></a>	  <span class='varid'>value</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>manyTill</span> <span class='varid'>anyChar</span> <span class='varid'>crlf</span>
+<a name="line-181"></a>	  <span class='keyword'>let</span> <span class='varid'>ct</span> <span class='keyglyph'>=</span> <span class='varid'>parseCT</span> <span class='varid'>header</span> <span class='varid'>value</span>
+<a name="line-182"></a>	  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>ct</span> <span class='varop'>++</span> <span class='varid'>xattr</span> <span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='varid'>header</span><span class='layout'>)</span> <span class='varid'>value</span>
+<a name="line-183"></a>	<span class='keyword'>where</span>
+<a name="line-184"></a>	<span class='varid'>parseCT</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'>XmlTrees</span>
+<a name="line-185"></a>	<span class='varid'>parseCT</span> <span class='varid'>h</span> <span class='varid'>v</span>
+<a name="line-186"></a>	    <span class='keyglyph'>|</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>h</span> <span class='varop'>==</span> <span class='str'>"content-type"</span>
+<a name="line-187"></a>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>parse</span> <span class='varid'>parseContentType</span> <span class='varid'>h</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-188"></a>		    <span class='conid'>Right</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>xattr</span><span class='layout'>)</span> <span class='varid'>res</span>
+<a name="line-189"></a>		    <span class='conid'>Left</span>  <span class='keyword'>_</span>   <span class='keyglyph'>-&gt;</span> <span class='conid'>[]</span>
+<a name="line-190"></a>		  <span class='layout'>)</span>
+<a name="line-191"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-192"></a>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-193"></a>
+<a name="line-194"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
@@ -0,0 +1,160 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- protocol handler functions for native http access</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: ProtocolHandlerHttpNative.hs,v 1.3 2005/04/14 12:52:53 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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerHttpNative</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>getHttpContentsWithHttp</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'>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'>XmlTree</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'>XmlState</span>
+<a name="line-16"></a>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>
+<a name="line-18"></a>    <span class='layout'>(</span> <span class='varid'>parseContentType</span>
+<a name="line-19"></a>    <span class='layout'>)</span>
+<a name="line-20"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>stringTrim</span>
+<a name="line-23"></a>    <span class='layout'>)</span>
+<a name="line-24"></a>
+<a name="line-25"></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-26"></a>    <span class='layout'>(</span> <span class='varid'>parse</span>
+<a name="line-27"></a>    <span class='layout'>)</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>
+<a name="line-30"></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-31"></a>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-33"></a>    <span class='layout'>(</span> <span class='conid'>URI</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'>Network</span><span class='varop'>.</span><span class='conid'>Socket</span>
+<a name="line-37"></a>    <span class='layout'>(</span> <span class='varid'>withSocketsDo</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'>Network</span><span class='varop'>.</span><span class='conid'>HTTP</span>		<span class='comment'>-- http modules</span>
+<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>Browser</span>
+<a name="line-42"></a>
+<a name="line-43"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-44"></a><span class='comment'>--</span>
+<a name="line-45"></a><span class='comment'>-- the native http protocol handler</span>
+<a name="line-46"></a>
+<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-48"></a><span class='comment'>--</span>
+<a name="line-49"></a><span class='comment'>-- the http protocol handler, haskell implementation</span>
+<a name="line-50"></a>
+<a name="line-51"></a><a name="getHttpContentsWithHttp"></a><span class='definition'>getHttpContentsWithHttp</span>	<span class='keyglyph'>::</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-52"></a><span class='definition'>getHttpContentsWithHttp</span> <span class='varid'>uri</span> <span class='varid'>n</span>
+<a name="line-53"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-54"></a>      <span class='varid'>traceLevel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTraceLevel</span>
+<a name="line-55"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"getHttpContent: reading from URL "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-56"></a>      <span class='varid'>proxy</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>a_proxy</span>
+<a name="line-57"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>io</span> <span class='varop'>$</span>  <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>getHttp</span> <span class='varid'>traceLevel</span> <span class='varid'>uri</span> <span class='varid'>proxy</span><span class='layout'>)</span>
+<a name="line-58"></a>      <span class='keyword'>case</span> <span class='varid'>res</span> <span class='keyword'>of</span>
+<a name="line-59"></a>	       <span class='conid'>Left</span> <span class='varid'>e</span>
+<a name="line-60"></a>		   <span class='keyglyph'>-&gt;</span> <span class='varid'>readErr</span> <span class='layout'>(</span> <span class='str'>"http error when requesting URI "</span>
+<a name="line-61"></a>				<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-62"></a>				<span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-63"></a>				<span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
+<a name="line-64"></a>				<span class='varop'>++</span> <span class='str'>" (perhaps server does not understand HTTP/1.1) "</span>
+<a name="line-65"></a>			      <span class='layout'>)</span>
+<a name="line-66"></a>	       <span class='conid'>Right</span> <span class='varid'>response</span>
+<a name="line-67"></a>		   <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-68"></a>		      <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>convertResponseHeaders</span> <span class='varid'>response</span>
+<a name="line-69"></a>		      <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>rspBody</span> <span class='varid'>response</span><span class='layout'>)</span>
+<a name="line-70"></a>		      <span class='varid'>st</span> <span class='keyglyph'>=</span> <span class='varid'>convertResponseStatus</span> <span class='layout'>(</span><span class='varid'>rspCode</span> <span class='varid'>response</span><span class='layout'>)</span>
+<a name="line-71"></a>		      <span class='keyword'>in</span>
+<a name="line-72"></a>		      <span class='keyword'>if</span> <span class='varid'>st</span> <span class='varop'>&gt;=</span> <span class='num'>200</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>st</span> <span class='varop'>&lt;</span> <span class='num'>300</span>
+<a name="line-73"></a>			 <span class='keyword'>then</span>
+<a name="line-74"></a>			 <span class='varid'>return</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>.&gt;</span> <span class='varid'>replaceChildren</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-75"></a>			 <span class='keyword'>else</span> 
+<a name="line-76"></a>			 <span class='varid'>readErr</span> <span class='layout'>(</span> <span class='str'>"http error when accessing URI "</span>
+<a name="line-77"></a>				   <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-78"></a>				   <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-79"></a>				   <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>st</span>
+<a name="line-80"></a>				   <span class='varop'>++</span> <span class='str'>" "</span>
+<a name="line-81"></a>				   <span class='varop'>++</span> <span class='varid'>rspReason</span> <span class='varid'>response</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'>readErr</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='varid'>addFatal</span> <span class='varid'>msg</span> <span class='varid'>n</span>
+<a name="line-85"></a>
+<a name="line-86"></a>    <span class='varid'>getHttp</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>Response</span>
+<a name="line-87"></a>    <span class='varid'>getHttp</span> <span class='varid'>trc'</span> <span class='varid'>uri'</span> <span class='varid'>proxy'</span>
+<a name="line-88"></a>	<span class='keyglyph'>=</span> <span class='varid'>withSocketsDo</span> <span class='varop'>$</span>
+<a name="line-89"></a>	  <span class='varid'>browse</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-90"></a>		   <span class='varid'>setOutHandler</span> <span class='layout'>(</span><span class='varid'>trcFct</span><span class='layout'>)</span>
+<a name="line-91"></a>		   <span class='varid'>setErrHandler</span> <span class='layout'>(</span><span class='varid'>trcFct</span><span class='layout'>)</span>
+<a name="line-92"></a>
+<a name="line-93"></a>		   <span class='varid'>setProxy'</span> <span class='varid'>proxy'</span>
+<a name="line-94"></a>		   <span class='layout'>(</span><span class='sel'>_ruri</span><span class='layout'>,</span> <span class='varid'>rsp</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>request</span> <span class='varid'>rq</span>
+<a name="line-95"></a>		   <span class='varid'>return</span> <span class='varid'>rsp</span>
+<a name="line-96"></a>		 <span class='layout'>)</span>
+<a name="line-97"></a>	<span class='keyword'>where</span>
+<a name="line-98"></a>	<span class='varid'>trcFct</span> <span class='varid'>s</span>
+<a name="line-99"></a>	    <span class='keyglyph'>|</span> <span class='varid'>trc'</span> <span class='varop'>&gt;=</span> <span class='num'>5</span>
+<a name="line-100"></a>		<span class='keyglyph'>=</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='layout'>(</span><span class='str'>"-- ("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>trc'</span> <span class='varop'>++</span> <span class='str'>") http: "</span> <span class='varop'>++</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-101"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-102"></a>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-103"></a>
+<a name="line-104"></a>	<span class='varid'>rq</span> <span class='keyglyph'>=</span> <span class='varid'>defaultGETRequest</span> <span class='varid'>uri'</span>
+<a name="line-105"></a>	
+<a name="line-106"></a>	<span class='varid'>setProxy'</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-107"></a>	<span class='varid'>setProxy'</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>setProxy</span> <span class='layout'>(</span><span class='conid'>Proxy</span> <span class='varid'>p</span> <span class='conid'>Nothing</span><span class='layout'>)</span>
+<a name="line-108"></a>
+<a name="line-109"></a>    <span class='varid'>convertResponseStatus</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-110"></a>    <span class='varid'>convertResponseStatus</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-111"></a>	<span class='keyglyph'>=</span> <span class='num'>100</span> <span class='varop'>*</span> <span class='varid'>a</span> <span class='varop'>+</span> <span class='num'>10</span> <span class='varop'>*</span> <span class='varid'>b</span> <span class='varop'>+</span> <span class='varid'>c</span>
+<a name="line-112"></a>
+<a name="line-113"></a>    <span class='varid'>convertResponseHeaders</span>	<span class='keyglyph'>::</span> <span class='conid'>Response</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-114"></a>    <span class='varid'>convertResponseHeaders</span> <span class='varid'>r'</span>
+<a name="line-115"></a>	<span class='keyglyph'>=</span> <span class='varid'>cvResponseCode</span> <span class='layout'>(</span><span class='varid'>rspCode</span> <span class='varid'>r'</span><span class='layout'>)</span>
+<a name="line-116"></a>	  <span class='varop'>++</span>
+<a name="line-117"></a>	  <span class='varid'>cvResponseReason</span> <span class='layout'>(</span><span class='varid'>rspReason</span> <span class='varid'>r'</span><span class='layout'>)</span>
+<a name="line-118"></a>          <span class='varop'>++</span>
+<a name="line-119"></a>	  <span class='varid'>cvResponseHeaders</span> <span class='layout'>(</span><span class='varid'>rspHeaders</span> <span class='varid'>r'</span><span class='layout'>)</span>
+<a name="line-120"></a>	<span class='keyword'>where</span>
+<a name="line-121"></a>	<span class='varid'>cvResponseCode</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-122"></a>	<span class='varid'>cvResponseCode</span> <span class='varid'>st'</span>
+<a name="line-123"></a>	    <span class='keyglyph'>=</span> <span class='varid'>xattr</span> <span class='varid'>transferStatus</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>convertResponseStatus</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-124"></a>	      <span class='varop'>++</span>
+<a name="line-125"></a>	      <span class='varid'>xattr</span> <span class='varid'>transferVersion</span> <span class='varid'>httpVersion</span>
+<a name="line-126"></a>
+<a name="line-127"></a>	<span class='varid'>cvResponseReason</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-128"></a>	<span class='varid'>cvResponseReason</span> <span class='varid'>r''</span>
+<a name="line-129"></a>	    <span class='keyglyph'>=</span> <span class='varid'>xattr</span> <span class='varid'>transferMessage</span> <span class='layout'>(</span><span class='varid'>stringTrim</span> <span class='varid'>r''</span><span class='layout'>)</span>
+<a name="line-130"></a>
+<a name="line-131"></a>	<span class='varid'>cvResponseHeaders</span>	<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Header</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-132"></a>	<span class='varid'>cvResponseHeaders</span>
+<a name="line-133"></a>	    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>cvResponseHeader</span>
+<a name="line-134"></a>
+<a name="line-135"></a>	<span class='varid'>cvResponseHeader</span>	<span class='keyglyph'>::</span> <span class='conid'>Header</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-136"></a>	<span class='varid'>cvResponseHeader</span> <span class='layout'>(</span><span class='conid'>Header</span> <span class='varid'>name</span> <span class='varid'>value</span><span class='layout'>)</span>
+<a name="line-137"></a>	    <span class='keyglyph'>|</span> <span class='varid'>name</span> <span class='varop'>==</span> <span class='conid'>HdrContentType</span>
+<a name="line-138"></a>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>parse</span> <span class='varid'>parseContentType</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='conid'>HdrContentType</span><span class='layout'>)</span> <span class='varid'>value</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-139"></a>		    <span class='conid'>Right</span> <span class='varid'>res</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>xattr</span><span class='layout'>)</span> <span class='varid'>res</span>
+<a name="line-140"></a>		    <span class='conid'>Left</span>  <span class='keyword'>_</span>   <span class='keyglyph'>-&gt;</span> <span class='conid'>[]</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'>addHttpAttr</span>
+<a name="line-144"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-145"></a>		<span class='keyglyph'>=</span> <span class='varid'>addHttpAttr</span>
+<a name="line-146"></a>	    <span class='keyword'>where</span>
+<a name="line-147"></a>	    <span class='varid'>addHttpAttr</span> <span class='keyglyph'>=</span> <span class='varid'>xattr</span> <span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>value</span>
+<a name="line-148"></a>
+<a name="line-149"></a>
+<a name="line-150"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
@@ -0,0 +1,55 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- protocol handler functions for native http access</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: ProtocolHandlerHttpNativeOrCurl.hs,v 1.1 2004/09/02 19:12:01 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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerHttpNativeOrCurl</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>getHttpContentsNativeOrWithCurl</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'>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-14"></a>    <span class='layout'>(</span> <span class='varid'>a_use_curl</span>
+<a name="line-15"></a>    <span class='layout'>)</span>
+<a name="line-16"></a>
+<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'>XmlState</span>
+<a name="line-18"></a>
+<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>
+<a name="line-21"></a>    <span class='layout'>)</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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerHttpNative</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>getHttpContentsWithHttp</span>
+<a name="line-25"></a>    <span class='layout'>)</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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerHttpCurl</span>
+<a name="line-28"></a>    <span class='layout'>(</span> <span class='varid'>getHttpContentsWithCurl</span>
+<a name="line-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a>
+<a name="line-31"></a>
+<a name="line-32"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-33"></a><span class='comment'>--</span>
+<a name="line-34"></a><span class='comment'>-- the http protocol handler switch for internal / external access</span>
+<a name="line-35"></a>
+<a name="line-36"></a><a name="getHttpContentsNativeOrWithCurl"></a><span class='definition'>getHttpContentsNativeOrWithCurl</span>		<span class='keyglyph'>::</span> <span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-37"></a><span class='definition'>getHttpContentsNativeOrWithCurl</span> <span class='varid'>uri</span> <span class='varid'>n</span>
+<a name="line-38"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-39"></a>      <span class='varid'>curl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParamInt</span> <span class='varid'>a_use_curl</span> <span class='num'>0</span>
+<a name="line-40"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>curl</span> <span class='varop'>/=</span> <span class='num'>0</span>
+<a name="line-41"></a>	<span class='keyword'>then</span> <span class='varid'>getHttpContentsWithCurl</span>
+<a name="line-42"></a>	<span class='keyword'>else</span> <span class='varid'>getHttpContentsWithHttp</span> <span class='layout'>)</span> <span class='varid'>uri</span> <span class='varid'>n</span>
+<a name="line-43"></a>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
@@ -0,0 +1,63 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- protocol handler utility functions</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Version : $Id: ProtocolHandlerUtil.hs,v 1.4 2005/04/14 12:52:53 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'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>parseContentType</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'>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-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'>Util</span>
+<a name="line-16"></a>    <span class='layout'>(</span> <span class='varid'>stringToUpper</span>
+<a name="line-17"></a>    <span class='layout'>)</span>
+<a name="line-18"></a>
+<a name="line-19"></a><span class='keyword'>import</span> <span class='keyword'>qualified</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='keyword'>as</span> <span class='conid'>P</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a><span class='comment'>--</span>
+<a name="line-23"></a><span class='comment'>-- try to extract charset spec from Content-Type header</span>
+<a name="line-24"></a><span class='comment'>-- e.g. "text/html; charset=ISO-8859-1"</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='comment'>-- sometimes the server deliver the charset spec in quotes</span>
+<a name="line-27"></a><span class='comment'>-- these are removed</span>
+<a name="line-28"></a>
+<a name="line-29"></a><a name="parseContentType"></a><span class='definition'>parseContentType</span>	<span class='keyglyph'>::</span> <span class='conid'>P</span><span class='varop'>.</span><span class='conid'>Parser</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-30"></a><span class='definition'>parseContentType</span>
+<a name="line-31"></a>    <span class='keyglyph'>=</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-32"></a>	      <span class='varid'>mimeType</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-33"></a>			    <span class='varid'>mt</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>noneOf</span> <span class='str'>";"</span><span class='layout'>)</span>
+<a name="line-34"></a>			    <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferMimeType</span><span class='layout'>,</span> <span class='varid'>mt</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-35"></a>			  <span class='layout'>)</span>
+<a name="line-36"></a>	      <span class='varid'>charset</span>  <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-37"></a>			    <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>char</span> <span class='chr'>';'</span>
+<a name="line-38"></a>			    <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many</span>  <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>oneOf</span> <span class='str'>" \t'"</span><span class='layout'>)</span>
+<a name="line-39"></a>			    <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>string</span> <span class='str'>"charset="</span>
+<a name="line-40"></a>			    <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>option</span> <span class='chr'>'"'</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>oneOf</span> <span class='str'>"\"'"</span><span class='layout'>)</span>
+<a name="line-41"></a>			    <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many1</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>noneOf</span> <span class='str'>"\"'"</span><span class='layout'>)</span>
+<a name="line-42"></a>			    <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferEncoding</span><span class='layout'>,</span> <span class='varid'>stringToUpper</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-43"></a>			  <span class='layout'>)</span>
+<a name="line-44"></a>	      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mimeType</span> <span class='varop'>++</span> <span class='varid'>charset</span><span class='layout'>)</span>
+<a name="line-45"></a>	    <span class='layout'>)</span>
+<a name="line-46"></a>      <span class='conid'>P</span><span class='varop'>.&lt;|&gt;</span>
+<a name="line-47"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-48"></a>	<span class='varid'>mimeType</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>noneOf</span> <span class='str'>";"</span><span class='layout'>)</span>
+<a name="line-49"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferMimeType</span><span class='layout'>,</span> <span class='varid'>mimeType</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-50"></a>      <span class='layout'>)</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-53"></a>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html
@@ -0,0 +1,472 @@
+<!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     : Text.XML.HXT.Parser.TagSoup
+<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>
+<a name="line-12"></a>   lasy HTML and simpe XML parser implemented with tagsoup
+<a name="line-13"></a>   parsing is done with a very simple monadic top down 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'>Parser</span><span class='varop'>.</span><span class='conid'>TagSoup</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>parseHtmlTagSoup</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='comment'>-- ------------------------------------------------------------</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='comment'>-- The table contains the id map. All element and attribute names are stored</span>
+<a name="line-27"></a><span class='comment'>-- the first time they are ecountered, and later always this name is used,</span>
+<a name="line-28"></a><span class='comment'>-- not a string built by the parser.</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'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span>
+<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><span class='varop'>.</span><span class='conid'>Entity</span>
+<a name="line-32"></a>    <span class='layout'>(</span> <span class='varid'>lookupNumericEntity</span>
+<a name="line-33"></a>    <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'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>
+<a name="line-37"></a>    <span class='layout'>)</span>
+<a name="line-38"></a>
+<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'>NamespacePredicates</span>
+<a name="line-40"></a>    <span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>
+<a name="line-44"></a>    <span class='layout'>(</span> <span class='comment'>-- xmlEntities</span>
+<a name="line-45"></a>    <span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></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-48"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-49"></a>    <span class='layout'>)</span>
+<a name="line-50"></a>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>
+<a name="line-52"></a>    <span class='layout'>(</span> <span class='varid'>isEmptyHtmlTag</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>
+<a name="line-55"></a>    <span class='layout'>)</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-58"></a>    <span class='layout'>(</span> <span class='conid'>XmlTrees</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='conid'>QName</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='conid'>NsEnv</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>mkQName</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>mkName</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>mkPrefixLocalPart</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>c_warn</span>
+<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>a_xml</span>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>a_xmlns</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>xmlNamespace</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>
+<a name="line-69"></a>    <span class='layout'>)</span>
+<a name="line-70"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
+<a name="line-72"></a>    <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>mkCmt</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>mkElement</span>
+<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>
+<a name="line-78"></a>    <span class='layout'>)</span>
+<a name="line-79"></a>
+<a name="line-80"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-81"></a>
+<a name="line-82"></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-83"></a>
+<a name="line-84"></a><span class='comment'>-- ---------------------------------------- </span>
+<a name="line-85"></a>
+<a name="line-86"></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-87"></a>
+<a name="line-88"></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-89"></a>
+<a name="line-90"></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-91"></a>
+<a name="line-92"></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-93"></a>
+<a name="line-94"></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-95"></a>
+<a name="line-96"></a><span class='keyword'>instance</span> <span class='conid'>Monad</span> <span class='conid'>Parser</span> <span class='keyword'>where</span>
+<a name="line-97"></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-98"></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-99"></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-100"></a>                              <span class='keyword'>in</span>
+<a name="line-101"></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-102"></a>
+<a name="line-103"></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-104"></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-105"></a>
+<a name="line-106"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-107"></a>
+<a name="line-108"></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-109"></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-110"></a>		  <span class='varid'>p</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>c</span>
+<a name="line-111"></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-112"></a>
+<a name="line-113"></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-114"></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-115"></a>
+<a name="line-116"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-117"></a><span class='comment'>-- primitive look ahead tests</span>
+<a name="line-118"></a>
+<a name="line-119"></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-120"></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-121"></a>
+<a name="line-122"></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-123"></a><span class='definition'>isText</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-124"></a>		  <span class='keyword'>where</span>
+<a name="line-125"></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-126"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-127"></a>
+<a name="line-128"></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-129"></a><span class='definition'>isCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-130"></a>		  <span class='keyword'>where</span>
+<a name="line-131"></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-132"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-133"></a>
+<a name="line-134"></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-135"></a><span class='definition'>isWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-136"></a>		  <span class='keyword'>where</span>
+<a name="line-137"></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-138"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-139"></a>
+<a name="line-140"></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-141"></a><span class='definition'>isPos</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-142"></a>		  <span class='keyword'>where</span>
+<a name="line-143"></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-144"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-145"></a>
+<a name="line-146"></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-147"></a><span class='definition'>isCls</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-148"></a>		  <span class='keyword'>where</span>
+<a name="line-149"></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-150"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		  <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-151"></a>
+<a name="line-152"></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-153"></a><span class='definition'>isOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>
+<a name="line-154"></a>		  <span class='keyword'>where</span>
+<a name="line-155"></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-156"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		   <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-157"></a>
+<a name="line-158"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-159"></a><span class='comment'>-- primitive symbol parsers</span>
+<a name="line-160"></a>
+<a name="line-161"></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-162"></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-163"></a>
+<a name="line-164"></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-165"></a><span class='definition'>getSym</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-166"></a>		  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTag</span>
+<a name="line-167"></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-168"></a>
+<a name="line-169"></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-170"></a><span class='definition'>getText</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-171"></a>    		  <span class='keyword'>where</span>
+<a name="line-172"></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-173"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-174"></a>
+<a name="line-175"></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-176"></a><span class='definition'>getCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-177"></a>		  <span class='keyword'>where</span>
+<a name="line-178"></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-179"></a>	  	  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-180"></a>
+<a name="line-181"></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-182"></a><span class='definition'>getWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-183"></a>	  	  <span class='keyword'>where</span>
+<a name="line-184"></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-185"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-186"></a>
+<a name="line-187"></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-188"></a><span class='definition'>getPos</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-189"></a>		  <span class='keyword'>where</span>
+<a name="line-190"></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-191"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-192"></a>
+<a name="line-193"></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-194"></a><span class='definition'>getCls</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-195"></a>		  <span class='keyword'>where</span>
+<a name="line-196"></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-197"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-198"></a>
+<a name="line-199"></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-200"></a><span class='definition'>getOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>
+<a name="line-201"></a>		  <span class='keyword'>where</span>
+<a name="line-202"></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-203"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>
+<a name="line-204"></a>
+<a name="line-205"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-206"></a><span class='comment'>-- pushback parsers for inserting missing tags</span>
+<a name="line-207"></a>
+<a name="line-208"></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-209"></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-210"></a>
+<a name="line-211"></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-212"></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-213"></a>
+<a name="line-214"></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-215"></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-216"></a>
+<a name="line-217"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-218"></a>
+<a name="line-219"></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-220"></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-221"></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-222"></a>				     <span class='keyword'>in</span>
+<a name="line-223"></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-224"></a>		  <span class='keyword'>where</span>
+<a name="line-225"></a>		  <span class='varid'>insert</span> <span class='varid'>s</span> <span class='varid'>nt</span>
+<a name="line-226"></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-227"></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-228"></a>		      <span class='keyword'>where</span>
+<a name="line-229"></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-230"></a>
+<a name="line-231"></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-232"></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-233"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>
+<a name="line-234"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertQName</span> <span class='varid'>qn1</span>
+<a name="line-235"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-236"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertQName</span> <span class='varid'>qn0</span>
+<a name="line-237"></a>    <span class='keyword'>where</span>
+<a name="line-238"></a>    <span class='varid'>qn1</span>
+<a name="line-239"></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-240"></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-241"></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-242"></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-243"></a>    <span class='varid'>qn0</span>
+<a name="line-244"></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-245"></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-246"></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-247"></a>
+<a name="line-248"></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-249"></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-250"></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-251"></a>
+<a name="line-252"></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-253"></a><span class='definition'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env</span>
+<a name="line-254"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>
+<a name="line-255"></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-256"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-257"></a>	<span class='keyglyph'>=</span> <span class='varid'>env</span>
+<a name="line-258"></a>    <span class='keyword'>where</span>
+<a name="line-259"></a>    <span class='varid'>addNs</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-260"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
+<a name="line-261"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-262"></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-263"></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-264"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-265"></a>	    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-266"></a>	<span class='keyword'>where</span>
+<a name="line-267"></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-268"></a>
+<a name="line-269"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-270"></a>
+<a name="line-271"></a><span class='comment'>-- own entity lookup to prevent problems with &amp;amp; and tagsoup hack for IE</span>
+<a name="line-272"></a>
+<a name="line-273"></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-274"></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-275"></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-276"></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-277"></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-278"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>
+<a name="line-279"></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-280"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-281"></a>
+<a name="line-282"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span> <span class='varid'>e</span>
+<a name="line-283"></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-284"></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-285"></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-286"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>
+<a name="line-287"></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-288"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-289"></a>    <span class='keyword'>where</span>
+<a name="line-290"></a>    <span class='varid'>entities</span>
+<a name="line-291"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>    <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-292"></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-293"></a>
+<a name="line-294"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-295"></a><span class='comment'>-- the main parser</span>
+<a name="line-296"></a>
+<a name="line-297"></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-298"></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-299"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>docRootElem</span>
+<a name="line-300"></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-301"></a>	<span class='varop'>.</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span>
+<a name="line-302"></a>	    <span class='keyword'>then</span> <span class='varid'>canonicalizeTags</span>
+<a name="line-303"></a>	    <span class='keyword'>else</span> <span class='varid'>id</span>
+<a name="line-304"></a>	  <span class='layout'>)</span>
+<a name="line-305"></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-306"></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-307"></a>					 <span class='layout'>}</span>
+<a name="line-308"></a>			   <span class='layout'>)</span>
+<a name="line-309"></a>      <span class='layout'>)</span>
+<a name="line-310"></a>    <span class='keyword'>where</span>
+<a name="line-311"></a>    <span class='comment'>-- This is essential for lasy parsing:</span>
+<a name="line-312"></a>    <span class='comment'>-- the call of "take 1" stops parsing, when the first element is detected</span>
+<a name="line-313"></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-314"></a>    <span class='comment'>-- so eof is never checked unneccessarily</span>
+<a name="line-315"></a>
+<a name="line-316"></a>    <span class='varid'>docRootElem</span>
+<a name="line-317"></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-318"></a>
+<a name="line-319"></a>    <span class='varid'>initContext</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>[]</span>
+<a name="line-320"></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-321"></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-322"></a>			    <span class='keyglyph'>]</span>
+<a name="line-323"></a>			  <span class='layout'>)</span>
+<a name="line-324"></a>
+<a name="line-325"></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-326"></a>
+<a name="line-327"></a>    <span class='varid'>warn</span>
+<a name="line-328"></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-329"></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-330"></a>    <span class='varid'>cmt</span>
+<a name="line-331"></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-332"></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-333"></a>    <span class='varid'>txt</span>
+<a name="line-334"></a>	<span class='keyglyph'>|</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-335"></a>			<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-336"></a>			  <span class='keyword'>if</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span> <span class='varid'>t</span>
+<a name="line-337"></a>			  <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-338"></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-339"></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-340"></a>
+<a name="line-341"></a>    <span class='varid'>isEmptyElem</span>
+<a name="line-342"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isEmptyHtmlTag</span>
+<a name="line-343"></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-344"></a>
+<a name="line-345"></a>    <span class='varid'>isInnerElem</span>
+<a name="line-346"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isInnerHtmlTagOf</span>
+<a name="line-347"></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-348"></a>
+<a name="line-349"></a>    <span class='varid'>closesElem</span>
+<a name="line-350"></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-351"></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-352"></a>			  <span class='varop'>&amp;&amp;</span>
+<a name="line-353"></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-354"></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-355"></a>
+<a name="line-356"></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-357"></a>    <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-358"></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-359"></a>			<span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getText</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'>txt</span> <span class='varid'>t</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'>isOpn</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-364"></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-365"></a>			 <span class='varid'>openTag</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='varid'>al</span>
+<a name="line-366"></a>		       <span class='layout'>)</span>
+<a name="line-367"></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-368"></a>			   <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCls</span>
+<a name="line-369"></a>			   <span class='varid'>closeTag</span> <span class='varid'>ns</span> <span class='varid'>n</span>
+<a name="line-370"></a>			 <span class='layout'>)</span>
+<a name="line-371"></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-372"></a>			     <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCmt</span>
+<a name="line-373"></a>			     <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-374"></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-375"></a>			   <span class='layout'>)</span>
+<a name="line-376"></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-377"></a>				<span class='varid'>w</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getWarn</span>
+<a name="line-378"></a>				<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-379"></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-380"></a>			      <span class='layout'>)</span>
+<a name="line-381"></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-382"></a>				 <span class='varid'>getPos</span>
+<a name="line-383"></a>				 <span class='varid'>buildCont</span> <span class='varid'>ns</span>
+<a name="line-384"></a>			       <span class='layout'>)</span>
+<a name="line-385"></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-386"></a>				   <span class='varid'>isEof</span>
+<a name="line-387"></a>				   <span class='varid'>closeAll</span> <span class='varid'>ns</span>
+<a name="line-388"></a>				 <span class='layout'>)</span>
+<a name="line-389"></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-390"></a>		      <span class='layout'>)</span>
+<a name="line-391"></a>		    <span class='layout'>)</span>
+<a name="line-392"></a>		  <span class='layout'>)</span>
+<a name="line-393"></a>		<span class='layout'>)</span>
+<a name="line-394"></a>	      <span class='layout'>)</span>
+<a name="line-395"></a>	    <span class='layout'>)</span>
+<a name="line-396"></a>	  <span class='layout'>)</span>
+<a name="line-397"></a>	<span class='keyword'>where</span>
+<a name="line-398"></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-399"></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-400"></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-401"></a>								<span class='comment'>-- all other cases try to repair wrong html</span>
+<a name="line-402"></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-403"></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-404"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-405"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>			<span class='comment'>-- pushback &lt;/n1&gt;</span>
+<a name="line-406"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>			<span class='comment'>-- insert a &lt;/n'&gt;</span>
+<a name="line-407"></a>				  <span class='varid'>buildCont</span> <span class='varid'>ns'</span>			<span class='comment'>-- try again</span>
+<a name="line-408"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>
+<a name="line-409"></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-410"></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-411"></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-412"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>
+<a name="line-413"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>
+<a name="line-414"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>
+<a name="line-415"></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-416"></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-417"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>
+<a name="line-418"></a>					 <span class='layout'>)</span>
+<a name="line-419"></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-420"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-421"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>
+<a name="line-422"></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-423"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>
+<a name="line-424"></a>					 <span class='layout'>)</span>
+<a name="line-425"></a>
+<a name="line-426"></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-427"></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-428"></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-429"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>
+<a name="line-430"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-431"></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-432"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>
+<a name="line-433"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-434"></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-435"></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-436"></a>				  <span class='varid'>insOpn</span> <span class='varid'>n1</span> <span class='varid'>al1</span>
+<a name="line-437"></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-438"></a>				  <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-439"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-440"></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-441"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>
+<a name="line-442"></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-443"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>
+<a name="line-444"></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-445"></a>	    <span class='keyword'>where</span>
+<a name="line-446"></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-447"></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-448"></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-449"></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-450"></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-451"></a>	    <span class='varid'>isPiDT</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-452"></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-453"></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-454"></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-455"></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-456"></a>
+<a name="line-457"></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-458"></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-459"></a>				  <span class='keyword'>where</span>
+<a name="line-460"></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-461"></a>
+<a name="line-462"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XhtmlEntities.html b/doc/hdoc/src/Text-XML-HXT-Parser-XhtmlEntities.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XhtmlEntities.html
@@ -0,0 +1,288 @@
+<!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'>-- XHTML Entity References</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- This module defines a table of all</span>
+<a name="line-5"></a><span class='comment'>-- predefined XHTML entity references</span>
+<a name="line-6"></a><span class='comment'>-- for special or none ASCII chars including the</span>
+<a name="line-7"></a><span class='comment'>-- predefined XML entity refs</span>
+<a name="line-8"></a>
+<a name="line-9"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>
+<a name="line-10"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span>
+<a name="line-11"></a>    <span class='layout'>)</span>
+<a name="line-12"></a>
+<a name="line-13"></a><span class='keyword'>where</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>
+<a name="line-16"></a>    <span class='layout'>(</span> <span class='varid'>xmlEntities</span> <span class='layout'>)</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='comment'>-- | table with all XHTML entity refs and corresponding unicode values</span>
+<a name="line-21"></a>
+<a name="line-22"></a><a name="xhtmlEntities"></a><span class='definition'>xhtmlEntities</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>
+<a name="line-23"></a><span class='definition'>xhtmlEntities</span>	<span class='keyglyph'>=</span> <span class='varid'>xmlEntities</span>
+<a name="line-24"></a>		  <span class='varop'>++</span>
+<a name="line-25"></a>		  <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"nbsp"</span><span class='layout'>,</span>	<span class='num'>160</span><span class='layout'>)</span>
+<a name="line-26"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iexcl"</span><span class='layout'>,</span>	<span class='num'>161</span><span class='layout'>)</span>
+<a name="line-27"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cent"</span><span class='layout'>,</span>	<span class='num'>162</span><span class='layout'>)</span>
+<a name="line-28"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pound"</span><span class='layout'>,</span>	<span class='num'>163</span><span class='layout'>)</span>
+<a name="line-29"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"curren"</span><span class='layout'>,</span>	<span class='num'>164</span><span class='layout'>)</span>
+<a name="line-30"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"yen"</span><span class='layout'>,</span>	<span class='num'>165</span><span class='layout'>)</span>
+<a name="line-31"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"brvbar"</span><span class='layout'>,</span>	<span class='num'>166</span><span class='layout'>)</span>
+<a name="line-32"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sect"</span><span class='layout'>,</span>	<span class='num'>167</span><span class='layout'>)</span>
+<a name="line-33"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uml"</span><span class='layout'>,</span>	<span class='num'>168</span><span class='layout'>)</span>
+<a name="line-34"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"copy"</span><span class='layout'>,</span>	<span class='num'>169</span><span class='layout'>)</span>
+<a name="line-35"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ordf"</span><span class='layout'>,</span>	<span class='num'>170</span><span class='layout'>)</span>
+<a name="line-36"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"laquo"</span><span class='layout'>,</span>	<span class='num'>171</span><span class='layout'>)</span>
+<a name="line-37"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"not"</span><span class='layout'>,</span>	<span class='num'>172</span><span class='layout'>)</span>
+<a name="line-38"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"shy"</span><span class='layout'>,</span>	<span class='num'>173</span><span class='layout'>)</span>
+<a name="line-39"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"reg"</span><span class='layout'>,</span>	<span class='num'>174</span><span class='layout'>)</span>
+<a name="line-40"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"macr"</span><span class='layout'>,</span>	<span class='num'>175</span><span class='layout'>)</span>
+<a name="line-41"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"deg"</span><span class='layout'>,</span>	<span class='num'>176</span><span class='layout'>)</span>
+<a name="line-42"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"plusmn"</span><span class='layout'>,</span>	<span class='num'>177</span><span class='layout'>)</span>
+<a name="line-43"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup2"</span><span class='layout'>,</span>	<span class='num'>178</span><span class='layout'>)</span>
+<a name="line-44"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup3"</span><span class='layout'>,</span>	<span class='num'>179</span><span class='layout'>)</span>
+<a name="line-45"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"acute"</span><span class='layout'>,</span>	<span class='num'>180</span><span class='layout'>)</span>
+<a name="line-46"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"micro"</span><span class='layout'>,</span>	<span class='num'>181</span><span class='layout'>)</span>
+<a name="line-47"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"para"</span><span class='layout'>,</span>	<span class='num'>182</span><span class='layout'>)</span>
+<a name="line-48"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"middot"</span><span class='layout'>,</span>	<span class='num'>183</span><span class='layout'>)</span>
+<a name="line-49"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cedil"</span><span class='layout'>,</span>	<span class='num'>184</span><span class='layout'>)</span>
+<a name="line-50"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup1"</span><span class='layout'>,</span>	<span class='num'>185</span><span class='layout'>)</span>
+<a name="line-51"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ordm"</span><span class='layout'>,</span>	<span class='num'>186</span><span class='layout'>)</span>
+<a name="line-52"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"raquo"</span><span class='layout'>,</span>	<span class='num'>187</span><span class='layout'>)</span>
+<a name="line-53"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frac14"</span><span class='layout'>,</span>	<span class='num'>188</span><span class='layout'>)</span>
+<a name="line-54"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frac12"</span><span class='layout'>,</span>	<span class='num'>189</span><span class='layout'>)</span>
+<a name="line-55"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frac34"</span><span class='layout'>,</span>	<span class='num'>190</span><span class='layout'>)</span>
+<a name="line-56"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iquest"</span><span class='layout'>,</span>	<span class='num'>191</span><span class='layout'>)</span>
+<a name="line-57"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Agrave"</span><span class='layout'>,</span>	<span class='num'>192</span><span class='layout'>)</span>
+<a name="line-58"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Aacute"</span><span class='layout'>,</span>	<span class='num'>193</span><span class='layout'>)</span>
+<a name="line-59"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Acirc"</span><span class='layout'>,</span>	<span class='num'>194</span><span class='layout'>)</span>
+<a name="line-60"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Atilde"</span><span class='layout'>,</span>	<span class='num'>195</span><span class='layout'>)</span>
+<a name="line-61"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Auml"</span><span class='layout'>,</span>	<span class='num'>196</span><span class='layout'>)</span>
+<a name="line-62"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Aring"</span><span class='layout'>,</span>	<span class='num'>197</span><span class='layout'>)</span>
+<a name="line-63"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"AElig"</span><span class='layout'>,</span>	<span class='num'>198</span><span class='layout'>)</span>
+<a name="line-64"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ccedil"</span><span class='layout'>,</span>	<span class='num'>199</span><span class='layout'>)</span>
+<a name="line-65"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Egrave"</span><span class='layout'>,</span>	<span class='num'>200</span><span class='layout'>)</span>
+<a name="line-66"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Eacute"</span><span class='layout'>,</span>	<span class='num'>201</span><span class='layout'>)</span>
+<a name="line-67"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ecirc"</span><span class='layout'>,</span>	<span class='num'>202</span><span class='layout'>)</span>
+<a name="line-68"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Euml"</span><span class='layout'>,</span>	<span class='num'>203</span><span class='layout'>)</span>
+<a name="line-69"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Igrave"</span><span class='layout'>,</span>	<span class='num'>204</span><span class='layout'>)</span>
+<a name="line-70"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Iacute"</span><span class='layout'>,</span>	<span class='num'>205</span><span class='layout'>)</span>
+<a name="line-71"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Icirc"</span><span class='layout'>,</span>	<span class='num'>206</span><span class='layout'>)</span>
+<a name="line-72"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Iuml"</span><span class='layout'>,</span>	<span class='num'>207</span><span class='layout'>)</span>
+<a name="line-73"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ETH"</span><span class='layout'>,</span>	<span class='num'>208</span><span class='layout'>)</span>
+<a name="line-74"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ntilde"</span><span class='layout'>,</span>	<span class='num'>209</span><span class='layout'>)</span>
+<a name="line-75"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ograve"</span><span class='layout'>,</span>	<span class='num'>210</span><span class='layout'>)</span>
+<a name="line-76"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Oacute"</span><span class='layout'>,</span>	<span class='num'>211</span><span class='layout'>)</span>
+<a name="line-77"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ocirc"</span><span class='layout'>,</span>	<span class='num'>212</span><span class='layout'>)</span>
+<a name="line-78"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Otilde"</span><span class='layout'>,</span>	<span class='num'>213</span><span class='layout'>)</span>
+<a name="line-79"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ouml"</span><span class='layout'>,</span>	<span class='num'>214</span><span class='layout'>)</span>
+<a name="line-80"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"times"</span><span class='layout'>,</span>	<span class='num'>215</span><span class='layout'>)</span>
+<a name="line-81"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Oslash"</span><span class='layout'>,</span>	<span class='num'>216</span><span class='layout'>)</span>
+<a name="line-82"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ugrave"</span><span class='layout'>,</span>	<span class='num'>217</span><span class='layout'>)</span>
+<a name="line-83"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Uacute"</span><span class='layout'>,</span>	<span class='num'>218</span><span class='layout'>)</span>
+<a name="line-84"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ucirc"</span><span class='layout'>,</span>	<span class='num'>219</span><span class='layout'>)</span>
+<a name="line-85"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Uuml"</span><span class='layout'>,</span>	<span class='num'>220</span><span class='layout'>)</span>
+<a name="line-86"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Yacute"</span><span class='layout'>,</span>	<span class='num'>221</span><span class='layout'>)</span>
+<a name="line-87"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"THORN"</span><span class='layout'>,</span>	<span class='num'>222</span><span class='layout'>)</span>
+<a name="line-88"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"szlig"</span><span class='layout'>,</span>	<span class='num'>223</span><span class='layout'>)</span>
+<a name="line-89"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"agrave"</span><span class='layout'>,</span>	<span class='num'>224</span><span class='layout'>)</span>
+<a name="line-90"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aacute"</span><span class='layout'>,</span>	<span class='num'>225</span><span class='layout'>)</span>
+<a name="line-91"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"acirc"</span><span class='layout'>,</span>	<span class='num'>226</span><span class='layout'>)</span>
+<a name="line-92"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"atilde"</span><span class='layout'>,</span>	<span class='num'>227</span><span class='layout'>)</span>
+<a name="line-93"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"auml"</span><span class='layout'>,</span>	<span class='num'>228</span><span class='layout'>)</span>
+<a name="line-94"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aring"</span><span class='layout'>,</span>	<span class='num'>229</span><span class='layout'>)</span>
+<a name="line-95"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aelig"</span><span class='layout'>,</span>	<span class='num'>230</span><span class='layout'>)</span>
+<a name="line-96"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ccedil"</span><span class='layout'>,</span>	<span class='num'>231</span><span class='layout'>)</span>
+<a name="line-97"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"egrave"</span><span class='layout'>,</span>	<span class='num'>232</span><span class='layout'>)</span>
+<a name="line-98"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eacute"</span><span class='layout'>,</span>	<span class='num'>233</span><span class='layout'>)</span>
+<a name="line-99"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ecirc"</span><span class='layout'>,</span>	<span class='num'>234</span><span class='layout'>)</span>
+<a name="line-100"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"euml"</span><span class='layout'>,</span>	<span class='num'>235</span><span class='layout'>)</span>
+<a name="line-101"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"igrave"</span><span class='layout'>,</span>	<span class='num'>236</span><span class='layout'>)</span>
+<a name="line-102"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iacute"</span><span class='layout'>,</span>	<span class='num'>237</span><span class='layout'>)</span>
+<a name="line-103"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"icirc"</span><span class='layout'>,</span>	<span class='num'>238</span><span class='layout'>)</span>
+<a name="line-104"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iuml"</span><span class='layout'>,</span>	<span class='num'>239</span><span class='layout'>)</span>
+<a name="line-105"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eth"</span><span class='layout'>,</span>	<span class='num'>240</span><span class='layout'>)</span>
+<a name="line-106"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ntilde"</span><span class='layout'>,</span>	<span class='num'>241</span><span class='layout'>)</span>
+<a name="line-107"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ograve"</span><span class='layout'>,</span>	<span class='num'>242</span><span class='layout'>)</span>
+<a name="line-108"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oacute"</span><span class='layout'>,</span>	<span class='num'>243</span><span class='layout'>)</span>
+<a name="line-109"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ocirc"</span><span class='layout'>,</span>	<span class='num'>244</span><span class='layout'>)</span>
+<a name="line-110"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"otilde"</span><span class='layout'>,</span>	<span class='num'>245</span><span class='layout'>)</span>
+<a name="line-111"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ouml"</span><span class='layout'>,</span>	<span class='num'>246</span><span class='layout'>)</span>
+<a name="line-112"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"divide"</span><span class='layout'>,</span>	<span class='num'>247</span><span class='layout'>)</span>
+<a name="line-113"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oslash"</span><span class='layout'>,</span>	<span class='num'>248</span><span class='layout'>)</span>
+<a name="line-114"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ugrave"</span><span class='layout'>,</span>	<span class='num'>249</span><span class='layout'>)</span>
+<a name="line-115"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uacute"</span><span class='layout'>,</span>	<span class='num'>250</span><span class='layout'>)</span>
+<a name="line-116"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ucirc"</span><span class='layout'>,</span>	<span class='num'>251</span><span class='layout'>)</span>
+<a name="line-117"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uuml"</span><span class='layout'>,</span>	<span class='num'>252</span><span class='layout'>)</span>
+<a name="line-118"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"yacute"</span><span class='layout'>,</span>	<span class='num'>253</span><span class='layout'>)</span>
+<a name="line-119"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thorn"</span><span class='layout'>,</span>	<span class='num'>254</span><span class='layout'>)</span>
+<a name="line-120"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"yuml"</span><span class='layout'>,</span>	<span class='num'>255</span><span class='layout'>)</span>
+<a name="line-121"></a>
+<a name="line-122"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"OElig"</span><span class='layout'>,</span>	<span class='num'>338</span><span class='layout'>)</span>
+<a name="line-123"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oelig"</span><span class='layout'>,</span>	<span class='num'>339</span><span class='layout'>)</span>
+<a name="line-124"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Scaron"</span><span class='layout'>,</span>	<span class='num'>352</span><span class='layout'>)</span>
+<a name="line-125"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"scaron"</span><span class='layout'>,</span>	<span class='num'>353</span><span class='layout'>)</span>
+<a name="line-126"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Yuml"</span><span class='layout'>,</span>	<span class='num'>376</span><span class='layout'>)</span>
+<a name="line-127"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"circ"</span><span class='layout'>,</span>	<span class='num'>710</span><span class='layout'>)</span>
+<a name="line-128"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tilde"</span><span class='layout'>,</span>	<span class='num'>732</span><span class='layout'>)</span>
+<a name="line-129"></a>
+<a name="line-130"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ensp"</span><span class='layout'>,</span>	<span class='num'>8194</span><span class='layout'>)</span>
+<a name="line-131"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"emsp"</span><span class='layout'>,</span>	<span class='num'>8195</span><span class='layout'>)</span>
+<a name="line-132"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thinsp"</span><span class='layout'>,</span>	<span class='num'>8201</span><span class='layout'>)</span>
+<a name="line-133"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zwnj"</span><span class='layout'>,</span>	<span class='num'>8204</span><span class='layout'>)</span>
+<a name="line-134"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zwj"</span><span class='layout'>,</span>	<span class='num'>8205</span><span class='layout'>)</span>
+<a name="line-135"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lrm"</span><span class='layout'>,</span>	<span class='num'>8206</span><span class='layout'>)</span>
+<a name="line-136"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rlm"</span><span class='layout'>,</span>	<span class='num'>8207</span><span class='layout'>)</span>
+<a name="line-137"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ndash"</span><span class='layout'>,</span>	<span class='num'>8211</span><span class='layout'>)</span>
+<a name="line-138"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mdash"</span><span class='layout'>,</span>	<span class='num'>8212</span><span class='layout'>)</span>
+<a name="line-139"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lsquo"</span><span class='layout'>,</span>	<span class='num'>8216</span><span class='layout'>)</span>
+<a name="line-140"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rsquo"</span><span class='layout'>,</span>	<span class='num'>8217</span><span class='layout'>)</span>
+<a name="line-141"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sbquo"</span><span class='layout'>,</span>	<span class='num'>8218</span><span class='layout'>)</span>
+<a name="line-142"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ldquo"</span><span class='layout'>,</span>	<span class='num'>8220</span><span class='layout'>)</span>
+<a name="line-143"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rdquo"</span><span class='layout'>,</span>	<span class='num'>8221</span><span class='layout'>)</span>
+<a name="line-144"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bdquo"</span><span class='layout'>,</span>	<span class='num'>8222</span><span class='layout'>)</span>
+<a name="line-145"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dagger"</span><span class='layout'>,</span>	<span class='num'>8224</span><span class='layout'>)</span>
+<a name="line-146"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Dagger"</span><span class='layout'>,</span>	<span class='num'>8225</span><span class='layout'>)</span>
+<a name="line-147"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"permil"</span><span class='layout'>,</span>	<span class='num'>8240</span><span class='layout'>)</span>
+<a name="line-148"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lsaquo"</span><span class='layout'>,</span>	<span class='num'>8249</span><span class='layout'>)</span>
+<a name="line-149"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rsaquo"</span><span class='layout'>,</span>	<span class='num'>8250</span><span class='layout'>)</span>
+<a name="line-150"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"euro"</span><span class='layout'>,</span>	<span class='num'>8364</span><span class='layout'>)</span>
+<a name="line-151"></a>
+<a name="line-152"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fnof"</span><span class='layout'>,</span>	<span class='num'>402</span><span class='layout'>)</span>
+<a name="line-153"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Alpha"</span><span class='layout'>,</span>	<span class='num'>913</span><span class='layout'>)</span>
+<a name="line-154"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Beta"</span><span class='layout'>,</span>	<span class='num'>914</span><span class='layout'>)</span>
+<a name="line-155"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Gamma"</span><span class='layout'>,</span>	<span class='num'>915</span><span class='layout'>)</span>
+<a name="line-156"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Delta"</span><span class='layout'>,</span>	<span class='num'>916</span><span class='layout'>)</span>
+<a name="line-157"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Epsilon"</span><span class='layout'>,</span>	<span class='num'>917</span><span class='layout'>)</span>
+<a name="line-158"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zeta"</span><span class='layout'>,</span>	<span class='num'>918</span><span class='layout'>)</span>
+<a name="line-159"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Eta"</span><span class='layout'>,</span>	<span class='num'>919</span><span class='layout'>)</span>
+<a name="line-160"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Theta"</span><span class='layout'>,</span>	<span class='num'>920</span><span class='layout'>)</span>
+<a name="line-161"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Iota"</span><span class='layout'>,</span>	<span class='num'>921</span><span class='layout'>)</span>
+<a name="line-162"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Kappa"</span><span class='layout'>,</span>	<span class='num'>922</span><span class='layout'>)</span>
+<a name="line-163"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lambda"</span><span class='layout'>,</span>	<span class='num'>923</span><span class='layout'>)</span>
+<a name="line-164"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Mu"</span><span class='layout'>,</span>	<span class='num'>924</span><span class='layout'>)</span>
+<a name="line-165"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Nu"</span><span class='layout'>,</span>	<span class='num'>925</span><span class='layout'>)</span>
+<a name="line-166"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Xi"</span><span class='layout'>,</span>	<span class='num'>926</span><span class='layout'>)</span>
+<a name="line-167"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Omicron"</span><span class='layout'>,</span>	<span class='num'>927</span><span class='layout'>)</span>
+<a name="line-168"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pi"</span><span class='layout'>,</span>	<span class='num'>928</span><span class='layout'>)</span>
+<a name="line-169"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Rho"</span><span class='layout'>,</span>	<span class='num'>929</span><span class='layout'>)</span>
+<a name="line-170"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sigma"</span><span class='layout'>,</span>	<span class='num'>931</span><span class='layout'>)</span>
+<a name="line-171"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Tau"</span><span class='layout'>,</span>	<span class='num'>932</span><span class='layout'>)</span>
+<a name="line-172"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Upsilon"</span><span class='layout'>,</span>	<span class='num'>933</span><span class='layout'>)</span>
+<a name="line-173"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Phi"</span><span class='layout'>,</span>	<span class='num'>934</span><span class='layout'>)</span>
+<a name="line-174"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Chi"</span><span class='layout'>,</span>	<span class='num'>935</span><span class='layout'>)</span>
+<a name="line-175"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Psi"</span><span class='layout'>,</span>	<span class='num'>936</span><span class='layout'>)</span>
+<a name="line-176"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Omega"</span><span class='layout'>,</span>	<span class='num'>937</span><span class='layout'>)</span>
+<a name="line-177"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"alpha"</span><span class='layout'>,</span>	<span class='num'>945</span><span class='layout'>)</span>
+<a name="line-178"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"beta"</span><span class='layout'>,</span>	<span class='num'>946</span><span class='layout'>)</span>
+<a name="line-179"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gamma"</span><span class='layout'>,</span>	<span class='num'>947</span><span class='layout'>)</span>
+<a name="line-180"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"delta"</span><span class='layout'>,</span>	<span class='num'>948</span><span class='layout'>)</span>
+<a name="line-181"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"epsilon"</span><span class='layout'>,</span>	<span class='num'>949</span><span class='layout'>)</span>
+<a name="line-182"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zeta"</span><span class='layout'>,</span>	<span class='num'>950</span><span class='layout'>)</span>
+<a name="line-183"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eta"</span><span class='layout'>,</span>	<span class='num'>951</span><span class='layout'>)</span>
+<a name="line-184"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"theta"</span><span class='layout'>,</span>	<span class='num'>952</span><span class='layout'>)</span>
+<a name="line-185"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iota"</span><span class='layout'>,</span>	<span class='num'>953</span><span class='layout'>)</span>
+<a name="line-186"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kappa"</span><span class='layout'>,</span>	<span class='num'>954</span><span class='layout'>)</span>
+<a name="line-187"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lambda"</span><span class='layout'>,</span>	<span class='num'>955</span><span class='layout'>)</span>
+<a name="line-188"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mu"</span><span class='layout'>,</span>	<span class='num'>956</span><span class='layout'>)</span>
+<a name="line-189"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nu"</span><span class='layout'>,</span>	<span class='num'>957</span><span class='layout'>)</span>
+<a name="line-190"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xi"</span><span class='layout'>,</span>	<span class='num'>958</span><span class='layout'>)</span>
+<a name="line-191"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"omicron"</span><span class='layout'>,</span>	<span class='num'>959</span><span class='layout'>)</span>
+<a name="line-192"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pi"</span><span class='layout'>,</span>	<span class='num'>960</span><span class='layout'>)</span>
+<a name="line-193"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rho"</span><span class='layout'>,</span>	<span class='num'>961</span><span class='layout'>)</span>
+<a name="line-194"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sigmaf"</span><span class='layout'>,</span>	<span class='num'>962</span><span class='layout'>)</span>
+<a name="line-195"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sigma"</span><span class='layout'>,</span>	<span class='num'>963</span><span class='layout'>)</span>
+<a name="line-196"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tau"</span><span class='layout'>,</span>	<span class='num'>964</span><span class='layout'>)</span>
+<a name="line-197"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"upsilon"</span><span class='layout'>,</span>	<span class='num'>965</span><span class='layout'>)</span>
+<a name="line-198"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"phi"</span><span class='layout'>,</span>	<span class='num'>966</span><span class='layout'>)</span>
+<a name="line-199"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"chi"</span><span class='layout'>,</span>	<span class='num'>967</span><span class='layout'>)</span>
+<a name="line-200"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"psi"</span><span class='layout'>,</span>	<span class='num'>968</span><span class='layout'>)</span>
+<a name="line-201"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"omega"</span><span class='layout'>,</span>	<span class='num'>969</span><span class='layout'>)</span>
+<a name="line-202"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thetasym"</span><span class='layout'>,</span>	<span class='num'>977</span><span class='layout'>)</span>
+<a name="line-203"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"upsih"</span><span class='layout'>,</span>	<span class='num'>978</span><span class='layout'>)</span>
+<a name="line-204"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"piv"</span><span class='layout'>,</span>	<span class='num'>982</span><span class='layout'>)</span>
+<a name="line-205"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bull"</span><span class='layout'>,</span>	<span class='num'>8226</span><span class='layout'>)</span>
+<a name="line-206"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hellip"</span><span class='layout'>,</span>	<span class='num'>8230</span><span class='layout'>)</span>
+<a name="line-207"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prime"</span><span class='layout'>,</span>	<span class='num'>8242</span><span class='layout'>)</span>
+<a name="line-208"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Prime"</span><span class='layout'>,</span>	<span class='num'>8243</span><span class='layout'>)</span>
+<a name="line-209"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oline"</span><span class='layout'>,</span>	<span class='num'>8254</span><span class='layout'>)</span>
+<a name="line-210"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frasl"</span><span class='layout'>,</span>	<span class='num'>8260</span><span class='layout'>)</span>
+<a name="line-211"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"weierp"</span><span class='layout'>,</span>	<span class='num'>8472</span><span class='layout'>)</span>
+<a name="line-212"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"image"</span><span class='layout'>,</span>	<span class='num'>8465</span><span class='layout'>)</span>
+<a name="line-213"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"real"</span><span class='layout'>,</span>	<span class='num'>8476</span><span class='layout'>)</span>
+<a name="line-214"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"trade"</span><span class='layout'>,</span>	<span class='num'>8482</span><span class='layout'>)</span>
+<a name="line-215"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"alefsym"</span><span class='layout'>,</span>	<span class='num'>8501</span><span class='layout'>)</span>
+<a name="line-216"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"larr"</span><span class='layout'>,</span>	<span class='num'>8592</span><span class='layout'>)</span>
+<a name="line-217"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uarr"</span><span class='layout'>,</span>	<span class='num'>8593</span><span class='layout'>)</span>
+<a name="line-218"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rarr"</span><span class='layout'>,</span>	<span class='num'>8594</span><span class='layout'>)</span>
+<a name="line-219"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"darr"</span><span class='layout'>,</span>	<span class='num'>8595</span><span class='layout'>)</span>
+<a name="line-220"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"harr"</span><span class='layout'>,</span>	<span class='num'>8596</span><span class='layout'>)</span>
+<a name="line-221"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"crarr"</span><span class='layout'>,</span>	<span class='num'>8629</span><span class='layout'>)</span>
+<a name="line-222"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lArr"</span><span class='layout'>,</span>	<span class='num'>8656</span><span class='layout'>)</span>
+<a name="line-223"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uArr"</span><span class='layout'>,</span>	<span class='num'>8657</span><span class='layout'>)</span>
+<a name="line-224"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rArr"</span><span class='layout'>,</span>	<span class='num'>8658</span><span class='layout'>)</span>
+<a name="line-225"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dArr"</span><span class='layout'>,</span>	<span class='num'>8659</span><span class='layout'>)</span>
+<a name="line-226"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hArr"</span><span class='layout'>,</span>	<span class='num'>8660</span><span class='layout'>)</span>
+<a name="line-227"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"forall"</span><span class='layout'>,</span>	<span class='num'>8704</span><span class='layout'>)</span>
+<a name="line-228"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"part"</span><span class='layout'>,</span>	<span class='num'>8706</span><span class='layout'>)</span>
+<a name="line-229"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"exist"</span><span class='layout'>,</span>	<span class='num'>8707</span><span class='layout'>)</span>
+<a name="line-230"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"empty"</span><span class='layout'>,</span>	<span class='num'>8709</span><span class='layout'>)</span>
+<a name="line-231"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nabla"</span><span class='layout'>,</span>	<span class='num'>8711</span><span class='layout'>)</span>
+<a name="line-232"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"isin"</span><span class='layout'>,</span>	<span class='num'>8712</span><span class='layout'>)</span>
+<a name="line-233"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"notin"</span><span class='layout'>,</span>	<span class='num'>8713</span><span class='layout'>)</span>
+<a name="line-234"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ni"</span><span class='layout'>,</span>	<span class='num'>8715</span><span class='layout'>)</span>
+<a name="line-235"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prod"</span><span class='layout'>,</span>	<span class='num'>8719</span><span class='layout'>)</span>
+<a name="line-236"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sum"</span><span class='layout'>,</span>	<span class='num'>8721</span><span class='layout'>)</span>
+<a name="line-237"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"minus"</span><span class='layout'>,</span>	<span class='num'>8722</span><span class='layout'>)</span>
+<a name="line-238"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lowast"</span><span class='layout'>,</span>	<span class='num'>8727</span><span class='layout'>)</span>
+<a name="line-239"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"radic"</span><span class='layout'>,</span>	<span class='num'>8730</span><span class='layout'>)</span>
+<a name="line-240"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prop"</span><span class='layout'>,</span>	<span class='num'>8733</span><span class='layout'>)</span>
+<a name="line-241"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"infin"</span><span class='layout'>,</span>	<span class='num'>8734</span><span class='layout'>)</span>
+<a name="line-242"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ang"</span><span class='layout'>,</span>	<span class='num'>8736</span><span class='layout'>)</span>
+<a name="line-243"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"and"</span><span class='layout'>,</span>	<span class='num'>8743</span><span class='layout'>)</span>
+<a name="line-244"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"or"</span><span class='layout'>,</span>	<span class='num'>8744</span><span class='layout'>)</span>
+<a name="line-245"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cap"</span><span class='layout'>,</span>	<span class='num'>8745</span><span class='layout'>)</span>
+<a name="line-246"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cup"</span><span class='layout'>,</span>	<span class='num'>8746</span><span class='layout'>)</span>
+<a name="line-247"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"int"</span><span class='layout'>,</span>	<span class='num'>8747</span><span class='layout'>)</span>
+<a name="line-248"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"there4"</span><span class='layout'>,</span>	<span class='num'>8756</span><span class='layout'>)</span>
+<a name="line-249"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sim"</span><span class='layout'>,</span>	<span class='num'>8764</span><span class='layout'>)</span>
+<a name="line-250"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cong"</span><span class='layout'>,</span>	<span class='num'>8773</span><span class='layout'>)</span>
+<a name="line-251"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asymp"</span><span class='layout'>,</span>	<span class='num'>8776</span><span class='layout'>)</span>
+<a name="line-252"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ne"</span><span class='layout'>,</span>	<span class='num'>8800</span><span class='layout'>)</span>
+<a name="line-253"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"equiv"</span><span class='layout'>,</span>	<span class='num'>8801</span><span class='layout'>)</span>
+<a name="line-254"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"le"</span><span class='layout'>,</span>	<span class='num'>8804</span><span class='layout'>)</span>
+<a name="line-255"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ge"</span><span class='layout'>,</span>	<span class='num'>8805</span><span class='layout'>)</span>
+<a name="line-256"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sub"</span><span class='layout'>,</span>	<span class='num'>8834</span><span class='layout'>)</span>
+<a name="line-257"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup"</span><span class='layout'>,</span>	<span class='num'>8835</span><span class='layout'>)</span>
+<a name="line-258"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nsub"</span><span class='layout'>,</span>	<span class='num'>8836</span><span class='layout'>)</span>
+<a name="line-259"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sube"</span><span class='layout'>,</span>	<span class='num'>8838</span><span class='layout'>)</span>
+<a name="line-260"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"supe"</span><span class='layout'>,</span>	<span class='num'>8839</span><span class='layout'>)</span>
+<a name="line-261"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oplus"</span><span class='layout'>,</span>	<span class='num'>8853</span><span class='layout'>)</span>
+<a name="line-262"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"otimes"</span><span class='layout'>,</span>	<span class='num'>8855</span><span class='layout'>)</span>
+<a name="line-263"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"perp"</span><span class='layout'>,</span>	<span class='num'>8869</span><span class='layout'>)</span>
+<a name="line-264"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdot"</span><span class='layout'>,</span>	<span class='num'>8901</span><span class='layout'>)</span>
+<a name="line-265"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lceil"</span><span class='layout'>,</span>	<span class='num'>8968</span><span class='layout'>)</span>
+<a name="line-266"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rceil"</span><span class='layout'>,</span>	<span class='num'>8969</span><span class='layout'>)</span>
+<a name="line-267"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lfloor"</span><span class='layout'>,</span>	<span class='num'>8970</span><span class='layout'>)</span>
+<a name="line-268"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rfloor"</span><span class='layout'>,</span>	<span class='num'>8971</span><span class='layout'>)</span>
+<a name="line-269"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lang"</span><span class='layout'>,</span>	<span class='num'>9001</span><span class='layout'>)</span>
+<a name="line-270"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rang"</span><span class='layout'>,</span>	<span class='num'>9002</span><span class='layout'>)</span>
+<a name="line-271"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"loz"</span><span class='layout'>,</span>	<span class='num'>9674</span><span class='layout'>)</span>
+<a name="line-272"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"spades"</span><span class='layout'>,</span>	<span class='num'>9824</span><span class='layout'>)</span>
+<a name="line-273"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"clubs"</span><span class='layout'>,</span>	<span class='num'>9827</span><span class='layout'>)</span>
+<a name="line-274"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hearts"</span><span class='layout'>,</span>	<span class='num'>9829</span><span class='layout'>)</span>
+<a name="line-275"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"diams"</span><span class='layout'>,</span>	<span class='num'>9830</span><span class='layout'>)</span>
+<a name="line-276"></a>		  <span class='keyglyph'>]</span>
+<a name="line-277"></a>
+<a name="line-278"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XmlCharParser.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlCharParser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlCharParser.html
@@ -0,0 +1,84 @@
+<!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'>-- UTF-8 character parser and simple XML token parsers</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- Version : $Id: XmlCharParser.hs,v 1.2 2005/05/31 16:01:12 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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>
+<a name="line-7"></a>    <span class='layout'>(</span> <span class='varid'>xmlChar</span>			<span class='comment'>-- xml char parsers</span>
+<a name="line-8"></a>    <span class='layout'>,</span> <span class='varid'>xmlNameChar</span>
+<a name="line-9"></a>    <span class='layout'>,</span> <span class='varid'>xmlNameStartChar</span>
+<a name="line-10"></a>    <span class='layout'>,</span> <span class='varid'>xmlNCNameChar</span>
+<a name="line-11"></a>    <span class='layout'>,</span> <span class='varid'>xmlNCNameStartChar</span>
+<a name="line-12"></a>    <span class='layout'>,</span> <span class='varid'>xmlLetter</span>
+<a name="line-13"></a>    <span class='layout'>,</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-14"></a>    <span class='layout'>)</span>
+<a name="line-15"></a><span class='keyword'>where</span>
+<a name="line-16"></a>
+<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'>Unicode</span>
+<a name="line-18"></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-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><span class='comment'>-- Char (2.2)</span>
+<a name="line-23"></a><span class='comment'>--</span>
+<a name="line-24"></a>
+<a name="line-25"></a><span class='comment'>-- |</span>
+<a name="line-26"></a><span class='comment'>-- parse a single Unicode character</span>
+<a name="line-27"></a>
+<a name="line-28"></a><a name="xmlChar"></a><span class='definition'>xmlChar</span>			<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>
+<a name="line-29"></a><span class='definition'>xmlChar</span>			<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlChar</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal XML character"</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='comment'>-- |</span>
+<a name="line-32"></a><span class='comment'>-- parse a XML name character</span>
+<a name="line-33"></a>
+<a name="line-34"></a><a name="xmlNameChar"></a><span class='definition'>xmlNameChar</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>
+<a name="line-35"></a><span class='definition'>xmlNameChar</span>		<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNameChar</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal XML name character"</span>
+<a name="line-36"></a> 
+<a name="line-37"></a><span class='comment'>-- |</span>
+<a name="line-38"></a><span class='comment'>-- parse a XML name start character</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="xmlNameStartChar"></a><span class='definition'>xmlNameStartChar</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>
+<a name="line-41"></a><span class='definition'>xmlNameStartChar</span>	<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNameStartChar</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal XML name start character"</span>
+<a name="line-42"></a> 
+<a name="line-43"></a><span class='comment'>-- |</span>
+<a name="line-44"></a><span class='comment'>-- parse a XML NCName character</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="xmlNCNameChar"></a><span class='definition'>xmlNCNameChar</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>
+<a name="line-47"></a><span class='definition'>xmlNCNameChar</span>		<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNCNameChar</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal XML NCName character"</span>
+<a name="line-48"></a> 
+<a name="line-49"></a><span class='comment'>-- |</span>
+<a name="line-50"></a><span class='comment'>-- parse a XML NCName start character</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="xmlNCNameStartChar"></a><span class='definition'>xmlNCNameStartChar</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>
+<a name="line-53"></a><span class='definition'>xmlNCNameStartChar</span>	<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNCNameStartChar</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal XML NCName start character"</span>
+<a name="line-54"></a> 
+<a name="line-55"></a><span class='comment'>-- |</span>
+<a name="line-56"></a><span class='comment'>-- parse a XML letter character</span>
+<a name="line-57"></a>
+<a name="line-58"></a><a name="xmlLetter"></a><span class='definition'>xmlLetter</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>
+<a name="line-59"></a><span class='definition'>xmlLetter</span>		<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlLetter</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal XML letter"</span>
+<a name="line-60"></a>
+<a name="line-61"></a><span class='comment'>-- |</span>
+<a name="line-62"></a><span class='comment'>-- White Space (2.3)</span>
+<a name="line-63"></a><span class='comment'>--</span>
+<a name="line-64"></a><span class='comment'>-- end of line handling (2.11)</span>
+<a name="line-65"></a><span class='comment'>-- \#x0D and \#x0D\#x0A are mapped to \#x0A</span>
+<a name="line-66"></a><span class='comment'>-- is done in XmlInput before parsing</span>
+<a name="line-67"></a><span class='comment'>-- otherwise \#x0D in internal parsing, e.g. for entities would normalize,</span>
+<a name="line-68"></a><span class='comment'>-- would be transformed</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="xmlSpaceChar"></a><span class='definition'>xmlSpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>
+<a name="line-71"></a><span class='definition'>xmlSpaceChar</span>		<span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlSpaceChar</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"white space"</span>
+<a name="line-72"></a>
+<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-74"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDParser.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDParser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDParser.html
@@ -0,0 +1,725 @@
+<!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     : Text.XML.HXT.Parser.XmlDTDParser
+<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>
+<a name="line-12"></a>   Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDParser</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDTDdecl</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDdeclPart</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDEntityValue</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>elementDecl</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>attlistDecl</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>entityDecl</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>notationDecl</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'>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'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
+<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'>Pos</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>	<span class='comment'>-- XmlTree              hiding (choice)</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'>Util</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>stringToUpper</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'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span>
+<a name="line-39"></a>    <span class='layout'>(</span> <span class='varid'>xshow</span>
+<a name="line-40"></a>    <span class='layout'>)</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
+<a name="line-42"></a>    <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>isText</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>isDTD</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>getText</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>getDTDPart</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>getDTDAttrl</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>getChildren</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>setChildren</span>
+<a name="line-52"></a>    <span class='layout'>)</span>
+<a name="line-53"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>    <span class='keyword'>as</span> <span class='conid'>XT</span>
+<a name="line-54"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>     <span class='keyword'>as</span> <span class='conid'>XC</span> <span class='layout'>(</span> <span class='varid'>xmlSpaceChar</span> <span class='layout'>)</span>
+<a name="line-55"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDTokenParser</span> <span class='keyword'>as</span> <span class='conid'>XD</span> <span class='layout'>(</span> <span class='varid'>dtdToken</span> <span class='layout'>)</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='comment'>-----------------------------------------------------------</span>
+<a name="line-58"></a><span class='comment'>--</span>
+<a name="line-59"></a><span class='comment'>-- all parsers dealing with whitespace will be redefined</span>
+<a name="line-60"></a><span class='comment'>-- to handle parameter entity substitution</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="LocalState"></a><span class='keyword'>type</span> <span class='conid'>LocalState</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>SourcePos</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="SParser"></a><span class='keyword'>type</span> <span class='conid'>SParser</span> <span class='varid'>a</span>	<span class='keyglyph'>=</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='conid'>LocalState</span> <span class='varid'>a</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="initialLocalState"></a><span class='definition'>initialLocalState</span>	<span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LocalState</span>
+<a name="line-67"></a><span class='definition'>initialLocalState</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='varid'>sourceName</span> <span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-68"></a>
+<a name="line-69"></a><a name="pushPar"></a><span class='definition'>pushPar</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-70"></a><span class='definition'>pushPar</span>	<span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-71"></a>		  <span class='varid'>p</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-72"></a>		  <span class='varid'>updateState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</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'>i</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-73"></a>		  <span class='varid'>setPosition</span> <span class='layout'>(</span> <span class='varid'>newPos</span> <span class='layout'>(</span><span class='varid'>sourceName</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" (line "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceLine</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>", column "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceColumn</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>") in content of parameter entity ref %"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='num'>1</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="popPar"></a><span class='definition'>popPar</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-76"></a><span class='definition'>popPar</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-77"></a>		  <span class='varid'>oldPos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPos</span>
+<a name="line-78"></a>		  <span class='varid'>updateState</span> <span class='varid'>pop</span>
+<a name="line-79"></a>		  <span class='varid'>setPosition</span> <span class='varid'>oldPos</span>
+<a name="line-80"></a>		<span class='keyword'>where</span>
+<a name="line-81"></a>		<span class='varid'>pop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</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='keyglyph'>[</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='varid'>s</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>	<span class='comment'>-- if param entity substitution is correctly implemented, this case does not occur</span>
+<a name="line-82"></a>		<span class='varid'>pop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='sel'>_t</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-83"></a>                <span class='varid'>pop</span> <span class='layout'>(</span><span class='sel'>_i</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>         <span class='keyglyph'>=</span> <span class='varid'>undefined</span>		<span class='comment'>-- stack is never empty</span>
+<a name="line-84"></a>
+<a name="line-85"></a><a name="getParNo"></a><span class='definition'>getParNo</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Int</span>
+<a name="line-86"></a><span class='definition'>getParNo</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-87"></a>		  <span class='layout'>(</span><span class='sel'>_i</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>top</span><span class='layout'>,</span> <span class='sel'>_n</span><span class='layout'>,</span> <span class='sel'>_p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='sel'>_s</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-88"></a>		  <span class='varid'>return</span> <span class='varid'>top</span>
+<a name="line-89"></a>
+<a name="line-90"></a><a name="getPos"></a><span class='definition'>getPos</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>SourcePos</span>
+<a name="line-91"></a><span class='definition'>getPos</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-92"></a>		  <span class='layout'>(</span><span class='sel'>_i</span><span class='layout'>,</span> <span class='layout'>(</span><span class='sel'>_top</span><span class='layout'>,</span> <span class='sel'>_n</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='sel'>_s</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>
+<a name="line-93"></a>		  <span class='varid'>return</span> <span class='varid'>p</span>
+<a name="line-94"></a>
+<a name="line-95"></a><a name="delPE"></a><span class='definition'>delPE</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-96"></a><span class='definition'>delPE</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-97"></a>	  <span class='varid'>char</span> <span class='chr'>'\0'</span>
+<a name="line-98"></a>	  <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-99"></a>
+<a name="line-100"></a><a name="startPE"></a><span class='definition'>startPE</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-101"></a><span class='definition'>startPE</span>
+<a name="line-102"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-103"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-104"></a>	    <span class='varid'>delPE</span>
+<a name="line-105"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>'\0'</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-106"></a>	    <span class='varid'>delPE</span>
+<a name="line-107"></a>	    <span class='varid'>pushPar</span> <span class='varid'>n</span>
+<a name="line-108"></a>	  <span class='layout'>)</span>
+<a name="line-109"></a>
+<a name="line-110"></a><a name="endPE"></a><span class='definition'>endPE</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-111"></a><span class='definition'>endPE</span>
+<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-113"></a>      <span class='varid'>try</span> <span class='layout'>(</span><span class='keyword'>do</span>
+<a name="line-114"></a>	   <span class='varid'>delPE</span>
+<a name="line-115"></a>	   <span class='varid'>delPE</span>
+<a name="line-116"></a>	   <span class='varid'>popPar</span>
+<a name="line-117"></a>	  <span class='layout'>)</span>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="inSamePE"></a><span class='definition'>inSamePE</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SParser</span> <span class='varid'>a</span>
+<a name="line-120"></a><span class='definition'>inSamePE</span> <span class='varid'>p</span>
+<a name="line-121"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-122"></a>      <span class='varid'>i</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getParNo</span>
+<a name="line-123"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span>
+<a name="line-124"></a>      <span class='varid'>j</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getParNo</span>
+<a name="line-125"></a>      <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>==</span> <span class='varid'>j</span><span class='layout'>)</span>
+<a name="line-126"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-127"></a>	 <span class='keyword'>else</span> <span class='varid'>fail</span> <span class='varop'>$</span> <span class='str'>"parameter entity contents does not fit into the structure of a DTD declarations"</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="xmlSpaceChar"></a><span class='definition'>xmlSpaceChar</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-132"></a><span class='definition'>xmlSpaceChar</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-133"></a>		    <span class='conid'>XC</span><span class='varop'>.</span><span class='varid'>xmlSpaceChar</span>
+<a name="line-134"></a>		    <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-135"></a>		  <span class='layout'>)</span>
+<a name="line-136"></a>		  <span class='varop'>&lt;|&gt;</span>
+<a name="line-137"></a>		  <span class='varid'>startPE</span>
+<a name="line-138"></a>		  <span class='varop'>&lt;|&gt;</span>
+<a name="line-139"></a>		  <span class='varid'>endPE</span>
+<a name="line-140"></a>		  <span class='varop'>&lt;?&gt;</span> <span class='str'>"white space"</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="skipS"></a><span class='definition'>skipS</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-143"></a><span class='definition'>skipS</span>
+<a name="line-144"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-145"></a>      <span class='varid'>skipMany1</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-146"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-147"></a>
+<a name="line-148"></a><a name="skipS0"></a><span class='definition'>skipS0</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-149"></a><span class='definition'>skipS0</span>
+<a name="line-150"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-151"></a>      <span class='varid'>skipMany</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-152"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="name"></a><span class='definition'>name</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTree</span>
+<a name="line-155"></a><span class='definition'>name</span>
+<a name="line-156"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-157"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-158"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a><a name="nmtoken"></a><span class='definition'>nmtoken</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTree</span>
+<a name="line-161"></a><span class='definition'>nmtoken</span>
+<a name="line-162"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-163"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>nmtoken</span>
+<a name="line-164"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-167"></a><span class='comment'>--</span>
+<a name="line-168"></a><span class='comment'>-- Element Type Declarations (3.2)</span>
+<a name="line-169"></a>
+<a name="line-170"></a><a name="elementDecl"></a><span class='definition'>elementDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-171"></a><span class='definition'>elementDecl</span>
+<a name="line-172"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!ELEMENT"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'&gt;'</span><span class='layout'>)</span> <span class='varid'>elementDeclBody</span>
+<a name="line-173"></a>
+<a name="line-174"></a><a name="elementDeclBody"></a><span class='definition'>elementDeclBody</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-175"></a><span class='definition'>elementDeclBody</span>
+<a name="line-176"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-177"></a>      <span class='varid'>skipS</span>
+<a name="line-178"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-179"></a>      <span class='varid'>skipS</span>
+<a name="line-180"></a>      <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>contentspec</span>
+<a name="line-181"></a>      <span class='varid'>skipS0</span>
+<a name="line-182"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>ELEMENT</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='keyglyph'>]</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="contentspec"></a><span class='definition'>contentspec</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-185"></a><span class='definition'>contentspec</span>
+<a name="line-186"></a>    <span class='keyglyph'>=</span> <span class='varid'>simplespec</span> <span class='varid'>k_empty</span> <span class='varid'>v_empty</span>
+<a name="line-187"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-188"></a>      <span class='varid'>simplespec</span> <span class='varid'>k_any</span> <span class='varid'>v_any</span>
+<a name="line-189"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-190"></a>      <span class='varid'>inSamePE</span> <span class='varid'>mixed</span>
+<a name="line-191"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-192"></a>      <span class='varid'>inSamePE</span> <span class='varid'>children</span>
+<a name="line-193"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"content specification"</span>
+<a name="line-194"></a>    <span class='keyword'>where</span>
+<a name="line-195"></a>    <span class='varid'>simplespec</span> <span class='varid'>kw</span> <span class='varid'>v</span>
+<a name="line-196"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-197"></a>	  <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>kw</span>
+<a name="line-198"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-199"></a>
+<a name="line-200"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-201"></a><span class='comment'>--</span>
+<a name="line-202"></a><span class='comment'>-- Element Content (3.2.1)</span>
+<a name="line-203"></a>
+<a name="line-204"></a><a name="children"></a><span class='definition'>children</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-205"></a><span class='definition'>children</span>
+<a name="line-206"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-207"></a>	<span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>choiceOrSeq</span>
+<a name="line-208"></a>	<span class='varid'>modifier</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>optOrRep</span>
+<a name="line-209"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='layout'>(</span><span class='varid'>modifier</span> <span class='varop'>++</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-210"></a>      <span class='layout'>)</span>
+<a name="line-211"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"element content"</span>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="optOrRep"></a><span class='definition'>optOrRep</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>
+<a name="line-214"></a><span class='definition'>optOrRep</span>
+<a name="line-215"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-216"></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='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span> <span class='layout'>(</span><span class='varid'>oneOf</span> <span class='str'>"?*+"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-217"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='varid'>m</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="choiceOrSeq"></a><span class='definition'>choiceOrSeq</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-220"></a><span class='definition'>choiceOrSeq</span>
+<a name="line-221"></a>    <span class='keyglyph'>=</span> <span class='varid'>inSamePE</span> <span class='varop'>$</span>
+<a name="line-222"></a>      <span class='keyword'>do</span>
+<a name="line-223"></a>      <span class='varid'>cl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-224"></a>		  <span class='varid'>lpar</span>
+<a name="line-225"></a>		  <span class='varid'>choiceOrSeqBody</span>
+<a name="line-226"></a>		<span class='layout'>)</span>
+<a name="line-227"></a>      <span class='varid'>rpar</span>
+<a name="line-228"></a>      <span class='varid'>return</span> <span class='varid'>cl</span>
+<a name="line-229"></a>
+<a name="line-230"></a><a name="choiceOrSeqBody"></a><span class='definition'>choiceOrSeqBody</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-231"></a><span class='definition'>choiceOrSeqBody</span>
+<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-233"></a>      <span class='varid'>cp1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cp</span>
+<a name="line-234"></a>      <span class='varid'>choiceOrSeq1</span> <span class='varid'>cp1</span>
+<a name="line-235"></a>    <span class='keyword'>where</span>
+<a name="line-236"></a>    <span class='varid'>choiceOrSeq1</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-237"></a>    <span class='varid'>choiceOrSeq1</span> <span class='varid'>c1</span>
+<a name="line-238"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-239"></a>	    <span class='varid'>bar</span>
+<a name="line-240"></a>	    <span class='varid'>c2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cp</span>
+<a name="line-241"></a>	    <span class='varid'>cl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-242"></a>			 <span class='varid'>bar</span>
+<a name="line-243"></a>			 <span class='varid'>cp</span>
+<a name="line-244"></a>		       <span class='layout'>)</span>
+<a name="line-245"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_choice</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>c2</span> <span class='conop'>:</span> <span class='varid'>cl</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-246"></a>	  <span class='layout'>)</span>
+<a name="line-247"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-248"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-249"></a>	    <span class='varid'>cl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-250"></a>			 <span class='varid'>comma</span>
+<a name="line-251"></a>			 <span class='varid'>cp</span>
+<a name="line-252"></a>		       <span class='layout'>)</span>
+<a name="line-253"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_seq</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>cl</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-254"></a>	  <span class='layout'>)</span>
+<a name="line-255"></a>          <span class='varop'>&lt;?&gt;</span> <span class='str'>"sequence or choice"</span>
+<a name="line-256"></a>
+<a name="line-257"></a><a name="cp"></a><span class='definition'>cp</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTree</span>
+<a name="line-258"></a><span class='definition'>cp</span>
+<a name="line-259"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-260"></a>	<span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-261"></a>	<span class='varid'>m</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>optOrRep</span>
+<a name="line-262"></a>	<span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>m</span> <span class='keyword'>of</span>
+<a name="line-263"></a>		 <span class='keyglyph'>[</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>
+<a name="line-264"></a>		 <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_seq</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-265"></a>	       <span class='layout'>)</span>
+<a name="line-266"></a>      <span class='layout'>)</span>
+<a name="line-267"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-268"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-269"></a>	<span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>choiceOrSeq</span>
+<a name="line-270"></a>	<span class='varid'>m</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>optOrRep</span>
+<a name="line-271"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-272"></a>      <span class='layout'>)</span>
+<a name="line-273"></a>
+<a name="line-274"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-275"></a><span class='comment'>--</span>
+<a name="line-276"></a><span class='comment'>-- Mixed Content (3.2.2)</span>
+<a name="line-277"></a>
+<a name="line-278"></a><a name="mixed"></a><span class='definition'>mixed</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-279"></a><span class='definition'>mixed</span>
+<a name="line-280"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-281"></a>	<span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-282"></a>	      <span class='varid'>lpar</span>
+<a name="line-283"></a>	      <span class='varid'>string</span> <span class='varid'>k_pcdata</span>
+<a name="line-284"></a>	    <span class='layout'>)</span>
+<a name="line-285"></a>	<span class='varid'>nl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-286"></a>		     <span class='varid'>bar</span>
+<a name="line-287"></a>		     <span class='varid'>name</span>
+<a name="line-288"></a>		   <span class='layout'>)</span>
+<a name="line-289"></a>	<span class='varid'>rpar</span>
+<a name="line-290"></a>	<span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>nl</span>
+<a name="line-291"></a>          <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-292"></a>	       <span class='varid'>option</span> <span class='chr'>' '</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'*'</span><span class='layout'>)</span>		<span class='comment'>-- (#PCDATA) or (#PCDATA)* , both are legal</span>
+<a name="line-293"></a>	       <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_pcdata</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-294"></a>		      <span class='layout'>,</span> <span class='conid'>[]</span>
+<a name="line-295"></a>		      <span class='layout'>)</span>
+<a name="line-296"></a>	  <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-297"></a>	       <span class='varid'>char</span> <span class='chr'>'*'</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"closing parent for mixed content (\")*\")"</span>
+<a name="line-298"></a>	       <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_mixed</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-299"></a>		      <span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"*"</span><span class='layout'>)</span>
+<a name="line-300"></a>					     <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_choice</span><span class='layout'>)</span>
+<a name="line-301"></a>					     <span class='keyglyph'>]</span> <span class='varid'>nl</span>
+<a name="line-302"></a>			<span class='keyglyph'>]</span>
+<a name="line-303"></a>		      <span class='layout'>)</span>
+<a name="line-304"></a>      <span class='layout'>)</span>
+<a name="line-305"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"mixed content"</span>
+<a name="line-306"></a>
+<a name="line-307"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-308"></a><span class='comment'>--</span>
+<a name="line-309"></a><span class='comment'>-- Attribute-List Declarations (3.3)</span>
+<a name="line-310"></a>
+<a name="line-311"></a><a name="attlistDecl"></a><span class='definition'>attlistDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-312"></a><span class='definition'>attlistDecl</span>
+<a name="line-313"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!ATTLIST"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'&gt;'</span><span class='layout'>)</span> <span class='varid'>attlistDeclBody</span>
+<a name="line-314"></a>
+<a name="line-315"></a><a name="attlistDeclBody"></a><span class='definition'>attlistDeclBody</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-316"></a><span class='definition'>attlistDeclBody</span>
+<a name="line-317"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-318"></a>      <span class='varid'>skipS</span>
+<a name="line-319"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-320"></a>      <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>attDef</span>
+<a name="line-321"></a>      <span class='varid'>skipS0</span>
+<a name="line-322"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mkDTree</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-323"></a>    <span class='keyword'>where</span>
+<a name="line-324"></a>    <span class='varid'>mkDTree</span> <span class='varid'>n'</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-325"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>ATTLIST</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n'</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span>
+<a name="line-326"></a>    
+<a name="line-327"></a><a name="attDef"></a><span class='definition'>attDef</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-328"></a><span class='definition'>attDef</span>
+<a name="line-329"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-330"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-331"></a>		 <span class='varid'>skipS</span>
+<a name="line-332"></a>		 <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-333"></a>	       <span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"attribute name"</span>
+<a name="line-334"></a>      <span class='varid'>skipS</span>
+<a name="line-335"></a>      <span class='layout'>(</span><span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>attType</span>
+<a name="line-336"></a>      <span class='varid'>skipS</span>
+<a name="line-337"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>defaultDecl</span>
+<a name="line-338"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_value</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-339"></a>
+<a name="line-340"></a><a name="attType"></a><span class='definition'>attType</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-341"></a><span class='definition'>attType</span>
+<a name="line-342"></a>    <span class='keyglyph'>=</span> <span class='varid'>tokenizedOrStringType</span>
+<a name="line-343"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-344"></a>      <span class='varid'>enumeration</span>
+<a name="line-345"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-346"></a>      <span class='varid'>notationType</span>
+<a name="line-347"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"attribute type"</span>
+<a name="line-348"></a>
+<a name="line-349"></a><a name="tokenizedOrStringType"></a><span class='definition'>tokenizedOrStringType</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-350"></a><span class='definition'>tokenizedOrStringType</span>
+<a name="line-351"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-352"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>choice</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>typl</span>
+<a name="line-353"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-354"></a>      <span class='keyword'>where</span>
+<a name="line-355"></a>      <span class='varid'>typl</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>k_cdata</span>
+<a name="line-356"></a>		  <span class='layout'>,</span> <span class='varid'>k_idrefs</span>
+<a name="line-357"></a>		  <span class='layout'>,</span> <span class='varid'>k_idref</span>
+<a name="line-358"></a>		  <span class='layout'>,</span> <span class='varid'>k_id</span>
+<a name="line-359"></a>		  <span class='layout'>,</span> <span class='varid'>k_entity</span>
+<a name="line-360"></a>		  <span class='layout'>,</span> <span class='varid'>k_entities</span>
+<a name="line-361"></a>		  <span class='layout'>,</span> <span class='varid'>k_nmtokens</span>
+<a name="line-362"></a>		  <span class='layout'>,</span> <span class='varid'>k_nmtoken</span>
+<a name="line-363"></a>		  <span class='keyglyph'>]</span>
+<a name="line-364"></a>
+<a name="line-365"></a><a name="enumeration"></a><span class='definition'>enumeration</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-366"></a><span class='definition'>enumeration</span>
+<a name="line-367"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-368"></a>      <span class='varid'>nl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>inSamePE</span> <span class='layout'>(</span><span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span><span class='varid'>sepBy1</span> <span class='varid'>nmtoken</span> <span class='varid'>bar</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-369"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_enumeration</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='varid'>nl</span><span class='layout'>)</span>
+<a name="line-370"></a>
+<a name="line-371"></a><a name="notationType"></a><span class='definition'>notationType</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-372"></a><span class='definition'>notationType</span>
+<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-374"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_notation</span>
+<a name="line-375"></a>      <span class='varid'>skipS</span>
+<a name="line-376"></a>      <span class='varid'>nl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>inSamePE</span> <span class='layout'>(</span><span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span> <span class='varid'>sepBy1</span> <span class='varid'>name</span> <span class='varid'>bar</span> <span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-377"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_notation</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='varid'>nl</span><span class='layout'>)</span>
+<a name="line-378"></a>
+<a name="line-379"></a><a name="defaultDecl"></a><span class='definition'>defaultDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>
+<a name="line-380"></a><span class='definition'>defaultDecl</span>
+<a name="line-381"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-382"></a>	<span class='varid'>str</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='varid'>k_required</span>
+<a name="line-383"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>str</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-384"></a>      <span class='layout'>)</span>
+<a name="line-385"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-386"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-387"></a>	<span class='varid'>str</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='varid'>k_implied</span>
+<a name="line-388"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>str</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-389"></a>      <span class='layout'>)</span>
+<a name="line-390"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-391"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-392"></a>        <span class='varid'>l</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fixed</span>
+<a name="line-393"></a>	<span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValueT</span>
+<a name="line-394"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_default</span><span class='layout'>,</span> <span class='varid'>xshow</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>l</span><span class='layout'>)</span>
+<a name="line-395"></a>      <span class='layout'>)</span>
+<a name="line-396"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"default declaration"</span>
+<a name="line-397"></a>    <span class='keyword'>where</span>
+<a name="line-398"></a>    <span class='varid'>fixed</span> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_default</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-399"></a>	    <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-400"></a>	      <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='varid'>k_fixed</span>
+<a name="line-401"></a>	      <span class='varid'>skipS</span>
+<a name="line-402"></a>	      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_fixed</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-403"></a>	    <span class='layout'>)</span>
+<a name="line-404"></a>
+<a name="line-405"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-406"></a><span class='comment'>--</span>
+<a name="line-407"></a><span class='comment'>-- Entity Declarations (4.2)</span>
+<a name="line-408"></a>
+<a name="line-409"></a><a name="entityDecl"></a><span class='definition'>entityDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-410"></a><span class='definition'>entityDecl</span>
+<a name="line-411"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!ENTITY"</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'&gt;'</span><span class='layout'>)</span> <span class='varid'>entityDeclBody</span>
+<a name="line-412"></a>
+<a name="line-413"></a><a name="entityDeclBody"></a><span class='definition'>entityDeclBody</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-414"></a><span class='definition'>entityDeclBody</span>
+<a name="line-415"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-416"></a>      <span class='varid'>skipS</span>
+<a name="line-417"></a>      <span class='layout'>(</span> <span class='varid'>peDecl</span>
+<a name="line-418"></a>	<span class='varop'>&lt;|&gt;</span>
+<a name="line-419"></a>	<span class='varid'>geDecl</span>
+<a name="line-420"></a>	<span class='varop'>&lt;?&gt;</span> <span class='str'>"entity declaration"</span> <span class='layout'>)</span>	<span class='comment'>-- don't move the ) to the next line</span>
+<a name="line-421"></a>
+<a name="line-422"></a><a name="geDecl"></a><span class='definition'>geDecl</span>			<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-423"></a><span class='definition'>geDecl</span>
+<a name="line-424"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-425"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-426"></a>      <span class='varid'>skipS</span>
+<a name="line-427"></a>      <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>entityDef</span>
+<a name="line-428"></a>      <span class='varid'>skipS0</span>
+<a name="line-429"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>ENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='keyglyph'>]</span>
+<a name="line-430"></a>
+<a name="line-431"></a><a name="entityDef"></a><span class='definition'>entityDef</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-432"></a><span class='definition'>entityDef</span>
+<a name="line-433"></a>    <span class='keyglyph'>=</span> <span class='varid'>entityValue</span>
+<a name="line-434"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-435"></a>      <span class='varid'>externalEntitySpec</span>
+<a name="line-436"></a>
+<a name="line-437"></a><a name="externalEntitySpec"></a><span class='definition'>externalEntitySpec</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-438"></a><span class='definition'>externalEntitySpec</span>
+<a name="line-439"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-440"></a>      <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>externalID</span>
+<a name="line-441"></a>      <span class='varid'>nd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>nDataDecl</span>
+<a name="line-442"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>al</span> <span class='varop'>++</span> <span class='varid'>nd</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-443"></a>
+<a name="line-444"></a><a name="peDecl"></a><span class='definition'>peDecl</span>			<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-445"></a><span class='definition'>peDecl</span>
+<a name="line-446"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-447"></a>      <span class='varid'>char</span> <span class='chr'>'%'</span>
+<a name="line-448"></a>      <span class='varid'>skipS</span>
+<a name="line-449"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-450"></a>      <span class='varid'>skipS</span>
+<a name="line-451"></a>      <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>peDef</span>
+<a name="line-452"></a>      <span class='varid'>skipS0</span>
+<a name="line-453"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>PENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>
+<a name="line-454"></a>
+<a name="line-455"></a><a name="peDef"></a><span class='definition'>peDef</span>			<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-456"></a><span class='definition'>peDef</span>
+<a name="line-457"></a>    <span class='keyglyph'>=</span> <span class='varid'>entityValue</span>
+<a name="line-458"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-459"></a>      <span class='keyword'>do</span>
+<a name="line-460"></a>      <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>externalID</span>
+<a name="line-461"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-462"></a>
+<a name="line-463"></a><a name="entityValue"></a><span class='definition'>entityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-464"></a><span class='definition'>entityValue</span>
+<a name="line-465"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-466"></a>      <span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>entityValueT</span>
+<a name="line-467"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>
+<a name="line-468"></a>
+<a name="line-469"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-470"></a><span class='comment'>--</span>
+<a name="line-471"></a><span class='comment'>-- External Entities (4.2.2)</span>
+<a name="line-472"></a>
+<a name="line-473"></a><a name="externalID"></a><span class='definition'>externalID</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>
+<a name="line-474"></a><span class='definition'>externalID</span>
+<a name="line-475"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-476"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_system</span>
+<a name="line-477"></a>	<span class='varid'>skipS</span>
+<a name="line-478"></a>	<span class='varid'>lit</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>
+<a name="line-479"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>lit</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-480"></a>      <span class='layout'>)</span>
+<a name="line-481"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-482"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-483"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_public</span>
+<a name="line-484"></a>	<span class='varid'>skipS</span>
+<a name="line-485"></a>	<span class='varid'>pl</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>pubidLiteral</span>
+<a name="line-486"></a>	<span class='varid'>skipS</span>
+<a name="line-487"></a>	<span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>
+<a name="line-488"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>sl</span><span class='layout'>)</span>
+<a name="line-489"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-490"></a>      <span class='layout'>)</span>
+<a name="line-491"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"SYSTEM or PUBLIC declaration"</span>
+<a name="line-492"></a>
+<a name="line-493"></a><a name="nDataDecl"></a><span class='definition'>nDataDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>
+<a name="line-494"></a><span class='definition'>nDataDecl</span>
+<a name="line-495"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-496"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-497"></a>	    <span class='varid'>skipS</span>
+<a name="line-498"></a>	    <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_ndata</span>
+<a name="line-499"></a>	  <span class='layout'>)</span>
+<a name="line-500"></a>      <span class='varid'>skipS</span>
+<a name="line-501"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-502"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_ndata</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-503"></a>
+<a name="line-504"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-505"></a><span class='comment'>--</span>
+<a name="line-506"></a><span class='comment'>-- Notation Declarations (4.7)</span>
+<a name="line-507"></a>
+<a name="line-508"></a><a name="notationDecl"></a><span class='definition'>notationDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-509"></a><span class='definition'>notationDecl</span>
+<a name="line-510"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!NOTATION"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'&gt;'</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"notation declaration"</span><span class='layout'>)</span> <span class='varid'>notationDeclBody</span>
+<a name="line-511"></a>
+<a name="line-512"></a><a name="notationDeclBody"></a><span class='definition'>notationDeclBody</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-513"></a><span class='definition'>notationDeclBody</span>
+<a name="line-514"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-515"></a>      <span class='varid'>skipS</span>
+<a name="line-516"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-517"></a>      <span class='varid'>skipS</span>
+<a name="line-518"></a>      <span class='varid'>eid</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varid'>externalID</span>
+<a name="line-519"></a>	       <span class='varop'>&lt;|&gt;</span>
+<a name="line-520"></a>	       <span class='varid'>publicID</span>
+<a name="line-521"></a>	     <span class='layout'>)</span>
+<a name="line-522"></a>      <span class='varid'>skipS0</span>
+<a name="line-523"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>NOTATION</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>eid</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>
+<a name="line-524"></a>
+<a name="line-525"></a><a name="publicID"></a><span class='definition'>publicID</span>		<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>
+<a name="line-526"></a><span class='definition'>publicID</span>
+<a name="line-527"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-528"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_public</span>
+<a name="line-529"></a>      <span class='varid'>skipS</span>
+<a name="line-530"></a>      <span class='varid'>l</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>pubidLiteral</span>
+<a name="line-531"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>l</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-532"></a>
+<a name="line-533"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-534"></a>
+<a name="line-535"></a><a name="condSectCondBody"></a><span class='definition'>condSectCondBody</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>
+<a name="line-536"></a><span class='definition'>condSectCondBody</span>
+<a name="line-537"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-538"></a>      <span class='varid'>skipS0</span>
+<a name="line-539"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-540"></a>      <span class='varid'>skipS0</span>
+<a name="line-541"></a>      <span class='keyword'>let</span> <span class='varid'>n'</span> <span class='keyglyph'>=</span> <span class='varid'>stringToUpper</span> <span class='varid'>n</span>
+<a name="line-542"></a>      <span class='keyword'>if</span> <span class='varid'>n'</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>k_include</span><span class='layout'>,</span> <span class='varid'>k_ignore</span><span class='keyglyph'>]</span>
+<a name="line-543"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span>  <span class='varid'>n'</span><span class='keyglyph'>]</span>
+<a name="line-544"></a>	 <span class='keyword'>else</span> <span class='varid'>fail</span> <span class='varop'>$</span> <span class='str'>"INCLUDE or IGNORE expected in conditional section"</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><a name="separator"></a><span class='definition'>separator</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-549"></a><span class='definition'>separator</span> <span class='varid'>c</span>
+<a name="line-550"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-551"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-552"></a>	    <span class='varid'>skipS0</span>
+<a name="line-553"></a>	    <span class='varid'>char</span> <span class='varid'>c</span>
+<a name="line-554"></a>	  <span class='layout'>)</span>
+<a name="line-555"></a>      <span class='varid'>skipS0</span>
+<a name="line-556"></a>      <span class='varop'>&lt;?&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-557"></a>
+<a name="line-558"></a>
+<a name="line-559"></a><a name="bar"></a><span class='definition'>bar</span><span class='layout'>,</span> <span class='varid'>comma</span><span class='layout'>,</span> <span class='varid'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span>	<span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>
+<a name="line-560"></a>
+<a name="line-561"></a><span class='definition'>bar</span>	<span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>'|'</span>
+<a name="line-562"></a><a name="comma"></a><span class='definition'>comma</span>	<span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>','</span>
+<a name="line-563"></a>
+<a name="line-564"></a><a name="lpar"></a><span class='definition'>lpar</span>
+<a name="line-565"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-566"></a>      <span class='varid'>char</span> <span class='chr'>'('</span>
+<a name="line-567"></a>      <span class='varid'>skipS0</span>
+<a name="line-568"></a>
+<a name="line-569"></a><a name="rpar"></a><span class='definition'>rpar</span>
+<a name="line-570"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-571"></a>      <span class='varid'>skipS0</span>
+<a name="line-572"></a>      <span class='varid'>char</span> <span class='chr'>')'</span>
+<a name="line-573"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-574"></a>
+<a name="line-575"></a>
+<a name="line-576"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-577"></a>
+<a name="line-578"></a><a name="parseXmlDTDEntityValue"></a><span class='definition'>parseXmlDTDEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-579"></a><span class='definition'>parseXmlDTDEntityValue</span> <span class='varid'>t</span>	<span class='comment'>-- (NTree (XDTD PEREF al) cl)</span>
+<a name="line-580"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDPEref</span> <span class='varid'>t</span>
+<a name="line-581"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</span>
+<a name="line-582"></a>	    <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'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='layout'>)</span>
+<a name="line-583"></a>	    <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>cl'</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>cl'</span>
+<a name="line-584"></a>                         <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='str'>""</span><span class='keyglyph'>]</span>
+<a name="line-585"></a>                         <span class='keyword'>else</span> <span class='varid'>cl'</span>
+<a name="line-586"></a>	    <span class='layout'>)</span>
+<a name="line-587"></a>	    <span class='varop'>.</span>
+<a name="line-588"></a>	    <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>source</span>
+<a name="line-589"></a>	  <span class='layout'>)</span> <span class='varid'>input</span>
+<a name="line-590"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-591"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-592"></a>    <span class='keyword'>where</span>
+<a name="line-593"></a>    <span class='varid'>al</span>     <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-594"></a>    <span class='varid'>cl</span>     <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>
+<a name="line-595"></a>    <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>entityTokensT</span> <span class='str'>"%&amp;"</span>
+<a name="line-596"></a>    <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='str'>"value of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-597"></a>    <span class='varid'>input</span>  <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varid'>cl</span>
+<a name="line-598"></a>
+<a name="line-599"></a><span class='comment'>{-
+<a name="line-600"></a>parseXmlDTDEntityValue n
+<a name="line-601"></a>    = error ("parseXmlDTDEntityValue: illegal argument: " ++ show n)
+<a name="line-602"></a>-}</span>
+<a name="line-603"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-604"></a>
+<a name="line-605"></a><a name="parseXmlDTDdeclPart"></a><span class='definition'>parseXmlDTDdeclPart</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-606"></a><span class='definition'>parseXmlDTDdeclPart</span> <span class='varid'>t</span>		<span class='comment'>-- @(NTree (XDTD PEREF al) cl)</span>
+<a name="line-607"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDPEref</span> <span class='varid'>t</span>
+<a name="line-608"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-609"></a>	    <span class='varop'>.</span>
+<a name="line-610"></a>	    <span class='varid'>either</span>
+<a name="line-611"></a>	       <span class='layout'>(</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='layout'>)</span>
+<a name="line-612"></a>	       <span class='layout'>(</span> <span class='varid'>flip</span> <span class='varid'>setChildren</span> <span class='varop'>$</span> <span class='varid'>t</span> <span class='layout'>)</span> <span class='comment'>-- \ cl' -&gt; setChildren cl' t)</span>
+<a name="line-613"></a>	    <span class='varop'>.</span>
+<a name="line-614"></a>	    <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>source</span>
+<a name="line-615"></a>	  <span class='layout'>)</span> <span class='varid'>input</span>
+<a name="line-616"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-617"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-618"></a>    <span class='keyword'>where</span>
+<a name="line-619"></a>    <span class='varid'>al</span>     <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-620"></a>    <span class='varid'>cl</span>     <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>
+<a name="line-621"></a>    <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='conid'>XD</span><span class='varop'>.</span><span class='varid'>dtdToken</span>
+<a name="line-622"></a>    <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='str'>"value of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>
+<a name="line-623"></a>    <span class='varid'>input</span>  <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varid'>cl</span>
+<a name="line-624"></a>
+<a name="line-625"></a><span class='comment'>{-
+<a name="line-626"></a>parseXmlDTDdeclPart n
+<a name="line-627"></a>    = error ("parseXmlDTDdeclPart: illegal argument: " ++ show n)
+<a name="line-628"></a>-}</span>
+<a name="line-629"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-630"></a><span class='comment'>--</span>
+<a name="line-631"></a><span class='comment'>-- the main entry point</span>
+<a name="line-632"></a>
+<a name="line-633"></a><span class='comment'>-- | parse a tokenized DTD declaration represented by a DTD tree.</span>
+<a name="line-634"></a><span class='comment'>-- The content is represented by the children containing text and parameter entity reference nodes.</span>
+<a name="line-635"></a><span class='comment'>-- The parameter entity reference nodes contain their value in the children list, consisting of text</span>
+<a name="line-636"></a><span class='comment'>-- and possibly again parameter entity reference nodes. This structure is build by the parameter entity</span>
+<a name="line-637"></a><span class='comment'>-- substitution.</span>
+<a name="line-638"></a><span class='comment'>-- Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing</span>
+<a name="line-639"></a>
+<a name="line-640"></a><a name="parseXmlDTDdecl"></a><span class='definition'>parseXmlDTDdecl</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-641"></a><span class='definition'>parseXmlDTDdecl</span> <span class='varid'>t</span>	<span class='comment'>-- (NTree (XDTD dtdElem al) cl)</span>
+<a name="line-642"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTD</span> <span class='varid'>t</span>
+<a name="line-643"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</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'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span>
+<a name="line-644"></a>	    <span class='varop'>.</span>
+<a name="line-645"></a>	    <span class='varid'>runParser</span> <span class='varid'>parser</span> <span class='layout'>(</span><span class='varid'>initialLocalState</span> <span class='varid'>pos</span><span class='layout'>)</span> <span class='varid'>source</span>
+<a name="line-646"></a>	  <span class='layout'>)</span> <span class='varid'>input</span>
+<a name="line-647"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-648"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-649"></a>    <span class='keyword'>where</span>
+<a name="line-650"></a>    <span class='varid'>dtdElem</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span>     <span class='varop'>.</span> <span class='varid'>getDTDPart</span>  <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-651"></a>    <span class='varid'>al</span>      <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-652"></a>    <span class='varid'>cl</span>      <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>
+<a name="line-653"></a>    <span class='varid'>dtdParsers</span>
+<a name="line-654"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='conid'>ELEMENT</span><span class='layout'>,</span>  <span class='varid'>elementDeclBody</span><span class='layout'>)</span>
+<a name="line-655"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>ATTLIST</span><span class='layout'>,</span>  <span class='varid'>attlistDeclBody</span><span class='layout'>)</span>
+<a name="line-656"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>ENTITY</span><span class='layout'>,</span>   <span class='varid'>entityDeclBody</span><span class='layout'>)</span>
+<a name="line-657"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>NOTATION</span><span class='layout'>,</span> <span class='varid'>notationDeclBody</span><span class='layout'>)</span>
+<a name="line-658"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>CONDSECT</span><span class='layout'>,</span> <span class='varid'>condSectCondBody</span><span class='layout'>)</span>
+<a name="line-659"></a>	  <span class='keyglyph'>]</span>
+<a name="line-660"></a>    <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='varid'>lookupDef</span> <span class='str'>"DTD declaration"</span> <span class='varid'>a_source</span> <span class='varid'>al</span>
+<a name="line-661"></a>    <span class='varid'>line</span>   <span class='keyglyph'>=</span> <span class='varid'>lookupDef</span> <span class='str'>"1"</span> <span class='varid'>a_line</span> <span class='varid'>al</span>
+<a name="line-662"></a>    <span class='varid'>column</span> <span class='keyglyph'>=</span> <span class='varid'>lookupDef</span> <span class='str'>"1"</span> <span class='varid'>a_column</span> <span class='varid'>al</span>
+<a name="line-663"></a>    <span class='varid'>pos</span>    <span class='keyglyph'>=</span> <span class='varid'>newPos</span> <span class='varid'>source</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>line</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>column</span><span class='layout'>)</span>
+<a name="line-664"></a>    <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-665"></a>	     <span class='varid'>setPosition</span> <span class='varid'>pos</span>
+<a name="line-666"></a>	     <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>dtdElem</span> <span class='varop'>$</span> <span class='varid'>dtdParsers</span>
+<a name="line-667"></a>	     <span class='varid'>eof</span>
+<a name="line-668"></a>	     <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-669"></a>    <span class='varid'>input</span>  <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>collectText</span> <span class='varid'>cl</span>
+<a name="line-670"></a><span class='comment'>{-
+<a name="line-671"></a>parseXmlDTDdecl _
+<a name="line-672"></a>    = []
+<a name="line-673"></a>-}</span>
+<a name="line-674"></a>
+<a name="line-675"></a><span class='comment'>-- | collect the tokens of a DTD declaration body and build</span>
+<a name="line-676"></a><span class='comment'>-- a string ready for parsing. The structure of the parameter entity values</span>
+<a name="line-677"></a><span class='comment'>-- is stll stored in this string for checking the scope of the parameter values</span>
+<a name="line-678"></a>
+<a name="line-679"></a><a name="collectText"></a><span class='definition'>collectText</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-680"></a>
+<a name="line-681"></a><span class='definition'>collectText</span> <span class='varid'>t</span>
+<a name="line-682"></a>    <span class='keyglyph'>|</span> <span class='varid'>isText</span> <span class='varid'>t</span>
+<a name="line-683"></a>	<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-684"></a>    <span class='keyglyph'>|</span> <span class='varid'>isDTDPEref</span> <span class='varid'>t</span>
+<a name="line-685"></a>	<span class='keyglyph'>=</span> <span class='varid'>prefixPe</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='varid'>collectText</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>suffixPe</span>
+<a name="line-686"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-687"></a>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-688"></a>    <span class='keyword'>where</span>
+<a name="line-689"></a>    <span class='varid'>al</span>       <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-690"></a>    <span class='varid'>delPe</span>    <span class='keyglyph'>=</span> <span class='str'>"\0"</span>
+<a name="line-691"></a>    <span class='varid'>prefixPe</span> <span class='keyglyph'>=</span> <span class='varid'>delPe</span> <span class='varop'>++</span> <span class='varid'>lookupDef</span> <span class='str'>"???"</span> <span class='varid'>a_peref</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='varid'>delPe</span>
+<a name="line-692"></a>    <span class='varid'>suffixPe</span> <span class='keyglyph'>=</span> <span class='varid'>delPe</span> <span class='varop'>++</span> <span class='varid'>delPe</span>
+<a name="line-693"></a>
+<a name="line-694"></a><span class='comment'>{-
+<a name="line-695"></a>
+<a name="line-696"></a>collectText (NTree n _)
+<a name="line-697"></a>    | isXTextNode n
+<a name="line-698"></a>	= textOfXNode n
+<a name="line-699"></a>
+<a name="line-700"></a>collectText (NTree (XDTD PEREF al) cl)
+<a name="line-701"></a>    = prefixPe ++ concatMap collectText cl ++ suffixPe
+<a name="line-702"></a>      where
+<a name="line-703"></a>      delPe    = "\0"
+<a name="line-704"></a>      prefixPe = delPe ++ lookupDef "???" a_peref al ++ delPe
+<a name="line-705"></a>      suffixPe = delPe ++ delPe
+<a name="line-706"></a>
+<a name="line-707"></a>collectText _
+<a name="line-708"></a>    = ""
+<a name="line-709"></a>-}</span>
+<a name="line-710"></a>
+<a name="line-711"></a><a name="isDTDPEref"></a><span class='definition'>isDTDPEref</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-712"></a><span class='definition'>isDTDPEref</span>
+<a name="line-713"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>PEREF</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getDTDPart</span>
+<a name="line-714"></a>
+<a name="line-715"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDTokenParser.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDTokenParser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDTokenParser.html
@@ -0,0 +1,120 @@
+<!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     : Text.XML.HXT.Parser.XmlDTDTokenParser
+<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: XmlDTDTokenParser.hs,v 1.4 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Parsec parser for tokenizing DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDTokenParser</span> <span class='keyword'>where</span>
+<a name="line-20"></a>
+<a name="line-21"></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-22"></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'>Pos</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='comment'>-- import           Text.XML.HXT.DOM.XmlTree		hiding (choice)</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'>Interface</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'>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'>mkText</span>
+<a name="line-31"></a>    <span class='layout'>)</span>
+<a name="line-32"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>	<span class='keyword'>as</span> <span class='conid'>XT</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'>-- DTD declaration tokenizer</span>
+<a name="line-37"></a>
+<a name="line-38"></a><a name="dtdDeclTokenizer"></a><span class='definition'>dtdDeclTokenizer</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-39"></a><span class='definition'>dtdDeclTokenizer</span>
+<a name="line-40"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-41"></a>      <span class='layout'>(</span><span class='varid'>dcl</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>dtdDeclStart</span>
+<a name="line-42"></a>      <span class='varid'>content</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>dtdToken</span>
+<a name="line-43"></a>      <span class='varid'>dtdDeclEnd</span>
+<a name="line-44"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkDTDElem</span> <span class='varid'>dcl</span> <span class='varid'>al</span> <span class='varid'>content</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="dtdDeclStart"></a><span class='definition'>dtdDeclStart</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>DTDElem</span><span class='layout'>,</span> <span class='conid'>Attributes</span><span class='layout'>)</span>
+<a name="line-47"></a><span class='definition'>dtdDeclStart</span>
+<a name="line-48"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-49"></a>      <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>dtdStart</span><span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-50"></a>	      <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"ELEMENT"</span><span class='layout'>,</span>  <span class='conid'>ELEMENT</span> <span class='layout'>)</span>
+<a name="line-51"></a>	      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ATTLIST"</span><span class='layout'>,</span>  <span class='conid'>ATTLIST</span> <span class='layout'>)</span>
+<a name="line-52"></a>	      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ENTITY"</span><span class='layout'>,</span>   <span class='conid'>ENTITY</span>  <span class='layout'>)</span>
+<a name="line-53"></a>	      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"NOTATION"</span><span class='layout'>,</span> <span class='conid'>NOTATION</span><span class='layout'>)</span>
+<a name="line-54"></a>	      <span class='keyglyph'>]</span>
+<a name="line-55"></a>    <span class='keyword'>where</span>
+<a name="line-56"></a>    <span class='varid'>dtdStart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>DTDElem</span><span class='layout'>,</span> <span class='conid'>Attributes</span><span class='layout'>)</span>
+<a name="line-57"></a>    <span class='varid'>dtdStart</span> <span class='varid'>dcl</span> <span class='varid'>element</span>
+<a name="line-58"></a>	<span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-59"></a>		<span class='varid'>string</span> <span class='str'>"&lt;!"</span>
+<a name="line-60"></a>		<span class='varid'>string</span> <span class='varid'>dcl</span>
+<a name="line-61"></a>		<span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-62"></a>		<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>element</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_source</span><span class='layout'>,</span> <span class='varid'>sourceName</span> <span class='varid'>pos</span><span class='layout'>)</span>
+<a name="line-63"></a>				 <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_line</span><span class='layout'>,</span>   <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceLine</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-64"></a>				 <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_column</span><span class='layout'>,</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceColumn</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-65"></a>				 <span class='keyglyph'>]</span>
+<a name="line-66"></a>		       <span class='layout'>)</span>
+<a name="line-67"></a>	      <span class='layout'>)</span>
+<a name="line-68"></a>
+<a name="line-69"></a><a name="dtdDeclEnd"></a><span class='definition'>dtdDeclEnd</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-70"></a><span class='definition'>dtdDeclEnd</span>
+<a name="line-71"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-72"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>gt</span>
+<a name="line-73"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="dtdToken"></a><span class='definition'>dtdToken</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-76"></a><span class='definition'>dtdToken</span>
+<a name="line-77"></a>    <span class='keyglyph'>=</span> <span class='varid'>dtdChars</span>
+<a name="line-78"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-79"></a>      <span class='varid'>attrValue</span>
+<a name="line-80"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-81"></a>      <span class='varid'>try</span> <span class='varid'>peReference</span>		<span class='comment'>-- first try parameter entity ref %xxx;</span>
+<a name="line-82"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-83"></a>      <span class='varid'>percent</span>			<span class='comment'>-- else % may be indicator for parameter entity declaration</span>
+<a name="line-84"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"DTD token"</span>
+<a name="line-85"></a>
+<a name="line-86"></a><a name="peReference"></a><span class='definition'>peReference</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-87"></a><span class='definition'>peReference</span>
+<a name="line-88"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-89"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>peReference</span>
+<a name="line-90"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>PEREF</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_peref</span><span class='layout'>,</span> <span class='varid'>r</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-91"></a>
+<a name="line-92"></a><a name="attrValue"></a><span class='definition'>attrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-93"></a><span class='definition'>attrValue</span>
+<a name="line-94"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-95"></a>      <span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValue</span>
+<a name="line-96"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkText</span> <span class='varid'>v</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="dtdChars"></a><span class='definition'>dtdChars</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-99"></a><span class='definition'>dtdChars</span>
+<a name="line-100"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-101"></a>      <span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>singleChar</span> <span class='str'>"%\"'&lt;&gt;[]"</span><span class='layout'>)</span>		<span class='comment'>-- everything except string constants, &lt; and &gt;, [ and ] (for cond sections)</span>
+<a name="line-102"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkText</span> <span class='varid'>v</span>				<span class='comment'>-- all illegal chars will be detected later during declaration parsing</span>
+<a name="line-103"></a>
+<a name="line-104"></a><a name="percent"></a><span class='definition'>percent</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-105"></a><span class='definition'>percent</span>
+<a name="line-106"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-107"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>char</span> <span class='chr'>'%'</span>
+<a name="line-108"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-109"></a>
+<a name="line-110"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XmlEntities.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlEntities.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlEntities.html
@@ -0,0 +1,36 @@
+<!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'>-- Predefined XML Entity References</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- This module defines a table of all</span>
+<a name="line-5"></a><span class='comment'>-- predefined XML entity references</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>xmlEntities</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='comment'>-- ------------------------------------------------------------</span>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='comment'>-- |</span>
+<a name="line-16"></a><span class='comment'>-- list of predefined XML entity names and their unicode values</span>
+<a name="line-17"></a>
+<a name="line-18"></a><a name="xmlEntities"></a><span class='definition'>xmlEntities</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>
+<a name="line-19"></a><span class='definition'>xmlEntities</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"quot"</span><span class='layout'>,</span>	<span class='num'>34</span><span class='layout'>)</span>
+<a name="line-20"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"amp"</span><span class='layout'>,</span>	<span class='num'>38</span><span class='layout'>)</span>
+<a name="line-21"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lt"</span><span class='layout'>,</span>	<span class='num'>60</span><span class='layout'>)</span>
+<a name="line-22"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gt"</span><span class='layout'>,</span>	<span class='num'>62</span><span class='layout'>)</span>
+<a name="line-23"></a>		  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"apos"</span><span class='layout'>,</span>	<span class='num'>39</span><span class='layout'>)</span>
+<a name="line-24"></a>		  <span class='keyglyph'>]</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XmlInput.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlInput.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlInput.html
@@ -0,0 +1,394 @@
+<!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'>--</span>
+<a name="line-3"></a><span class='comment'>-- input functions</span>
+<a name="line-4"></a><span class='comment'>-- implemented as filer</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>-- Version : $Id: XmlInput.hs,v 1.9 2006/03/03 14:20:17 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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlInput</span>
+<a name="line-9"></a>    <span class='layout'>(</span> <span class='varid'>getXmlContents</span>
+<a name="line-10"></a>    <span class='layout'>,</span> <span class='varid'>getXmlEntityContents</span>
+<a name="line-11"></a>    <span class='layout'>,</span> <span class='varid'>getUrlContents</span>
+<a name="line-12"></a>    <span class='layout'>,</span> <span class='varid'>getContentLength</span>
+<a name="line-13"></a>    <span class='layout'>,</span> <span class='varid'>guessDocEncoding</span>
+<a name="line-14"></a>    <span class='layout'>,</span> <span class='varid'>runInLocalURIContext</span>
+<a name="line-15"></a>    <span class='layout'>,</span> <span class='varid'>runInNewURIContext</span>
+<a name="line-16"></a>    <span class='layout'>,</span> <span class='varid'>getBaseURI</span>
+<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>setBaseURI</span>
+<a name="line-18"></a>    <span class='layout'>,</span> <span class='varid'>getAbsolutURI</span>
+<a name="line-19"></a>    <span class='layout'>,</span> <span class='varid'>isStandaloneDocument</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>
+<a name="line-24"></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'>XmlTree</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'>XmlState</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'>Parser</span><span class='varop'>.</span><span class='conid'>DefaultURI</span>
+<a name="line-29"></a>    <span class='layout'>(</span> <span class='varid'>setDefaultURI</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'>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'>XmlParser</span>
+<a name="line-33"></a>    <span class='layout'>(</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</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'>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'>getDecodingFct</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>guessEncoding</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNL</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'>XmlOutput</span>
+<a name="line-45"></a>    <span class='layout'>(</span> <span class='varid'>traceTree</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>traceSource</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>traceMsg</span>
+<a name="line-48"></a>    <span class='layout'>)</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'>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'>ProtocolHandler</span>
+<a name="line-51"></a>    <span class='layout'>(</span> <span class='varid'>getProtocolHandler</span>
+<a name="line-52"></a>    <span class='layout'>)</span>
+<a name="line-53"></a>
+<a name="line-54"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-55"></a><span class='comment'>--</span>
+<a name="line-56"></a><span class='comment'>-- URI manipulation</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-59"></a>    <span class='layout'>(</span> <span class='varid'>parseURIReference</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>relativeTo</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>uriScheme</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'>--</span>
+<a name="line-66"></a><span class='comment'>-- utilities</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-69"></a>
+<a name="line-70"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-71"></a><span class='comment'>--</span>
+<a name="line-72"></a><span class='comment'>-- filter for reading the content</span>
+<a name="line-73"></a><span class='comment'>-- input: a root node with arguments in tag attribute list</span>
+<a name="line-74"></a><span class='comment'>-- and without any children.</span>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='comment'>-- attribute a_source   ("source")   for input file or uri</span>
+<a name="line-77"></a><span class='comment'>--</span>
+<a name="line-78"></a><span class='comment'>-- attribute a_encoding ("encoding") for encoding scheme</span>
+<a name="line-79"></a><span class='comment'>--</span>
+<a name="line-80"></a><span class='comment'>-- attribute a_proxy    ("proxy")    for proxy tob be used in http access</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="getXmlContents'"></a><span class='definition'>getXmlContents'</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-83"></a><span class='definition'>getXmlContents'</span> <span class='varid'>parseEncodingSpec</span>
+<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='varid'>getContent'</span>
+<a name="line-85"></a>      <span class='varop'>`whenM`</span> <span class='varid'>isRoot</span>
+<a name="line-86"></a>      <span class='keyword'>where</span>
+<a name="line-87"></a>      <span class='varid'>getContent'</span> <span class='varid'>t'</span>
+<a name="line-88"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>setStatus</span> <span class='varid'>c_ok</span> <span class='str'>"getXmlContents"</span><span class='layout'>)</span>
+<a name="line-89"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-90"></a>	      <span class='varid'>getUrlContents</span>
+<a name="line-91"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-92"></a>	      <span class='varid'>liftF</span> <span class='varid'>parseEncodingSpec</span>
+<a name="line-93"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-94"></a>	      <span class='varid'>guessDocEncoding</span>
+<a name="line-95"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-96"></a>	      <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"getXmlContents: content read and decoded from "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>input'</span><span class='layout'>)</span>
+<a name="line-97"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-98"></a>	      <span class='varid'>traceTree</span>
+<a name="line-99"></a>	      <span class='varop'>.&gt;&gt;</span>
+<a name="line-100"></a>	      <span class='varid'>traceSource</span>
+<a name="line-101"></a>	    <span class='layout'>)</span> <span class='varid'>t'</span>
+<a name="line-102"></a>	    <span class='keyword'>where</span>
+<a name="line-103"></a>	    <span class='varid'>input'</span> <span class='keyglyph'>=</span> <span class='varid'>valueOf</span> <span class='varid'>a_source</span> <span class='varid'>t'</span>
+<a name="line-104"></a>
+<a name="line-105"></a><span class='comment'>-- |</span>
+<a name="line-106"></a><span class='comment'>-- filter for reading the content of a XML document</span>
+<a name="line-107"></a><span class='comment'>--</span>
+<a name="line-108"></a><span class='comment'>-- input is a root node with the source as an attibute</span>
+<a name="line-109"></a><span class='comment'>-- the text is read, the encoding scheme is parsed and selected</span>
+<a name="line-110"></a><span class='comment'>-- and the input is translated into the internal UTF-8 string representation</span>
+<a name="line-111"></a>
+<a name="line-112"></a><a name="getXmlContents"></a><span class='definition'>getXmlContents</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-113"></a><span class='definition'>getXmlContents</span>
+<a name="line-114"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-115"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-116"></a>      <span class='varid'>setBaseURIFilter</span>
+<a name="line-117"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-118"></a>      <span class='varid'>setStandAloneFilter</span>
+<a name="line-119"></a>
+<a name="line-120"></a><span class='comment'>-- |</span>
+<a name="line-121"></a><span class='comment'>-- filter for reading the content of an external XML entity</span>
+<a name="line-122"></a><span class='comment'>--</span>
+<a name="line-123"></a><span class='comment'>--</span>
+<a name="line-124"></a><span class='comment'>-- see also : 'getXmlContents'</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="getXmlEntityContents"></a><span class='definition'>getXmlEntityContents</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-127"></a><span class='definition'>getXmlEntityContents</span>
+<a name="line-128"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-129"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-130"></a>      <span class='varid'>liftF</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span><span class='layout'>)</span>	<span class='comment'>-- remove encoding spec, it's not part of the entity value</span>
+<a name="line-131"></a>      <span class='varop'>.&gt;&gt;</span> 
+<a name="line-132"></a>      <span class='varid'>setBaseURIFilter</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-135"></a>
+<a name="line-136"></a><a name="setBaseURIFilter"></a><span class='definition'>setBaseURIFilter</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-137"></a><span class='definition'>setBaseURIFilter</span>
+<a name="line-138"></a>    <span class='keyglyph'>=</span> <span class='varid'>performAction</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>setBaseURI</span> <span class='layout'>(</span><span class='varid'>valueOf</span> <span class='varid'>transferURI</span> <span class='varid'>t</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-139"></a>      <span class='varop'>`whenM`</span> <span class='varid'>isRoot</span>
+<a name="line-140"></a>
+<a name="line-141"></a><span class='comment'>-- |</span>
+<a name="line-142"></a><span class='comment'>-- filter command for saving and restoring</span>
+<a name="line-143"></a><span class='comment'>-- the base URI</span>
+<a name="line-144"></a><span class='comment'>--</span>
+<a name="line-145"></a><span class='comment'>--    * 1.parameter f :  the filter that possible changes the base URI</span>
+<a name="line-146"></a><span class='comment'>--</span>
+<a name="line-147"></a><span class='comment'>--</span>
+<a name="line-148"></a><span class='comment'>--    - returns : a filter with the same effect as f, that restores the base URI after application of f</span>
+<a name="line-149"></a>
+<a name="line-150"></a><a name="runInLocalURIContext"></a><span class='definition'>runInLocalURIContext</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-151"></a><span class='definition'>runInLocalURIContext</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-152"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-153"></a>      <span class='varid'>oldContext</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getBaseURI</span>
+<a name="line-154"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"runInLocalURIContext: save base URI "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>oldContext</span><span class='layout'>)</span>
+<a name="line-155"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-156"></a>      <span class='varid'>setBaseURI</span> <span class='varid'>oldContext</span>
+<a name="line-157"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"runInLocalURIContext: restore base URI "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>oldContext</span><span class='layout'>)</span>
+<a name="line-158"></a>      <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-159"></a>
+<a name="line-160"></a><span class='comment'>-- |</span>
+<a name="line-161"></a><span class='comment'>-- filter command for running an action in a new URI context</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="runInNewURIContext"></a><span class='definition'>runInNewURIContext</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-164"></a><span class='definition'>runInNewURIContext</span> <span class='varid'>uri</span> <span class='varid'>f</span>
+<a name="line-165"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span>
+<a name="line-166"></a>	<span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-167"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-168"></a>	<span class='keyglyph'>=</span> <span class='varid'>runInLocalURIContext</span>
+<a name="line-169"></a>	  <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-170"></a>		     <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"runInNewURIContext: new base URI "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-171"></a>		     <span class='varid'>setBaseURI</span> <span class='varid'>uri</span>
+<a name="line-172"></a>		     <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-173"></a>		   <span class='layout'>)</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'>-- |</span>
+<a name="line-178"></a><span class='comment'>-- guessEncoding uses encoding attribute and content</span>
+<a name="line-179"></a><span class='comment'>-- to determine the encoding scheme.</span>
+<a name="line-180"></a><span class='comment'>--</span>
+<a name="line-181"></a><span class='comment'>-- it's assumed that an encoding spec has been tried to parse before guessing the encoding.</span>
+<a name="line-182"></a><span class='comment'>--</span>
+<a name="line-183"></a><span class='comment'>-- UTF-8 is the default encoding</span>
+<a name="line-184"></a><span class='comment'>--</span>
+<a name="line-185"></a><span class='comment'>-- other supported encodings are ISO-8859-1 (also known as ISO-Latin-1),</span>
+<a name="line-186"></a><span class='comment'>-- US-ASCII, UTF-16 or ISO-10646-UCS-2, UTF-16BE, UTF-16LE</span>
+<a name="line-187"></a>
+<a name="line-188"></a><a name="guessDocEncoding"></a><span class='definition'>guessDocEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-189"></a><span class='definition'>guessDocEncoding</span>
+<a name="line-190"></a>    <span class='keyglyph'>=</span> <span class='varid'>addDocEncoding</span>
+<a name="line-191"></a>      <span class='varop'>`whenM`</span> <span class='varid'>isRoot</span>
+<a name="line-192"></a>    <span class='keyword'>where</span>
+<a name="line-193"></a>    <span class='varid'>addDocEncoding</span> <span class='varid'>n'</span>
+<a name="line-194"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-195"></a>	  <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"guessDocEncoding: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>guess</span><span class='layout'>)</span>
+<a name="line-196"></a>	  <span class='layout'>(</span> <span class='varid'>encFilter</span> <span class='layout'>(</span><span class='varid'>getDecodingFct</span> <span class='varid'>guess</span><span class='layout'>)</span>
+<a name="line-197"></a>	    <span class='varop'>.&gt;&gt;</span>
+<a name="line-198"></a>	    <span class='varid'>issueError</span>
+<a name="line-199"></a>	    <span class='varop'>.&gt;&gt;</span>
+<a name="line-200"></a>	    <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='varid'>transferEncoding</span> <span class='varid'>guess</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varid'>n'</span>
+<a name="line-201"></a>	  <span class='keyword'>where</span>
+<a name="line-202"></a>	  <span class='varid'>guess</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-203"></a>	  <span class='varid'>guess</span>	<span class='keyglyph'>=</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>
+<a name="line-204"></a>		  <span class='varop'>$</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>guessEncoding</span> <span class='varop'>.</span> <span class='varid'>showXText</span> <span class='varop'>.</span> <span class='varid'>getChildren</span><span class='layout'>)</span> <span class='varid'>n'</span>
+<a name="line-205"></a>		    <span class='layout'>,</span> <span class='varid'>valueOf</span> <span class='varid'>transferEncoding</span> <span class='varid'>n'</span>
+<a name="line-206"></a>		    <span class='layout'>,</span> <span class='varid'>valueOf</span> <span class='varid'>a_encoding</span> <span class='varid'>n'</span>
+<a name="line-207"></a>		    <span class='layout'>,</span> <span class='varid'>utf8</span>
+<a name="line-208"></a>		    <span class='keyglyph'>]</span>
+<a name="line-209"></a>	  <span class='varid'>encFilter</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fct</span><span class='layout'>)</span>
+<a name="line-210"></a>	      <span class='keyglyph'>=</span> <span class='varid'>decodeDoc</span> <span class='varid'>fct</span>
+<a name="line-211"></a>
+<a name="line-212"></a>	  <span class='varid'>encFilter</span> <span class='conid'>Nothing</span>
+<a name="line-213"></a>	      <span class='keyglyph'>=</span> <span class='varid'>addFatal</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'>guess</span><span class='layout'>)</span>
+<a name="line-214"></a>
+<a name="line-215"></a>	  <span class='varid'>decodeDoc</span> <span class='varid'>df</span> <span class='varid'>n''</span>
+<a name="line-216"></a>	      <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>errs</span>	<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>normalizeNL</span> <span class='varid'>res</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n''</span>
+<a name="line-217"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xtext</span> <span class='str'>""</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-218"></a>				    <span class='varop'>.&gt;&gt;</span>
+<a name="line-219"></a>				    <span class='layout'>(</span> <span class='varid'>issueDecodingErrs</span>
+<a name="line-220"></a>				      <span class='varop'>+++&gt;&gt;</span>
+<a name="line-221"></a>				      <span class='varid'>addFatal</span> <span class='str'>"decoding errors detected"</span>
+<a name="line-222"></a>				    <span class='layout'>)</span>
+<a name="line-223"></a>				  <span class='layout'>)</span> <span class='varid'>n''</span>
+<a name="line-224"></a>	      <span class='keyword'>where</span>
+<a name="line-225"></a>	      <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>n''</span>
+<a name="line-226"></a>	      <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>errs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>df</span> <span class='varid'>str</span>
+<a name="line-227"></a>	      <span class='varid'>issueDecodingErrs</span> <span class='keyglyph'>=</span> <span class='varid'>catM</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>issueErr</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>guess</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='varop'>$</span> <span class='varid'>errs</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="getDefaultURI"></a><span class='definition'>getDefaultURI</span>	<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-232"></a><span class='definition'>getDefaultURI</span>
+<a name="line-233"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-234"></a>      <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>transferDefaultURI</span>
+<a name="line-235"></a>      <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>uri</span>
+<a name="line-236"></a>	 <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-237"></a>	      <span class='varid'>setDefaultURI</span>
+<a name="line-238"></a>	      <span class='varid'>getDefaultURI</span>
+<a name="line-239"></a>	 <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>uri</span>
+<a name="line-240"></a>
+<a name="line-241"></a><span class='comment'>-- |</span>
+<a name="line-242"></a><span class='comment'>-- set the base URI, all other URIs are handled relative to this base URI</span>
+<a name="line-243"></a><span class='comment'>--</span>
+<a name="line-244"></a><span class='comment'>-- the default base URI is @file:\/\/\/\&lt;current-working-dir\&gt;\/@</span>
+<a name="line-245"></a><span class='comment'>--</span>
+<a name="line-246"></a><span class='comment'>-- see also : 'getBaseURI'</span>
+<a name="line-247"></a>
+<a name="line-248"></a><a name="setBaseURI"></a><span class='definition'>setBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-249"></a><span class='definition'>setBaseURI</span> <span class='varid'>str</span>
+<a name="line-250"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-251"></a>      <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"setBaseURI: new base URI: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>str</span><span class='layout'>)</span>
+<a name="line-252"></a>      <span class='varid'>setSysParam</span> <span class='varid'>transferURI</span> <span class='varid'>str</span>
+<a name="line-253"></a>
+<a name="line-254"></a><span class='comment'>-- |</span>
+<a name="line-255"></a><span class='comment'>-- read the current base URI</span>
+<a name="line-256"></a><span class='comment'>--</span>
+<a name="line-257"></a><span class='comment'>-- see also : 'setBaseURI'</span>
+<a name="line-258"></a>
+<a name="line-259"></a><a name="getBaseURI"></a><span class='definition'>getBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-260"></a><span class='definition'>getBaseURI</span>
+<a name="line-261"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-262"></a>      <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>transferURI</span>
+<a name="line-263"></a>      <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>uri</span>
+<a name="line-264"></a>	 <span class='keyword'>then</span> <span class='keyword'>do</span>
+<a name="line-265"></a>	      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getDefaultURI</span>
+<a name="line-266"></a>	      <span class='varid'>setBaseURI</span> <span class='varid'>res</span>
+<a name="line-267"></a>	      <span class='varid'>getBaseURI</span>
+<a name="line-268"></a>	 <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>uri</span>
+<a name="line-269"></a>
+<a name="line-270"></a><span class='comment'>-- |</span>
+<a name="line-271"></a><span class='comment'>-- transform an URI into an absolut URI using the current base URI</span>
+<a name="line-272"></a><span class='comment'>--</span>
+<a name="line-273"></a><span class='comment'>--</span>
+<a name="line-274"></a><span class='comment'>--    * 1.parameter uri :  the URI as string</span>
+<a name="line-275"></a><span class='comment'>--</span>
+<a name="line-276"></a><span class='comment'>--</span>
+<a name="line-277"></a><span class='comment'>--    - returns : the absolut URI as string or \"\" in case of an error</span>
+<a name="line-278"></a>
+<a name="line-279"></a><a name="getAbsolutURI"></a><span class='definition'>getAbsolutURI</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-280"></a><span class='definition'>getAbsolutURI</span> <span class='varid'>uri</span>
+<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-282"></a>      <span class='varid'>baseUri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getBaseURI</span>
+<a name="line-283"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>expandURI</span> <span class='varid'>uri</span> <span class='varid'>baseUri</span>
+<a name="line-284"></a>
+<a name="line-285"></a><a name="expandURI"></a><span class='definition'>expandURI</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-286"></a><span class='definition'>expandURI</span> <span class='varid'>uri</span> <span class='varid'>base</span>
+<a name="line-287"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>$</span> <span class='varid'>expand</span>
+<a name="line-288"></a>    <span class='keyword'>where</span>
+<a name="line-289"></a>    <span class='varid'>expand</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-290"></a>	     <span class='varid'>base'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>
+<a name="line-291"></a>	     <span class='varid'>uri'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>
+<a name="line-292"></a>	     <span class='varid'>abs'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>relativeTo</span> <span class='varid'>uri'</span> <span class='varid'>base'</span>
+<a name="line-293"></a>	     <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>show</span> <span class='varid'>abs'</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><a name="setStandAloneFilter"></a><span class='definition'>setStandAloneFilter</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-298"></a><span class='definition'>setStandAloneFilter</span>
+<a name="line-299"></a>    <span class='keyglyph'>=</span> <span class='varid'>performAction</span> <span class='varid'>setStandAlone</span>
+<a name="line-300"></a>      <span class='keyword'>where</span>
+<a name="line-301"></a>      <span class='varid'>setStandAlone</span> <span class='varid'>t</span>
+<a name="line-302"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-303"></a>	    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>standalone</span>
+<a name="line-304"></a>	       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-305"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>
+<a name="line-306"></a>		    <span class='varid'>trace</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"setStandAloneFilter: standalone="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>standaloneVal</span><span class='layout'>)</span>
+<a name="line-307"></a>		    <span class='varid'>setSysParam</span> <span class='varid'>a_standalone</span> <span class='varid'>standaloneVal</span>
+<a name="line-308"></a>	    <span class='keyword'>where</span>
+<a name="line-309"></a>	    <span class='varid'>standalone</span>	<span class='keyglyph'>=</span> <span class='varid'>getValue</span> <span class='varid'>a_standalone</span> <span class='varid'>t</span>
+<a name="line-310"></a>	    <span class='varid'>standaloneVal</span>	<span class='keyglyph'>=</span> <span class='varid'>showXText</span> <span class='varid'>standalone</span>
+<a name="line-311"></a>
+<a name="line-312"></a><span class='comment'>-- |</span>
+<a name="line-313"></a><span class='comment'>-- predicate for testing the standalone document attribute</span>
+<a name="line-314"></a>
+<a name="line-315"></a><a name="isStandaloneDocument"></a><span class='definition'>isStandaloneDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>XState</span> <span class='varid'>state</span> <span class='conid'>Bool</span>
+<a name="line-316"></a><span class='definition'>isStandaloneDocument</span>
+<a name="line-317"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-318"></a>      <span class='varid'>val</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getSysParam</span> <span class='varid'>a_standalone</span>
+<a name="line-319"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>val</span> <span class='varop'>==</span> <span class='str'>"yes"</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'>-- the hard io operations</span>
+<a name="line-325"></a><span class='comment'>--</span>
+<a name="line-326"></a><span class='comment'>-- for reading a file or accessing a document via http</span>
+<a name="line-327"></a><span class='comment'>-- input must be a root node with a @source@ attribute specifying the URI</span>
+<a name="line-328"></a>
+<a name="line-329"></a><a name="getUrlContents"></a><span class='definition'>getUrlContents</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>a</span>
+<a name="line-330"></a><span class='definition'>getUrlContents</span>
+<a name="line-331"></a>    <span class='keyglyph'>=</span>  <span class='varid'>getCont</span>
+<a name="line-332"></a>      <span class='varop'>`whenM`</span> <span class='varid'>isRoot</span>
+<a name="line-333"></a>    <span class='keyword'>where</span>
+<a name="line-334"></a>    <span class='varid'>getCont</span> <span class='varid'>n'</span>
+<a name="line-335"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-336"></a>	  <span class='varid'>trace</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"getUrlContent: reading "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span><span class='layout'>)</span>
+<a name="line-337"></a>	  <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getAbsolutURI</span> <span class='varid'>src</span>
+<a name="line-338"></a>	  <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>uri</span>
+<a name="line-339"></a>	     <span class='keyword'>then</span> <span class='varid'>urlErr</span> <span class='layout'>(</span> <span class='str'>"illegal URI for input: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='layout'>)</span>
+<a name="line-340"></a>	     <span class='keyword'>else</span> <span class='keyword'>let</span>
+<a name="line-341"></a>		  <span class='varid'>uri'</span>     <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>
+<a name="line-342"></a>		  <span class='varid'>proto</span>    <span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varop'>.</span> <span class='varid'>uriScheme</span> <span class='varop'>$</span> <span class='varid'>uri'</span>
+<a name="line-343"></a>		  <span class='varid'>handler</span>  <span class='keyglyph'>=</span> <span class='varid'>getProtocolHandler</span> <span class='varid'>proto</span>
+<a name="line-344"></a>		  <span class='keyword'>in</span>
+<a name="line-345"></a>		  <span class='layout'>(</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='varid'>transferProtocol</span> <span class='varid'>proto</span>
+<a name="line-346"></a>			   <span class='varop'>.&gt;</span>
+<a name="line-347"></a>			   <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='varid'>uri</span>
+<a name="line-348"></a>			  <span class='layout'>)</span>
+<a name="line-349"></a>		    <span class='varop'>.&gt;&gt;</span>
+<a name="line-350"></a>		    <span class='varid'>handler</span> <span class='varid'>uri'</span>
+<a name="line-351"></a>		  <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n'</span>
+<a name="line-352"></a>	<span class='keyword'>where</span>
+<a name="line-353"></a>	<span class='varid'>src</span>        <span class='keyglyph'>=</span> <span class='varid'>valueOf</span> <span class='varid'>a_source</span> <span class='varid'>n'</span>
+<a name="line-354"></a>	<span class='varid'>urlErr</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>addFatal</span> <span class='varid'>msg</span> <span class='varid'>n'</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><span class='comment'>-- |</span>
+<a name="line-359"></a><span class='comment'>-- compute the length of the data for a document read previously</span>
+<a name="line-360"></a><span class='comment'>-- by a call of 'getUrlContents. The result is stored as an attribute</span>
+<a name="line-361"></a><span class='comment'>-- value in the document root node. the attribute name is 'a_contentLength'</span>
+<a name="line-362"></a>
+<a name="line-363"></a><a name="getContentLength"></a><span class='definition'>getContentLength</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-364"></a><span class='definition'>getContentLength</span>
+<a name="line-365"></a>    <span class='keyglyph'>=</span> <span class='varid'>addAttrl</span> <span class='varid'>contentLengthAttr</span>
+<a name="line-366"></a>      <span class='varop'>`when`</span> <span class='varid'>isRoot</span>
+<a name="line-367"></a>      <span class='keyword'>where</span>
+<a name="line-368"></a>      <span class='varid'>http_contentLength</span>	<span class='keyglyph'>=</span> <span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='str'>"Content-Length"</span>
+<a name="line-369"></a>
+<a name="line-370"></a>      <span class='varid'>contentLengthAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-371"></a>      <span class='varid'>contentLengthAttr</span> <span class='varid'>t</span>
+<a name="line-372"></a>	  <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>hasAttr</span> <span class='varid'>a_contentLength</span>
+<a name="line-373"></a>		     <span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-374"></a>		   <span class='layout'>,</span> <span class='varid'>hasAttr</span> <span class='varid'>http_contentLength</span>
+<a name="line-375"></a>		     <span class='conop'>:-&gt;</span> <span class='varid'>mkXAttr</span> <span class='varid'>a_contentLength</span> <span class='layout'>(</span><span class='varid'>getValue</span> <span class='varid'>http_contentLength</span><span class='layout'>)</span>
+<a name="line-376"></a>		   <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-377"></a>                     <span class='conop'>:-&gt;</span> <span class='varid'>mkXAttr</span> <span class='varid'>a_contentLength</span> <span class='varid'>getLength</span>
+<a name="line-378"></a>		   <span class='keyglyph'>]</span> <span class='varid'>t</span>
+<a name="line-379"></a>
+<a name="line-380"></a>      <span class='varid'>getLength</span>			<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-381"></a>      <span class='varid'>getLength</span> <span class='varid'>t</span>
+<a name="line-382"></a>	  <span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-383"></a>
+<a name="line-384"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser-XmlParsec.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlParsec.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlParsec.html
@@ -0,0 +1,704 @@
+<!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     : Text.XML.HXT.Parser.XmlParsec
+<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: XmlParsec.hs,v 1.14 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Xml Parsec parser with pure filter interface
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>charData</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>charData'</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>comment</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>pI</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>cDSect</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>document</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>document'</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>prolog</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>xMLDecl</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>xMLDecl'</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>versionInfo</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>misc</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>doctypedecl</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>markupdecl</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>sDDecl</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>element</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>content</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>contentWithTextDecl</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>textDecl</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>encodingDecl</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>xread</span>
+<a name="line-41"></a>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlAttrValue</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlContent</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDocEncodingSpec</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDocument</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDTDPart</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlEncodingSpec</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlEntityEncodingSpec</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlGeneralEntityValue</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlPart</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlText</span>
+<a name="line-52"></a>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>parseNMToken</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>parseName</span>
+<a name="line-55"></a>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</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'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
+<a name="line-61"></a>    <span class='layout'>(</span> <span class='conid'>GenParser</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='conid'>Parser</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>parse</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;?&gt;</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span>
+<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>char</span>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>string</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>eof</span> 
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>between</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>many</span><span class='layout'>,</span> <span class='varid'>many1</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>option</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>try</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>unexpected</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>getPosition</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>getInput</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>sourceName</span>
+<a name="line-76"></a>    <span class='layout'>)</span>
+<a name="line-77"></a>
+<a name="line-78"></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'>ShowXml</span>
+<a name="line-79"></a>    <span class='layout'>(</span> <span class='varid'>xshow</span>
+<a name="line-80"></a>    <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'>Interface</span>
+<a name="line-83"></a>
+<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'>XmlNode</span>
+<a name="line-85"></a>    <span class='layout'>(</span> <span class='varid'>mkElement</span>
+<a name="line-86"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>
+<a name="line-87"></a>    <span class='layout'>,</span> <span class='varid'>mkRoot</span>
+<a name="line-88"></a>    <span class='layout'>,</span> <span class='varid'>mkDTDElem</span>
+<a name="line-89"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>
+<a name="line-90"></a>    <span class='layout'>,</span> <span class='varid'>mkCmt</span>
+<a name="line-91"></a>    <span class='layout'>,</span> <span class='varid'>mkCdata</span>
+<a name="line-92"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-93"></a>    <span class='layout'>,</span> <span class='varid'>mkPi</span>
+<a name="line-94"></a>    <span class='layout'>,</span> <span class='varid'>isText</span>
+<a name="line-95"></a>    <span class='layout'>,</span> <span class='varid'>isRoot</span>
+<a name="line-96"></a>    <span class='layout'>,</span> <span class='varid'>getText</span>
+<a name="line-97"></a>    <span class='layout'>,</span> <span class='varid'>getChildren</span>
+<a name="line-98"></a>    <span class='layout'>,</span> <span class='varid'>getAttrl</span>
+<a name="line-99"></a>    <span class='layout'>,</span> <span class='varid'>getAttrName</span>
+<a name="line-100"></a>    <span class='layout'>,</span> <span class='varid'>changeAttrl</span>
+<a name="line-101"></a>    <span class='layout'>,</span> <span class='varid'>mergeAttrl</span>
+<a name="line-102"></a>    <span class='layout'>)</span>
+<a name="line-103"></a>
+<a name="line-104"></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'>XmlCharParser</span>
+<a name="line-105"></a>    <span class='layout'>(</span> <span class='varid'>xmlChar</span>
+<a name="line-106"></a>    <span class='layout'>)</span>
+<a name="line-107"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>	<span class='keyword'>as</span> <span class='conid'>XT</span>
+<a name="line-108"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDTokenParser</span>	<span class='keyword'>as</span> <span class='conid'>XD</span>
+<a name="line-109"></a>
+<a name="line-110"></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-111"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-114"></a><span class='comment'>--</span>
+<a name="line-115"></a><span class='comment'>-- Character Data (2.4)</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="charData"></a><span class='definition'>charData</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-118"></a><span class='definition'>charData</span>
+<a name="line-119"></a>    <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>charData'</span> <span class='varop'>&lt;|&gt;</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>referenceT</span><span class='layout'>)</span>
+<a name="line-120"></a>
+<a name="line-121"></a><a name="charData'"></a><span class='definition'>charData'</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-122"></a><span class='definition'>charData'</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'>t</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut1</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</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><span class='layout'>)</span> <span class='str'>"]]&gt;"</span>
+<a name="line-125"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varop'>$!</span> <span class='varid'>t</span><span class='layout'>)</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'>--</span>
+<a name="line-130"></a><span class='comment'>-- Comments (2.5)</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="comment"></a><span class='definition'>comment</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='definition'>comment</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-136"></a>	<span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!--"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"--&gt;"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"--"</span><span class='layout'>)</span>
+<a name="line-137"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkCmt</span> <span class='varop'>$!</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-138"></a>      <span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"comment"</span>
+<a name="line-139"></a>
+<a name="line-140"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-141"></a><span class='comment'>--</span>
+<a name="line-142"></a><span class='comment'>-- Processing Instructions</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="pI"></a><span class='definition'>pI</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-145"></a><span class='definition'>pI</span>
+<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;?"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"?&gt;"</span><span class='layout'>)</span>
+<a name="line-147"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-148"></a>	<span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pITarget</span>
+<a name="line-149"></a>	<span class='varid'>p</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-150"></a>			<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>sPace</span>
+<a name="line-151"></a>			<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"?&gt;"</span>
+<a name="line-152"></a>		       <span class='layout'>)</span>
+<a name="line-153"></a>	<span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_value</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>p</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-154"></a>      <span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"processing instruction"</span>
+<a name="line-155"></a>      <span class='keyword'>where</span>
+<a name="line-156"></a>      <span class='varid'>pITarget</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-157"></a>      <span class='varid'>pITarget</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-158"></a>		   <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-159"></a>		   <span class='keyword'>if</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>t_xml</span>
+<a name="line-160"></a>		      <span class='keyword'>then</span> <span class='varid'>unexpected</span> <span class='varid'>n</span>
+<a name="line-161"></a>		      <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-162"></a>		 <span class='layout'>)</span>
+<a name="line-163"></a>
+<a name="line-164"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-165"></a><span class='comment'>--</span>
+<a name="line-166"></a><span class='comment'>-- CDATA Sections (2.7)</span>
+<a name="line-167"></a>
+<a name="line-168"></a><a name="cDSect"></a><span class='definition'>cDSect</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='definition'>cDSect</span>
+<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-172"></a>      <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;![CDATA["</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"]]&gt;"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"]]&gt;"</span><span class='layout'>)</span>
+<a name="line-173"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkCdata</span> <span class='varop'>$!</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-174"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"CDATA section"</span>
+<a name="line-175"></a>
+<a name="line-176"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-177"></a><span class='comment'>--</span>
+<a name="line-178"></a><span class='comment'>-- Document (2.1) and Prolog (2.8)</span>
+<a name="line-179"></a>
+<a name="line-180"></a><a name="document"></a><span class='definition'>document</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-181"></a><span class='definition'>document</span>
+<a name="line-182"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-183"></a>      <span class='varid'>pos</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPosition</span>
+<a name="line-184"></a>      <span class='varid'>dl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>document'</span>
+<a name="line-185"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkRoot</span> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_source</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>sourceName</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-186"></a>		      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_status</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>c_ok</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-187"></a>		      <span class='keyglyph'>]</span> <span class='varid'>dl</span>
+<a name="line-188"></a>
+<a name="line-189"></a><a name="document'"></a><span class='definition'>document'</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-190"></a><span class='definition'>document'</span>
+<a name="line-191"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-192"></a>      <span class='varid'>pl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>prolog</span>
+<a name="line-193"></a>      <span class='varid'>el</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>element</span>
+<a name="line-194"></a>      <span class='varid'>ml</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>misc</span>
+<a name="line-195"></a>      <span class='varid'>eof</span>
+<a name="line-196"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>pl</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>el</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>ml</span><span class='layout'>)</span>
+<a name="line-197"></a>
+<a name="line-198"></a><a name="prolog"></a><span class='definition'>prolog</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-199"></a><span class='definition'>prolog</span>
+<a name="line-200"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-201"></a>      <span class='varid'>xml</span>     <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>xMLDecl'</span>
+<a name="line-202"></a>      <span class='varid'>misc1</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>misc</span>
+<a name="line-203"></a>      <span class='varid'>dtdPart</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>doctypedecl</span>
+<a name="line-204"></a>      <span class='varid'>misc2</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>misc</span>
+<a name="line-205"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>xml</span> <span class='varop'>++</span> <span class='varid'>misc1</span> <span class='varop'>++</span> <span class='varid'>dtdPart</span> <span class='varop'>++</span> <span class='varid'>misc2</span><span class='layout'>)</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="xMLDecl"></a><span class='definition'>xMLDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-208"></a><span class='definition'>xMLDecl</span>
+<a name="line-209"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;?xml"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"?&gt;"</span><span class='layout'>)</span>
+<a name="line-210"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-211"></a>	<span class='varid'>vi</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>versionInfo</span>
+<a name="line-212"></a>	<span class='varid'>ed</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>encodingDecl</span>
+<a name="line-213"></a>	<span class='varid'>sd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>sDDecl</span>
+<a name="line-214"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>
+<a name="line-215"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>vi</span> <span class='varop'>++</span> <span class='varid'>ed</span> <span class='varop'>++</span> <span class='varid'>sd</span><span class='layout'>)</span>
+<a name="line-216"></a>      <span class='layout'>)</span>
+<a name="line-217"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"xml declaration"</span>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="xMLDecl'"></a><span class='definition'>xMLDecl'</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-220"></a><span class='definition'>xMLDecl'</span>
+<a name="line-221"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-222"></a>      <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>xMLDecl</span>
+<a name="line-223"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>t_xml</span><span class='layout'>)</span> <span class='varid'>al</span><span class='keyglyph'>]</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="xMLDecl''"></a><span class='definition'>xMLDecl''</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-226"></a><span class='definition'>xMLDecl''</span>
+<a name="line-227"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-228"></a>      <span class='varid'>al</span>     <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varid'>xMLDecl</span><span class='layout'>)</span>
+<a name="line-229"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkRoot</span> <span class='varid'>al</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-230"></a>
+<a name="line-231"></a><a name="versionInfo"></a><span class='definition'>versionInfo</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-232"></a><span class='definition'>versionInfo</span>
+<a name="line-233"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-234"></a>	<span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-235"></a>	      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-236"></a>	      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>a_version</span>
+<a name="line-237"></a>	    <span class='layout'>)</span>
+<a name="line-238"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>
+<a name="line-239"></a>	<span class='varid'>vi</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>quoted</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>versionNum</span>
+<a name="line-240"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_version</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>vi</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-241"></a>      <span class='layout'>)</span>
+<a name="line-242"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"version info (with quoted version number)"</span>
+<a name="line-243"></a>
+<a name="line-244"></a><a name="misc"></a><span class='definition'>misc</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-245"></a><span class='definition'>misc</span>
+<a name="line-246"></a>    <span class='keyglyph'>=</span> <span class='varid'>comment</span>
+<a name="line-247"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-248"></a>      <span class='varid'>pI</span>
+<a name="line-249"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-250"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-251"></a>	  <span class='varid'>ws</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>sPace</span>
+<a name="line-252"></a>	  <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varid'>ws</span><span class='layout'>)</span>
+<a name="line-253"></a>	<span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>""</span>
+<a name="line-254"></a>      <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'>--</span>
+<a name="line-258"></a><span class='comment'>-- Document Type definition (2.8)</span>
+<a name="line-259"></a>
+<a name="line-260"></a><a name="doctypedecl"></a><span class='definition'>doctypedecl</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-261"></a><span class='definition'>doctypedecl</span>
+<a name="line-262"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!DOCTYPE"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'&gt;'</span><span class='layout'>)</span>
+<a name="line-263"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-264"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-265"></a>	<span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-266"></a>	<span class='varid'>exId</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-267"></a>				  <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-268"></a>				  <span class='varid'>externalID</span>
+<a name="line-269"></a>				<span class='layout'>)</span>
+<a name="line-270"></a>			  <span class='layout'>)</span>
+<a name="line-271"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>
+<a name="line-272"></a>	<span class='varid'>markup</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span>
+<a name="line-273"></a>	          <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-274"></a>		    <span class='varid'>m</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'['</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>']'</span><span class='layout'>)</span> <span class='varid'>markupOrDeclSep</span>
+<a name="line-275"></a>		    <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>
+<a name="line-276"></a>		    <span class='varid'>return</span> <span class='varid'>m</span>
+<a name="line-277"></a>		  <span class='layout'>)</span>
+<a name="line-278"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>exId</span><span class='layout'>)</span> <span class='varid'>markup</span><span class='keyglyph'>]</span>
+<a name="line-279"></a>      <span class='layout'>)</span>
+<a name="line-280"></a>
+<a name="line-281"></a><a name="markupOrDeclSep"></a><span class='definition'>markupOrDeclSep</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-282"></a><span class='definition'>markupOrDeclSep</span>
+<a name="line-283"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-284"></a>	<span class='varid'>ll</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='varid'>markupdecl</span>
+<a name="line-285"></a>		     <span class='varop'>&lt;|&gt;</span>
+<a name="line-286"></a>		     <span class='varid'>declSep</span>
+<a name="line-287"></a>		     <span class='varop'>&lt;|&gt;</span>
+<a name="line-288"></a>		     <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span> <span class='varid'>conditionalSect</span>
+<a name="line-289"></a>		   <span class='layout'>)</span>
+<a name="line-290"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>ll</span><span class='layout'>)</span>
+<a name="line-291"></a>      <span class='layout'>)</span>
+<a name="line-292"></a>
+<a name="line-293"></a><a name="declSep"></a><span class='definition'>declSep</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-294"></a><span class='definition'>declSep</span>
+<a name="line-295"></a>    <span class='keyglyph'>=</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>peReferenceT</span>
+<a name="line-296"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-297"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-298"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-299"></a>	<span class='varid'>return</span> <span class='conid'>[]</span>
+<a name="line-300"></a>      <span class='layout'>)</span>
+<a name="line-301"></a>
+<a name="line-302"></a><a name="markupdecl"></a><span class='definition'>markupdecl</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-303"></a><span class='definition'>markupdecl</span>
+<a name="line-304"></a>    <span class='keyglyph'>=</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span>
+<a name="line-305"></a>      <span class='layout'>(</span> <span class='varid'>pI</span>
+<a name="line-306"></a>	<span class='varop'>&lt;|&gt;</span>
+<a name="line-307"></a>	<span class='varid'>comment</span>
+<a name="line-308"></a>	<span class='varop'>&lt;|&gt;</span>
+<a name="line-309"></a>	<span class='conid'>XD</span><span class='varop'>.</span><span class='varid'>dtdDeclTokenizer</span>
+<a name="line-310"></a>      <span class='layout'>)</span>
+<a name="line-311"></a>
+<a name="line-312"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-313"></a><span class='comment'>--</span>
+<a name="line-314"></a><span class='comment'>-- Standalone Document Declaration (2.9)</span>
+<a name="line-315"></a>
+<a name="line-316"></a><a name="sDDecl"></a><span class='definition'>sDDecl</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-317"></a><span class='definition'>sDDecl</span>
+<a name="line-318"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-319"></a>      <span class='varid'>try</span> <span class='layout'>(</span><span class='keyword'>do</span>
+<a name="line-320"></a>	   <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-321"></a>	   <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>a_standalone</span>
+<a name="line-322"></a>	  <span class='layout'>)</span>
+<a name="line-323"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>
+<a name="line-324"></a>      <span class='varid'>sd</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>quoted</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keywords</span> <span class='keyglyph'>[</span><span class='varid'>v_yes</span><span class='layout'>,</span> <span class='varid'>v_no</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-325"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_standalone</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>sd</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-326"></a>
+<a name="line-327"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-328"></a><span class='comment'>--</span>
+<a name="line-329"></a><span class='comment'>-- element, tags and content (3, 3.1)</span>
+<a name="line-330"></a>
+<a name="line-331"></a><a name="element"></a><span class='definition'>element</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-332"></a><span class='definition'>element</span>
+<a name="line-333"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-334"></a>	<span class='varid'>e</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>elementStart</span>
+<a name="line-335"></a>	<span class='varid'>elementRest</span> <span class='varid'>e</span>
+<a name="line-336"></a>      <span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"element"</span>
+<a name="line-337"></a>
+<a name="line-338"></a><a name="elementStart"></a><span class='definition'>elementStart</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</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'>XmlTrees</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-339"></a><span class='definition'>elementStart</span>
+<a name="line-340"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-341"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-342"></a>		   <span class='varid'>char</span> <span class='chr'>'&lt;'</span>
+<a name="line-343"></a>		   <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-344"></a>		   <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-345"></a>		 <span class='layout'>)</span>
+<a name="line-346"></a>	     <span class='varop'>&lt;?&gt;</span> <span class='str'>"start tag"</span>
+<a name="line-347"></a>	   <span class='layout'>)</span>
+<a name="line-348"></a>      <span class='varid'>ass</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>attrList</span>
+<a name="line-349"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>
+<a name="line-350"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>ass</span><span class='layout'>)</span>
+<a name="line-351"></a>      <span class='keyword'>where</span>
+<a name="line-352"></a>      <span class='varid'>attrList</span>
+<a name="line-353"></a>	  <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-354"></a>			<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-355"></a>			<span class='varid'>attrList'</span>
+<a name="line-356"></a>		      <span class='layout'>)</span>
+<a name="line-357"></a>      <span class='varid'>attrList'</span>
+<a name="line-358"></a>	  <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-359"></a>			<span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>attribute</span>
+<a name="line-360"></a>			<span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>attrList</span>
+<a name="line-361"></a>			<span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='sel'>_v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>a1</span>
+<a name="line-362"></a>			<span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>al</span>
+<a name="line-363"></a>			  <span class='keyword'>then</span> <span class='varid'>unexpected</span> <span class='layout'>(</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'>" occurs twice in attribute list"</span><span class='layout'>)</span>
+<a name="line-364"></a>			  <span class='keyword'>else</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-365"></a>		      <span class='layout'>)</span>
+<a name="line-366"></a>
+<a name="line-367"></a><a name="elementRest"></a><span class='definition'>elementRest</span>	<span class='keyglyph'>::</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'>XmlTrees</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-368"></a><span class='definition'>elementRest</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-369"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-370"></a>	<span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"/&gt;"</span>
+<a name="line-371"></a>	<span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</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'>map</span> <span class='layout'>(</span><span class='varid'>mkA</span> <span class='varop'>$!</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-372"></a>      <span class='layout'>)</span>
+<a name="line-373"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-374"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-375"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>gt</span>
+<a name="line-376"></a>	<span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>content</span>
+<a name="line-377"></a>	<span class='varid'>eTag</span> <span class='varid'>n</span>
+<a name="line-378"></a>	<span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</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'>map</span> <span class='layout'>(</span><span class='varid'>mkA</span> <span class='varop'>$!</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>$!</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-379"></a>      <span class='layout'>)</span>
+<a name="line-380"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"proper attribute list followed by \"/&gt;\" or \"&gt;\""</span>
+<a name="line-381"></a>    <span class='keyword'>where</span>
+<a name="line-382"></a>    <span class='varid'>mkA</span> <span class='layout'>(</span><span class='varid'>n'</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n'</span><span class='layout'>)</span> <span class='varid'>ts'</span>
+<a name="line-383"></a>
+<a name="line-384"></a><a name="eTag"></a><span class='definition'>eTag</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-385"></a><span class='definition'>eTag</span> <span class='varid'>n'</span>
+<a name="line-386"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-387"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>string</span> <span class='str'>"&lt;/"</span> <span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>""</span>
+<a name="line-388"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-389"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>
+<a name="line-390"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>gt</span>
+<a name="line-391"></a>      <span class='keyword'>if</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>n'</span>
+<a name="line-392"></a>	 <span class='keyword'>then</span> <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-393"></a>	 <span class='keyword'>else</span> <span class='varid'>unexpected</span> <span class='layout'>(</span><span class='str'>"illegal end tag &lt;/"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"&gt; found, &lt;/"</span> <span class='varop'>++</span> <span class='varid'>n'</span> <span class='varop'>++</span> <span class='str'>"&gt; expected"</span><span class='layout'>)</span>
+<a name="line-394"></a>
+<a name="line-395"></a><a name="attribute"></a><span class='definition'>attribute</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>
+<a name="line-396"></a><span class='definition'>attribute</span>
+<a name="line-397"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-398"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>
+<a name="line-399"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>
+<a name="line-400"></a>      <span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValueT</span>
+<a name="line-401"></a>      <span class='varid'>return</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-402"></a>
+<a name="line-403"></a><a name="content"></a><span class='definition'>content</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-404"></a><span class='definition'>content</span>
+<a name="line-405"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-406"></a>      <span class='varid'>c1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>charData</span>
+<a name="line-407"></a>      <span class='varid'>cl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span>
+<a name="line-408"></a>	    <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-409"></a>	      <span class='varid'>l</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>element</span>
+<a name="line-410"></a>		     <span class='varop'>&lt;|&gt;</span>
+<a name="line-411"></a>		     <span class='varid'>cDSect</span>
+<a name="line-412"></a>		     <span class='varop'>&lt;|&gt;</span>
+<a name="line-413"></a>		     <span class='varid'>pI</span>
+<a name="line-414"></a>		     <span class='varop'>&lt;|&gt;</span>
+<a name="line-415"></a>		     <span class='varid'>comment</span>
+<a name="line-416"></a>		   <span class='layout'>)</span>
+<a name="line-417"></a>	      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>charData</span>
+<a name="line-418"></a>	      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-419"></a>	    <span class='layout'>)</span>
+<a name="line-420"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='varop'>++</span> <span class='varid'>concat</span> <span class='varid'>cl</span><span class='layout'>)</span>
+<a name="line-421"></a>
+<a name="line-422"></a><a name="contentWithTextDecl"></a><span class='definition'>contentWithTextDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-423"></a><span class='definition'>contentWithTextDecl</span>
+<a name="line-424"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-425"></a>      <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>textDecl</span>
+<a name="line-426"></a>      <span class='varid'>content</span>
+<a name="line-427"></a>
+<a name="line-428"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-429"></a><span class='comment'>--</span>
+<a name="line-430"></a><span class='comment'>-- Conditional Sections (3.4)</span>
+<a name="line-431"></a><span class='comment'>--</span>
+<a name="line-432"></a><span class='comment'>-- conditional sections are parsed in two steps,</span>
+<a name="line-433"></a><span class='comment'>-- first the whole content is detected,</span>
+<a name="line-434"></a><span class='comment'>-- and then, after PE substitution include sections are parsed again</span>
+<a name="line-435"></a>
+<a name="line-436"></a><a name="conditionalSect"></a><span class='definition'>conditionalSect</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-437"></a><span class='definition'>conditionalSect</span>
+<a name="line-438"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-439"></a>      <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!["</span>
+<a name="line-440"></a>      <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='conid'>XD</span><span class='varop'>.</span><span class='varid'>dtdToken</span>
+<a name="line-441"></a>      <span class='varid'>char</span> <span class='chr'>'['</span>
+<a name="line-442"></a>      <span class='varid'>sect</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>condSectCont</span>
+<a name="line-443"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONDSECT</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_value</span><span class='layout'>,</span> <span class='varid'>sect</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-444"></a>    <span class='keyword'>where</span>
+<a name="line-445"></a>
+<a name="line-446"></a>    <span class='varid'>condSectCont</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-447"></a>    <span class='varid'>condSectCont</span>
+<a name="line-448"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-449"></a>	    <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"]]&gt;"</span>
+<a name="line-450"></a>	    <span class='varid'>return</span> <span class='str'>""</span>
+<a name="line-451"></a>	  <span class='layout'>)</span>
+<a name="line-452"></a>          <span class='varop'>&lt;|&gt;</span>
+<a name="line-453"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-454"></a>	    <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;!["</span>
+<a name="line-455"></a>	    <span class='varid'>cs1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>condSectCont</span>
+<a name="line-456"></a>	    <span class='varid'>cs2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>condSectCont</span>
+<a name="line-457"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"&lt;!["</span> <span class='varop'>++</span> <span class='varid'>cs1</span> <span class='varop'>++</span> <span class='str'>"]]&gt;"</span> <span class='varop'>++</span> <span class='varid'>cs2</span><span class='layout'>)</span>
+<a name="line-458"></a>	  <span class='layout'>)</span>
+<a name="line-459"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-460"></a>	  <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-461"></a>	    <span class='varid'>c</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>xmlChar</span>
+<a name="line-462"></a>	    <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>condSectCont</span>
+<a name="line-463"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-464"></a>	  <span class='layout'>)</span>
+<a name="line-465"></a>
+<a name="line-466"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-467"></a><span class='comment'>--</span>
+<a name="line-468"></a><span class='comment'>-- External Entities (4.2.2)</span>
+<a name="line-469"></a>
+<a name="line-470"></a><a name="externalID"></a><span class='definition'>externalID</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Attributes</span>
+<a name="line-471"></a><span class='definition'>externalID</span>
+<a name="line-472"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-473"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_system</span>
+<a name="line-474"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-475"></a>	<span class='varid'>lit</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>
+<a name="line-476"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>lit</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-477"></a>      <span class='layout'>)</span>
+<a name="line-478"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-479"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-480"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_public</span>
+<a name="line-481"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-482"></a>	<span class='varid'>pl</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>pubidLiteral</span>
+<a name="line-483"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-484"></a>	<span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>
+<a name="line-485"></a>	<span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>sl</span><span class='layout'>)</span>
+<a name="line-486"></a>	       <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-487"></a>      <span class='layout'>)</span>
+<a name="line-488"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"SYSTEM or PUBLIC declaration"</span>
+<a name="line-489"></a>
+<a name="line-490"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-491"></a><span class='comment'>--</span>
+<a name="line-492"></a><span class='comment'>-- Text Declaration (4.3.1)</span>
+<a name="line-493"></a>
+<a name="line-494"></a><a name="textDecl"></a><span class='definition'>textDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-495"></a><span class='definition'>textDecl</span>
+<a name="line-496"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"&lt;?xml"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"?&gt;"</span><span class='layout'>)</span>
+<a name="line-497"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-498"></a>	<span class='varid'>vi</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>versionInfo</span>
+<a name="line-499"></a>	<span class='varid'>ed</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>encodingDecl</span>
+<a name="line-500"></a>	<span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>
+<a name="line-501"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>vi</span> <span class='varop'>++</span> <span class='varid'>ed</span><span class='layout'>)</span>
+<a name="line-502"></a>      <span class='layout'>)</span>
+<a name="line-503"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"text declaration"</span>
+<a name="line-504"></a>
+<a name="line-505"></a>
+<a name="line-506"></a><a name="textDecl''"></a><span class='definition'>textDecl''</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-507"></a><span class='definition'>textDecl''</span>
+<a name="line-508"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-509"></a>      <span class='varid'>al</span>    <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varid'>textDecl</span><span class='layout'>)</span>
+<a name="line-510"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkRoot</span> <span class='varid'>al</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-511"></a>
+<a name="line-512"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-513"></a><span class='comment'>--</span>
+<a name="line-514"></a><span class='comment'>-- Encoding Declaration (4.3.3)</span>
+<a name="line-515"></a>
+<a name="line-516"></a><a name="encodingDecl"></a><span class='definition'>encodingDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-517"></a><span class='definition'>encodingDecl</span>
+<a name="line-518"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-519"></a>      <span class='varid'>try</span> <span class='layout'>(</span><span class='keyword'>do</span>
+<a name="line-520"></a>	   <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>
+<a name="line-521"></a>	   <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>a_encoding</span>
+<a name="line-522"></a>	  <span class='layout'>)</span>
+<a name="line-523"></a>      <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>
+<a name="line-524"></a>      <span class='varid'>ed</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>quoted</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>encName</span>
+<a name="line-525"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_encoding</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>ed</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-526"></a>
+<a name="line-527"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-528"></a><span class='comment'>--</span>
+<a name="line-529"></a><span class='comment'>-- the main entry points:</span>
+<a name="line-530"></a><span class='comment'>--	parsing the content of a text node</span>
+<a name="line-531"></a><span class='comment'>--	or parsing the text children from a tag node</span>
+<a name="line-532"></a>
+<a name="line-533"></a><span class='comment'>-- |</span>
+<a name="line-534"></a><span class='comment'>-- the inverse function to 'xshow', (for XML content).</span>
+<a name="line-535"></a><span class='comment'>--</span>
+<a name="line-536"></a><span class='comment'>-- the string parameter is parsed with the XML content parser.</span>
+<a name="line-537"></a><span class='comment'>-- result is the list of trees or in case of an error a single element list with the</span>
+<a name="line-538"></a><span class='comment'>-- error message as node. No entity or character subtitution is done.</span>
+<a name="line-539"></a><span class='comment'>--</span>
+<a name="line-540"></a><span class='comment'>-- see also: 'parseXmlContent'</span>
+<a name="line-541"></a>
+<a name="line-542"></a><a name="xread"></a><span class='definition'>xread</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-543"></a><span class='definition'>xread</span> <span class='varid'>str</span>
+<a name="line-544"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlFromString</span> <span class='varid'>parser</span> <span class='varid'>loc</span> <span class='varid'>str</span>
+<a name="line-545"></a>    <span class='keyword'>where</span>
+<a name="line-546"></a>    <span class='varid'>loc</span> <span class='keyglyph'>=</span> <span class='str'>"string: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>str</span> <span class='varop'>&gt;</span> <span class='num'>40</span> <span class='keyword'>then</span> <span class='varid'>take</span> <span class='num'>40</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>"..."</span> <span class='keyword'>else</span> <span class='varid'>str</span><span class='layout'>)</span>
+<a name="line-547"></a>    <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-548"></a>	     <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>content</span>		<span class='comment'>-- take the content parser for parsing the string</span>
+<a name="line-549"></a>	     <span class='varid'>eof</span>			<span class='comment'>-- and test on everything consumed</span>
+<a name="line-550"></a>	     <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-551"></a>
+<a name="line-552"></a><span class='comment'>-- |</span>
+<a name="line-553"></a><span class='comment'>-- the filter version of 'xread'</span>
+<a name="line-554"></a>
+<a name="line-555"></a><a name="parseXmlContent"></a><span class='definition'>parseXmlContent</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-556"></a><span class='definition'>parseXmlContent</span>
+<a name="line-557"></a>    <span class='keyglyph'>=</span> <span class='varid'>xread</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-558"></a>
+<a name="line-559"></a><span class='comment'>-- |</span>
+<a name="line-560"></a><span class='comment'>-- a more general version of 'parseXmlContent'.</span>
+<a name="line-561"></a><span class='comment'>-- The parser to be used and the context are extra parameter</span>
+<a name="line-562"></a>
+<a name="line-563"></a><a name="parseXmlText"></a><span class='definition'>parseXmlText</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</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-564"></a><span class='definition'>parseXmlText</span> <span class='varid'>p</span> <span class='varid'>loc</span>	<span class='keyglyph'>=</span> <span class='varid'>parseXmlFromString</span> <span class='varid'>p</span> <span class='varid'>loc</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-565"></a>
+<a name="line-566"></a><a name="parseXmlDocument"></a><span class='definition'>parseXmlDocument</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'>XmlTrees</span>
+<a name="line-567"></a><span class='definition'>parseXmlDocument</span>	<span class='keyglyph'>=</span> <span class='varid'>parseXmlFromString</span> <span class='varid'>document'</span>
+<a name="line-568"></a>
+<a name="line-569"></a>
+<a name="line-570"></a><a name="parseXmlFromString"></a><span class='definition'>parseXmlFromString</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-571"></a><span class='definition'>parseXmlFromString</span> <span class='varid'>parser</span> <span class='varid'>loc</span>
+<a name="line-572"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</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'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>loc</span>
+<a name="line-573"></a>
+<a name="line-574"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-575"></a><span class='comment'>--</span>
+<a name="line-576"></a>
+<a name="line-577"></a><a name="removeEncodingSpec"></a><span class='definition'>removeEncodingSpec</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-578"></a><span class='definition'>removeEncodingSpec</span> <span class='varid'>t</span>
+<a name="line-579"></a>    <span class='keyglyph'>|</span> <span class='varid'>isText</span> <span class='varid'>t</span>
+<a name="line-580"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</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'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</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'>mkText</span><span class='layout'>)</span>
+<a name="line-581"></a>	    <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='str'>"remove encoding spec"</span>
+<a name="line-582"></a>	    <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span>
+<a name="line-583"></a>	    <span class='varop'>.</span> <span class='varid'>getText</span>
+<a name="line-584"></a>	  <span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-585"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-586"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>
+<a name="line-587"></a>    <span class='keyword'>where</span>
+<a name="line-588"></a>    <span class='varid'>parser</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-589"></a>    <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-590"></a>	     <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>textDecl</span>
+<a name="line-591"></a>	     <span class='varid'>getInput</span>
+<a name="line-592"></a><span class='comment'>{-
+<a name="line-593"></a>removeEncodingSpec n
+<a name="line-594"></a>    = [n]
+<a name="line-595"></a>-}</span>
+<a name="line-596"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-597"></a>
+<a name="line-598"></a><span class='comment'>-- |</span>
+<a name="line-599"></a><span class='comment'>-- general parser for parsing arbitray parts of a XML document</span>
+<a name="line-600"></a>
+<a name="line-601"></a><a name="parseXmlPart"></a><span class='definition'>parseXmlPart</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-602"></a><span class='definition'>parseXmlPart</span> <span class='varid'>parser</span> <span class='varid'>expected</span> <span class='varid'>context</span> <span class='varid'>t</span>
+<a name="line-603"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlText</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-604"></a>		     <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parser</span>
+<a name="line-605"></a>		     <span class='varid'>eof</span> <span class='varop'>&lt;?&gt;</span> <span class='varid'>expected</span>
+<a name="line-606"></a>		     <span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-607"></a>		   <span class='layout'>)</span> <span class='varid'>context</span>
+<a name="line-608"></a>      <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-609"></a>
+<a name="line-610"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-611"></a>
+<a name="line-612"></a><span class='comment'>-- |</span>
+<a name="line-613"></a><span class='comment'>-- Parser for parts of a DTD</span>
+<a name="line-614"></a>
+<a name="line-615"></a><a name="parseXmlDTDPart"></a><span class='definition'>parseXmlDTDPart</span>	<span class='keyglyph'>::</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-616"></a><span class='definition'>parseXmlDTDPart</span>
+<a name="line-617"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='varid'>markupOrDeclSep</span> <span class='str'>"markup declaration"</span>
+<a name="line-618"></a>
+<a name="line-619"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-620"></a>
+<a name="line-621"></a><span class='comment'>-- |</span>
+<a name="line-622"></a><span class='comment'>-- Parser for general entites</span>
+<a name="line-623"></a>
+<a name="line-624"></a><a name="parseXmlGeneralEntityValue"></a><span class='definition'>parseXmlGeneralEntityValue</span>	<span class='keyglyph'>::</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-625"></a><span class='definition'>parseXmlGeneralEntityValue</span>
+<a name="line-626"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='varid'>content</span> <span class='str'>"general entity value"</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'>-- |</span>
+<a name="line-631"></a><span class='comment'>-- Parser for attribute values</span>
+<a name="line-632"></a>
+<a name="line-633"></a><a name="parseXmlAttrValue"></a><span class='definition'>parseXmlAttrValue</span>	<span class='keyglyph'>::</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-634"></a><span class='definition'>parseXmlAttrValue</span>
+<a name="line-635"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValueT'</span> <span class='str'>"&lt;&amp;"</span><span class='layout'>)</span> <span class='str'>"attribute value"</span>
+<a name="line-636"></a>
+<a name="line-637"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-638"></a>
+<a name="line-639"></a><span class='comment'>-- |</span>
+<a name="line-640"></a><span class='comment'>-- Parser for NMTOKENs</span>
+<a name="line-641"></a>
+<a name="line-642"></a><a name="parseNMToken"></a><span class='definition'>parseNMToken</span>		<span class='keyglyph'>::</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-643"></a><span class='definition'>parseNMToken</span>
+<a name="line-644"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>nmtokenT</span><span class='layout'>)</span> <span class='str'>"nmtoken"</span>
+<a name="line-645"></a>
+<a name="line-646"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-647"></a>
+<a name="line-648"></a><span class='comment'>-- |</span>
+<a name="line-649"></a><span class='comment'>-- Parser for XML names</span>
+<a name="line-650"></a>
+<a name="line-651"></a><a name="parseName"></a><span class='definition'>parseName</span>		<span class='keyglyph'>::</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-652"></a><span class='definition'>parseName</span>
+<a name="line-653"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>nameT</span><span class='layout'>)</span> <span class='str'>"name"</span>
+<a name="line-654"></a>
+<a name="line-655"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-656"></a>
+<a name="line-657"></a><span class='comment'>-- |</span>
+<a name="line-658"></a><span class='comment'>-- try to parse a xml encoding spec.</span>
+<a name="line-659"></a><span class='comment'>--</span>
+<a name="line-660"></a><span class='comment'>--</span>
+<a name="line-661"></a><span class='comment'>--    * 1.parameter encParse :  the parser for the encoding decl</span>
+<a name="line-662"></a><span class='comment'>--</span>
+<a name="line-663"></a><span class='comment'>--    - 2.parameter root :  a document root</span>
+<a name="line-664"></a><span class='comment'>--</span>
+<a name="line-665"></a><span class='comment'>--    - returns : the same tree, but with an additional</span>
+<a name="line-666"></a><span class='comment'>--			  attribute "encoding" in the root node</span>
+<a name="line-667"></a><span class='comment'>--			  in case of a valid encoding spec</span>
+<a name="line-668"></a><span class='comment'>--			  else the unchanged tree</span>
+<a name="line-669"></a>
+<a name="line-670"></a><a name="parseXmlEncodingSpec"></a><span class='definition'>parseXmlEncodingSpec</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-671"></a><span class='definition'>parseXmlEncodingSpec</span> <span class='varid'>encDecl</span> <span class='varid'>x</span>
+<a name="line-672"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span>
+<a name="line-673"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isRoot</span> <span class='varid'>x</span>
+<a name="line-674"></a>	<span class='keyword'>then</span> <span class='varid'>parseEncSpec</span>
+<a name="line-675"></a>	<span class='keyword'>else</span> <span class='varid'>id</span>
+<a name="line-676"></a>      <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>x</span>
+<a name="line-677"></a>    <span class='keyword'>where</span>
+<a name="line-678"></a>    <span class='varid'>parseEncSpec</span> <span class='varid'>r</span>
+<a name="line-679"></a>	<span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span> <span class='varid'>parse</span> <span class='varid'>encDecl</span> <span class='varid'>source</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-680"></a>	  <span class='conid'>Right</span> <span class='varid'>t</span>
+<a name="line-681"></a>	      <span class='keyglyph'>-&gt;</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>mergeAttrl</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>r</span>
+<a name="line-682"></a>	  <span class='conid'>Left</span> <span class='keyword'>_</span>
+<a name="line-683"></a>	      <span class='keyglyph'>-&gt;</span> <span class='varid'>r</span>
+<a name="line-684"></a>	<span class='keyword'>where</span>
+<a name="line-685"></a>	<span class='comment'>-- arrow \"getAttrValue a_source\" programmed on the tree level (oops!)</span>
+<a name="line-686"></a>	<span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>getChildren</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'>a_source</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>qualifiedName</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>r</span>
+<a name="line-687"></a>
+<a name="line-688"></a><a name="parseXmlEntityEncodingSpec"></a><span class='definition'>parseXmlEntityEncodingSpec</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-689"></a><span class='definition'>parseXmlEntityEncodingSpec</span>	<span class='keyglyph'>=</span> <span class='varid'>parseXmlEncodingSpec</span> <span class='varid'>textDecl''</span>
+<a name="line-690"></a>
+<a name="line-691"></a><a name="parseXmlDocEncodingSpec"></a><span class='definition'>parseXmlDocEncodingSpec</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-692"></a><span class='definition'>parseXmlDocEncodingSpec</span>		<span class='keyglyph'>=</span> <span class='varid'>parseXmlEncodingSpec</span> <span class='varid'>xMLDecl''</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-Parser-XmlTokenParser.html b/doc/hdoc/src/Text-XML-HXT-Parser-XmlTokenParser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser-XmlTokenParser.html
@@ -0,0 +1,560 @@
+<!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     : Text.XML.HXT.Parser.XmlTokenParser
+<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: XmlTokenParser.hs,v 1.3 2005/09/02 17:09:39 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Parsec parser for XML tokens
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>allBut</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>allBut1</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>asciiLetter</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>attrValue</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>bar</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>charRef</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>comma</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>dq</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>encName</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>entityRef</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>entityValue</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>eq</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>gt</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>keyword</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>keywords</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>lpar</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>lt</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>name</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>names</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>ncName</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>nmtoken</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>nmtokens</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>peReference</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>pubidLiteral</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>qName</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>quoted</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>reference</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>rpar</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>semi</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>separator</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>singleChar</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>singleChars</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>skipS</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>skipS0</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>sPace</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>sPace0</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>sq</span>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>systemLiteral</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>versionNum</span>
+<a name="line-59"></a>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>concRes</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>mkList</span>
+<a name="line-62"></a>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>nameT</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>nmtokenT</span>
+<a name="line-65"></a>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>entityValueT</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>entityTokensT</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>entityCharT</span>
+<a name="line-69"></a>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>attrValueT</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>attrValueT'</span>
+<a name="line-72"></a>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>referenceT</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>charRefT</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>entityRefT</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>peReferenceT</span>
+<a name="line-77"></a>
+<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>singleCharsT</span>
+<a name="line-79"></a>    <span class='layout'>)</span>
+<a name="line-80"></a><span class='keyword'>where</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'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>
+<a name="line-83"></a>
+<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'>Interface</span>
+<a name="line-85"></a>
+<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'>XmlNode</span>
+<a name="line-87"></a>    <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>
+<a name="line-88"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>
+<a name="line-89"></a>    <span class='layout'>,</span> <span class='varid'>mkCharRef</span>
+<a name="line-90"></a>    <span class='layout'>,</span> <span class='varid'>mkEntityRef</span>
+<a name="line-91"></a>    <span class='layout'>)</span>
+<a name="line-92"></a>
+<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'>Unicode</span>
+<a name="line-94"></a>    <span class='layout'>(</span> <span class='varid'>isXmlChar</span>
+<a name="line-95"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRef</span>
+<a name="line-96"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRefHex</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'>Util</span>
+<a name="line-100"></a>    <span class='layout'>(</span> <span class='varid'>hexStringToInt</span>
+<a name="line-101"></a>    <span class='layout'>,</span> <span class='varid'>decimalStringToInt</span>
+<a name="line-102"></a>    <span class='layout'>)</span>
+<a name="line-103"></a>
+<a name="line-104"></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'>XmlCharParser</span>
+<a name="line-105"></a>    <span class='layout'>(</span> <span class='varid'>xmlNameChar</span>
+<a name="line-106"></a>    <span class='layout'>,</span> <span class='varid'>xmlNameStartChar</span>
+<a name="line-107"></a>    <span class='layout'>,</span> <span class='varid'>xmlNCNameChar</span>
+<a name="line-108"></a>    <span class='layout'>,</span> <span class='varid'>xmlNCNameStartChar</span>
+<a name="line-109"></a>    <span class='layout'>,</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-110"></a>    <span class='layout'>)</span>
+<a name="line-111"></a>
+<a name="line-112"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>-- Character (2.2) and White Space (2.3)</span>
+<a name="line-115"></a><span class='comment'>--</span>
+<a name="line-116"></a><span class='comment'>-- Unicode parsers in module XmlCharParser</span>
+<a name="line-117"></a>
+<a name="line-118"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="sPace"></a><span class='definition'>sPace</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-121"></a><span class='definition'>sPace</span>
+<a name="line-122"></a>    <span class='keyglyph'>=</span> <span class='varid'>many1</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="sPace0"></a><span class='definition'>sPace0</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-125"></a><span class='definition'>sPace0</span>
+<a name="line-126"></a>    <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="skipS"></a><span class='definition'>skipS</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-129"></a><span class='definition'>skipS</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='varid'>skipMany1</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-131"></a>
+<a name="line-132"></a><a name="skipS0"></a><span class='definition'>skipS0</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-133"></a><span class='definition'>skipS0</span>
+<a name="line-134"></a>    <span class='keyglyph'>=</span> <span class='varid'>skipMany</span> <span class='varid'>xmlSpaceChar</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-137"></a><span class='comment'>--</span>
+<a name="line-138"></a><span class='comment'>-- Names and Tokens (2.3)</span>
+<a name="line-139"></a>
+<a name="line-140"></a><a name="asciiLetter"></a><span class='definition'>asciiLetter</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>
+<a name="line-141"></a><span class='definition'>asciiLetter</span>
+<a name="line-142"></a>    <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>'A'</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>
+<a name="line-143"></a>			<span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>'a'</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-144"></a>	      <span class='layout'>)</span>
+<a name="line-145"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"ASCII letter"</span>
+<a name="line-146"></a>
+<a name="line-147"></a><a name="name"></a><span class='definition'>name</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-148"></a><span class='definition'>name</span>
+<a name="line-149"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-150"></a>	    <span class='varid'>s1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>xmlNameStartChar</span>
+<a name="line-151"></a>	    <span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>xmlNameChar</span>
+<a name="line-152"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>sl</span><span class='layout'>)</span>
+<a name="line-153"></a>	  <span class='layout'>)</span>
+<a name="line-154"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"Name"</span>
+<a name="line-155"></a>
+<a name="line-156"></a><span class='comment'>-- Namespaces in XML: Rules [4-5] NCName:</span>
+<a name="line-157"></a>
+<a name="line-158"></a><a name="ncName"></a><span class='definition'>ncName</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-159"></a><span class='definition'>ncName</span>
+<a name="line-160"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-161"></a>	    <span class='varid'>s1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>xmlNCNameStartChar</span>
+<a name="line-162"></a>	    <span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>xmlNCNameChar</span>
+<a name="line-163"></a>	    <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>sl</span><span class='layout'>)</span>
+<a name="line-164"></a>	  <span class='layout'>)</span>
+<a name="line-165"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"NCName"</span>
+<a name="line-166"></a>
+<a name="line-167"></a><span class='comment'>-- Namespaces in XML: Rules [6-8] QName:</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="qName"></a><span class='definition'>qName</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</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-170"></a><span class='definition'>qName</span>
+<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-172"></a>      <span class='varid'>s1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ncName</span>
+<a name="line-173"></a>      <span class='varid'>s2</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-174"></a>			<span class='varid'>char</span> <span class='chr'>':'</span>
+<a name="line-175"></a>			<span class='varid'>ncName</span>
+<a name="line-176"></a>		      <span class='layout'>)</span>
+<a name="line-177"></a>      <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>s2</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="nmtoken"></a><span class='definition'>nmtoken</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-180"></a><span class='definition'>nmtoken</span>
+<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='varid'>xmlNameChar</span><span class='layout'>)</span>
+<a name="line-182"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"Nmtoken"</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="names"></a><span class='definition'>names</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-185"></a><span class='definition'>names</span>
+<a name="line-186"></a>    <span class='keyglyph'>=</span> <span class='varid'>sepBy1</span> <span class='varid'>name</span> <span class='varid'>sPace</span>
+<a name="line-187"></a>
+<a name="line-188"></a><a name="nmtokens"></a><span class='definition'>nmtokens</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-189"></a><span class='definition'>nmtokens</span>
+<a name="line-190"></a>    <span class='keyglyph'>=</span> <span class='varid'>sepBy1</span> <span class='varid'>nmtoken</span> <span class='varid'>sPace</span>
+<a name="line-191"></a>
+<a name="line-192"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-193"></a><span class='comment'>--</span>
+<a name="line-194"></a><span class='comment'>-- Literals (2.3)</span>
+<a name="line-195"></a>
+<a name="line-196"></a><a name="singleChar"></a><span class='definition'>singleChar</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>
+<a name="line-197"></a><span class='definition'>singleChar</span> <span class='varid'>notAllowed</span>
+<a name="line-198"></a>    <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isXmlChar</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='varid'>notAllowed</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="singleChars"></a><span class='definition'>singleChars</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-201"></a><span class='definition'>singleChars</span> <span class='varid'>notAllowed</span>
+<a name="line-202"></a>    <span class='keyglyph'>=</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>singleChar</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>
+<a name="line-203"></a>
+<a name="line-204"></a><a name="entityValue"></a><span class='definition'>entityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-205"></a><span class='definition'>entityValue</span>
+<a name="line-206"></a>    <span class='keyglyph'>=</span> <span class='varid'>attrValue</span>
+<a name="line-207"></a>
+<a name="line-208"></a><a name="attrValueDQ"></a><span class='definition'>attrValueDQ</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-209"></a><span class='definition'>attrValueDQ</span>
+<a name="line-210"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>concRes</span> <span class='varop'>$</span> <span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>attrChar</span> <span class='str'>"&lt;&amp;\""</span><span class='layout'>)</span>
+<a name="line-211"></a>
+<a name="line-212"></a><a name="attrValueSQ"></a><span class='definition'>attrValueSQ</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-213"></a><span class='definition'>attrValueSQ</span>
+<a name="line-214"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>concRes</span> <span class='varop'>$</span> <span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>attrChar</span> <span class='str'>"&lt;&amp;\'"</span><span class='layout'>)</span>
+<a name="line-215"></a>
+<a name="line-216"></a><a name="attrValue"></a><span class='definition'>attrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-217"></a><span class='definition'>attrValue</span>
+<a name="line-218"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-219"></a>	<span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>attrValueDQ</span>
+<a name="line-220"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"\""</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>"\""</span><span class='layout'>)</span>
+<a name="line-221"></a>      <span class='layout'>)</span>
+<a name="line-222"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-223"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-224"></a>	<span class='varid'>v</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>attrValueSQ</span>
+<a name="line-225"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"'"</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>"'"</span><span class='layout'>)</span>
+<a name="line-226"></a>      <span class='layout'>)</span>
+<a name="line-227"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"attribute value (in quotes)"</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="attrChar"></a><span class='definition'>attrChar</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-230"></a><span class='definition'>attrChar</span> <span class='varid'>notAllowed</span>
+<a name="line-231"></a>    <span class='keyglyph'>=</span> <span class='varid'>reference</span>
+<a name="line-232"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-233"></a>      <span class='varid'>mkList</span> <span class='layout'>(</span><span class='varid'>singleChar</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>
+<a name="line-234"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"legal attribute character or reference"</span>
+<a name="line-235"></a>
+<a name="line-236"></a>
+<a name="line-237"></a><a name="systemLiteral"></a><span class='definition'>systemLiteral</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-238"></a><span class='definition'>systemLiteral</span>
+<a name="line-239"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>noneOf</span> <span class='str'>"\""</span><span class='layout'>)</span>
+<a name="line-240"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-241"></a>      <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>noneOf</span> <span class='str'>"\'"</span><span class='layout'>)</span>
+<a name="line-242"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"system literal (in quotes)"</span>
+<a name="line-243"></a>
+<a name="line-244"></a><a name="pubidLiteral"></a><span class='definition'>pubidLiteral</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-245"></a><span class='definition'>pubidLiteral</span>
+<a name="line-246"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>pubidChar</span> <span class='str'>"\'"</span><span class='layout'>)</span>
+<a name="line-247"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-248"></a>      <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>pubidChar</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-249"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"pubid literal (in quotes)"</span>
+<a name="line-250"></a>      <span class='keyword'>where</span>
+<a name="line-251"></a>      <span class='varid'>pubidChar</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>
+<a name="line-252"></a>      <span class='varid'>pubidChar</span> <span class='varid'>quoteChars</span>
+<a name="line-253"></a>	  <span class='keyglyph'>=</span> <span class='varid'>asciiLetter</span>
+<a name="line-254"></a>	    <span class='varop'>&lt;|&gt;</span>
+<a name="line-255"></a>	    <span class='varid'>digit</span>
+<a name="line-256"></a>	    <span class='varop'>&lt;|&gt;</span>
+<a name="line-257"></a>	    <span class='varid'>oneOf</span> <span class='str'>" \r\n"</span>		<span class='comment'>-- no "\t" allowed, so xmlSpaceChar parser not used</span>
+<a name="line-258"></a>	    <span class='varop'>&lt;|&gt;</span>
+<a name="line-259"></a>	    <span class='varid'>oneOf</span> <span class='str'>"-()+,./:=?;!*#@$_%"</span>
+<a name="line-260"></a>            <span class='varop'>&lt;|&gt;</span>
+<a name="line-261"></a>	    <span class='varid'>oneOf</span> <span class='varid'>quoteChars</span>
+<a name="line-262"></a>
+<a name="line-263"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-264"></a><span class='comment'>--</span>
+<a name="line-265"></a><span class='comment'>-- Character and Entity References (4.1)</span>
+<a name="line-266"></a>
+<a name="line-267"></a><a name="reference"></a><span class='definition'>reference</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-268"></a><span class='definition'>reference</span>
+<a name="line-269"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-270"></a>	<span class='varid'>i</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>charRef</span>
+<a name="line-271"></a>	<span class='varid'>return</span> <span class='layout'>(</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><span class='layout'>)</span>
+<a name="line-272"></a>      <span class='layout'>)</span>
+<a name="line-273"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-274"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-275"></a>        <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>entityRef</span>
+<a name="line-276"></a>        <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"&amp;"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span>
+<a name="line-277"></a>      <span class='layout'>)</span>
+<a name="line-278"></a>      
+<a name="line-279"></a>
+<a name="line-280"></a><a name="checkCharRef"></a><span class='definition'>checkCharRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Int</span>
+<a name="line-281"></a><span class='definition'>checkCharRef</span> <span class='varid'>i</span>
+<a name="line-282"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='varid'>fromEnum</span> <span class='layout'>(</span><span class='varid'>maxBound</span><span class='keyglyph'>::</span><span class='conid'>Char</span><span class='layout'>)</span>
+<a name="line-283"></a>	   <span class='varop'>&amp;&amp;</span> <span class='varid'>isXmlChar</span> <span class='layout'>(</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-284"></a>	 <span class='layout'>)</span>
+<a name="line-285"></a>        <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>i</span>
+<a name="line-286"></a>	<span class='keyword'>else</span> <span class='varid'>unexpected</span> <span class='layout'>(</span><span class='str'>"illegal value in character reference: "</span> <span class='varop'>++</span> <span class='varid'>intToCharRef</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>" , in hex: "</span> <span class='varop'>++</span> <span class='varid'>intToCharRefHex</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-287"></a>
+<a name="line-288"></a><a name="charRef"></a><span class='definition'>charRef</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Int</span>
+<a name="line-289"></a><span class='definition'>charRef</span>
+<a name="line-290"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-291"></a>      <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"&amp;#x"</span><span class='layout'>)</span>
+<a name="line-292"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>hexDigit</span>
+<a name="line-293"></a>      <span class='varid'>semi</span>
+<a name="line-294"></a>      <span class='varid'>checkCharRef</span> <span class='layout'>(</span><span class='varid'>hexStringToInt</span> <span class='varid'>d</span><span class='layout'>)</span>
+<a name="line-295"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-296"></a>      <span class='keyword'>do</span>
+<a name="line-297"></a>      <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"&amp;#"</span><span class='layout'>)</span>
+<a name="line-298"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-299"></a>      <span class='varid'>semi</span>
+<a name="line-300"></a>      <span class='varid'>checkCharRef</span> <span class='layout'>(</span><span class='varid'>decimalStringToInt</span> <span class='varid'>d</span><span class='layout'>)</span>
+<a name="line-301"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"character reference"</span>
+<a name="line-302"></a>
+<a name="line-303"></a>
+<a name="line-304"></a><a name="entityRef"></a><span class='definition'>entityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-305"></a><span class='definition'>entityRef</span>
+<a name="line-306"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-307"></a>      <span class='varid'>char</span> <span class='chr'>'&amp;'</span>
+<a name="line-308"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-309"></a>      <span class='varid'>semi</span>
+<a name="line-310"></a>      <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-311"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"entity reference"</span>
+<a name="line-312"></a>
+<a name="line-313"></a><a name="peReference"></a><span class='definition'>peReference</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-314"></a><span class='definition'>peReference</span>
+<a name="line-315"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-316"></a>	    <span class='varid'>char</span> <span class='chr'>'%'</span>
+<a name="line-317"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-318"></a>	    <span class='varid'>semi</span>
+<a name="line-319"></a>	    <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-320"></a>	  <span class='layout'>)</span>
+<a name="line-321"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"parameter-entity reference"</span>
+<a name="line-322"></a>
+<a name="line-323"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-324"></a><span class='comment'>--</span>
+<a name="line-325"></a><span class='comment'>-- 4.3</span>
+<a name="line-326"></a>
+<a name="line-327"></a><a name="encName"></a><span class='definition'>encName</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-328"></a><span class='definition'>encName</span>
+<a name="line-329"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-330"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>asciiLetter</span>
+<a name="line-331"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>asciiLetter</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>digit</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>oneOf</span> <span class='str'>"._-"</span><span class='layout'>)</span>
+<a name="line-332"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>r</span><span class='layout'>)</span>
+<a name="line-333"></a>
+<a name="line-334"></a><a name="versionNum"></a><span class='definition'>versionNum</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-335"></a><span class='definition'>versionNum</span>
+<a name="line-336"></a>    <span class='keyglyph'>=</span> <span class='varid'>many1</span> <span class='varid'>xmlNameChar</span>
+<a name="line-337"></a>
+<a name="line-338"></a>
+<a name="line-339"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-340"></a><span class='comment'>--</span>
+<a name="line-341"></a><span class='comment'>-- keywords</span>
+<a name="line-342"></a>
+<a name="line-343"></a><a name="keyword"></a><span class='definition'>keyword</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-344"></a><span class='definition'>keyword</span> <span class='varid'>kw</span>
+<a name="line-345"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-346"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-347"></a>	    <span class='keyword'>if</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>kw</span>
+<a name="line-348"></a>	      <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>n</span>
+<a name="line-349"></a>	      <span class='keyword'>else</span> <span class='varid'>unexpected</span> <span class='varid'>n</span>
+<a name="line-350"></a>	  <span class='layout'>)</span>
+<a name="line-351"></a>      <span class='varop'>&lt;?&gt;</span> <span class='varid'>kw</span>
+<a name="line-352"></a>
+<a name="line-353"></a><a name="keywords"></a><span class='definition'>keywords</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='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-354"></a><span class='definition'>keywords</span>
+<a name="line-355"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>keyword</span>
+<a name="line-356"></a>
+<a name="line-357"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-358"></a><span class='comment'>--</span>
+<a name="line-359"></a><span class='comment'>-- parser for quoted attribute values</span>
+<a name="line-360"></a>
+<a name="line-361"></a><a name="quoted"></a><span class='definition'>quoted</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='varid'>a</span>
+<a name="line-362"></a><span class='definition'>quoted</span> <span class='varid'>p</span>
+<a name="line-363"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='varid'>p</span>
+<a name="line-364"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-365"></a>      <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='varid'>p</span>
+<a name="line-366"></a>
+<a name="line-367"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-368"></a><span class='comment'>--</span>
+<a name="line-369"></a><span class='comment'>-- simple char parsers</span>
+<a name="line-370"></a>
+<a name="line-371"></a><a name="dq"></a><span class='definition'>dq</span><span class='layout'>,</span> <span class='varid'>sq</span><span class='layout'>,</span> <span class='varid'>lt</span><span class='layout'>,</span> <span class='varid'>gt</span><span class='layout'>,</span> <span class='varid'>semi</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>
+<a name="line-372"></a>
+<a name="line-373"></a><span class='definition'>dq</span>	<span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'\"'</span>
+<a name="line-374"></a><a name="sq"></a><span class='definition'>sq</span>	<span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'\''</span>
+<a name="line-375"></a><a name="lt"></a><span class='definition'>lt</span>	<span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'&lt;'</span>
+<a name="line-376"></a><a name="gt"></a><span class='definition'>gt</span>	<span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'&gt;'</span>
+<a name="line-377"></a><a name="semi"></a><span class='definition'>semi</span>	<span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>';'</span>
+<a name="line-378"></a>
+<a name="line-379"></a><a name="separator"></a><span class='definition'>separator</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-380"></a><span class='definition'>separator</span> <span class='varid'>c</span>
+<a name="line-381"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-382"></a>      <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-383"></a>	    <span class='varid'>skipS0</span>
+<a name="line-384"></a>	    <span class='varid'>char</span> <span class='varid'>c</span>
+<a name="line-385"></a>	  <span class='layout'>)</span>
+<a name="line-386"></a>      <span class='varid'>skipS0</span>
+<a name="line-387"></a>      <span class='varop'>&lt;?&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-388"></a>
+<a name="line-389"></a><a name="bar"></a><span class='definition'>bar</span><span class='layout'>,</span> <span class='varid'>comma</span><span class='layout'>,</span> <span class='varid'>eq</span><span class='layout'>,</span> <span class='varid'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>
+<a name="line-390"></a>
+<a name="line-391"></a><span class='definition'>bar</span>	<span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>'|'</span>
+<a name="line-392"></a><a name="comma"></a><span class='definition'>comma</span>	<span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>','</span>
+<a name="line-393"></a><a name="eq"></a><span class='definition'>eq</span>	<span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>'='</span>
+<a name="line-394"></a>
+<a name="line-395"></a><a name="lpar"></a><span class='definition'>lpar</span>
+<a name="line-396"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-397"></a>      <span class='varid'>char</span> <span class='chr'>'('</span>
+<a name="line-398"></a>      <span class='varid'>skipS0</span>
+<a name="line-399"></a>
+<a name="line-400"></a><a name="rpar"></a><span class='definition'>rpar</span>
+<a name="line-401"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-402"></a>      <span class='varid'>skipS0</span>
+<a name="line-403"></a>      <span class='varid'>char</span> <span class='chr'>')'</span>
+<a name="line-404"></a>      <span class='varid'>return</span> <span class='conid'>()</span>
+<a name="line-405"></a>
+<a name="line-406"></a>
+<a name="line-407"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-408"></a><span class='comment'>--</span>
+<a name="line-409"></a><span class='comment'>-- all chars but not a special substring</span>
+<a name="line-410"></a>
+<a name="line-411"></a><a name="allBut"></a><span class='definition'>allBut</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</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'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-412"></a><span class='definition'>allBut</span> <span class='varid'>p</span> <span class='varid'>str</span>
+<a name="line-413"></a>    <span class='keyglyph'>=</span> <span class='varid'>allBut1</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varid'>str</span>
+<a name="line-414"></a>
+<a name="line-415"></a><a name="allBut1"></a><span class='definition'>allBut1</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>
+<a name="line-416"></a><span class='definition'>allBut1</span> <span class='varid'>p</span> <span class='varid'>prd</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-417"></a>    <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='layout'>(</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>isXmlChar</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>prd</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-418"></a>	  <span class='varop'>&lt;|&gt;</span>
+<a name="line-419"></a>	  <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-420"></a>		<span class='varid'>char</span> <span class='varid'>c</span>
+<a name="line-421"></a>		<span class='varid'>notFollowedBy</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-422"></a>				<span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-423"></a>				<span class='varid'>return</span> <span class='varid'>c</span>
+<a name="line-424"></a>			      <span class='layout'>)</span>
+<a name="line-425"></a>		<span class='varid'>return</span> <span class='varid'>c</span>
+<a name="line-426"></a>	      <span class='layout'>)</span>
+<a name="line-427"></a>	<span class='layout'>)</span>
+<a name="line-428"></a>
+<a name="line-429"></a><span class='definition'>allBut1</span> <span class='sel'>_p</span> <span class='sel'>_prd</span> <span class='varid'>str</span>
+<a name="line-430"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"allBut1 _ _ "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span>
+<a name="line-431"></a>
+<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-433"></a><span class='comment'>--</span>
+<a name="line-434"></a><span class='comment'>-- concatenate parse results</span>
+<a name="line-435"></a>
+<a name="line-436"></a><a name="concRes"></a><span class='definition'>concRes</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</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='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-437"></a><span class='definition'>concRes</span> <span class='varid'>p</span>
+<a name="line-438"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-439"></a>      <span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span>
+<a name="line-440"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>sl</span><span class='layout'>)</span>
+<a name="line-441"></a>
+<a name="line-442"></a><a name="mkList"></a><span class='definition'>mkList</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-443"></a><span class='definition'>mkList</span> <span class='varid'>p</span>
+<a name="line-444"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-445"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span>
+<a name="line-446"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>r</span><span class='keyglyph'>]</span>
+<a name="line-447"></a>
+<a name="line-448"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-449"></a><span class='comment'>--</span>
+<a name="line-450"></a><span class='comment'>-- token parsers returning XmlTrees</span>
+<a name="line-451"></a><span class='comment'>--</span>
+<a name="line-452"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-453"></a><span class='comment'>--</span>
+<a name="line-454"></a><span class='comment'>-- Literals (2.3)</span>
+<a name="line-455"></a>
+<a name="line-456"></a><a name="nameT"></a><span class='definition'>nameT</span>		<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-457"></a><span class='definition'>nameT</span>
+<a name="line-458"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-459"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>name</span>
+<a name="line-460"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-461"></a>
+<a name="line-462"></a><a name="nmtokenT"></a><span class='definition'>nmtokenT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-463"></a><span class='definition'>nmtokenT</span>
+<a name="line-464"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-465"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nmtoken</span>
+<a name="line-466"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-467"></a>
+<a name="line-468"></a>
+<a name="line-469"></a><a name="entityValueT"></a><span class='definition'>entityValueT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-470"></a><span class='definition'>entityValueT</span>
+<a name="line-471"></a>    <span class='keyglyph'>=</span>  <span class='keyword'>do</span>
+<a name="line-472"></a>       <span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>entityTokensT</span> <span class='str'>"%&amp;\""</span><span class='layout'>)</span>
+<a name="line-473"></a>       <span class='varid'>return</span> <span class='varid'>sl</span>
+<a name="line-474"></a>       <span class='varop'>&lt;|&gt;</span>
+<a name="line-475"></a>       <span class='keyword'>do</span>
+<a name="line-476"></a>       <span class='varid'>sl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>entityTokensT</span> <span class='str'>"%&amp;\'"</span><span class='layout'>)</span>
+<a name="line-477"></a>       <span class='varid'>return</span> <span class='varid'>sl</span>
+<a name="line-478"></a>       <span class='varop'>&lt;?&gt;</span> <span class='str'>"entity value (in quotes)"</span>
+<a name="line-479"></a>
+<a name="line-480"></a><a name="entityTokensT"></a><span class='definition'>entityTokensT</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-481"></a><span class='definition'>entityTokensT</span> <span class='varid'>notAllowed</span>
+<a name="line-482"></a>    <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>entityCharT</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>
+<a name="line-483"></a>
+<a name="line-484"></a><a name="entityCharT"></a><span class='definition'>entityCharT</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-485"></a><span class='definition'>entityCharT</span> <span class='varid'>notAllowed</span>
+<a name="line-486"></a>    <span class='keyglyph'>=</span> <span class='varid'>peReferenceT</span>
+<a name="line-487"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-488"></a>      <span class='varid'>charRefT</span>
+<a name="line-489"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-490"></a>      <span class='varid'>bypassedEntityRefT</span>
+<a name="line-491"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-492"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-493"></a>	<span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>singleChar</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>
+<a name="line-494"></a>	<span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-495"></a>      <span class='layout'>)</span>
+<a name="line-496"></a>
+<a name="line-497"></a><a name="attrValueT"></a><span class='definition'>attrValueT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-498"></a><span class='definition'>attrValueT</span>
+<a name="line-499"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>attrValueT'</span> <span class='str'>"&lt;&amp;\""</span><span class='layout'>)</span>
+<a name="line-500"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-501"></a>      <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>attrValueT'</span> <span class='str'>"&lt;&amp;\'"</span><span class='layout'>)</span>
+<a name="line-502"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"attribute value (in quotes)"</span>
+<a name="line-503"></a>
+<a name="line-504"></a><a name="attrValueT'"></a><span class='definition'>attrValueT'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>
+<a name="line-505"></a><span class='definition'>attrValueT'</span> <span class='varid'>notAllowed</span>
+<a name="line-506"></a>    <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='varid'>referenceT</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>singleCharsT</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>
+<a name="line-507"></a>
+<a name="line-508"></a><a name="singleCharsT"></a><span class='definition'>singleCharsT</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-509"></a><span class='definition'>singleCharsT</span> <span class='varid'>notAllowed</span>
+<a name="line-510"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-511"></a>      <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>singleChars</span> <span class='varid'>notAllowed</span>
+<a name="line-512"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-513"></a>
+<a name="line-514"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-515"></a><span class='comment'>--</span>
+<a name="line-516"></a><span class='comment'>-- Character and Entity References (4.1)</span>
+<a name="line-517"></a>
+<a name="line-518"></a><a name="referenceT"></a><span class='definition'>referenceT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-519"></a><span class='definition'>referenceT</span>
+<a name="line-520"></a>    <span class='keyglyph'>=</span> <span class='varid'>charRefT</span>
+<a name="line-521"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-522"></a>      <span class='varid'>entityRefT</span>
+<a name="line-523"></a>
+<a name="line-524"></a><a name="charRefT"></a><span class='definition'>charRefT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-525"></a><span class='definition'>charRefT</span>
+<a name="line-526"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-527"></a>      <span class='varid'>i</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>charRef</span>
+<a name="line-528"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkCharRef</span> <span class='varop'>$!</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-529"></a>
+<a name="line-530"></a><a name="entityRefT"></a><span class='definition'>entityRefT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-531"></a><span class='definition'>entityRefT</span>
+<a name="line-532"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-533"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>entityRef</span>
+<a name="line-534"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkEntityRef</span> <span class='varop'>$!</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-535"></a>
+<a name="line-536"></a><a name="bypassedEntityRefT"></a><span class='definition'>bypassedEntityRefT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-537"></a><span class='definition'>bypassedEntityRefT</span>
+<a name="line-538"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-539"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>entityRef</span>
+<a name="line-540"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='str'>"&amp;"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-541"></a>
+<a name="line-542"></a><a name="peReferenceT"></a><span class='definition'>peReferenceT</span>	<span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>
+<a name="line-543"></a><span class='definition'>peReferenceT</span>
+<a name="line-544"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-545"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>peReference</span>
+<a name="line-546"></a>      <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>PEREF</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_peref</span><span class='layout'>,</span> <span class='varid'>r</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-547"></a>
+<a name="line-548"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-549"></a>
+<a name="line-550"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Parser.html b/doc/hdoc/src/Text-XML-HXT-Parser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Parser.html
@@ -0,0 +1,48 @@
+<!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'>-- Simple parse functions.</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- Version : $Id: Parser.hs,v 1.2 2006/11/09 20:27:42 hxml Exp $</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- the "main" building blocks for an application.</span>
+<a name="line-8"></a><span class='comment'>-- this module exports all important functions for parsing, validating and transforming XML.</span>
+<a name="line-9"></a><span class='comment'>-- it also exports all basic datatypes and functions of the toolbox.</span>
+<a name="line-10"></a><span class='comment'>--</span>
+<a name="line-11"></a>
+<a name="line-12"></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'>Parser</span>
+<a name="line-13"></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>
+<a name="line-14"></a>
+<a name="line-15"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParser</span>
+<a name="line-16"></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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParser</span>
+<a name="line-17"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlInput</span>
+<a name="line-18"></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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlOutput</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'>Parser</span><span class='varop'>.</span><span class='conid'>DTDProcessing</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'>Parser</span><span class='varop'>.</span><span class='conid'>MainFunctions</span>
+<a name="line-21"></a>
+<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'>Validator</span><span class='varop'>.</span><span class='conid'>Validation</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'>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>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParser</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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParser</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlInput</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlOutput</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'>Parser</span><span class='varop'>.</span><span class='conid'>DTDProcessing</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'>Parser</span><span class='varop'>.</span><span class='conid'>MainFunctions</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'>Validator</span><span class='varop'>.</span><span class='conid'>Validation</span>
+<a name="line-36"></a>
+<a name="line-37"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-38"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-BasicArrows.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-BasicArrows.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-BasicArrows.html
@@ -0,0 +1,336 @@
+<!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     : Text.XML.HXT.RelaxNG.BasicArrows
+<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>   Constants and basic arrows for Relax NG
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>BasicArrows</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='varop'>.</span><span class='conid'>ListArrows</span>
+<a name="line-23"></a>
+<a name="line-24"></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-25"></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-26"></a>    <span class='varid'>hiding</span>
+<a name="line-27"></a>    <span class='layout'>(</span> <span class='varid'>mkText</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a>
+<a name="line-31"></a><a name="hasRngName"></a><span class='definition'>hasRngName</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-32"></a><span class='definition'>hasRngName</span> <span class='varid'>s</span>
+<a name="line-33"></a>    <span class='keyglyph'>=</span> <span class='varid'>hasName</span> <span class='varid'>s</span> 
+<a name="line-34"></a>      <span class='varop'>`orElse`</span>
+<a name="line-35"></a>      <span class='layout'>(</span> <span class='varid'>hasLocalPart</span> <span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasNamespaceUri</span> <span class='varid'>relaxNamespace</span> <span class='layout'>)</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="checkRngName"></a><span class='definition'>checkRngName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-38"></a><span class='definition'>checkRngName</span> <span class='varid'>l</span>
+<a name="line-39"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-40"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-41"></a>	<span class='varid'>catA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>hasRngName</span> <span class='varid'>l</span><span class='layout'>)</span>
+<a name="line-42"></a>      <span class='layout'>)</span>
+<a name="line-43"></a>      <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="noOfChildren"></a><span class='definition'>noOfChildren</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'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-46"></a><span class='definition'>noOfChildren</span> <span class='varid'>p</span>
+<a name="line-47"></a>    <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-48"></a>      <span class='varop'>&gt;&gt;.</span>
+<a name="line-49"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='keyword'>then</span> <span class='varid'>l</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-52"></a>
+<a name="line-53"></a><a name="isAttributeRef"></a><span class='definition'>isAttributeRef</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-54"></a><span class='definition'>isAttributeRef</span>
+<a name="line-55"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"ref"</span><span class='keyglyph'>]</span>
+<a name="line-56"></a>
+<a name="line-57"></a><a name="isAttributeRefTextListGroupInterleaveOneOrMoreEmpty"></a><span class='definition'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</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-58"></a><span class='definition'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span>
+<a name="line-59"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"ref"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"empty"</span><span class='keyglyph'>]</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="isAttributeRefTextListInterleave"></a><span class='definition'>isAttributeRefTextListInterleave</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-62"></a><span class='definition'>isAttributeRefTextListInterleave</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"ref"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='keyglyph'>]</span>
+<a name="line-64"></a>
+<a name="line-65"></a><a name="isAttributeListGroupInterleaveOneOrMore"></a><span class='definition'>isAttributeListGroupInterleaveOneOrMore</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-66"></a><span class='definition'>isAttributeListGroupInterleaveOneOrMore</span>
+<a name="line-67"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='keyglyph'>]</span>
+<a name="line-68"></a>
+<a name="line-69"></a><a name="isExternalRefInclude"></a><span class='definition'>isExternalRefInclude</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-70"></a><span class='definition'>isExternalRefInclude</span>
+<a name="line-71"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"externalRef"</span><span class='layout'>,</span> <span class='str'>"include"</span><span class='keyglyph'>]</span>
+<a name="line-72"></a>
+<a name="line-73"></a><a name="isNameNsNameValue"></a><span class='definition'>isNameNsNameValue</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-74"></a><span class='definition'>isNameNsNameValue</span>
+<a name="line-75"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='str'>"nsName"</span><span class='layout'>,</span> <span class='str'>"value"</span><span class='keyglyph'>]</span>
+<a name="line-76"></a>
+<a name="line-77"></a><a name="isNameNsName"></a><span class='definition'>isNameNsName</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-78"></a><span class='definition'>isNameNsName</span>
+<a name="line-79"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='str'>"nsName"</span><span class='keyglyph'>]</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="isNameAnyNameNsName"></a><span class='definition'>isNameAnyNameNsName</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-82"></a><span class='definition'>isNameAnyNameNsName</span>
+<a name="line-83"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='str'>"anyName"</span><span class='layout'>,</span> <span class='str'>"nsName"</span><span class='keyglyph'>]</span>
+<a name="line-84"></a>
+<a name="line-85"></a><a name="isDefineOneOrMoreZeroOrMoreOptionalListMixed"></a><span class='definition'>isDefineOneOrMoreZeroOrMoreOptionalListMixed</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-86"></a><span class='definition'>isDefineOneOrMoreZeroOrMoreOptionalListMixed</span>
+<a name="line-87"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"define"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"zeroOrMore"</span><span class='layout'>,</span> <span class='str'>"optional"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"mixed"</span><span class='keyglyph'>]</span>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="isChoiceGroupInterleave"></a><span class='definition'>isChoiceGroupInterleave</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-90"></a><span class='definition'>isChoiceGroupInterleave</span>
+<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"choice"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='keyglyph'>]</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="isChoiceGroupInterleaveOneOrMore"></a><span class='definition'>isChoiceGroupInterleaveOneOrMore</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-94"></a><span class='definition'>isChoiceGroupInterleaveOneOrMore</span>
+<a name="line-95"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"choice"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='keyglyph'>]</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="isGroupInterleave"></a><span class='definition'>isGroupInterleave</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-98"></a><span class='definition'>isGroupInterleave</span>
+<a name="line-99"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='keyglyph'>]</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="isRngAnyName"></a><span class='definition'>isRngAnyName</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-104"></a><span class='definition'>isRngAnyName</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"anyName"</span>
+<a name="line-105"></a>
+<a name="line-106"></a><a name="isRngAttribute"></a><span class='definition'>isRngAttribute</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-107"></a><span class='definition'>isRngAttribute</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"attribute"</span>
+<a name="line-108"></a>
+<a name="line-109"></a><a name="isRngChoice"></a><span class='definition'>isRngChoice</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-110"></a><span class='definition'>isRngChoice</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"choice"</span>
+<a name="line-111"></a>
+<a name="line-112"></a><a name="isRngCombine"></a><span class='definition'>isRngCombine</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-113"></a><span class='definition'>isRngCombine</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"combine"</span>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="isRngData"></a><span class='definition'>isRngData</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-116"></a><span class='definition'>isRngData</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"data"</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="isRngDefine"></a><span class='definition'>isRngDefine</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-119"></a><span class='definition'>isRngDefine</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"define"</span>
+<a name="line-120"></a>
+<a name="line-121"></a><a name="isRngDiv"></a><span class='definition'>isRngDiv</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-122"></a><span class='definition'>isRngDiv</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"div"</span>
+<a name="line-123"></a>
+<a name="line-124"></a><a name="isRngElement"></a><span class='definition'>isRngElement</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-125"></a><span class='definition'>isRngElement</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"element"</span>
+<a name="line-126"></a>
+<a name="line-127"></a><a name="isRngEmpty"></a><span class='definition'>isRngEmpty</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'>isRngEmpty</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"empty"</span>
+<a name="line-129"></a>
+<a name="line-130"></a><a name="isRngExcept"></a><span class='definition'>isRngExcept</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-131"></a><span class='definition'>isRngExcept</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"except"</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="isRngExternalRef"></a><span class='definition'>isRngExternalRef</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-134"></a><span class='definition'>isRngExternalRef</span>	<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"externalRef"</span>
+<a name="line-135"></a>
+<a name="line-136"></a><a name="isRngGrammar"></a><span class='definition'>isRngGrammar</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-137"></a><span class='definition'>isRngGrammar</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"grammar"</span>
+<a name="line-138"></a>
+<a name="line-139"></a><a name="isRngGroup"></a><span class='definition'>isRngGroup</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-140"></a><span class='definition'>isRngGroup</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"group"</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="isRngInclude"></a><span class='definition'>isRngInclude</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-143"></a><span class='definition'>isRngInclude</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"include"</span>
+<a name="line-144"></a>
+<a name="line-145"></a><a name="isRngInterleave"></a><span class='definition'>isRngInterleave</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-146"></a><span class='definition'>isRngInterleave</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"interleave"</span>
+<a name="line-147"></a>
+<a name="line-148"></a><a name="isRngList"></a><span class='definition'>isRngList</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-149"></a><span class='definition'>isRngList</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"list"</span>
+<a name="line-150"></a>
+<a name="line-151"></a><a name="isRngMixed"></a><span class='definition'>isRngMixed</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-152"></a><span class='definition'>isRngMixed</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"mixed"</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="isRngName"></a><span class='definition'>isRngName</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-155"></a><span class='definition'>isRngName</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"name"</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="isRngNotAllowed"></a><span class='definition'>isRngNotAllowed</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-158"></a><span class='definition'>isRngNotAllowed</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"notAllowed"</span>
+<a name="line-159"></a>
+<a name="line-160"></a><a name="isRngNsName"></a><span class='definition'>isRngNsName</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-161"></a><span class='definition'>isRngNsName</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"nsName"</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="isRngOneOrMore"></a><span class='definition'>isRngOneOrMore</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-164"></a><span class='definition'>isRngOneOrMore</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"oneOrMore"</span>
+<a name="line-165"></a>
+<a name="line-166"></a><a name="isRngOptional"></a><span class='definition'>isRngOptional</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-167"></a><span class='definition'>isRngOptional</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"optional"</span>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="isRngParam"></a><span class='definition'>isRngParam</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-170"></a><span class='definition'>isRngParam</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"param"</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="isRngParentRef"></a><span class='definition'>isRngParentRef</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-173"></a><span class='definition'>isRngParentRef</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"parentRef"</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="isRngRef"></a><span class='definition'>isRngRef</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-176"></a><span class='definition'>isRngRef</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"ref"</span>
+<a name="line-177"></a>
+<a name="line-178"></a><a name="isRngRelaxError"></a><span class='definition'>isRngRelaxError</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-179"></a><span class='definition'>isRngRelaxError</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"relaxError"</span>
+<a name="line-180"></a>
+<a name="line-181"></a><a name="isRngStart"></a><span class='definition'>isRngStart</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-182"></a><span class='definition'>isRngStart</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"start"</span>
+<a name="line-183"></a>
+<a name="line-184"></a><a name="isRngText"></a><span class='definition'>isRngText</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-185"></a><span class='definition'>isRngText</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"text"</span>
+<a name="line-186"></a>
+<a name="line-187"></a><a name="isRngType"></a><span class='definition'>isRngType</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-188"></a><span class='definition'>isRngType</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"type"</span>
+<a name="line-189"></a>
+<a name="line-190"></a><a name="isRngValue"></a><span class='definition'>isRngValue</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-191"></a><span class='definition'>isRngValue</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"value"</span>
+<a name="line-192"></a>
+<a name="line-193"></a><a name="isRngZeroOrMore"></a><span class='definition'>isRngZeroOrMore</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-194"></a><span class='definition'>isRngZeroOrMore</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"zeroOrMore"</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><a name="mkRngElement"></a><span class='definition'>mkRngElement</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='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> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-199"></a><span class='definition'>mkRngElement</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>n</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span>
+<a name="line-200"></a>
+<a name="line-201"></a><a name="mkRngChoice"></a><span class='definition'>mkRngChoice</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'>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-202"></a><span class='definition'>mkRngChoice</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"choice"</span>
+<a name="line-203"></a>
+<a name="line-204"></a><a name="mkRngDefine"></a><span class='definition'>mkRngDefine</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'>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-205"></a><span class='definition'>mkRngDefine</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"define"</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="mkRngEmpty"></a><span class='definition'>mkRngEmpty</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'>XmlTree</span>
+<a name="line-208"></a><span class='definition'>mkRngEmpty</span> <span class='varid'>a</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"empty"</span> <span class='varid'>a</span> <span class='varid'>none</span>
+<a name="line-209"></a>
+<a name="line-210"></a><a name="mkRngGrammar"></a><span class='definition'>mkRngGrammar</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'>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-211"></a><span class='definition'>mkRngGrammar</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"grammar"</span>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="mkRngGroup"></a><span class='definition'>mkRngGroup</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'>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-214"></a><span class='definition'>mkRngGroup</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"group"</span>
+<a name="line-215"></a>
+<a name="line-216"></a><a name="mkRngInterleave"></a><span class='definition'>mkRngInterleave</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'>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-217"></a><span class='definition'>mkRngInterleave</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"interleave"</span>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="mkRngName"></a><span class='definition'>mkRngName</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'>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-220"></a><span class='definition'>mkRngName</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"name"</span>
+<a name="line-221"></a>
+<a name="line-222"></a><a name="mkRngNotAllowed"></a><span class='definition'>mkRngNotAllowed</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'>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-223"></a><span class='definition'>mkRngNotAllowed</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"notAllowed"</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="mkRngOneOrMore"></a><span class='definition'>mkRngOneOrMore</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'>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-226"></a><span class='definition'>mkRngOneOrMore</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"oneOrMore"</span>
+<a name="line-227"></a>
+<a name="line-228"></a><a name="mkRngRef"></a><span class='definition'>mkRngRef</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'>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-229"></a><span class='definition'>mkRngRef</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"ref"</span>
+<a name="line-230"></a>
+<a name="line-231"></a><a name="mkRngRelaxError"></a><span class='definition'>mkRngRelaxError</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'>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-232"></a><span class='definition'>mkRngRelaxError</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"relaxError"</span>
+<a name="line-233"></a>
+<a name="line-234"></a><a name="mkRngStart"></a><span class='definition'>mkRngStart</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'>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-235"></a><span class='definition'>mkRngStart</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"start"</span>
+<a name="line-236"></a>
+<a name="line-237"></a><a name="mkRngText"></a><span class='definition'>mkRngText</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'>XmlTree</span>
+<a name="line-238"></a><span class='definition'>mkRngText</span> <span class='varid'>a</span>		<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"text"</span> <span class='varid'>a</span> <span class='varid'>none</span>
+<a name="line-239"></a>
+<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-241"></a>
+<a name="line-242"></a><a name="setRngName"></a><span class='definition'>setRngName</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-243"></a><span class='definition'>setRngName</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='varid'>setElemName</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>n</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span>
+<a name="line-244"></a>
+<a name="line-245"></a><a name="setRngNameDiv"></a><span class='definition'>setRngNameDiv</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-246"></a><span class='definition'>setRngNameDiv</span>		<span class='keyglyph'>=</span> <span class='varid'>setRngName</span> <span class='str'>"div"</span>
+<a name="line-247"></a>
+<a name="line-248"></a><a name="setRngNameRef"></a><span class='definition'>setRngNameRef</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-249"></a><span class='definition'>setRngNameRef</span>		<span class='keyglyph'>=</span> <span class='varid'>setRngName</span> <span class='str'>"ref"</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><span class='comment'>-- Attributes</span>
+<a name="line-254"></a>
+<a name="line-255"></a><a name="isRngAttrAttribute"></a><span class='definition'>isRngAttrAttribute</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-256"></a><span class='definition'>isRngAttrAttribute</span>		<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"attribute"</span>
+<a name="line-257"></a>
+<a name="line-258"></a><a name="isRngAttrCombine"></a><span class='definition'>isRngAttrCombine</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-259"></a><span class='definition'>isRngAttrCombine</span>		<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"combine"</span>
+<a name="line-260"></a>
+<a name="line-261"></a><a name="isRngAttrDatatypeLibrary"></a><span class='definition'>isRngAttrDatatypeLibrary</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-262"></a><span class='definition'>isRngAttrDatatypeLibrary</span>	<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-263"></a>
+<a name="line-264"></a><a name="isRngAttrHref"></a><span class='definition'>isRngAttrHref</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-265"></a><span class='definition'>isRngAttrHref</span>			<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"href"</span>
+<a name="line-266"></a>
+<a name="line-267"></a><a name="isRngAttrName"></a><span class='definition'>isRngAttrName</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-268"></a><span class='definition'>isRngAttrName</span>			<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"name"</span>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="isRngAttrNs"></a><span class='definition'>isRngAttrNs</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-271"></a><span class='definition'>isRngAttrNs</span>			<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"ns"</span>
+<a name="line-272"></a>
+<a name="line-273"></a><a name="isRngAttrType"></a><span class='definition'>isRngAttrType</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-274"></a><span class='definition'>isRngAttrType</span>			<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='str'>"type"</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><a name="hasRngAttrAttribute"></a><span class='definition'>hasRngAttrAttribute</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-279"></a><span class='definition'>hasRngAttrAttribute</span>		<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"attribute"</span>
+<a name="line-280"></a>
+<a name="line-281"></a><a name="hasRngAttrCombine"></a><span class='definition'>hasRngAttrCombine</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-282"></a><span class='definition'>hasRngAttrCombine</span>		<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"combine"</span>
+<a name="line-283"></a>
+<a name="line-284"></a><a name="hasRngAttrDatatypeLibrary"></a><span class='definition'>hasRngAttrDatatypeLibrary</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-285"></a><span class='definition'>hasRngAttrDatatypeLibrary</span>	<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-286"></a>
+<a name="line-287"></a><a name="hasRngAttrHref"></a><span class='definition'>hasRngAttrHref</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-288"></a><span class='definition'>hasRngAttrHref</span>			<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"href"</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="hasRngAttrName"></a><span class='definition'>hasRngAttrName</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'>hasRngAttrName</span>			<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"name"</span>
+<a name="line-292"></a>
+<a name="line-293"></a><a name="hasRngAttrNs"></a><span class='definition'>hasRngAttrNs</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-294"></a><span class='definition'>hasRngAttrNs</span>			<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"ns"</span>
+<a name="line-295"></a>
+<a name="line-296"></a><a name="hasRngAttrType"></a><span class='definition'>hasRngAttrType</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-297"></a><span class='definition'>hasRngAttrType</span>			<span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"type"</span>
+<a name="line-298"></a>
+<a name="line-299"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-300"></a>
+<a name="line-301"></a><a name="getRngAttrAttribute"></a><span class='definition'>getRngAttrAttribute</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'>String</span>
+<a name="line-302"></a><span class='definition'>getRngAttrAttribute</span>		<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"attribute"</span>
+<a name="line-303"></a>
+<a name="line-304"></a><a name="getRngAttrCombine"></a><span class='definition'>getRngAttrCombine</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'>String</span>
+<a name="line-305"></a><span class='definition'>getRngAttrCombine</span>		<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"combine"</span>
+<a name="line-306"></a>
+<a name="line-307"></a><a name="getRngAttrDatatypeLibrary"></a><span class='definition'>getRngAttrDatatypeLibrary</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'>String</span>
+<a name="line-308"></a><span class='definition'>getRngAttrDatatypeLibrary</span>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-309"></a>
+<a name="line-310"></a><a name="getRngAttrDescr"></a><span class='definition'>getRngAttrDescr</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'>String</span>
+<a name="line-311"></a><span class='definition'>getRngAttrDescr</span>			<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"descr"</span>
+<a name="line-312"></a>
+<a name="line-313"></a><a name="getRngAttrHref"></a><span class='definition'>getRngAttrHref</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'>String</span>
+<a name="line-314"></a><span class='definition'>getRngAttrHref</span>			<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"href"</span>
+<a name="line-315"></a>
+<a name="line-316"></a><a name="getRngAttrName"></a><span class='definition'>getRngAttrName</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'>String</span>
+<a name="line-317"></a><span class='definition'>getRngAttrName</span>			<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"name"</span>
+<a name="line-318"></a>
+<a name="line-319"></a><a name="getRngAttrNs"></a><span class='definition'>getRngAttrNs</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'>String</span>
+<a name="line-320"></a><span class='definition'>getRngAttrNs</span>			<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"ns"</span>
+<a name="line-321"></a>
+<a name="line-322"></a><a name="getRngAttrType"></a><span class='definition'>getRngAttrType</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'>String</span>
+<a name="line-323"></a><span class='definition'>getRngAttrType</span>			<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"type"</span>
+<a name="line-324"></a>
+<a name="line-325"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-326"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-CreatePattern.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-CreatePattern.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-CreatePattern.html
@@ -0,0 +1,359 @@
+<!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'>-- </span>
+<a name="line-3"></a><span class='comment'>-- Creates the 'Pattern' datastructure from a simplified Relax NG schema. </span>
+<a name="line-4"></a><span class='comment'>-- The created datastructure is used in the validation algorithm</span>
+<a name="line-5"></a><span class='comment'>-- (see also: "Text.XML.HXT.RelaxNG.Validation")</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>
+<a name="line-8"></a>  <span class='layout'>(</span> <span class='varid'>createPatternFromXmlTree</span>
+<a name="line-9"></a>  <span class='layout'>,</span> <span class='varid'>createNameClass</span>
+<a name="line-10"></a>  <span class='layout'>,</span> <span class='varid'>firstChild</span>
+<a name="line-11"></a>  <span class='layout'>,</span> <span class='varid'>lastChild</span>
+<a name="line-12"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternFunctions</span>
+<a name="line-13"></a>  <span class='layout'>)</span>
+<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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>
+<a name="line-17"></a>
+<a name="line-18"></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-19"></a>
+<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>
+<a name="line-22"></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'>DataTypes</span>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>BasicArrows</span>
+<a name="line-24"></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'>PatternFunctions</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='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='layout'>)</span>
+<a name="line-28"></a>
+<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='layout'>(</span> <span class='varid'>isPrefixOf</span> <span class='layout'>)</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><span class='comment'>-- | Creates the 'Pattern' datastructure from a simplified Relax NG schema.</span>
+<a name="line-35"></a>
+<a name="line-36"></a><a name="createPatternFromXmlTree"></a><span class='definition'>createPatternFromXmlTree</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-37"></a><span class='definition'>createPatternFromXmlTree</span> <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXml</span> <span class='varop'>$&lt;</span> <span class='varid'>createEnv</span>
+<a name="line-38"></a> <span class='keyword'>where</span>
+<a name="line-39"></a> <span class='comment'>-- | Selects all define-pattern and creates an environment list.</span>
+<a name="line-40"></a> <span class='comment'>-- Each list entry maps the define name to the children of the define-pattern.</span>
+<a name="line-41"></a> <span class='comment'>-- The map is used to replace a ref-pattern with the referenced define-pattern.</span>
+<a name="line-42"></a> <span class='varid'>createEnv</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Env</span>
+<a name="line-43"></a> <span class='varid'>createEnv</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='varid'>isRngDefine</span> 
+<a name="line-44"></a>                     <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-45"></a>                     <span class='layout'>(</span><span class='varid'>getRngAttrName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='comment'>-- | Transforms each XML-element to the corresponding pattern</span>
+<a name="line-49"></a>
+<a name="line-50"></a><a name="createPatternFromXml"></a><span class='definition'>createPatternFromXml</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-51"></a><span class='definition'>createPatternFromXml</span> <span class='varid'>env</span>
+<a name="line-52"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-53"></a>     <span class='varid'>isRoot</span>                            <span class='conop'>:-&gt;</span> <span class='varid'>processRoot</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-54"></a>     <span class='varid'>isRngEmpty</span>      <span class='conop'>:-&gt;</span> <span class='varid'>constA</span> <span class='conid'>Empty</span><span class='layout'>,</span>
+<a name="line-55"></a>     <span class='varid'>isRngNotAllowed</span> <span class='conop'>:-&gt;</span> <span class='varid'>mkNotAllowed</span><span class='layout'>,</span>
+<a name="line-56"></a>     <span class='varid'>isRngText</span>       <span class='conop'>:-&gt;</span> <span class='varid'>constA</span> <span class='conid'>Text</span><span class='layout'>,</span>
+<a name="line-57"></a>     <span class='varid'>isRngChoice</span>     <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxChoice</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-58"></a>     <span class='varid'>isRngInterleave</span> <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxInterleave</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-59"></a>     <span class='varid'>isRngGroup</span>      <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxGroup</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-60"></a>     <span class='varid'>isRngOneOrMore</span>  <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxOneOrMore</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-61"></a>     <span class='varid'>isRngList</span>       <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxList</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-62"></a>     <span class='varid'>isRngData</span>       <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxData</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-63"></a>     <span class='varid'>isRngValue</span>      <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxValue</span><span class='layout'>,</span>
+<a name="line-64"></a>     <span class='varid'>isRngAttribute</span>  <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxAttribute</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-65"></a>     <span class='varid'>isRngElement</span>    <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxElement</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-66"></a>     <span class='varid'>isRngRef</span>        <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxRef</span> <span class='varid'>env</span><span class='layout'>,</span>
+<a name="line-67"></a>     <span class='varid'>this</span>                              <span class='conop'>:-&gt;</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-68"></a>   <span class='keyglyph'>]</span>
+<a name="line-69"></a>
+<a name="line-70"></a>              
+<a name="line-71"></a><a name="processRoot"></a><span class='definition'>processRoot</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-72"></a><span class='definition'>processRoot</span> <span class='varid'>env</span>
+<a name="line-73"></a>  <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-74"></a>    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-75"></a>    <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-76"></a>      <span class='varid'>isRngRelaxError</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrDescr</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-77"></a>      <span class='varid'>isRngGrammar</span>    <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>processGrammar</span> <span class='varid'>env</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-78"></a>      <span class='varid'>this</span>                              <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>"no grammar-pattern in schema"</span><span class='layout'>)</span>
+<a name="line-79"></a>    <span class='keyglyph'>]</span>
+<a name="line-80"></a>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="processGrammar"></a><span class='definition'>processGrammar</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-83"></a><span class='definition'>processGrammar</span> <span class='varid'>env</span>
+<a name="line-84"></a>  <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-85"></a>    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-86"></a>    <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-87"></a>      <span class='varid'>isRngDefine</span>     <span class='conop'>:-&gt;</span> <span class='varid'>none</span><span class='layout'>,</span>
+<a name="line-88"></a>      <span class='varid'>isRngRelaxError</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='str'>"desc"</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-89"></a>      <span class='varid'>isRngStart</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'>createPatternFromXml</span> <span class='varid'>env</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-90"></a>      <span class='varid'>this</span>            <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>"no start-pattern in schema"</span><span class='layout'>)</span>
+<a name="line-91"></a>    <span class='keyglyph'>]</span>
+<a name="line-92"></a>
+<a name="line-93"></a>
+<a name="line-94"></a><a name="mkRelaxRef"></a><span class='comment'>{- |
+<a name="line-95"></a>  Transforms a ref-element.
+<a name="line-96"></a>  The value of the name-attribute is looked up in the environment list
+<a name="line-97"></a>  to find the corresponding define-pattern. 
+<a name="line-98"></a>  Haskells lazy-evaluation is used to transform circular structures.
+<a name="line-99"></a>-}</span>
+<a name="line-100"></a><span class='definition'>mkRelaxRef</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-101"></a><span class='definition'>mkRelaxRef</span> <span class='varid'>e</span>
+<a name="line-102"></a> <span class='keyglyph'>=</span> <span class='varid'>getRngAttrName</span>
+<a name="line-103"></a>   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-104"></a>   <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='str'>"define-pattern with name "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span>
+<a name="line-105"></a>              <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>transformEnv</span> <span class='varid'>e</span>
+<a name="line-106"></a>       <span class='layout'>)</span>
+<a name="line-107"></a> <span class='keyword'>where</span>
+<a name="line-108"></a> <span class='varid'>transformEnv</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'>XmlTree</span><span class='layout'>)</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'>Pattern</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-109"></a> <span class='varid'>transformEnv</span> <span class='varid'>env</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>treeName</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>transformEnvElem</span> <span class='varid'>tree</span> <span class='varid'>env</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>treeName</span><span class='layout'>,</span> <span class='varid'>tree</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>env</span><span class='keyglyph'>]</span>
+<a name="line-110"></a> <span class='varid'>transformEnvElem</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</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'>XmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-111"></a> <span class='varid'>transformEnvElem</span> <span class='varid'>tree</span> <span class='varid'>env</span> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>createPatternFromXml</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>tree</span> 
+<a name="line-112"></a>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="mkNotAllowed"></a><span class='comment'>-- | Transforms a notAllowed-element.</span>
+<a name="line-115"></a><span class='definition'>mkNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-116"></a><span class='definition'>mkNotAllowed</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>$</span> <span class='varid'>notAllowed</span> <span class='str'>"notAllowed-pattern in Relax NG schema definition"</span>
+<a name="line-117"></a>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="mkRelaxError"></a><span class='comment'>-- | Creates an error message.</span>
+<a name="line-120"></a><span class='definition'>mkRelaxError</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'>Pattern</span>
+<a name="line-121"></a><span class='definition'>mkRelaxError</span> <span class='varid'>errStr</span>
+<a name="line-122"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-123"></a>     <span class='varid'>isRngRelaxError</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>getRngAttrDescr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>notAllowed</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-124"></a>     <span class='varid'>isElem</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>
+<a name="line-125"></a>                   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-126"></a>                   <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='str'>"Pattern "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-127"></a>                                           <span class='str'>" is not allowed in Relax NG schema"</span>
+<a name="line-128"></a>                       <span class='layout'>)</span>
+<a name="line-129"></a>                 <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-130"></a>     <span class='varid'>isAttr</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>
+<a name="line-131"></a>                   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>                   <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-133"></a>                                           <span class='str'>" is not allowed in Relax NG schema"</span>
+<a name="line-134"></a>                       <span class='layout'>)</span>
+<a name="line-135"></a>                 <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-136"></a>     <span class='varid'>isError</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>getErrorMsg</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>notAllowed</span><span class='layout'>)</span><span class='layout'>,</span>                          
+<a name="line-137"></a>     <span class='varid'>this</span>    <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>errStr</span> <span class='varop'>/=</span> <span class='str'>""</span>
+<a name="line-138"></a>                                          <span class='keyword'>then</span> <span class='varid'>errStr</span>
+<a name="line-139"></a>                                          <span class='keyword'>else</span> <span class='str'>"Can't create pattern from "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-140"></a>                 <span class='layout'>)</span>
+<a name="line-141"></a>   <span class='keyglyph'>]</span>
+<a name="line-142"></a>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="mkRelaxChoice"></a><span class='comment'>-- | Transforms a choice-element.</span>
+<a name="line-145"></a><span class='definition'>mkRelaxChoice</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-146"></a><span class='definition'>mkRelaxChoice</span> <span class='varid'>env</span>
+<a name="line-147"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;.</span>
+<a name="line-148"></a>	    <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>l</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='keyword'>then</span> <span class='varid'>l</span> <span class='keyword'>else</span> <span class='conid'>[]</span> <span class='layout'>)</span>
+<a name="line-149"></a>	  <span class='layout'>)</span>
+<a name="line-150"></a>      <span class='layout'>(</span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>
+<a name="line-151"></a>      <span class='layout'>(</span> <span class='varid'>getTwoChildrenPattern</span> <span class='varid'>env</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='conid'>Choice</span> <span class='layout'>)</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="mkRelaxInterleave"></a><span class='comment'>-- | Transforms a interleave-element.</span>
+<a name="line-154"></a><span class='definition'>mkRelaxInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-155"></a><span class='definition'>mkRelaxInterleave</span> <span class='varid'>env</span>
+<a name="line-156"></a>    <span class='keyglyph'>=</span> <span class='varid'>getTwoChildrenPattern</span> <span class='varid'>env</span>
+<a name="line-157"></a>      <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-158"></a>      <span class='varid'>arr2</span> <span class='conid'>Interleave</span>
+<a name="line-159"></a>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="mkRelaxGroup"></a><span class='comment'>-- | Transforms a group-element.</span>
+<a name="line-162"></a><span class='definition'>mkRelaxGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-163"></a><span class='definition'>mkRelaxGroup</span> <span class='varid'>env</span>
+<a name="line-164"></a>    <span class='keyglyph'>=</span> <span class='varid'>getTwoChildrenPattern</span> <span class='varid'>env</span>
+<a name="line-165"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-166"></a>      <span class='varid'>arr2</span> <span class='conid'>Group</span>
+<a name="line-167"></a>
+<a name="line-168"></a>
+<a name="line-169"></a><a name="mkRelaxOneOrMore"></a><span class='comment'>-- | Transforms a oneOrMore-element.</span>
+<a name="line-170"></a><span class='definition'>mkRelaxOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-171"></a><span class='definition'>mkRelaxOneOrMore</span> <span class='varid'>env</span>
+<a name="line-172"></a>    <span class='keyglyph'>=</span> <span class='varid'>getOneChildPattern</span> <span class='varid'>env</span>
+<a name="line-173"></a>      <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-174"></a>      <span class='varid'>arr</span> <span class='conid'>OneOrMore</span>
+<a name="line-175"></a>
+<a name="line-176"></a>
+<a name="line-177"></a><a name="mkRelaxList"></a><span class='comment'>-- | Transforms a list-element.</span>
+<a name="line-178"></a><span class='definition'>mkRelaxList</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-179"></a><span class='definition'>mkRelaxList</span> <span class='varid'>env</span>
+<a name="line-180"></a>    <span class='keyglyph'>=</span> <span class='varid'>getOneChildPattern</span> <span class='varid'>env</span>
+<a name="line-181"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-182"></a>      <span class='varid'>arr</span> <span class='conid'>List</span>
+<a name="line-183"></a>
+<a name="line-184"></a>
+<a name="line-185"></a><a name="mkRelaxData"></a><span class='comment'>-- | Transforms a data- or dataExcept-element.</span>
+<a name="line-186"></a><span class='definition'>mkRelaxData</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-187"></a><span class='definition'>mkRelaxData</span> <span class='varid'>env</span> 
+<a name="line-188"></a>  <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngExcept</span><span class='layout'>)</span>
+<a name="line-189"></a>     <span class='layout'>(</span><span class='varid'>processDataExcept</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr3</span> <span class='conid'>DataExcept</span><span class='layout'>)</span>
+<a name="line-190"></a>     <span class='layout'>(</span><span class='varid'>processData</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='conid'>Data</span><span class='layout'>)</span>
+<a name="line-191"></a>  <span class='keyword'>where</span>
+<a name="line-192"></a>  <span class='varid'>processDataExcept</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>Datatype</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>ParamList</span><span class='layout'>,</span> <span class='conid'>Pattern</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-193"></a>  <span class='varid'>processDataExcept</span> <span class='keyglyph'>=</span> <span class='varid'>getDatatype</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getParamList</span> <span class='varop'>&amp;&amp;&amp;</span> 
+<a name="line-194"></a>                      <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-195"></a>                        <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-196"></a>                        <span class='varid'>isRngExcept</span>
+<a name="line-197"></a>                        <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-198"></a>                        <span class='varid'>getChildren</span>
+<a name="line-199"></a>                        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-200"></a>                        <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span>
+<a name="line-201"></a>                      <span class='layout'>)</span>
+<a name="line-202"></a>  <span class='varid'>processData</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>Datatype</span><span class='layout'>,</span> <span class='conid'>ParamList</span><span class='layout'>)</span>
+<a name="line-203"></a>  <span class='varid'>processData</span> <span class='keyglyph'>=</span> <span class='varid'>getDatatype</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getParamList</span>
+<a name="line-204"></a>  <span class='varid'>getParamList</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>ParamList</span>
+<a name="line-205"></a>  <span class='varid'>getParamList</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>getChildren</span>
+<a name="line-206"></a>                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-207"></a>                         <span class='varid'>isRngParam</span>
+<a name="line-208"></a>                         <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-209"></a>                         <span class='layout'>(</span><span class='varid'>getRngAttrName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-210"></a>         
+<a name="line-211"></a>
+<a name="line-212"></a><a name="mkRelaxValue"></a><span class='comment'>-- | Transforms a value-element.</span>
+<a name="line-213"></a><span class='definition'>mkRelaxValue</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>         
+<a name="line-214"></a><span class='definition'>mkRelaxValue</span> <span class='keyglyph'>=</span> <span class='varid'>getDatatype</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getValue</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getContext</span>
+<a name="line-215"></a>               <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-216"></a>               <span class='varid'>arr3</span> <span class='conid'>Value</span> 
+<a name="line-217"></a>  <span class='keyword'>where</span>
+<a name="line-218"></a>  <span class='varid'>getContext</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Context</span>
+<a name="line-219"></a>  <span class='varid'>getContext</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>contextBaseAttr</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getMapping</span>
+<a name="line-220"></a>  <span class='varid'>getMapping</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-221"></a>  <span class='varid'>getMapping</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-222"></a>                       <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='layout'>(</span><span class='varid'>contextAttributes</span> <span class='varop'>`isPrefixOf`</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-223"></a>                         <span class='varop'>`guards`</span>
+<a name="line-224"></a>                         <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>contextAttributes</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-225"></a>                           <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-226"></a>                           <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span><span class='layout'>)</span>
+<a name="line-227"></a>                         <span class='layout'>)</span>
+<a name="line-228"></a>                       <span class='layout'>)</span>
+<a name="line-229"></a>  <span class='varid'>getValue</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-230"></a>  <span class='varid'>getValue</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-231"></a>
+<a name="line-232"></a>
+<a name="line-233"></a><a name="getDatatype"></a><span class='definition'>getDatatype</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Datatype</span>
+<a name="line-234"></a><span class='definition'>getDatatype</span> <span class='keyglyph'>=</span> <span class='varid'>getRngAttrDatatypeLibrary</span>
+<a name="line-235"></a>              <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-236"></a>              <span class='varid'>getRngAttrType</span>
+<a name="line-237"></a>
+<a name="line-238"></a>
+<a name="line-239"></a><span class='comment'>-- | Transforms a attribute-element.</span>
+<a name="line-240"></a><span class='comment'>-- The first child is a 'NameClass', the second (the last) one a pattern.</span>
+<a name="line-241"></a>
+<a name="line-242"></a><a name="mkRelaxAttribute"></a><span class='definition'>mkRelaxAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-243"></a><span class='definition'>mkRelaxAttribute</span> <span class='varid'>env</span>
+<a name="line-244"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>
+<a name="line-245"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-246"></a>	<span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>
+<a name="line-247"></a>      <span class='layout'>)</span>
+<a name="line-248"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-249"></a>      <span class='varid'>arr2</span> <span class='conid'>Attribute</span>
+<a name="line-250"></a>
+<a name="line-251"></a><a name="mkRelaxElement"></a><span class='comment'>-- | Transforms a element-element.</span>
+<a name="line-252"></a><span class='comment'>-- The first child is a 'NameClass', the second (the last) one a pattern.</span>
+<a name="line-253"></a><span class='definition'>mkRelaxElement</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-254"></a><span class='definition'>mkRelaxElement</span> <span class='varid'>env</span>
+<a name="line-255"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>
+<a name="line-256"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-257"></a>	<span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>
+<a name="line-258"></a>      <span class='layout'>)</span>
+<a name="line-259"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-260"></a>      <span class='varid'>arr2</span> <span class='conid'>Element</span>
+<a name="line-261"></a>
+<a name="line-262"></a>
+<a name="line-263"></a><a name="createNameClass"></a><span class='comment'>-- | Creates a 'NameClass' from an \"anyName\"-, \"nsName\"- or  \"name\"-Pattern, </span>
+<a name="line-264"></a><span class='definition'>createNameClass</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>
+<a name="line-265"></a><span class='definition'>createNameClass</span>
+<a name="line-266"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-267"></a>      <span class='keyglyph'>[</span> <span class='varid'>isRngAnyName</span> <span class='conop'>:-&gt;</span> <span class='varid'>processAnyName</span>
+<a name="line-268"></a>      <span class='layout'>,</span> <span class='varid'>isRngNsName</span>  <span class='conop'>:-&gt;</span> <span class='varid'>processNsName</span>
+<a name="line-269"></a>      <span class='layout'>,</span> <span class='varid'>isRngName</span>    <span class='conop'>:-&gt;</span> <span class='varid'>processName</span>
+<a name="line-270"></a>      <span class='layout'>,</span> <span class='varid'>isRngChoice</span>  <span class='conop'>:-&gt;</span> <span class='varid'>processChoice</span>
+<a name="line-271"></a>      <span class='layout'>,</span> <span class='varid'>this</span>         <span class='conop'>:-&gt;</span> <span class='varid'>mkNameClassError</span>
+<a name="line-272"></a>      <span class='keyglyph'>]</span>
+<a name="line-273"></a>    <span class='keyword'>where</span>
+<a name="line-274"></a>    <span class='varid'>processAnyName</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>
+<a name="line-275"></a>    <span class='varid'>processAnyName</span>
+<a name="line-276"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngExcept</span><span class='layout'>)</span>
+<a name="line-277"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-278"></a>	    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span>
+<a name="line-279"></a>	    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createNameClass</span>
+<a name="line-280"></a>	    <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='conid'>AnyNameExcept</span>
+<a name="line-281"></a>          <span class='layout'>)</span>
+<a name="line-282"></a>         <span class='layout'>(</span> <span class='varid'>constA</span> <span class='conid'>AnyName</span> <span class='layout'>)</span>
+<a name="line-283"></a>
+<a name="line-284"></a>    <span class='varid'>processNsName</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>
+<a name="line-285"></a>    <span class='varid'>processNsName</span>
+<a name="line-286"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngExcept</span><span class='layout'>)</span>
+<a name="line-287"></a>          <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getRngAttrNs</span> 
+<a name="line-288"></a>              <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-289"></a>              <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>
+<a name="line-290"></a>            <span class='layout'>)</span>
+<a name="line-291"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-292"></a>            <span class='varid'>arr2</span> <span class='conid'>NsNameExcept</span>
+<a name="line-293"></a>          <span class='layout'>)</span>
+<a name="line-294"></a>          <span class='layout'>(</span> <span class='varid'>getRngAttrNs</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='conid'>NsName</span> <span class='layout'>)</span> 
+<a name="line-295"></a>
+<a name="line-296"></a>    <span class='varid'>processName</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>
+<a name="line-297"></a>    <span class='varid'>processName</span>
+<a name="line-298"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getRngAttrNs</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='conid'>Name</span>
+<a name="line-299"></a>
+<a name="line-300"></a>    <span class='varid'>processChoice</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>
+<a name="line-301"></a>    <span class='varid'>processChoice</span>
+<a name="line-302"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>
+<a name="line-303"></a>	    <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-304"></a>	    <span class='layout'>(</span> <span class='varid'>lastChild</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>
+<a name="line-305"></a>	  <span class='layout'>)</span>
+<a name="line-306"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-307"></a>	  <span class='varid'>arr2</span> <span class='conid'>NameClassChoice</span>
+<a name="line-308"></a>                        
+<a name="line-309"></a><a name="mkNameClassError"></a><span class='definition'>mkNameClassError</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>
+<a name="line-310"></a><span class='definition'>mkNameClassError</span> 
+<a name="line-311"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-312"></a>                        <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getRngAttrDescr</span>
+<a name="line-313"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-314"></a>			      <span class='varid'>arr</span> <span class='conid'>NCError</span>
+<a name="line-315"></a>			 <span class='layout'>)</span>
+<a name="line-316"></a>	      <span class='layout'>,</span> <span class='varid'>isElem</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>
+<a name="line-317"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-318"></a>			      <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NCError</span> <span class='layout'>(</span><span class='str'>"Can't create name class from element "</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-319"></a>			    <span class='layout'>)</span>
+<a name="line-320"></a>	      <span class='layout'>,</span> <span class='varid'>isAttr</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>
+<a name="line-321"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-322"></a>			      <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NCError</span> <span class='layout'>(</span><span class='str'>"Can't create name class from attribute: "</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-323"></a>			    <span class='layout'>)</span>
+<a name="line-324"></a>	      <span class='layout'>,</span> <span class='varid'>isError</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getErrorMsg</span>
+<a name="line-325"></a>			      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-326"></a>			      <span class='varid'>arr</span> <span class='conid'>NCError</span>
+<a name="line-327"></a>			    <span class='layout'>)</span>
+<a name="line-328"></a>	      <span class='layout'>,</span> <span class='varid'>this</span>    <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>NCError</span> <span class='varop'>$</span> <span class='str'>"Can't create name class from "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='layout'>)</span>      
+<a name="line-329"></a>	      <span class='keyglyph'>]</span>
+<a name="line-330"></a>
+<a name="line-331"></a>
+<a name="line-332"></a><a name="getOneChildPattern"></a><span class='definition'>getOneChildPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>
+<a name="line-333"></a><span class='definition'>getOneChildPattern</span> <span class='varid'>env</span>
+<a name="line-334"></a>    <span class='keyglyph'>=</span> <span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span>
+<a name="line-335"></a>
+<a name="line-336"></a>
+<a name="line-337"></a><a name="getTwoChildrenPattern"></a><span class='definition'>getTwoChildrenPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>Pattern</span><span class='layout'>,</span> <span class='conid'>Pattern</span><span class='layout'>)</span>
+<a name="line-338"></a><span class='definition'>getTwoChildrenPattern</span> <span class='varid'>env</span>
+<a name="line-339"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getOneChildPattern</span> <span class='varid'>env</span> <span class='layout'>)</span>
+<a name="line-340"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-341"></a>	<span class='layout'>(</span> <span class='varid'>lastChild</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>
+<a name="line-342"></a>
+<a name="line-343"></a><span class='comment'>-- | Simple access arrows</span>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="firstChild"></a><span class='definition'>firstChild</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowTree</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Tree</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-346"></a><span class='definition'>firstChild</span>	<span class='keyglyph'>=</span> <span class='varid'>single</span> <span class='varid'>getChildren</span>
+<a name="line-347"></a>
+<a name="line-348"></a><a name="lastChild"></a><span class='definition'>lastChild</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowTree</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Tree</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-349"></a><span class='definition'>lastChild</span>	<span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;.</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>reverse</span><span class='layout'>)</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
@@ -0,0 +1,179 @@
+<!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'>-- Datatype library for the MySQL datatypes</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- $Id: DataTypeLibMysql.hs,v 1.1 2005/09/02 17:09:39 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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibMysql</span>
+<a name="line-7"></a>  <span class='layout'>(</span> <span class='varid'>mysqlNS</span>
+<a name="line-8"></a>  <span class='layout'>,</span> <span class='varid'>mysqlDatatypeLib</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>  
+<a name="line-13"></a>
+<a name="line-14"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</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='comment'>-- | Namespace of the MySQL datatype library</span>
+<a name="line-19"></a>
+<a name="line-20"></a><a name="mysqlNS"></a><span class='definition'>mysqlNS</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-21"></a><span class='definition'>mysqlNS</span> <span class='keyglyph'>=</span> <span class='str'>"http://www.mysql.com"</span>
+<a name="line-22"></a>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='comment'>-- | The main entry point to the MySQL datatype library.</span>
+<a name="line-25"></a><span class='comment'>--</span>
+<a name="line-26"></a><span class='comment'>-- The 'DTC' constructor exports the list of supported datatypes and params.</span>
+<a name="line-27"></a><span class='comment'>-- It also exports the specialized functions to validate a XML instance value with</span>
+<a name="line-28"></a><span class='comment'>-- respect to a datatype.</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="mysqlDatatypeLib"></a><span class='definition'>mysqlDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>
+<a name="line-31"></a><span class='definition'>mysqlDatatypeLib</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>mysqlNS</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsMysql</span> <span class='varid'>datatypeEqualMysql</span> <span class='varid'>mysqlDatatypes</span><span class='layout'>)</span>
+<a name="line-32"></a>
+<a name="line-33"></a>
+<a name="line-34"></a><a name="mysqlDatatypes"></a><span class='comment'>-- | All supported datatypes of the library</span>
+<a name="line-35"></a><span class='definition'>mysqlDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>
+<a name="line-36"></a><span class='definition'>mysqlDatatypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='comment'>-- numeric types</span>
+<a name="line-37"></a>                   <span class='layout'>(</span><span class='str'>"SIGNED-TINYINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-38"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-TINYINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-39"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-40"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-41"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-42"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-43"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-INT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-44"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-INT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-45"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-BIGINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-46"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-BIGINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>
+<a name="line-47"></a>                 
+<a name="line-48"></a>                 <span class='comment'>-- string types</span>
+<a name="line-49"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"CHAR"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-50"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARCHAR"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>                 
+<a name="line-51"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BINARY"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-52"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARBINARY"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>                 
+<a name="line-53"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYTEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-54"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYBLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>                 
+<a name="line-55"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-56"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>                 
+<a name="line-57"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMTEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-58"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMBLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>                 
+<a name="line-59"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGTEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>
+<a name="line-60"></a>                 <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGBLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>                 
+<a name="line-61"></a>                 <span class='keyglyph'>]</span>
+<a name="line-62"></a>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="stringTypes"></a><span class='comment'>-- | List of supported string datatypes</span>
+<a name="line-65"></a><span class='definition'>stringTypes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-66"></a><span class='definition'>stringTypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"CHAR"</span>
+<a name="line-67"></a>	      <span class='layout'>,</span> <span class='str'>"VARCHAR"</span>
+<a name="line-68"></a>	      <span class='layout'>,</span> <span class='str'>"BINARY"</span>
+<a name="line-69"></a>	      <span class='layout'>,</span> <span class='str'>"VARBINARY"</span>
+<a name="line-70"></a>              <span class='layout'>,</span> <span class='str'>"TINYTEXT"</span>
+<a name="line-71"></a>	      <span class='layout'>,</span> <span class='str'>"TINYBLOB"</span>
+<a name="line-72"></a>	      <span class='layout'>,</span> <span class='str'>"TEXT"</span>
+<a name="line-73"></a>	      <span class='layout'>,</span> <span class='str'>"BLOB"</span>
+<a name="line-74"></a>              <span class='layout'>,</span> <span class='str'>"MEDIUMTEXT"</span>
+<a name="line-75"></a>	      <span class='layout'>,</span> <span class='str'>"MEDIUMBLOB"</span>
+<a name="line-76"></a>	      <span class='layout'>,</span> <span class='str'>"LONGTEXT"</span>
+<a name="line-77"></a>              <span class='layout'>,</span> <span class='str'>"LONGBLOB"</span>
+<a name="line-78"></a>              <span class='keyglyph'>]</span>
+<a name="line-79"></a>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="numericTypes"></a><span class='comment'>-- | List of supported numeric datatypes</span>
+<a name="line-82"></a><span class='definition'>numericTypes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-83"></a><span class='definition'>numericTypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"SIGNED-TINYINT"</span>
+<a name="line-84"></a>	       <span class='layout'>,</span> <span class='str'>"UNSIGNED-TINYINT"</span>
+<a name="line-85"></a>	       <span class='layout'>,</span> <span class='str'>"SIGNED-SMALLINT"</span>
+<a name="line-86"></a>               <span class='layout'>,</span> <span class='str'>"UNSIGNED-SMALLINT"</span>
+<a name="line-87"></a>	       <span class='layout'>,</span> <span class='str'>"SIGNED-MEDIUMINT"</span>
+<a name="line-88"></a>               <span class='layout'>,</span> <span class='str'>"UNSIGNED-MEDIUMINT"</span>
+<a name="line-89"></a>	       <span class='layout'>,</span> <span class='str'>"SIGNED-INT"</span>
+<a name="line-90"></a>	       <span class='layout'>,</span> <span class='str'>"UNSIGNED-INT"</span>
+<a name="line-91"></a>               <span class='layout'>,</span> <span class='str'>"SIGNED-BIGINT"</span>
+<a name="line-92"></a>	       <span class='layout'>,</span> <span class='str'>"UNSIGNED-BIGINT"</span>
+<a name="line-93"></a>               <span class='keyglyph'>]</span>
+<a name="line-94"></a>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="numericParams"></a><span class='comment'>-- | List of allowed params for the numeric datatypes</span>
+<a name="line-97"></a><span class='definition'>numericParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
+<a name="line-98"></a><span class='definition'>numericParams</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>rng_maxExclusive</span>
+<a name="line-99"></a>		<span class='layout'>,</span> <span class='varid'>rng_minExclusive</span>
+<a name="line-100"></a>                <span class='layout'>,</span> <span class='varid'>rng_maxInclusive</span>
+<a name="line-101"></a>		<span class='layout'>,</span> <span class='varid'>rng_minInclusive</span>
+<a name="line-102"></a>                <span class='keyglyph'>]</span>
+<a name="line-103"></a>                
+<a name="line-104"></a>
+<a name="line-105"></a><a name="stringParams"></a><span class='comment'>-- | List of allowed params for the string datatypes</span>
+<a name="line-106"></a><span class='definition'>stringParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>
+<a name="line-107"></a><span class='definition'>stringParams</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>rng_length</span>
+<a name="line-108"></a>	       <span class='layout'>,</span> <span class='varid'>rng_maxLength</span>
+<a name="line-109"></a>	       <span class='layout'>,</span> <span class='varid'>rng_minLength</span>
+<a name="line-110"></a>	       <span class='keyglyph'>]</span>
+<a name="line-111"></a>
+<a name="line-112"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-113"></a><span class='comment'>--</span>
+<a name="line-114"></a><span class='comment'>-- | Tests whether a XML instance value matches a data-pattern.</span>
+<a name="line-115"></a>                
+<a name="line-116"></a><a name="datatypeAllowsMysql"></a><span class='definition'>datatypeAllowsMysql</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>
+<a name="line-117"></a><span class='definition'>datatypeAllowsMysql</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>value</span> <span class='keyword'>_</span>
+<a name="line-118"></a>    <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='varid'>value</span>
+<a name="line-119"></a>    <span class='keyword'>where</span>
+<a name="line-120"></a>    <span class='varid'>check</span>
+<a name="line-121"></a>	<span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>ndt</span>	<span class='keyglyph'>=</span> <span class='varid'>checkNum</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>ndt</span><span class='layout'>)</span>
+<a name="line-122"></a>	<span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>sdt</span>	<span class='keyglyph'>=</span> <span class='varid'>checkStr</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>sdt</span><span class='layout'>)</span>
+<a name="line-123"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>mysqlNS</span> <span class='varid'>d</span> <span class='varid'>params</span>
+<a name="line-124"></a>    <span class='varid'>checkNum</span> <span class='varid'>r</span>	<span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>numberValid</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='varid'>params</span>
+<a name="line-125"></a>    <span class='varid'>checkStr</span> <span class='varid'>r</span>	<span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>stringValid</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='varid'>params</span>
+<a name="line-126"></a>    <span class='varid'>ndt</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span>
+<a name="line-127"></a>	  <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"SIGNED-TINYINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>128</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>127</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-128"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-TINYINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-129"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>32768</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>32767</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-130"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65535</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-131"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>8388608</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>8388607</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-132"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>16777215</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-133"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-INT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>2147483648</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2147483647</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-134"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-INT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>4294967295</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-135"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-BIGINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>9223372036854775808</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>9223372036854775807</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-136"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-BIGINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>18446744073709551615</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-137"></a>	  <span class='keyglyph'>]</span>
+<a name="line-138"></a>    <span class='varid'>sdt</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span>
+<a name="line-139"></a>	  <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"CHAR"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-140"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARCHAR"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65535</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-141"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BINARY"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span><span class='layout'>)</span>    
+<a name="line-142"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARBINARY"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65535</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-143"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYTEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>256</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-144"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYBLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>256</span><span class='layout'>)</span><span class='layout'>)</span>    
+<a name="line-145"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65536</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-146"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65536</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-147"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMTEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>16777216</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-148"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMBLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>16777216</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-149"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGTEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>4294967296</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-150"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGBLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>4294967296</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-151"></a>	  <span class='keyglyph'>]</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><span class='comment'>-- | Tests whether a XML instance value matches a value-pattern.</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="datatypeEqualMysql"></a><span class='definition'>datatypeEqualMysql</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>
+<a name="line-158"></a><span class='definition'>datatypeEqualMysql</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-159"></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-160"></a>      <span class='keyword'>where</span>
+<a name="line-161"></a>      <span class='varid'>cmp</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>
+<a name="line-162"></a>		  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-163"></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>
+<a name="line-164"></a>      <span class='varid'>check</span>
+<a name="line-165"></a>	  <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='varid'>stringTypes</span>	<span class='keyglyph'>=</span> <span class='varid'>cmp</span> <span class='varid'>id</span>
+<a name="line-166"></a>	  <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='varid'>numericTypes</span>	<span class='keyglyph'>=</span> <span class='varid'>cmp</span> <span class='varid'>normalizeNumber</span>
+<a name="line-167"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</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'>mysqlNS</span> <span class='varid'>d</span><span class='layout'>)</span>
+<a name="line-168"></a>
+<a name="line-169"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
@@ -0,0 +1,413 @@
+<!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 helper functions for the integration of new datatype-libraries</span>
+<a name="line-3"></a>
+<a name="line-4"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>
+<a name="line-5"></a>  <span class='layout'>(</span> <span class='varid'>errorMsgEqual</span>
+<a name="line-6"></a>  <span class='layout'>,</span> <span class='varid'>errorMsgDataTypeNotAllowed</span>
+<a name="line-7"></a>  <span class='layout'>,</span> <span class='varid'>errorMsgDataTypeNotAllowed0</span>
+<a name="line-8"></a>  <span class='layout'>,</span> <span class='varid'>errorMsgDataTypeNotAllowed2</span>
+<a name="line-9"></a>  <span class='layout'>,</span> <span class='varid'>errorMsgDataLibQName</span>
+<a name="line-10"></a>  <span class='layout'>,</span> <span class='varid'>errorMsgParam</span>
+<a name="line-11"></a>
+<a name="line-12"></a>  <span class='layout'>,</span> <span class='varid'>rng_length</span>
+<a name="line-13"></a>  <span class='layout'>,</span> <span class='varid'>rng_maxLength</span>
+<a name="line-14"></a>  <span class='layout'>,</span> <span class='varid'>rng_minLength</span>
+<a name="line-15"></a>   <span class='layout'>,</span><span class='varid'>rng_maxExclusive</span>
+<a name="line-16"></a>  <span class='layout'>,</span> <span class='varid'>rng_minExclusive</span>
+<a name="line-17"></a>  <span class='layout'>,</span> <span class='varid'>rng_maxInclusive</span>
+<a name="line-18"></a>  <span class='layout'>,</span> <span class='varid'>rng_minInclusive</span>
+<a name="line-19"></a>
+<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'>Util</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>  
+<a name="line-24"></a>
+<a name="line-25"></a>  <span class='layout'>,</span> <span class='conid'>FunctionTable</span>
+<a name="line-26"></a>
+<a name="line-27"></a>  <span class='layout'>,</span> <span class='varid'>stringValidFT</span>	<span class='comment'>-- generalized checkString</span>
+<a name="line-28"></a>  <span class='layout'>,</span> <span class='varid'>fctTableString</span>	<span class='comment'>-- minLength, maxLenght, length</span>
+<a name="line-29"></a>  <span class='layout'>,</span> <span class='varid'>fctTableList</span>	<span class='comment'>-- minLength, maxLenght, length</span>
+<a name="line-30"></a>
+<a name="line-31"></a>  <span class='layout'>,</span> <span class='varid'>stringValid</span>		<span class='comment'>-- checkString</span>
+<a name="line-32"></a>  <span class='layout'>,</span> <span class='varid'>numberValid</span>		<span class='comment'>-- checkNumeric</span>
+<a name="line-33"></a>
+<a name="line-34"></a>  <span class='layout'>,</span> <span class='varid'>numParamValid</span>
+<a name="line-35"></a>
+<a name="line-36"></a>  <span class='layout'>,</span> <span class='conid'>CheckA</span>		<span class='comment'>-- Check datatype</span>
+<a name="line-37"></a>  <span class='layout'>,</span> <span class='conid'>CheckString</span>		<span class='comment'>-- CheckA String String</span>
+<a name="line-38"></a>  <span class='layout'>,</span> <span class='conid'>CheckInteger</span>	<span class='comment'>-- CheckA Integer Integer</span>
+<a name="line-39"></a>
+<a name="line-40"></a>  <span class='layout'>,</span> <span class='varid'>performCheck</span>	<span class='comment'>-- run a CheckA</span>
+<a name="line-41"></a>  <span class='layout'>,</span> <span class='varid'>ok</span>			<span class='comment'>-- always true</span>
+<a name="line-42"></a>  <span class='layout'>,</span> <span class='varid'>failure</span>		<span class='comment'>-- create an error meesage</span>
+<a name="line-43"></a>  <span class='layout'>,</span> <span class='varid'>assert</span>		<span class='comment'>-- create a primitive check from a predicate</span>
+<a name="line-44"></a>  <span class='layout'>,</span> <span class='varid'>assertMaybe</span>		<span class='comment'>-- create a primitive check from a maybe</span>
+<a name="line-45"></a>  <span class='layout'>,</span> <span class='varid'>checkWith</span>		<span class='comment'>-- convert value before checking</span>
+<a name="line-46"></a>  <span class='layout'>)</span>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='keyword'>where</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'>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-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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>
+<a name="line-54"></a>
+<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>
+<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="CheckA"></a><span class='keyword'>newtype</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='layout'>{</span> <span class='varid'>runCheck</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Either</span> <span class='conid'>String</span> <span class='varid'>b</span> <span class='layout'>}</span>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>
+<a name="line-65"></a>    <span class='varid'>arr</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='layout'>(</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>f</span> <span class='layout'>)</span>		<span class='comment'>-- unit: no check, always o.k., just a conversion</span>
+<a name="line-66"></a>
+<a name="line-67"></a>    <span class='varid'>f1</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f2</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span>				<span class='comment'>-- logical and: f1 and f2 must hold</span>
+<a name="line-68"></a>		  <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f1</span> <span class='varid'>x</span> <span class='keyword'>of</span>
+<a name="line-69"></a>			 <span class='conid'>Right</span> <span class='varid'>y</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>runCheck</span> <span class='varid'>f2</span> <span class='varid'>y</span>
+<a name="line-70"></a>			 <span class='conid'>Left</span>  <span class='varid'>e</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span> <span class='varid'>e</span>
+<a name="line-71"></a>
+<a name="line-72"></a>    <span class='varid'>first</span> <span class='varid'>f1</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span>				<span class='comment'>-- check 1. component of a pair</span>
+<a name="line-73"></a>		  <span class='keyglyph'>\</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='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f1</span> <span class='varid'>x1</span> <span class='keyword'>of</span>
+<a name="line-74"></a>				 <span class='conid'>Right</span> <span class='varid'>y1</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span>
+<a name="line-75"></a>				 <span class='conid'>Left</span>  <span class='varid'>e</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span>  <span class='varid'>e</span>
+<a name="line-76"></a>
+<a name="line-77"></a>    <span class='varid'>second</span> <span class='varid'>f2</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span>				<span class='comment'>-- check 2. component of a pair</span>
+<a name="line-78"></a>		  <span class='keyglyph'>\</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='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f2</span> <span class='varid'>x2</span> <span class='keyword'>of</span>
+<a name="line-79"></a>				 <span class='conid'>Right</span> <span class='varid'>y2</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span>
+<a name="line-80"></a>				 <span class='conid'>Left</span>  <span class='varid'>e</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span>  <span class='varid'>e</span>
+<a name="line-81"></a>
+<a name="line-82"></a>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>
+<a name="line-85"></a>    <span class='varid'>zeroArrow</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='str'>""</span><span class='layout'>)</span>		<span class='comment'>-- always false: zero</span>
+<a name="line-86"></a>
+<a name="line-87"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>
+<a name="line-88"></a>    <span class='varid'>f1</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>f2</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span>				<span class='comment'>-- logical or</span>
+<a name="line-89"></a>		  <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f1</span> <span class='varid'>x</span> <span class='keyword'>of</span>
+<a name="line-90"></a>			 <span class='conid'>Right</span> <span class='varid'>y1</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Right</span> <span class='varid'>y1</span>
+<a name="line-91"></a>			 <span class='conid'>Left</span>  <span class='varid'>e1</span>	<span class='keyglyph'>-&gt;</span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f2</span> <span class='varid'>x</span> <span class='keyword'>of</span>
+<a name="line-92"></a>					   <span class='conid'>Right</span> <span class='varid'>y2</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Right</span> <span class='varid'>y2</span>
+<a name="line-93"></a>					   <span class='conid'>Left</span>  <span class='varid'>e2</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>e1</span>
+<a name="line-94"></a>								  <span class='keyword'>then</span> <span class='varid'>e2</span>
+<a name="line-95"></a>								  <span class='keyword'>else</span>
+<a name="line-96"></a>								  <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>e2</span>
+<a name="line-97"></a>								  <span class='keyword'>then</span> <span class='varid'>e1</span>
+<a name="line-98"></a>								  <span class='keyword'>else</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>" or "</span> <span class='varop'>++</span> <span class='varid'>e2</span>
+<a name="line-99"></a>								<span class='layout'>)</span>
+<a name="line-100"></a>
+<a name="line-101"></a><a name="CheckString"></a><span class='keyword'>type</span> <span class='conid'>CheckString</span>	<span class='keyglyph'>=</span> <span class='conid'>CheckA</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-102"></a><a name="CheckInteger"></a><span class='keyword'>type</span> <span class='conid'>CheckInteger</span>	<span class='keyglyph'>=</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>
+<a name="line-103"></a>
+<a name="line-104"></a><span class='comment'>-- | run a check and deliver Just an error message or Nothing</span>
+<a name="line-105"></a>
+<a name="line-106"></a><a name="performCheck"></a><span class='definition'>performCheck</span>	<span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-107"></a><span class='definition'>performCheck</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>runCheck</span> <span class='varid'>c</span>
+<a name="line-108"></a>
+<a name="line-109"></a><span class='comment'>-- | always failure</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="failure"></a><span class='definition'>failure</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-112"></a><span class='definition'>failure</span>	<span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>msg</span><span class='layout'>)</span>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- | every thing is fine</span>
+<a name="line-115"></a>
+<a name="line-116"></a><a name="ok"></a><span class='definition'>ok</span>		<span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>a</span>
+<a name="line-117"></a><span class='definition'>ok</span>		<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>id</span>
+<a name="line-118"></a>
+<a name="line-119"></a><span class='comment'>-- | perform a simple check with a predicate p,</span>
+<a name="line-120"></a><span class='comment'>--   when the predicate holds, assert acts as identity,</span>
+<a name="line-121"></a><span class='comment'>--   else an error message is generated</span>
+<a name="line-122"></a>
+<a name="line-123"></a><a name="assert"></a><span class='definition'>assert</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='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>a</span>
+<a name="line-124"></a><span class='definition'>assert</span> <span class='varid'>p</span> <span class='varid'>msg</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='conid'>Right</span> <span class='varid'>x</span> <span class='keyword'>else</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>msg</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- | perform a simple check with a Maybe function, Nothing indicates error</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="assertMaybe"></a><span class='definition'>assertMaybe</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='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-129"></a><span class='definition'>assertMaybe</span> <span class='varid'>f</span> <span class='varid'>msg</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>case</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='keyword'>of</span>
+<a name="line-131"></a>                 <span class='conid'>Nothing</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>msg</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-132"></a>		 <span class='conid'>Just</span> <span class='varid'>y</span>		<span class='keyglyph'>-&gt;</span> <span class='conid'>Right</span> <span class='varid'>y</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='comment'>-- | perform a check, but convert the value before checking</span>
+<a name="line-135"></a>
+<a name="line-136"></a><a name="checkWith"></a><span class='definition'>checkWith</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'>CheckA</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>a</span>
+<a name="line-137"></a><span class='definition'>checkWith</span> <span class='varid'>f</span> <span class='varid'>c</span>	<span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span>
+<a name="line-138"></a>		  <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>c</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-139"></a>			 <span class='conid'>Right</span> <span class='keyword'>_</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Right</span> <span class='varid'>x</span>
+<a name="line-140"></a>			 <span class='conid'>Left</span>  <span class='varid'>e</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Left</span>  <span class='varid'>e</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><span class='comment'>-- RelaxNG attribute names</span>
+<a name="line-145"></a>
+<a name="line-146"></a><a name="rng_length"></a><span class='definition'>rng_length</span><span class='layout'>,</span> <span class='varid'>rng_maxLength</span><span class='layout'>,</span> <span class='varid'>rng_minLength</span>
+<a name="line-147"></a> <span class='layout'>,</span><span class='varid'>rng_maxExclusive</span><span class='layout'>,</span> <span class='varid'>rng_minExclusive</span><span class='layout'>,</span> <span class='varid'>rng_maxInclusive</span><span class='layout'>,</span> <span class='varid'>rng_minInclusive</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-148"></a>
+<a name="line-149"></a><span class='definition'>rng_length</span>		<span class='keyglyph'>=</span> <span class='str'>"length"</span>
+<a name="line-150"></a><a name="rng_maxLength"></a><span class='definition'>rng_maxLength</span>		<span class='keyglyph'>=</span> <span class='str'>"maxLength"</span>
+<a name="line-151"></a><a name="rng_minLength"></a><span class='definition'>rng_minLength</span>		<span class='keyglyph'>=</span> <span class='str'>"minLength"</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="rng_maxExclusive"></a><span class='definition'>rng_maxExclusive</span>	<span class='keyglyph'>=</span> <span class='str'>"maxExclusive"</span>
+<a name="line-154"></a><a name="rng_minExclusive"></a><span class='definition'>rng_minExclusive</span>	<span class='keyglyph'>=</span> <span class='str'>"minExclusive"</span>
+<a name="line-155"></a><a name="rng_maxInclusive"></a><span class='definition'>rng_maxInclusive</span>	<span class='keyglyph'>=</span> <span class='str'>"maxInclusive"</span>
+<a name="line-156"></a><a name="rng_minInclusive"></a><span class='definition'>rng_minInclusive</span>	<span class='keyglyph'>=</span> <span class='str'>"minInclusive"</span>
+<a name="line-157"></a>
+<a name="line-158"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-159"></a>
+<a name="line-160"></a><span class='comment'>-- | Function table type</span>
+<a name="line-161"></a>
+<a name="line-162"></a><a name="FunctionTable"></a><span class='keyword'>type</span> <span class='conid'>FunctionTable</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-163"></a>
+<a name="line-164"></a><span class='comment'>-- | Function table for numeric tests,</span>
+<a name="line-165"></a><span class='comment'>-- XML document value is first operand, schema value second</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="fctTableNum"></a><span class='definition'>fctTableNum</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Ord</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Num</span> <span class='varid'>a</span><span class='layout'>)</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='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-168"></a><span class='definition'>fctTableNum</span>
+<a name="line-169"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>rng_maxExclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-170"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minExclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-171"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_maxInclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-172"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minInclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-173"></a>      <span class='keyglyph'>]</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="fctTableString"></a><span class='comment'>-- | Function table for string tests,</span>
+<a name="line-176"></a><span class='comment'>-- XML document value is first operand, schema value second</span>
+<a name="line-177"></a><span class='definition'>fctTableString</span> <span class='keyglyph'>::</span> <span class='conid'>FunctionTable</span>
+<a name="line-178"></a><span class='definition'>fctTableString</span>
+<a name="line-179"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>rng_length</span><span class='layout'>,</span>    <span class='layout'>(</span><span class='varid'>numParamValid</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-180"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_maxLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>numParamValid</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-181"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>numParamValid</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-182"></a>      <span class='keyglyph'>]</span>
+<a name="line-183"></a>
+<a name="line-184"></a><span class='comment'>-- | Function table for list tests,</span>
+<a name="line-185"></a><span class='comment'>-- XML document value is first operand, schema value second</span>
+<a name="line-186"></a>
+<a name="line-187"></a><a name="fctTableList"></a><span class='definition'>fctTableList</span> <span class='keyglyph'>::</span> <span class='conid'>FunctionTable</span>
+<a name="line-188"></a><span class='definition'>fctTableList</span>
+<a name="line-189"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>rng_length</span><span class='layout'>,</span>    <span class='layout'>(</span><span class='varid'>listParamValid</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-190"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_maxLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>listParamValid</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-191"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>listParamValid</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-192"></a>      <span class='keyglyph'>]</span>
+<a name="line-193"></a>
+<a name="line-194"></a><span class='comment'>{- | 
+<a name="line-195"></a>tests whether a string value matches a numeric param
+<a name="line-196"></a>
+<a name="line-197"></a>valid example:
+<a name="line-198"></a>
+<a name="line-199"></a>&gt; &lt;data type="CHAR"&gt; &lt;param name="maxLength"&gt;5&lt;/param&gt; &lt;/data&gt;
+<a name="line-200"></a>
+<a name="line-201"></a>invalid example:
+<a name="line-202"></a>
+<a name="line-203"></a>&gt; &lt;data type="CHAR"&gt; &lt;param name="minLength"&gt;foo&lt;/param&gt; &lt;/data&gt;
+<a name="line-204"></a>
+<a name="line-205"></a>-}</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="numParamValid"></a><span class='definition'>numParamValid</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='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-208"></a><span class='definition'>numParamValid</span> <span class='varid'>fct</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-209"></a>  <span class='keyglyph'>=</span> <span class='varid'>isNumber</span> <span class='varid'>b</span>
+<a name="line-210"></a>    <span class='varop'>&amp;&amp;</span>
+<a name="line-211"></a>    <span class='layout'>(</span> <span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>`fct`</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-212"></a>
+<a name="line-213"></a><span class='comment'>{- | 
+<a name="line-214"></a>tests whether a list value matches a length constraint
+<a name="line-215"></a>
+<a name="line-216"></a>valid example:
+<a name="line-217"></a>
+<a name="line-218"></a>&gt; &lt;data type="IDREFS"&gt; &lt;param name="maxLength"&gt;5&lt;/param&gt; &lt;/data&gt;
+<a name="line-219"></a>
+<a name="line-220"></a>invalid example:
+<a name="line-221"></a>
+<a name="line-222"></a>&gt; &lt;data type="IDREFS"&gt; &lt;param name="minLength"&gt;foo&lt;/param&gt; &lt;/data&gt;
+<a name="line-223"></a>
+<a name="line-224"></a>-}</span>
+<a name="line-225"></a>
+<a name="line-226"></a><a name="listParamValid"></a><span class='definition'>listParamValid</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='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-227"></a><span class='definition'>listParamValid</span> <span class='varid'>fct</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-228"></a>  <span class='keyglyph'>=</span> <span class='varid'>isNumber</span> <span class='varid'>b</span>
+<a name="line-229"></a>    <span class='varop'>&amp;&amp;</span>
+<a name="line-230"></a>    <span class='layout'>(</span> <span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>`fct`</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-231"></a>
+<a name="line-232"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-233"></a><span class='comment'>-- new check functions</span>
+<a name="line-234"></a>
+<a name="line-235"></a><span class='comment'>{- | 
+<a name="line-236"></a>Tests whether a \"string\" datatype value is between the lower and 
+<a name="line-237"></a>upper bound of the datatype and matches all parameters.
+<a name="line-238"></a>
+<a name="line-239"></a>All tests are performed on the string value.
+<a name="line-240"></a>   
+<a name="line-241"></a>   * 1.parameter  :  datatype
+<a name="line-242"></a>   
+<a name="line-243"></a>   - 2.parameter  :  lower bound of the datatype range
+<a name="line-244"></a>   
+<a name="line-245"></a>   - 3.parameter  :  upper bound of the datatype range (-1 = no upper bound) 
+<a name="line-246"></a>   
+<a name="line-247"></a>   - 4.parameter  :  list of parameters
+<a name="line-248"></a>   
+<a name="line-249"></a>   - 5.parameter  :  datatype value to be checked
+<a name="line-250"></a>
+<a name="line-251"></a>   - return : Just \"Errormessage\" in case of an error, else Nothing
+<a name="line-252"></a>   
+<a name="line-253"></a>-}</span>
+<a name="line-254"></a>
+<a name="line-255"></a><a name="stringValid"></a><span class='definition'>stringValid</span> 	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-256"></a><span class='definition'>stringValid</span>	<span class='keyglyph'>=</span> <span class='varid'>stringValidFT</span> <span class='varid'>fctTableString</span>
+<a name="line-257"></a>
+<a name="line-258"></a><a name="stringValidFT"></a><span class='definition'>stringValidFT</span> <span class='keyglyph'>::</span> <span class='conid'>FunctionTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-259"></a><span class='definition'>stringValidFT</span> <span class='varid'>ft</span> <span class='varid'>datatype</span> <span class='varid'>lowerBound</span> <span class='varid'>upperBound</span> <span class='varid'>params</span>
+<a name="line-260"></a>    <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>boundsOK</span> <span class='varid'>boundsErr</span>
+<a name="line-261"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-262"></a>      <span class='varid'>paramsStringValid</span> <span class='varid'>params</span>
+<a name="line-263"></a>    <span class='keyword'>where</span>
+<a name="line-264"></a>    <span class='varid'>boundsOK</span> <span class='varid'>v</span>
+<a name="line-265"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>lowerBound</span> <span class='varop'>==</span> <span class='num'>0</span><span class='layout'>)</span>
+<a name="line-266"></a>	    <span class='varop'>||</span>
+<a name="line-267"></a>	    <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varop'>&gt;=</span> <span class='varid'>lowerBound</span><span class='layout'>)</span>
+<a name="line-268"></a>	  <span class='layout'>)</span>
+<a name="line-269"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-270"></a>	  <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>upperBound</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-271"></a>	    <span class='varop'>||</span>
+<a name="line-272"></a>	    <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varop'>&lt;=</span> <span class='varid'>upperBound</span><span class='layout'>)</span>
+<a name="line-273"></a>	  <span class='layout'>)</span>
+<a name="line-274"></a>
+<a name="line-275"></a>    <span class='varid'>boundsErr</span> <span class='varid'>v</span>
+<a name="line-276"></a>	<span class='keyglyph'>=</span> <span class='str'>"Length of "</span> <span class='varop'>++</span> <span class='varid'>v</span>
+<a name="line-277"></a>          <span class='varop'>++</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'>length</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" chars) out of range: "</span>
+<a name="line-278"></a>          <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>lowerBound</span> <span class='varop'>++</span> <span class='str'>" .. "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upperBound</span>
+<a name="line-279"></a>          <span class='varop'>++</span> <span class='str'>" for datatype "</span> <span class='varop'>++</span> <span class='varid'>datatype</span>
+<a name="line-280"></a>
+<a name="line-281"></a>    <span class='varid'>paramStringValid</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>LocalName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-282"></a>    <span class='varid'>paramStringValid</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-283"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>paramOK</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-284"></a>	  <span class='keyword'>where</span>
+<a name="line-285"></a>	  <span class='varid'>paramOK</span> <span class='varid'>v</span>  <span class='keyglyph'>=</span> <span class='varid'>paramFct</span> <span class='varid'>pn</span> <span class='varid'>v</span> <span class='varid'>pv</span>
+<a name="line-286"></a>	  <span class='varid'>paramFct</span> <span class='varid'>n</span> <span class='keyglyph'>=</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'>n</span> <span class='varid'>ft</span>
+<a name="line-287"></a>
+<a name="line-288"></a>    <span class='varid'>paramsStringValid</span> <span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-289"></a>    <span class='varid'>paramsStringValid</span>
+<a name="line-290"></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'>paramStringValid</span>
+<a name="line-291"></a>
+<a name="line-292"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-293"></a>
+<a name="line-294"></a><span class='comment'>{- | 
+<a name="line-295"></a>Tests whether a \"numeric\" datatype value is between the lower and upper 
+<a name="line-296"></a>bound of the datatype and matches all parameters.
+<a name="line-297"></a>
+<a name="line-298"></a>First, the string value is parsed into a numeric representation.
+<a name="line-299"></a>If no error occur, all following tests are performed on the numeric value.
+<a name="line-300"></a>
+<a name="line-301"></a>   * 1.parameter  :  datatype
+<a name="line-302"></a>   
+<a name="line-303"></a>   - 2.parameter  :  lower bound of the datatype range
+<a name="line-304"></a>   
+<a name="line-305"></a>   - 3.parameter  :  upper bound of the datatype range (-1 = no upper bound) 
+<a name="line-306"></a>   
+<a name="line-307"></a>   - 4.parameter  :  list of parameters
+<a name="line-308"></a>   
+<a name="line-309"></a>   - 5.parameter  :  datatype value to be checked
+<a name="line-310"></a>
+<a name="line-311"></a>   - return : Just \"Errormessage\" in case of an error, else Nothing
+<a name="line-312"></a>   
+<a name="line-313"></a>-}</span>
+<a name="line-314"></a>
+<a name="line-315"></a><a name="numberValid"></a><span class='definition'>numberValid</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>
+<a name="line-316"></a><span class='definition'>numberValid</span> <span class='varid'>datatype</span> <span class='varid'>lowerBound</span> <span class='varid'>upperBound</span> <span class='varid'>params</span>
+<a name="line-317"></a>    <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>isNumber</span> <span class='varid'>numErr</span>
+<a name="line-318"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-319"></a>      <span class='varid'>checkWith</span> <span class='varid'>read</span> <span class='layout'>(</span> <span class='varid'>assert</span> <span class='varid'>inRange</span> <span class='varid'>rangeErr</span>
+<a name="line-320"></a>		       <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-321"></a>		       <span class='varid'>paramsNumValid</span> <span class='varid'>params</span>
+<a name="line-322"></a>		     <span class='layout'>)</span>
+<a name="line-323"></a>    <span class='keyword'>where</span>
+<a name="line-324"></a>    <span class='varid'>inRange</span>	<span class='keyglyph'>::</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-325"></a>    <span class='varid'>inRange</span> <span class='varid'>x</span>	<span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>&gt;=</span> <span class='varid'>lowerBound</span>
+<a name="line-326"></a>		  <span class='varop'>&amp;&amp;</span>
+<a name="line-327"></a>		  <span class='varid'>x</span> <span class='varop'>&lt;=</span> <span class='varid'>upperBound</span>
+<a name="line-328"></a>
+<a name="line-329"></a>    <span class='varid'>rangeErr</span> <span class='varid'>v</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>" out of range: "</span>
+<a name="line-330"></a>		    <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>lowerBound</span> <span class='varop'>++</span> <span class='str'>" .. "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upperBound</span>
+<a name="line-331"></a>		    <span class='varop'>++</span> <span class='str'>" for datatype "</span> <span class='varop'>++</span> <span class='varid'>datatype</span>
+<a name="line-332"></a>		  <span class='layout'>)</span>
+<a name="line-333"></a>    <span class='varid'>numErr</span> <span class='varid'>v</span>
+<a name="line-334"></a>	<span class='keyglyph'>=</span> <span class='str'>"Value = "</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>" is not a number"</span>
+<a name="line-335"></a>
+<a name="line-336"></a><a name="paramsNumValid"></a><span class='definition'>paramsNumValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckInteger</span>
+<a name="line-337"></a><span class='definition'>paramsNumValid</span>
+<a name="line-338"></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'>paramNumValid</span>
+<a name="line-339"></a>
+<a name="line-340"></a><a name="paramNumValid"></a><span class='definition'>paramNumValid</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>LocalName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckInteger</span>
+<a name="line-341"></a><span class='definition'>paramNumValid</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-342"></a>    <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>paramOK</span> <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-343"></a>    <span class='keyword'>where</span>
+<a name="line-344"></a>    <span class='varid'>paramOK</span>  <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='varid'>isNumber</span> <span class='varid'>pv</span>
+<a name="line-345"></a>		 <span class='varop'>&amp;&amp;</span>
+<a name="line-346"></a>		 <span class='varid'>paramFct</span> <span class='varid'>pn</span> <span class='varid'>v</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>pv</span><span class='layout'>)</span>
+<a name="line-347"></a>    <span class='varid'>paramFct</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>fctTableNum</span>
+<a name="line-348"></a>
+<a name="line-349"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-350"></a>    
+<a name="line-351"></a><span class='comment'>{- | 
+<a name="line-352"></a>Error Message for the equality test of two datatype values
+<a name="line-353"></a>   
+<a name="line-354"></a>   * 1.parameter  :  datatype
+<a name="line-355"></a>   
+<a name="line-356"></a>   - 2.parameter  :  datatype value
+<a name="line-357"></a>
+<a name="line-358"></a>   - 3.parameter  :  datatype value
+<a name="line-359"></a>   
+<a name="line-360"></a>example:
+<a name="line-361"></a>
+<a name="line-362"></a>&gt; errorMsgEqual "Int" "21" "42" -&gt; "Datatype Int with value = 21 expected, but value = 42 found"
+<a name="line-363"></a>
+<a name="line-364"></a>-}</span>
+<a name="line-365"></a>
+<a name="line-366"></a><a name="errorMsgParam"></a><span class='definition'>errorMsgParam</span>	<span class='keyglyph'>::</span> <span class='conid'>LocalName</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-367"></a><span class='definition'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varid'>v</span>
+<a name="line-368"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Parameter restriction: \""</span>
+<a name="line-369"></a>	<span class='varop'>++</span> <span class='varid'>pn</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>pv</span>
+<a name="line-370"></a>	<span class='varop'>++</span> <span class='str'>"\" does not hold for value = \""</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>"\""</span>
+<a name="line-371"></a>      <span class='layout'>)</span>
+<a name="line-372"></a>
+<a name="line-373"></a><a name="errorMsgEqual"></a><span class='definition'>errorMsgEqual</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</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-374"></a><span class='definition'>errorMsgEqual</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>s2</span>
+<a name="line-375"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>d</span> <span class='varop'>++</span>
+<a name="line-376"></a>	<span class='str'>" with value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s1</span> <span class='varop'>++</span>
+<a name="line-377"></a>	<span class='str'>" expected, but value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s2</span> <span class='varop'>++</span> <span class='str'>" found"</span> 
+<a name="line-378"></a>      <span class='layout'>)</span>
+<a name="line-379"></a><a name="errorMsgDataTypeNotAllowed"></a><span class='definition'>errorMsgDataTypeNotAllowed</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='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'>String</span>
+<a name="line-380"></a><span class='definition'>errorMsgDataTypeNotAllowed</span> <span class='varid'>l</span> <span class='varid'>t</span> <span class='varid'>p</span> <span class='varid'>v</span>
+<a name="line-381"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='str'>" with parameter(s) "</span> <span class='varop'>++</span>
+<a name="line-382"></a>        <span class='varid'>formatStringListPairs</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" and value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span>
+<a name="line-383"></a>        <span class='str'>" not allowed for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>l</span>
+<a name="line-384"></a>      <span class='layout'>)</span>
+<a name="line-385"></a>
+<a name="line-386"></a><a name="errorMsgDataTypeNotAllowed0"></a><span class='definition'>errorMsgDataTypeNotAllowed0</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-387"></a><span class='definition'>errorMsgDataTypeNotAllowed0</span> <span class='varid'>l</span> <span class='varid'>t</span>
+<a name="line-388"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>t</span> <span class='varop'>++</span>
+<a name="line-389"></a>        <span class='str'>" not allowed for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>l</span>
+<a name="line-390"></a>      <span class='layout'>)</span>
+<a name="line-391"></a><a name="errorMsgDataTypeNotAllowed2"></a><span class='definition'>errorMsgDataTypeNotAllowed2</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-392"></a><span class='definition'>errorMsgDataTypeNotAllowed2</span> <span class='varid'>l</span> <span class='varid'>t</span> <span class='varid'>v1</span> <span class='varid'>v2</span>
+<a name="line-393"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>t</span> <span class='varop'>++</span>
+<a name="line-394"></a>	<span class='str'>" with values = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v1</span> <span class='varop'>++</span>
+<a name="line-395"></a>	<span class='str'>" and "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v2</span> <span class='varop'>++</span> 
+<a name="line-396"></a>        <span class='str'>" not allowed for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>l</span>
+<a name="line-397"></a>      <span class='layout'>)</span>
+<a name="line-398"></a>
+<a name="line-399"></a><a name="errorMsgDataLibQName"></a><span class='definition'>errorMsgDataLibQName</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'>String</span>
+<a name="line-400"></a><span class='definition'>errorMsgDataLibQName</span> <span class='varid'>l</span> <span class='varid'>n</span> <span class='varid'>v</span>
+<a name="line-401"></a>    <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>" is not a valid "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>l</span>
+<a name="line-402"></a>
+<a name="line-403"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
@@ -0,0 +1,150 @@
+<!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'>-- | This modul exports the list of supported datatype libraries.</span>
+<a name="line-2"></a><span class='comment'>-- It also exports the main functions to validate an XML instance value</span>
+<a name="line-3"></a><span class='comment'>-- with respect to a datatype.</span>
+<a name="line-4"></a>
+<a name="line-5"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibraries</span>
+<a name="line-6"></a>  <span class='layout'>(</span> <span class='varid'>datatypeLibraries</span>
+<a name="line-7"></a>  <span class='layout'>,</span> <span class='varid'>datatypeEqual</span>
+<a name="line-8"></a>  <span class='layout'>,</span> <span class='varid'>datatypeAllows</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'>Interface</span>
+<a name="line-13"></a>    <span class='layout'>(</span> <span class='varid'>relaxNamespace</span>
+<a name="line-14"></a>    <span class='layout'>)</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>  
+<a name="line-17"></a>
+<a name="line-18"></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'>DataTypeLibMysql</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>mysqlDatatypeLib</span> <span class='layout'>)</span>
+<a name="line-20"></a>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>w3cDatatypeLib</span> <span class='layout'>)</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>    <span class='layout'>(</span> <span class='varid'>fromJust</span> <span class='layout'>)</span>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-28"></a>    
+<a name="line-29"></a>
+<a name="line-30"></a><span class='comment'>-- | List of all supported datatype libraries which can be </span>
+<a name="line-31"></a><span class='comment'>-- used within the Relax NG validator modul.</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="datatypeLibraries"></a><span class='definition'>datatypeLibraries</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibraries</span> 
+<a name="line-34"></a><span class='definition'>datatypeLibraries</span>
+<a name="line-35"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>relaxDatatypeLib</span>
+<a name="line-36"></a>      <span class='layout'>,</span> <span class='varid'>relaxDatatypeLib'</span>
+<a name="line-37"></a>      <span class='layout'>,</span> <span class='varid'>mysqlDatatypeLib</span>
+<a name="line-38"></a>      <span class='layout'>,</span> <span class='varid'>w3cDatatypeLib</span>
+<a name="line-39"></a>      <span class='keyglyph'>]</span>
+<a name="line-40"></a>
+<a name="line-41"></a>
+<a name="line-42"></a><span class='comment'>{- |
+<a name="line-43"></a>Tests whether a XML instance value matches a value-pattern.
+<a name="line-44"></a>
+<a name="line-45"></a>The following tests are performed:
+<a name="line-46"></a>   
+<a name="line-47"></a>   * 1. :  does the uri exist in the list of supported datatype libraries
+<a name="line-48"></a>
+<a name="line-49"></a>   - 2. :  does the library support the datatype
+<a name="line-50"></a>   
+<a name="line-51"></a>   - 3. :  does the XML instance value match the value-pattern
+<a name="line-52"></a>   
+<a name="line-53"></a>The hard work is done by the specialized 'DatatypeEqual' function 
+<a name="line-54"></a>(see also: 'DatatypeCheck') of the datatype library.
+<a name="line-55"></a>-}</span>
+<a name="line-56"></a>
+<a name="line-57"></a><a name="datatypeEqual"></a><span class='definition'>datatypeEqual</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DatatypeEqual</span>  
+<a name="line-58"></a><span class='definition'>datatypeEqual</span> <span class='varid'>uri</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>c1</span> <span class='varid'>s2</span> <span class='varid'>c2</span> 
+<a name="line-59"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>elem</span> <span class='varid'>uri</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>datatypeLibraries</span><span class='layout'>)</span>  
+<a name="line-60"></a>      <span class='keyword'>then</span> <span class='varid'>dtEqFct</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>c1</span> <span class='varid'>s2</span> <span class='varid'>c2</span> 
+<a name="line-61"></a>      <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span> <span class='str'>"Unknown DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='layout'>)</span>
+<a name="line-62"></a>    <span class='keyword'>where</span>
+<a name="line-63"></a>    <span class='conid'>DTC</span> <span class='keyword'>_</span> <span class='varid'>dtEqFct</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>datatypeLibraries</span>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='comment'>{- |
+<a name="line-66"></a>Tests whether a XML instance value matches a data-pattern.
+<a name="line-67"></a>
+<a name="line-68"></a>The following tests are performed:
+<a name="line-69"></a>   
+<a name="line-70"></a>   * 1. :  does the uri exist in the list of supported datatype libraries
+<a name="line-71"></a>
+<a name="line-72"></a>   - 2. :  does the library support the datatype
+<a name="line-73"></a>   
+<a name="line-74"></a>   - 3. :  does the XML instance value match the data-pattern
+<a name="line-75"></a>   
+<a name="line-76"></a>   - 4. :  does the XML instance value match all params
+<a name="line-77"></a>   
+<a name="line-78"></a>The hard work is done by the specialized 'DatatypeAllows' function 
+<a name="line-79"></a>(see also: 'DatatypeCheck') of the datatype library.
+<a name="line-80"></a>   
+<a name="line-81"></a>-}</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="datatypeAllows"></a><span class='definition'>datatypeAllows</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DatatypeAllows</span>
+<a name="line-84"></a><span class='definition'>datatypeAllows</span> <span class='varid'>uri</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>c1</span> 
+<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>elem</span> <span class='varid'>uri</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>datatypeLibraries</span><span class='layout'>)</span>
+<a name="line-86"></a>      <span class='keyword'>then</span> <span class='varid'>dtAllowFct</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>c1</span> 
+<a name="line-87"></a>      <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span> <span class='str'>"Unknown DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='layout'>)</span>
+<a name="line-88"></a>    <span class='keyword'>where</span>
+<a name="line-89"></a>    <span class='conid'>DTC</span> <span class='varid'>dtAllowFct</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>datatypeLibraries</span>
+<a name="line-90"></a>
+<a name="line-91"></a>
+<a name="line-92"></a><span class='comment'>-- --------------------------------------------------------------------------------------                    </span>
+<a name="line-93"></a><span class='comment'>-- Relax NG build in datatype library</span>
+<a name="line-94"></a>
+<a name="line-95"></a><a name="relaxDatatypeLib"></a><span class='definition'>relaxDatatypeLib</span> 	<span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>
+<a name="line-96"></a><span class='definition'>relaxDatatypeLib</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>relaxNamespace</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsRelax</span> <span class='varid'>datatypeEqualRelax</span> <span class='varid'>relaxDatatypes</span><span class='layout'>)</span>
+<a name="line-97"></a>
+<a name="line-98"></a><a name="relaxDatatypeLib'"></a><span class='comment'>-- | if there is no datatype uri, the built in datatype library is used</span>
+<a name="line-99"></a><span class='definition'>relaxDatatypeLib'</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>
+<a name="line-100"></a><span class='definition'>relaxDatatypeLib'</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span>             <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsRelax</span> <span class='varid'>datatypeEqualRelax</span> <span class='varid'>relaxDatatypes</span><span class='layout'>)</span>
+<a name="line-101"></a>
+<a name="line-102"></a><span class='comment'>-- | The build in Relax NG datatype lib supportes only the token and string datatype,</span>
+<a name="line-103"></a><span class='comment'>-- without any params.</span>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="relaxDatatypes"></a><span class='definition'>relaxDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>
+<a name="line-106"></a><span class='definition'>relaxDatatypes</span>
+<a name="line-107"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</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='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span> <span class='layout'>)</span> <span class='varid'>relaxDatatypeTable</span>
+<a name="line-108"></a>
+<a name="line-109"></a><a name="datatypeAllowsRelax"></a><span class='definition'>datatypeAllowsRelax</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>
+<a name="line-110"></a><span class='definition'>datatypeAllowsRelax</span> <span class='varid'>d</span> <span class='varid'>p</span> <span class='varid'>v</span> <span class='keyword'>_</span> 
+<a name="line-111"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notAllowed'</span> <span class='varid'>allowed</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>relaxDatatypeTable</span>
+<a name="line-112"></a>    <span class='keyword'>where</span>
+<a name="line-113"></a>    <span class='varid'>notAllowed'</span>
+<a name="line-114"></a>	<span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>relaxNamespace</span> <span class='varid'>d</span> <span class='varid'>p</span> <span class='varid'>v</span>
+<a name="line-115"></a>    <span class='varid'>allowed</span> <span class='keyword'>_</span>
+<a name="line-116"></a>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-117"></a>
+<a name="line-118"></a><span class='comment'>-- | If the token datatype is used, the values have to be normalized</span>
+<a name="line-119"></a><span class='comment'>-- (trailing and leading whitespaces are removed).</span>
+<a name="line-120"></a><span class='comment'>-- token does not perform any changes to the values.</span>
+<a name="line-121"></a>
+<a name="line-122"></a><a name="datatypeEqualRelax"></a><span class='definition'>datatypeEqualRelax</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>
+<a name="line-123"></a><span class='definition'>datatypeEqualRelax</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-124"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notAllowed'</span> <span class='varid'>checkValues</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>relaxDatatypeTable</span>
+<a name="line-125"></a>      <span class='keyword'>where</span>
+<a name="line-126"></a>      <span class='varid'>notAllowed'</span>
+<a name="line-127"></a>	  <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed2</span> <span class='varid'>relaxNamespace</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>s2</span>
+<a name="line-128"></a>      <span class='varid'>checkValues</span> <span class='varid'>predicate</span>
+<a name="line-129"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>predicate</span> <span class='varid'>s1</span> <span class='varid'>s2</span>
+<a name="line-130"></a>	    <span class='keyword'>then</span> <span class='conid'>Nothing</span>
+<a name="line-131"></a>	    <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>errorMsgEqual</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>s2</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="relaxDatatypeTable"></a><span class='definition'>relaxDatatypeTable</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-134"></a><span class='definition'>relaxDatatypeTable</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"string"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-136"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"token"</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'>normalizeWhitespace</span> <span class='varid'>s1</span> <span class='varop'>==</span> <span class='varid'>normalizeWhitespace</span> <span class='varid'>s2</span> <span class='layout'>)</span>
+<a name="line-137"></a>      <span class='keyglyph'>]</span>
+<a name="line-138"></a>
+<a name="line-139"></a>
+<a name="line-140"></a><span class='comment'>-- --------------------------------------------------------------------------------------                    </span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypes.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypes.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypes.html
@@ -0,0 +1,306 @@
+<!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='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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>
+<a name="line-2"></a><span class='keyword'>where</span> 
+<a name="line-3"></a>
+<a name="line-4"></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-5"></a>
+<a name="line-6"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-7"></a>
+<a name="line-8"></a><a name="relaxSchemaFile"></a><span class='definition'>relaxSchemaFile</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-9"></a><span class='definition'>relaxSchemaFile</span> <span class='keyglyph'>=</span> <span class='str'>"Text/XML/HXT/RelaxNG/SpecificationSchema.rng"</span>
+<a name="line-10"></a>
+<a name="line-11"></a>
+<a name="line-12"></a><a name="relaxSchemaGrammarFile"></a><span class='definition'>relaxSchemaGrammarFile</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-13"></a><span class='definition'>relaxSchemaGrammarFile</span> <span class='keyglyph'>=</span> <span class='str'>"Text/XML/HXT/RelaxNG/SpecificationSchemaGrammar.rng"</span>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-16"></a><span class='comment'>-- datatypes for the simplification process</span>
+<a name="line-17"></a>
+<a name="line-18"></a><a name="a_numberOfErrors"></a><span class='definition'>a_numberOfErrors</span><span class='layout'>,</span>
+<a name="line-19"></a> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>,</span>
+<a name="line-20"></a> <span class='varid'>defineOrigName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-21"></a>
+<a name="line-22"></a><span class='definition'>a_numberOfErrors</span>             <span class='keyglyph'>=</span> <span class='str'>"numberOfErrors"</span>
+<a name="line-23"></a><a name="a_relaxSimplificationChanges"></a><span class='definition'>a_relaxSimplificationChanges</span> <span class='keyglyph'>=</span> <span class='str'>"relaxSimplificationChanges"</span>
+<a name="line-24"></a><a name="defineOrigName"></a><span class='definition'>defineOrigName</span>               <span class='keyglyph'>=</span> <span class='str'>"RelaxDefineOriginalName"</span>
+<a name="line-25"></a>
+<a name="line-26"></a>
+<a name="line-27"></a><a name="Env"></a><span class='keyword'>type</span> <span class='conid'>Env</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'>XmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- | Start of a context attribute value </span>
+<a name="line-30"></a><span class='comment'>-- (see also: 'Text.XML.HXT.RelaxNG.Simplification.simplificationStep1')</span>
+<a name="line-31"></a><span class='comment'>--</span>
+<a name="line-32"></a><span class='comment'>-- The value is always followed by the original attribute name and value</span>
+<a name="line-33"></a>
+<a name="line-34"></a><a name="contextAttributes"></a><span class='definition'>contextAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-35"></a><span class='definition'>contextAttributes</span> <span class='keyglyph'>=</span> <span class='str'>"RelaxContext:"</span>
+<a name="line-36"></a>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='comment'>-- | Start of base uri attribute value </span>
+<a name="line-39"></a><span class='comment'>-- (see also: 'simplificationStep1' in "Text.XML.HXT.RelaxNG.Simplification")</span>
+<a name="line-40"></a>
+<a name="line-41"></a><a name="contextBaseAttr"></a><span class='definition'>contextBaseAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-42"></a><span class='definition'>contextBaseAttr</span> <span class='keyglyph'>=</span> <span class='str'>"RelaxContextBaseURI"</span>
+<a name="line-43"></a>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='comment'>-- see simplificationStep5 in Text.XML.HXT.RelaxNG.Simplification</span>
+<a name="line-46"></a>
+<a name="line-47"></a><a name="OldName"></a><span class='keyword'>type</span> <span class='conid'>OldName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-48"></a><a name="NewName"></a><span class='keyword'>type</span> <span class='conid'>NewName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-49"></a><a name="NamePair"></a><span class='keyword'>type</span> <span class='conid'>NamePair</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>OldName</span><span class='layout'>,</span> <span class='conid'>NewName</span><span class='layout'>)</span>
+<a name="line-50"></a><a name="RefList"></a><span class='keyword'>type</span> <span class='conid'>RefList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NamePair</span><span class='keyglyph'>]</span>
+<a name="line-51"></a>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-54"></a><span class='comment'>-- datatype library handling</span>
+<a name="line-55"></a>
+<a name="line-56"></a><span class='comment'>-- | Type of all datatype libraries functions that tests whether </span>
+<a name="line-57"></a><span class='comment'>-- a XML instance value matches a value-pattern.</span>
+<a name="line-58"></a><span class='comment'>--</span>
+<a name="line-59"></a><span class='comment'>-- Returns Just \"errorMessage\" in case of an error else Nothing.</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="DatatypeEqual"></a><span class='keyword'>type</span> <span class='conid'>DatatypeEqual</span>  <span class='keyglyph'>=</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-62"></a>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='comment'>-- | Type of all datatype libraries functions that tests whether </span>
+<a name="line-65"></a><span class='comment'>-- a XML instance value matches a data-pattern.</span>
+<a name="line-66"></a><span class='comment'>--</span>
+<a name="line-67"></a><span class='comment'>-- Returns Just \"errorMessage\" in case of an error else Nothing.</span>
+<a name="line-68"></a>
+<a name="line-69"></a><a name="DatatypeAllows"></a><span class='keyword'>type</span> <span class='conid'>DatatypeAllows</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>
+<a name="line-70"></a>
+<a name="line-71"></a>
+<a name="line-72"></a><span class='comment'>-- | List of all supported datatype libraries</span>
+<a name="line-73"></a>
+<a name="line-74"></a><a name="DatatypeLibraries"></a><span class='keyword'>type</span> <span class='conid'>DatatypeLibraries</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>DatatypeLibrary</span><span class='keyglyph'>]</span>
+<a name="line-75"></a>
+<a name="line-76"></a>
+<a name="line-77"></a><span class='comment'>-- | Each datatype library is identified by a URI.</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="DatatypeLibrary"></a><span class='keyword'>type</span> <span class='conid'>DatatypeLibrary</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Uri</span><span class='layout'>,</span> <span class='conid'>DatatypeCheck</span><span class='layout'>)</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="DatatypeName"></a><span class='keyword'>type</span> <span class='conid'>DatatypeName</span>      <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="ParamName"></a><span class='keyword'>type</span> <span class='conid'>ParamName</span>         <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-84"></a>
+<a name="line-85"></a>
+<a name="line-86"></a><span class='comment'>-- | List of all supported params for a datatype</span>
+<a name="line-87"></a>
+<a name="line-88"></a><a name="AllowedParams"></a><span class='keyword'>type</span> <span class='conid'>AllowedParams</span>     <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>ParamName</span><span class='keyglyph'>]</span>
+<a name="line-89"></a>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- | List of all supported datatypes and there allowed params</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="AllowedDatatypes"></a><span class='keyword'>type</span> <span class='conid'>AllowedDatatypes</span>  <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>DatatypeName</span><span class='layout'>,</span> <span class='conid'>AllowedParams</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-94"></a>
+<a name="line-95"></a>
+<a name="line-96"></a><span class='comment'>-- | The Constructor exports the list of supported datatypes for a library.</span>
+<a name="line-97"></a><span class='comment'>-- It also exports the specialized datatype library functions to validate </span>
+<a name="line-98"></a><span class='comment'>-- a XML instance value with respect to a datatype.</span>
+<a name="line-99"></a>
+<a name="line-100"></a><a name="DatatypeCheck"></a><span class='keyword'>data</span> <span class='conid'>DatatypeCheck</span> 
+<a name="line-101"></a>  <span class='keyglyph'>=</span> <span class='conid'>DTC</span> <span class='layout'>{</span> <span class='varid'>dtAllowsFct</span>    <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span> <span class='comment'>-- ^ function to test whether a value matches a data-pattern</span>
+<a name="line-102"></a>        <span class='layout'>,</span> <span class='varid'>dtEqualFct</span>     <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span> <span class='comment'>-- ^ function to test whether a value matches a value-pattern</span>
+<a name="line-103"></a>        <span class='layout'>,</span> <span class='varid'>dtAllowedTypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span> <span class='comment'>-- ^ list of all supported params for a datatype</span>
+<a name="line-104"></a>        <span class='layout'>}</span>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-107"></a><span class='comment'>-- datatypes for the validation process</span>
+<a name="line-108"></a>
+<a name="line-109"></a><a name="Uri"></a><span class='keyword'>type</span> <span class='conid'>Uri</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="LocalName"></a><span class='keyword'>type</span> <span class='conid'>LocalName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-112"></a>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- | List of parameters; each parameter is a pair consisting of a local name and a value.</span>
+<a name="line-115"></a>
+<a name="line-116"></a><a name="ParamList"></a><span class='keyword'>type</span> <span class='conid'>ParamList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>LocalName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="Prefix"></a><span class='keyword'>type</span> <span class='conid'>Prefix</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-119"></a>
+<a name="line-120"></a>
+<a name="line-121"></a><span class='comment'>-- | A Context represents the context of an XML element. </span>
+<a name="line-122"></a><span class='comment'>-- It consists of a base URI and a mapping from prefixes to namespace URIs.</span>
+<a name="line-123"></a>
+<a name="line-124"></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='conid'>Uri</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- | A Datatype identifies a datatype by a datatype library name and a local name.</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="Datatype"></a><span class='keyword'>type</span> <span class='conid'>Datatype</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Uri</span><span class='layout'>,</span> <span class='conid'>LocalName</span><span class='layout'>)</span>
+<a name="line-129"></a>
+<a name="line-130"></a><a name="showDatatype"></a><span class='definition'>showDatatype</span>	<span class='keyglyph'>::</span> <span class='conid'>Datatype</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-131"></a><span class='definition'>showDatatype</span> <span class='layout'>(</span><span class='varid'>u</span><span class='layout'>,</span> <span class='varid'>ln</span><span class='layout'>)</span>
+<a name="line-132"></a>	 <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>u</span>	<span class='keyglyph'>=</span> <span class='varid'>ln</span>
+<a name="line-133"></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'>u</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>ln</span>
+<a name="line-134"></a>
+<a name="line-135"></a><span class='comment'>-- | Represents a name class</span>
+<a name="line-136"></a>
+<a name="line-137"></a><a name="NameClass"></a><span class='keyword'>data</span> <span class='conid'>NameClass</span> <span class='keyglyph'>=</span> <span class='conid'>AnyName</span>
+<a name="line-138"></a>               <span class='keyglyph'>|</span> <span class='conid'>AnyNameExcept</span> <span class='conid'>NameClass</span>
+<a name="line-139"></a>               <span class='keyglyph'>|</span> <span class='conid'>Name</span> <span class='conid'>Uri</span> <span class='conid'>LocalName</span>
+<a name="line-140"></a>               <span class='keyglyph'>|</span> <span class='conid'>NsName</span> <span class='conid'>Uri</span>
+<a name="line-141"></a>               <span class='keyglyph'>|</span> <span class='conid'>NsNameExcept</span> <span class='conid'>Uri</span> <span class='conid'>NameClass</span>
+<a name="line-142"></a>               <span class='keyglyph'>|</span> <span class='conid'>NameClassChoice</span> <span class='conid'>NameClass</span> <span class='conid'>NameClass</span>
+<a name="line-143"></a>               <span class='keyglyph'>|</span> <span class='conid'>NCError</span> <span class='conid'>String</span>
+<a name="line-144"></a>               <span class='keyword'>deriving</span> <span class='conid'>Eq</span>
+<a name="line-145"></a>
+<a name="line-146"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>NameClass</span>
+<a name="line-147"></a>    <span class='keyword'>where</span>
+<a name="line-148"></a>    <span class='varid'>show</span> <span class='conid'>AnyName</span>	<span class='keyglyph'>=</span> <span class='str'>"AnyName"</span>
+<a name="line-149"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nameClass</span><span class='layout'>)</span> 
+<a name="line-150"></a>        		<span class='keyglyph'>=</span> <span class='str'>"AnyNameExcept: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass</span>
+<a name="line-151"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>uri</span> <span class='varid'>localName</span><span class='layout'>)</span>
+<a name="line-152"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span>	<span class='keyglyph'>=</span> <span class='varid'>localName</span>
+<a name="line-153"></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'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>localName</span>
+<a name="line-154"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>uri</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}AnyName"</span>
+<a name="line-155"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>uri</span> <span class='varid'>nameClass</span><span class='layout'>)</span> 
+<a name="line-156"></a>          		<span class='keyglyph'>=</span> <span class='str'>"NsNameExcept: {"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass</span>
+<a name="line-157"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nameClass1</span> <span class='varid'>nameClass2</span><span class='layout'>)</span>
+<a name="line-158"></a>         		<span class='keyglyph'>=</span> <span class='str'>"NameClassChoice: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass1</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass2</span>
+<a name="line-159"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NCError</span> <span class='varid'>string</span><span class='layout'>)</span>
+<a name="line-160"></a>			 <span class='keyglyph'>=</span> <span class='str'>"NCError: "</span> <span class='varop'>++</span> <span class='varid'>string</span>
+<a name="line-161"></a>
+<a name="line-162"></a>
+<a name="line-163"></a><span class='comment'>-- | Represents a pattern after simplification</span>
+<a name="line-164"></a>
+<a name="line-165"></a><a name="Pattern"></a><span class='keyword'>data</span> <span class='conid'>Pattern</span> <span class='keyglyph'>=</span> <span class='conid'>Empty</span>
+<a name="line-166"></a>             <span class='keyglyph'>|</span> <span class='conid'>NotAllowed</span> <span class='conid'>ErrMessage</span>
+<a name="line-167"></a>             <span class='keyglyph'>|</span> <span class='conid'>Text</span>
+<a name="line-168"></a>             <span class='keyglyph'>|</span> <span class='conid'>Choice</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>
+<a name="line-169"></a>             <span class='keyglyph'>|</span> <span class='conid'>Interleave</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>
+<a name="line-170"></a>             <span class='keyglyph'>|</span> <span class='conid'>Group</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>
+<a name="line-171"></a>             <span class='keyglyph'>|</span> <span class='conid'>OneOrMore</span> <span class='conid'>Pattern</span>
+<a name="line-172"></a>             <span class='keyglyph'>|</span> <span class='conid'>List</span> <span class='conid'>Pattern</span>
+<a name="line-173"></a>             <span class='keyglyph'>|</span> <span class='conid'>Data</span> <span class='conid'>Datatype</span> <span class='conid'>ParamList</span>
+<a name="line-174"></a>             <span class='keyglyph'>|</span> <span class='conid'>DataExcept</span> <span class='conid'>Datatype</span> <span class='conid'>ParamList</span> <span class='conid'>Pattern</span>
+<a name="line-175"></a>             <span class='keyglyph'>|</span> <span class='conid'>Value</span> <span class='conid'>Datatype</span> <span class='conid'>String</span> <span class='conid'>Context</span>
+<a name="line-176"></a>             <span class='keyglyph'>|</span> <span class='conid'>Attribute</span> <span class='conid'>NameClass</span> <span class='conid'>Pattern</span>
+<a name="line-177"></a>             <span class='keyglyph'>|</span> <span class='conid'>Element</span> <span class='conid'>NameClass</span> <span class='conid'>Pattern</span>
+<a name="line-178"></a>             <span class='keyglyph'>|</span> <span class='conid'>After</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>
+<a name="line-179"></a>
+<a name="line-180"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Pattern</span> <span class='keyword'>where</span>
+<a name="line-181"></a>    <span class='varid'>show</span> <span class='conid'>Empty</span>			<span class='keyglyph'>=</span> <span class='str'>"empty"</span>
+<a name="line-182"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='varid'>e</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>e</span>
+<a name="line-183"></a>    <span class='varid'>show</span> <span class='conid'>Text</span>			<span class='keyglyph'>=</span> <span class='str'>"text"</span>
+<a name="line-184"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</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'>p1</span> <span class='varop'>++</span> <span class='str'>" | "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-185"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</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'>p1</span> <span class='varop'>++</span> <span class='str'>" &amp; "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-186"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</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'>p1</span> <span class='varop'>++</span> <span class='str'>" , "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-187"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>"+"</span>
+<a name="line-188"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='varid'>p</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='str'>"list { "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" }"</span>
+<a name="line-189"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>dt</span> <span class='varid'>pl</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>showDatatype</span> <span class='varid'>dt</span> <span class='varop'>++</span> <span class='varid'>showPL</span> <span class='varid'>pl</span>
+<a name="line-190"></a>				  <span class='keyword'>where</span>
+<a name="line-191"></a>				  <span class='varid'>showPL</span> <span class='conid'>[]</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-192"></a>				  <span class='varid'>showPL</span> <span class='varid'>l</span>	<span class='keyglyph'>=</span> <span class='str'>" {"</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='varid'>showP</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>" }"</span>
+<a name="line-193"></a>				  <span class='varid'>showP</span> <span class='layout'>(</span><span class='varid'>ln</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>ln</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span>
+<a name="line-194"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='varid'>dt</span> <span class='varid'>pl</span> <span class='varid'>p</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>dt</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" - ("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-195"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='varid'>dt</span> <span class='varid'>v</span> <span class='sel'>_cx</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>showDatatype</span> <span class='varid'>dt</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span>
+<a name="line-196"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" { "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" }"</span>
+<a name="line-197"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='str'>"element "</span>   <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" { "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" }"</span>
+<a name="line-198"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</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'>p1</span> <span class='varop'>++</span> <span class='str'>" ; "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="ErrMessage"></a><span class='keyword'>data</span> <span class='conid'>ErrMessage</span>	<span class='keyglyph'>=</span> <span class='conid'>ErrMsg</span> <span class='conid'>ErrLevel</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-201"></a>		  <span class='comment'>-- deriving Show</span>
+<a name="line-202"></a>
+<a name="line-203"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>ErrMessage</span> <span class='keyword'>where</span>
+<a name="line-204"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='sel'>_lev</span> <span class='varid'>es</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>foldr1</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='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='varid'>es</span>
+<a name="line-205"></a>
+<a name="line-206"></a><a name="ErrLevel"></a><span class='keyword'>type</span> <span class='conid'>ErrLevel</span>	<span class='keyglyph'>=</span> <span class='conid'>Int</span>
+<a name="line-207"></a>
+<a name="line-208"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-209"></a>
+<a name="line-210"></a><span class='comment'>-- smart constructor funtions for Pattern</span>
+<a name="line-211"></a>
+<a name="line-212"></a><span class='comment'>-- | smart constructor for NotAllowed</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="notAllowed"></a><span class='definition'>notAllowed</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-215"></a><span class='definition'>notAllowed</span>	<span class='keyglyph'>=</span> <span class='varid'>notAllowedN</span> <span class='num'>0</span>
+<a name="line-216"></a>
+<a name="line-217"></a><a name="notAllowed1"></a><span class='definition'>notAllowed1</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-218"></a><span class='definition'>notAllowed1</span>	<span class='keyglyph'>=</span> <span class='varid'>notAllowedN</span> <span class='num'>1</span>
+<a name="line-219"></a>
+<a name="line-220"></a><a name="notAllowed2"></a><span class='definition'>notAllowed2</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-221"></a><span class='definition'>notAllowed2</span>	<span class='keyglyph'>=</span> <span class='varid'>notAllowedN</span> <span class='num'>2</span>
+<a name="line-222"></a>
+<a name="line-223"></a><a name="notAllowedN"></a><span class='definition'>notAllowedN</span>	<span class='keyglyph'>::</span> <span class='conid'>ErrLevel</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-224"></a><span class='definition'>notAllowedN</span> <span class='varid'>l</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='varid'>l</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-225"></a>
+<a name="line-226"></a><span class='comment'>-- | merge error messages</span>
+<a name="line-227"></a><span class='comment'>--</span>
+<a name="line-228"></a><span class='comment'>-- If error levels are different, the more important is taken,</span>
+<a name="line-229"></a><span class='comment'>-- if level is 2 (max level) both error messages are taken</span>
+<a name="line-230"></a><span class='comment'>-- else the 1. error mesage is taken</span>
+<a name="line-231"></a>
+<a name="line-232"></a><a name="mergeNotAllowed"></a><span class='definition'>mergeNotAllowed</span>	<span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-233"></a><span class='definition'>mergeNotAllowed</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='varid'>l1</span> <span class='varid'>s1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='varid'>l2</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-234"></a>    <span class='keyglyph'>|</span> <span class='varid'>l1</span> <span class='varop'>&lt;</span> <span class='varid'>l2</span>	<span class='keyglyph'>=</span> <span class='varid'>p2</span>
+<a name="line-235"></a>    <span class='keyglyph'>|</span> <span class='varid'>l1</span> <span class='varop'>&gt;</span> <span class='varid'>l2</span>	<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-236"></a>    <span class='keyglyph'>|</span> <span class='varid'>l1</span> <span class='varop'>==</span> <span class='num'>2</span>	<span class='keyglyph'>=</span> <span class='conid'>NotAllowed</span> <span class='varop'>$</span> <span class='conid'>ErrMsg</span> <span class='num'>2</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-237"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-238"></a>
+<a name="line-239"></a><span class='comment'>-- TODO : weird error when collecting error messages errors are duplicated</span>
+<a name="line-240"></a>
+<a name="line-241"></a><span class='definition'>mergeNotAllowed</span> <span class='sel'>_p1</span> <span class='sel'>_p2</span>
+<a name="line-242"></a>    <span class='keyglyph'>=</span> <span class='varid'>notAllowed2</span> <span class='str'>"mergeNotAllowed with wrong patterns"</span>
+<a name="line-243"></a>
+<a name="line-244"></a><span class='comment'>-- | smart constructor for Choice</span>
+<a name="line-245"></a>
+<a name="line-246"></a><a name="choice"></a><span class='definition'>choice</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-247"></a><span class='definition'>choice</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-248"></a><span class='definition'>choice</span> <span class='varid'>p1</span>                   <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-249"></a><span class='definition'>choice</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='varid'>p2</span>              	<span class='keyglyph'>=</span> <span class='varid'>p2</span>
+<a name="line-250"></a><span class='definition'>choice</span> <span class='varid'>p1</span>                <span class='varid'>p2</span>	    		<span class='keyglyph'>=</span> <span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-251"></a>
+<a name="line-252"></a><span class='comment'>-- | smart constructor for Group</span>
+<a name="line-253"></a>
+<a name="line-254"></a><a name="group"></a><span class='definition'>group</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-255"></a><span class='definition'>group</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-256"></a><span class='definition'>group</span> <span class='keyword'>_</span>                   <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-257"></a><span class='definition'>group</span>   <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-258"></a><span class='definition'>group</span> <span class='varid'>p</span>                  <span class='conid'>Empty</span>			<span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-259"></a><span class='definition'>group</span> <span class='conid'>Empty</span>              <span class='varid'>p</span>			<span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-260"></a><span class='definition'>group</span> <span class='varid'>p1</span>                 <span class='varid'>p2</span>			<span class='keyglyph'>=</span> <span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-261"></a>
+<a name="line-262"></a><span class='comment'>-- | smart constructor for OneOrMore</span>
+<a name="line-263"></a>
+<a name="line-264"></a><a name="oneOrMore"></a><span class='definition'>oneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-265"></a><span class='definition'>oneOrMore</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-266"></a><span class='definition'>oneOrMore</span> <span class='varid'>p</span>                <span class='keyglyph'>=</span> <span class='conid'>OneOrMore</span> <span class='varid'>p</span>
+<a name="line-267"></a>
+<a name="line-268"></a><span class='comment'>-- | smart constructor for Interleave</span>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="interleave"></a><span class='definition'>interleave</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-271"></a><span class='definition'>interleave</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-272"></a><span class='definition'>interleave</span> <span class='keyword'>_</span>                 <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>p2</span>
+<a name="line-273"></a><span class='definition'>interleave</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-274"></a><span class='definition'>interleave</span> <span class='varid'>p1</span>                <span class='conid'>Empty</span>		<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-275"></a><span class='definition'>interleave</span> <span class='conid'>Empty</span>             <span class='varid'>p2</span>			<span class='keyglyph'>=</span> <span class='varid'>p2</span>
+<a name="line-276"></a><span class='definition'>interleave</span> <span class='varid'>p1</span>		     <span class='varid'>p2</span>			<span class='keyglyph'>=</span> <span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-277"></a>
+<a name="line-278"></a><span class='comment'>-- | smart constructor for After</span>
+<a name="line-279"></a>
+<a name="line-280"></a><a name="after"></a><span class='definition'>after</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-281"></a><span class='definition'>after</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-282"></a><span class='definition'>after</span> <span class='keyword'>_</span>                 <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>p2</span>
+<a name="line-283"></a><span class='definition'>after</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-284"></a><span class='definition'>after</span> <span class='varid'>p1</span>                <span class='varid'>p2</span>			<span class='keyglyph'>=</span> <span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span>
+<a name="line-285"></a>
+<a name="line-286"></a>
+<a name="line-287"></a><span class='comment'>-- | Possible content types of a Relax NG pattern.</span>
+<a name="line-288"></a><span class='comment'>-- (see also chapter 7.2 in Relax NG specification)</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="ContentType"></a><span class='keyword'>data</span> <span class='conid'>ContentType</span> <span class='keyglyph'>=</span> <span class='conid'>CTEmpty</span>
+<a name="line-291"></a>                 <span class='keyglyph'>|</span> <span class='conid'>CTComplex</span>
+<a name="line-292"></a>                 <span class='keyglyph'>|</span> <span class='conid'>CTSimple</span>
+<a name="line-293"></a>                 <span class='keyglyph'>|</span> <span class='conid'>CTNone</span>
+<a name="line-294"></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-295"></a>
+<a name="line-296"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternFunctions.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternFunctions.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternFunctions.html
@@ -0,0 +1,118 @@
+<!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'>-- | basic 'Pattern' functions</span>
+<a name="line-2"></a><span class='comment'>--</span>
+<a name="line-3"></a>
+<a name="line-4"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternFunctions</span>
+<a name="line-5"></a>
+<a name="line-6"></a><span class='keyword'>where</span>
+<a name="line-7"></a>
+<a name="line-8"></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'>DataTypes</span>
+<a name="line-9"></a>
+<a name="line-10"></a>
+<a name="line-11"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-12"></a>
+<a name="line-13"></a><a name="isRelaxEmpty"></a><span class='definition'>isRelaxEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-14"></a><span class='definition'>isRelaxEmpty</span> <span class='conid'>Empty</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>          
+<a name="line-15"></a><span class='definition'>isRelaxEmpty</span> <span class='keyword'>_</span>     <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-16"></a>
+<a name="line-17"></a><a name="isRelaxNotAllowed"></a><span class='definition'>isRelaxNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-18"></a><span class='definition'>isRelaxNotAllowed</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>          
+<a name="line-19"></a><span class='definition'>isRelaxNotAllowed</span> <span class='keyword'>_</span>              <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-20"></a>
+<a name="line-21"></a><a name="isRelaxText"></a><span class='definition'>isRelaxText</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-22"></a><span class='definition'>isRelaxText</span> <span class='conid'>Text</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>          
+<a name="line-23"></a><span class='definition'>isRelaxText</span> <span class='keyword'>_</span>    <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-24"></a>
+<a name="line-25"></a><a name="isRelaxChoice"></a><span class='definition'>isRelaxChoice</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-26"></a><span class='definition'>isRelaxChoice</span> <span class='layout'>(</span><span class='conid'>Choice</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-27"></a><span class='definition'>isRelaxChoice</span> <span class='keyword'>_</span>            <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-28"></a>
+<a name="line-29"></a><a name="isRelaxInterleave"></a><span class='definition'>isRelaxInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-30"></a><span class='definition'>isRelaxInterleave</span> <span class='layout'>(</span><span class='conid'>Interleave</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-31"></a><span class='definition'>isRelaxInterleave</span> <span class='keyword'>_</span>                <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="isRelaxGroup"></a><span class='definition'>isRelaxGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-34"></a><span class='definition'>isRelaxGroup</span> <span class='layout'>(</span><span class='conid'>Group</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-35"></a><span class='definition'>isRelaxGroup</span> <span class='keyword'>_</span>           <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="isRelaxOneOrMore"></a><span class='definition'>isRelaxOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-38"></a><span class='definition'>isRelaxOneOrMore</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>          
+<a name="line-39"></a><span class='definition'>isRelaxOneOrMore</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-40"></a>
+<a name="line-41"></a><a name="isRelaxList"></a><span class='definition'>isRelaxList</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-42"></a><span class='definition'>isRelaxList</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>          
+<a name="line-43"></a><span class='definition'>isRelaxList</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="isRelaxData"></a><span class='definition'>isRelaxData</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-46"></a><span class='definition'>isRelaxData</span> <span class='layout'>(</span><span class='conid'>Data</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-47"></a><span class='definition'>isRelaxData</span> <span class='keyword'>_</span>          <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-48"></a>
+<a name="line-49"></a><a name="isRelaxDataExcept"></a><span class='definition'>isRelaxDataExcept</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-50"></a><span class='definition'>isRelaxDataExcept</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</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-51"></a><span class='definition'>isRelaxDataExcept</span> <span class='keyword'>_</span>                  <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-52"></a>
+<a name="line-53"></a><a name="isRelaxValue"></a><span class='definition'>isRelaxValue</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-54"></a><span class='definition'>isRelaxValue</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='keyword'>_</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-55"></a><span class='definition'>isRelaxValue</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-56"></a>
+<a name="line-57"></a><a name="isRelaxAttribute"></a><span class='definition'>isRelaxAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-58"></a><span class='definition'>isRelaxAttribute</span> <span class='layout'>(</span><span class='conid'>Attribute</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-59"></a><span class='definition'>isRelaxAttribute</span> <span class='keyword'>_</span>               <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="isRelaxElement"></a><span class='definition'>isRelaxElement</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-62"></a><span class='definition'>isRelaxElement</span> <span class='layout'>(</span><span class='conid'>Element</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-63"></a><span class='definition'>isRelaxElement</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-64"></a>             
+<a name="line-65"></a><a name="isRelaxAfter"></a><span class='definition'>isRelaxAfter</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-66"></a><span class='definition'>isRelaxAfter</span> <span class='layout'>(</span><span class='conid'>After</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-67"></a><span class='definition'>isRelaxAfter</span> <span class='keyword'>_</span>           <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-68"></a>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="getChildrenPattern"></a><span class='comment'>-- | Returns a list of children pattern for each pattern, </span>
+<a name="line-71"></a><span class='comment'>-- e.g. (Choice p1 p2) = [p1, p2]</span>
+<a name="line-72"></a><span class='definition'>getChildrenPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Pattern</span><span class='keyglyph'>]</span>
+<a name="line-73"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>
+<a name="line-74"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>
+<a name="line-75"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>
+<a name="line-76"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>
+<a name="line-77"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>
+<a name="line-78"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>
+<a name="line-79"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>
+<a name="line-80"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>
+<a name="line-81"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>
+<a name="line-82"></a><span class='definition'>getChildrenPattern</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-83"></a>
+<a name="line-84"></a>
+<a name="line-85"></a><a name="getNameClassFromPattern"></a><span class='comment'>-- | Returns the nameclass of a element- or attribute pattern.</span>
+<a name="line-86"></a><span class='comment'>-- Otherwise 'NCError' is returned.</span>
+<a name="line-87"></a><span class='definition'>getNameClassFromPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NameClass</span>
+<a name="line-88"></a><span class='definition'>getNameClassFromPattern</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>nc</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nc</span>
+<a name="line-89"></a><span class='definition'>getNameClassFromPattern</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nc</span>
+<a name="line-90"></a><span class='definition'>getNameClassFromPattern</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>NCError</span> <span class='str'>"Pattern without a NameClass"</span>
+<a name="line-91"></a>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="getPatternName"></a><span class='comment'>-- | Returns a string representation of the pattern name</span>
+<a name="line-94"></a><span class='definition'>getPatternName</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-95"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Empty</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Empty"</span>
+<a name="line-96"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"NotAllowed"</span>
+<a name="line-97"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Text</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Text"</span>
+<a name="line-98"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Choice"</span>
+<a name="line-99"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Interleave"</span>
+<a name="line-100"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Group"</span>
+<a name="line-101"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"OneOrMore"</span>
+<a name="line-102"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"List"</span>
+<a name="line-103"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Data"</span>
+<a name="line-104"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"DataExcept"</span>
+<a name="line-105"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Value"</span>
+<a name="line-106"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Attribute"</span>
+<a name="line-107"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Element"</span>
+<a name="line-108"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"After"</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternToString.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternToString.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternToString.html
@@ -0,0 +1,370 @@
+<!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='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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</span>
+<a name="line-2"></a>  <span class='layout'>(</span> <span class='varid'>patternToStringTree</span>
+<a name="line-3"></a>  <span class='layout'>,</span> <span class='varid'>patternToFormatedString</span>
+<a name="line-4"></a>  <span class='layout'>,</span> <span class='varid'>xmlTreeToPatternStringTree</span>
+<a name="line-5"></a>  <span class='layout'>,</span> <span class='varid'>xmlTreeToPatternFormatedString</span>
+<a name="line-6"></a>  <span class='layout'>,</span> <span class='varid'>xmlTreeToPatternString</span>
+<a name="line-7"></a>  <span class='layout'>,</span> <span class='varid'>nameClassToString</span>
+<a name="line-8"></a>  <span class='layout'>)</span>
+<a name="line-9"></a><span class='keyword'>where</span>
+<a name="line-10"></a>
+<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'>ListArrows</span>
+<a name="line-12"></a>
+<a name="line-13"></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-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'>Interface</span>
+<a name="line-16"></a>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>
+<a name="line-18"></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'>CreatePattern</span>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></a><a name="PatternTree"></a><span class='keyword'>type</span> <span class='conid'>PatternTree</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='conid'>String</span>
+<a name="line-24"></a>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='comment'>{- |
+<a name="line-27"></a>Returns a string representation of the pattern structure.
+<a name="line-28"></a>(see also: 'createPatternFromXmlTree')
+<a name="line-29"></a>
+<a name="line-30"></a>Example:
+<a name="line-31"></a>
+<a name="line-32"></a>&gt; Element {}foo (Choice (Choice (Value ("","token") "abc"
+<a name="line-33"></a>&gt; ("foo","www.bar.baz")]))(Data ("<a href="http://www.mysql.com">http://www.mysql.com</a>","VARCHAR")
+<a name="line-34"></a>&gt; [("length","2"),("maxLength","5")])) (Element {}bar (Group (Element {}baz
+<a name="line-35"></a>
+<a name="line-36"></a>The function can @not@ be used to display circular ref-pattern structures.
+<a name="line-37"></a>-}</span>
+<a name="line-38"></a>
+<a name="line-39"></a><a name="xmlTreeToPatternString"></a><span class='definition'>xmlTreeToPatternString</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-40"></a><span class='definition'>xmlTreeToPatternString</span>
+<a name="line-41"></a>    <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXmlTree</span>
+<a name="line-42"></a>      <span class='varop'>&gt;&gt;^</span>
+<a name="line-43"></a>      <span class='varid'>show</span>
+<a name="line-44"></a>
+<a name="line-45"></a>
+<a name="line-46"></a><span class='comment'>-- | Returns a string representation of a nameclass.</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="nameClassToString"></a><span class='definition'>nameClassToString</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-49"></a><span class='definition'>nameClassToString</span> <span class='conid'>AnyName</span>
+<a name="line-50"></a>    <span class='keyglyph'>=</span> <span class='str'>"AnyName"</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nc</span><span class='layout'>)</span> 
+<a name="line-53"></a>    <span class='keyglyph'>=</span> <span class='str'>"AnyNameExcept "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span>
+<a name="line-54"></a>
+<a name="line-55"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>uri</span> <span class='varid'>local</span><span class='layout'>)</span> 
+<a name="line-56"></a>    <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>local</span>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-59"></a>    <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span>
+<a name="line-60"></a>
+<a name="line-61"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>uri</span> <span class='varid'>nc</span><span class='layout'>)</span>
+<a name="line-62"></a>    <span class='keyglyph'>=</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"except (NsName) "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span>
+<a name="line-63"></a>
+<a name="line-64"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span>
+<a name="line-65"></a>    <span class='keyglyph'>=</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc1</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc2</span>
+<a name="line-66"></a>
+<a name="line-67"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NCError</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-68"></a>    <span class='keyglyph'>=</span> <span class='str'>"NameClass Error: "</span> <span class='varop'>++</span> <span class='varid'>e</span>
+<a name="line-69"></a>
+<a name="line-70"></a>
+<a name="line-71"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-72"></a>
+<a name="line-73"></a><span class='comment'>{- |
+<a name="line-74"></a>Returns a tree representation of the pattern structure.
+<a name="line-75"></a>The hard work is done by 'formatTree'.
+<a name="line-76"></a>
+<a name="line-77"></a>Example:
+<a name="line-78"></a>
+<a name="line-79"></a>&gt; +---element {}bar
+<a name="line-80"></a>&gt;     |
+<a name="line-81"></a>&gt;     +---group
+<a name="line-82"></a>&gt;         |
+<a name="line-83"></a>&gt;         +---oneOrMore
+<a name="line-84"></a>&gt;         |   |
+<a name="line-85"></a>&gt;         |   +---attribute AnyName
+<a name="line-86"></a>&gt;         |       |
+<a name="line-87"></a>&gt;         |       +---text
+<a name="line-88"></a>&gt;         |
+<a name="line-89"></a>&gt;         +---text
+<a name="line-90"></a>               
+<a name="line-91"></a>The function can be used to display circular ref-pattern structures.
+<a name="line-92"></a>
+<a name="line-93"></a>Example:
+<a name="line-94"></a>
+<a name="line-95"></a>&gt; &lt;define name="baz"&gt;
+<a name="line-96"></a>&gt;   &lt;element name="baz"&gt;
+<a name="line-97"></a>&gt;     ... &lt;ref name="baz"/&gt; ...
+<a name="line-98"></a>&gt;   &lt;/element&gt;
+<a name="line-99"></a>&gt; &lt;/define&gt;
+<a name="line-100"></a>
+<a name="line-101"></a>-}</span>
+<a name="line-102"></a>
+<a name="line-103"></a><a name="patternToStringTree"></a><span class='definition'>patternToStringTree</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-104"></a><span class='definition'>patternToStringTree</span>
+<a name="line-105"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='varid'>pattern2PatternTree</span>
+<a name="line-106"></a>      <span class='varop'>&gt;&gt;^</span>
+<a name="line-107"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>p</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>formatTree</span> <span class='varid'>id</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span>
+<a name="line-108"></a>
+<a name="line-109"></a>
+<a name="line-110"></a><span class='comment'>-- | Returns a tree representation of the pattern structure.</span>
+<a name="line-111"></a><span class='comment'>-- (see also: 'createPatternFromXmlTree' and 'patternToStringTree')</span>
+<a name="line-112"></a>
+<a name="line-113"></a><a name="xmlTreeToPatternStringTree"></a><span class='definition'>xmlTreeToPatternStringTree</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-114"></a><span class='definition'>xmlTreeToPatternStringTree</span>
+<a name="line-115"></a>    <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXmlTree</span> 
+<a name="line-116"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-117"></a>      <span class='varid'>patternToStringTree</span>
+<a name="line-118"></a>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="pattern2PatternTree"></a><span class='definition'>pattern2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-121"></a><span class='definition'>pattern2PatternTree</span>
+<a name="line-122"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-123"></a>      <span class='keyglyph'>[</span> <span class='varid'>isA</span> <span class='varid'>isRelaxEmpty</span>      <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='conid'>NTree</span> <span class='str'>"empty"</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-124"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxNotAllowed</span> <span class='conop'>:-&gt;</span> <span class='varid'>notAllowed2PatternTree</span>
+<a name="line-125"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxText</span>       <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='conid'>NTree</span> <span class='str'>"text"</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-126"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxChoice</span>     <span class='conop'>:-&gt;</span> <span class='varid'>choice2PatternTree</span>          
+<a name="line-127"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxInterleave</span> <span class='conop'>:-&gt;</span> <span class='varid'>children2PatternTree</span> <span class='str'>"interleave"</span>
+<a name="line-128"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxGroup</span>      <span class='conop'>:-&gt;</span> <span class='varid'>children2PatternTree</span> <span class='str'>"group"</span>
+<a name="line-129"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxOneOrMore</span>  <span class='conop'>:-&gt;</span> <span class='varid'>children2PatternTree</span> <span class='str'>"oneOrMore"</span>
+<a name="line-130"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxList</span>       <span class='conop'>:-&gt;</span> <span class='varid'>children2PatternTree</span> <span class='str'>"list"</span>
+<a name="line-131"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxData</span>       <span class='conop'>:-&gt;</span> <span class='varid'>data2PatternTree</span>
+<a name="line-132"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxDataExcept</span> <span class='conop'>:-&gt;</span> <span class='varid'>dataExcept2PatternTree</span>
+<a name="line-133"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxValue</span>      <span class='conop'>:-&gt;</span> <span class='varid'>value2PatternTree</span>
+<a name="line-134"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAttribute</span>  <span class='conop'>:-&gt;</span> <span class='varid'>createPatternTreeFromElement</span> <span class='str'>"attribute"</span>          
+<a name="line-135"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxElement</span>    <span class='conop'>:-&gt;</span> <span class='varid'>element2PatternTree</span>
+<a name="line-136"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAfter</span>      <span class='conop'>:-&gt;</span> <span class='varid'>children2PatternTree</span> <span class='str'>"after"</span>
+<a name="line-137"></a>      <span class='keyglyph'>]</span>
+<a name="line-138"></a>
+<a name="line-139"></a><a name="notAllowed2PatternTree"></a><span class='definition'>notAllowed2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-140"></a><span class='definition'>notAllowed2PatternTree</span>
+<a name="line-141"></a>    <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='sel'>_l</span> <span class='varid'>sl</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='str'>"notAllowed"</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>s</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>sl</span>
+<a name="line-142"></a>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="data2PatternTree"></a><span class='definition'>data2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-145"></a><span class='definition'>data2PatternTree</span> 
+<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>d</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='str'>"data"</span> <span class='keyglyph'>[</span> <span class='varid'>datatype2PatternTree</span> <span class='varid'>d</span>
+<a name="line-147"></a>					 <span class='layout'>,</span> <span class='varid'>mapping2PatternTree</span> <span class='str'>"parameter"</span> <span class='varid'>p</span>
+<a name="line-148"></a>					 <span class='keyglyph'>]</span>
+<a name="line-149"></a> 
+<a name="line-150"></a><a name="dataExcept2PatternTree"></a><span class='definition'>dataExcept2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-151"></a><span class='definition'>dataExcept2PatternTree</span> 
+<a name="line-152"></a>    <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>pattern2PatternTree</span><span class='layout'>)</span>
+<a name="line-153"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-154"></a>      <span class='varid'>arr2</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='varid'>d</span> <span class='varid'>param</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>pattern</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-155"></a>             <span class='conid'>NTree</span> <span class='str'>"dataExcept"</span> <span class='layout'>(</span><span class='keyglyph'>[</span> <span class='varid'>datatype2PatternTree</span> <span class='varid'>d</span>
+<a name="line-156"></a>				 <span class='layout'>,</span> <span class='varid'>mapping2PatternTree</span> <span class='str'>"parameter"</span> <span class='varid'>param</span>
+<a name="line-157"></a>				 <span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>pattern</span><span class='layout'>)</span>
+<a name="line-158"></a>           <span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a><a name="value2PatternTree"></a><span class='definition'>value2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span> 
+<a name="line-161"></a><span class='definition'>value2PatternTree</span>
+<a name="line-162"></a>    <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='varid'>d</span> <span class='varid'>v</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"value = "</span> <span class='varop'>++</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>[</span> <span class='varid'>datatype2PatternTree</span> <span class='varid'>d</span>
+<a name="line-163"></a>                                                       <span class='layout'>,</span> <span class='varid'>context2PatternTree</span> <span class='varid'>c</span>
+<a name="line-164"></a>                                                       <span class='keyglyph'>]</span>
+<a name="line-165"></a>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="createPatternTreeFromElement"></a><span class='definition'>createPatternTreeFromElement</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-168"></a><span class='definition'>createPatternTreeFromElement</span> <span class='varid'>name</span>
+<a name="line-169"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>
+<a name="line-170"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-171"></a>	<span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>pattern2PatternTree</span><span class='layout'>)</span>
+<a name="line-172"></a>      <span class='layout'>)</span>
+<a name="line-173"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-174"></a>      <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>nc</span> <span class='varid'>rl</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='varid'>rl</span><span class='layout'>)</span>
+<a name="line-175"></a>
+<a name="line-176"></a><a name="children2PatternTree"></a><span class='definition'>children2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-177"></a><span class='definition'>children2PatternTree</span> <span class='varid'>name</span> 
+<a name="line-178"></a>    <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>pattern2PatternTree</span><span class='layout'>)</span> 
+<a name="line-179"></a>      <span class='varop'>&gt;&gt;^</span>
+<a name="line-180"></a>      <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-181"></a>
+<a name="line-182"></a><a name="choice2PatternTree"></a><span class='definition'>choice2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-183"></a><span class='definition'>choice2PatternTree</span> 
+<a name="line-184"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- wenn das zweite kind ein noch nicht ausgegebenes element ist, </span>
+<a name="line-185"></a>            <span class='comment'>-- muss dieses anders behandelt werden</span>
+<a name="line-186"></a>            <span class='comment'>-- nur fuer bessere formatierung des outputs</span>
+<a name="line-187"></a>            <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>last</span> <span class='varop'>.</span> <span class='varid'>getChildrenPattern</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isRelaxElement</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-188"></a>            <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getState</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-189"></a>            <span class='varid'>isA</span><span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>nc</span><span class='layout'>,</span> <span class='varid'>liste</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>nc</span> <span class='varid'>liste</span><span class='layout'>)</span>
+<a name="line-190"></a>          <span class='layout'>)</span>
+<a name="line-191"></a>      <span class='layout'>(</span> <span class='comment'>-- element in status aufnehmen, wird dann nicht mehr vom erste kind ausgegeben</span>
+<a name="line-192"></a>        <span class='varid'>arr</span> <span class='varid'>getChildrenPattern</span>
+<a name="line-193"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-194"></a>        <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='varid'>p</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>getNameClassFromPattern</span> <span class='layout'>(</span><span class='varid'>last</span> <span class='varid'>p</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-195"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-196"></a>        <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>head</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>pattern2PatternTree</span> <span class='layout'>)</span>		<span class='comment'>-- erstes kind normal verarbeiten</span>
+<a name="line-197"></a>          <span class='varop'>&amp;&amp;&amp;</span>						<span class='comment'>-- zweites kind, das element, verarbeiten</span>
+<a name="line-198"></a>          <span class='layout'>(</span> <span class='varid'>last</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>createPatternTreeFromElement</span> <span class='str'>"element"</span> <span class='layout'>)</span>
+<a name="line-199"></a>        <span class='layout'>)</span>
+<a name="line-200"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-201"></a>        <span class='varid'>arr2</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>l1</span> <span class='varid'>l2</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='str'>"choice"</span> <span class='keyglyph'>[</span><span class='varid'>l1</span><span class='layout'>,</span> <span class='varid'>l2</span><span class='keyglyph'>]</span> <span class='layout'>)</span>
+<a name="line-202"></a>      <span class='layout'>)</span>
+<a name="line-203"></a>      <span class='layout'>(</span> <span class='varid'>children2PatternTree</span> <span class='str'>"choice"</span> <span class='layout'>)</span>
+<a name="line-204"></a>
+<a name="line-205"></a>                            
+<a name="line-206"></a><a name="element2PatternTree"></a><span class='definition'>element2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>
+<a name="line-207"></a><span class='definition'>element2PatternTree</span> 
+<a name="line-208"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getState</span><span class='layout'>)</span>
+<a name="line-209"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-210"></a>            <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>nc</span><span class='layout'>,</span> <span class='varid'>liste</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>elem</span> <span class='varid'>nc</span> <span class='varid'>liste</span><span class='layout'>)</span>
+<a name="line-211"></a>          <span class='layout'>)</span>
+<a name="line-212"></a>      <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>
+<a name="line-213"></a>        <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-214"></a>        <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>nc</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"reference to element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-215"></a>      <span class='layout'>)</span>
+<a name="line-216"></a>      <span class='layout'>(</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>p</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>getNameClassFromPattern</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-217"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-218"></a>        <span class='varid'>createPatternTreeFromElement</span> <span class='str'>"element"</span>
+<a name="line-219"></a>      <span class='layout'>)</span>
+<a name="line-220"></a>
+<a name="line-221"></a>
+<a name="line-222"></a><a name="mapping2PatternTree"></a><span class='definition'>mapping2PatternTree</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'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PatternTree</span>
+<a name="line-223"></a><span class='definition'>mapping2PatternTree</span> <span class='varid'>name</span> <span class='varid'>mapping</span>
+<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</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='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>mapping</span><span class='layout'>)</span>
+<a name="line-225"></a>
+<a name="line-226"></a>
+<a name="line-227"></a><a name="datatype2PatternTree"></a><span class='definition'>datatype2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>Datatype</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PatternTree</span>
+<a name="line-228"></a><span class='definition'>datatype2PatternTree</span> <span class='varid'>dt</span>
+<a name="line-229"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>datatype2String</span> <span class='varid'>dt</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-230"></a>
+<a name="line-231"></a>
+<a name="line-232"></a><a name="context2PatternTree"></a><span class='definition'>context2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PatternTree</span>
+<a name="line-233"></a><span class='definition'>context2PatternTree</span> <span class='layout'>(</span><span class='varid'>base</span><span class='layout'>,</span> <span class='varid'>mapping</span><span class='layout'>)</span>
+<a name="line-234"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"context"</span> <span class='keyglyph'>[</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"base-uri = "</span> <span class='varop'>++</span> <span class='varid'>base</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-235"></a>                      <span class='layout'>,</span> <span class='varid'>mapping2PatternTree</span> <span class='str'>"namespace environment"</span> <span class='varid'>mapping</span>
+<a name="line-236"></a>                      <span class='keyglyph'>]</span>
+<a name="line-237"></a>
+<a name="line-238"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-239"></a>
+<a name="line-240"></a><a name="xmlTreeToPatternFormatedString"></a><span class='comment'>-- | Returns a formated string representation of the pattern structure.</span>
+<a name="line-241"></a><span class='comment'>-- (see also: 'createPatternFromXmlTree' and 'patternToFormatedString')</span>
+<a name="line-242"></a><span class='definition'>xmlTreeToPatternFormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-243"></a><span class='definition'>xmlTreeToPatternFormatedString</span>
+<a name="line-244"></a>    <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXmlTree</span> 
+<a name="line-245"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-246"></a>      <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='varid'>patternToFormatedString</span>
+<a name="line-247"></a>
+<a name="line-248"></a>
+<a name="line-249"></a><span class='comment'>{- |
+<a name="line-250"></a>Returns a formated string representation of the pattern structure.
+<a name="line-251"></a>
+<a name="line-252"></a>Example:
+<a name="line-253"></a>
+<a name="line-254"></a>&gt; Element {}foo (Choice (Choice ( Value = abc, 
+<a name="line-255"></a>&gt; datatypelibrary = <a href="http://relaxng.org/ns/structure/1.0,">http://relaxng.org/ns/structure/1.0,</a> type = token, 
+<a name="line-256"></a>&gt; context (base-uri =file://test.rng, 
+<a name="line-257"></a>&gt; parameter: xml = <a href="http://www.w3.org/XML/1998/namespaces,">http://www.w3.org/XML/1998/namespaces,</a> foo = www.bar.baz), 
+<a name="line-258"></a>
+<a name="line-259"></a>The function can be used to display circular ref-pattern structures.
+<a name="line-260"></a>-}</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="patternToFormatedString"></a><span class='definition'>patternToFormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-263"></a><span class='definition'>patternToFormatedString</span>
+<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-265"></a>      <span class='keyglyph'>[</span> <span class='varid'>isA</span> <span class='varid'>isRelaxEmpty</span>      <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>" empty "</span><span class='layout'>)</span>
+<a name="line-266"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxNotAllowed</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='varid'>errorEnv</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>show</span> <span class='varid'>errorEnv</span><span class='layout'>)</span>
+<a name="line-267"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxText</span>       <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>" text "</span><span class='layout'>)</span>
+<a name="line-268"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxChoice</span>     <span class='conop'>:-&gt;</span> <span class='varid'>children2FormatedString</span> <span class='str'>"choice"</span>
+<a name="line-269"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxInterleave</span> <span class='conop'>:-&gt;</span> <span class='varid'>children2FormatedString</span> <span class='str'>"interleave"</span>
+<a name="line-270"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxGroup</span>      <span class='conop'>:-&gt;</span> <span class='varid'>children2FormatedString</span> <span class='str'>"group"</span>
+<a name="line-271"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxOneOrMore</span>  <span class='conop'>:-&gt;</span> <span class='varid'>children2FormatedString</span> <span class='str'>"oneOrMore"</span>
+<a name="line-272"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxList</span>       <span class='conop'>:-&gt;</span> <span class='varid'>children2FormatedString</span> <span class='str'>"list"</span>
+<a name="line-273"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxData</span>       <span class='conop'>:-&gt;</span> <span class='varid'>data2FormatedString</span>
+<a name="line-274"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxDataExcept</span> <span class='conop'>:-&gt;</span> <span class='varid'>dataExcept2FormatedString</span>
+<a name="line-275"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxValue</span>      <span class='conop'>:-&gt;</span> <span class='varid'>value2FormatedString</span>
+<a name="line-276"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAttribute</span>  <span class='conop'>:-&gt;</span> <span class='varid'>createFormatedStringFromElement</span> <span class='str'>"attribute"</span>
+<a name="line-277"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxElement</span>    <span class='conop'>:-&gt;</span> <span class='varid'>element2FormatedString</span>
+<a name="line-278"></a>      <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAfter</span>      <span class='conop'>:-&gt;</span> <span class='varid'>children2FormatedString</span> <span class='str'>"after"</span>
+<a name="line-279"></a>      <span class='keyglyph'>]</span>
+<a name="line-280"></a>
+<a name="line-281"></a><a name="children2FormatedString"></a><span class='definition'>children2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-282"></a><span class='definition'>children2FormatedString</span> <span class='varid'>name</span>
+<a name="line-283"></a>    <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>patternToFormatedString</span><span class='layout'>)</span> 
+<a name="line-284"></a>      <span class='varop'>&gt;&gt;^</span>
+<a name="line-285"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>") "</span> <span class='layout'>)</span>
+<a name="line-286"></a>
+<a name="line-287"></a><a name="data2FormatedString"></a><span class='definition'>data2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-288"></a><span class='definition'>data2FormatedString</span>
+<a name="line-289"></a>    <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>datatype</span> <span class='varid'>paramList</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-290"></a>	    <span class='str'>"Data "</span> <span class='varop'>++</span> <span class='varid'>datatype2String</span> <span class='varid'>datatype</span> <span class='varop'>++</span> <span class='str'>"\n "</span> <span class='varop'>++</span> 
+<a name="line-291"></a>            <span class='varid'>mapping2String</span> <span class='str'>"parameter"</span> <span class='varid'>paramList</span> <span class='varop'>++</span> <span class='str'>"\n"</span>
+<a name="line-292"></a>	  <span class='layout'>)</span>
+<a name="line-293"></a>
+<a name="line-294"></a><a name="dataExcept2FormatedString"></a><span class='definition'>dataExcept2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-295"></a><span class='definition'>dataExcept2FormatedString</span> 
+<a name="line-296"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='varid'>datatype</span> <span class='varid'>paramList</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-297"></a>         <span class='str'>"DataExcept "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>datatype</span> <span class='varop'>++</span> <span class='str'>"\n "</span> <span class='varop'>++</span> 
+<a name="line-298"></a>         <span class='varid'>mapping2String</span> <span class='str'>"parameter"</span> <span class='varid'>paramList</span> <span class='varop'>++</span> <span class='str'>"\n "</span>
+<a name="line-299"></a>       <span class='layout'>)</span>
+<a name="line-300"></a>   <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-301"></a>   <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>patternToFormatedString</span> <span class='layout'>)</span>
+<a name="line-302"></a>   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-303"></a>   <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-304"></a>
+<a name="line-305"></a>
+<a name="line-306"></a><a name="value2FormatedString"></a><span class='definition'>value2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-307"></a><span class='definition'>value2FormatedString</span> 
+<a name="line-308"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>Value</span> <span class='varid'>datatype</span> <span class='varid'>val</span> <span class='varid'>context</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-309"></a>           <span class='str'>"Value = "</span> <span class='varop'>++</span> <span class='varid'>val</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>datatype2String</span> <span class='varid'>datatype</span> <span class='varop'>++</span> 
+<a name="line-310"></a>           <span class='str'>"\n "</span> <span class='varop'>++</span> <span class='varid'>context2String</span> <span class='varid'>context</span> <span class='varop'>++</span> <span class='str'>"\n"</span>
+<a name="line-311"></a>
+<a name="line-312"></a>
+<a name="line-313"></a><a name="element2FormatedString"></a><span class='definition'>element2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-314"></a><span class='definition'>element2FormatedString</span>
+<a name="line-315"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getState</span><span class='layout'>)</span>
+<a name="line-316"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-317"></a>            <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>nc</span><span class='layout'>,</span> <span class='varid'>liste</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>elem</span> <span class='varid'>nc</span> <span class='varid'>liste</span><span class='layout'>)</span>
+<a name="line-318"></a>	  <span class='layout'>)</span>
+<a name="line-319"></a>      <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>
+<a name="line-320"></a>	<span class='varop'>&gt;&gt;^</span> 
+<a name="line-321"></a>	<span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>nc</span> <span class='keyglyph'>-&gt;</span> <span class='str'>"reference to element "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='layout'>)</span>
+<a name="line-322"></a>      <span class='layout'>)</span>
+<a name="line-323"></a>      <span class='layout'>(</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>p</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>getNameClassFromPattern</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-324"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-325"></a>	<span class='varid'>createFormatedStringFromElement</span> <span class='str'>"element"</span>
+<a name="line-326"></a>      <span class='layout'>)</span>
+<a name="line-327"></a>
+<a name="line-328"></a>
+<a name="line-329"></a><a name="createFormatedStringFromElement"></a><span class='definition'>createFormatedStringFromElement</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>
+<a name="line-330"></a><span class='definition'>createFormatedStringFromElement</span> <span class='varid'>name</span>
+<a name="line-331"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>
+<a name="line-332"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-333"></a>	<span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>patternToFormatedString</span><span class='layout'>)</span>
+<a name="line-334"></a>	  <span class='varop'>&gt;&gt;^</span>
+<a name="line-335"></a>	  <span class='varid'>formatStringListId</span>
+<a name="line-336"></a>	<span class='layout'>)</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'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>nc</span> <span class='varid'>rl</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='varid'>rl</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span>
+<a name="line-340"></a>
+<a name="line-341"></a>
+<a name="line-342"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-343"></a>
+<a name="line-344"></a><a name="mapping2String"></a><span class='definition'>mapping2String</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'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-345"></a><span class='definition'>mapping2String</span> <span class='varid'>name</span> <span class='varid'>mapping</span>
+<a name="line-346"></a>    <span class='keyglyph'>=</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> 
+<a name="line-347"></a>      <span class='varid'>formatStringList</span> <span class='varid'>id</span> <span class='str'>", "</span> <span class='layout'>(</span><span class='varid'>map</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='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>mapping</span><span class='layout'>)</span>
+<a name="line-348"></a>
+<a name="line-349"></a><a name="datatype2String"></a><span class='definition'>datatype2String</span> <span class='keyglyph'>::</span> <span class='conid'>Datatype</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-350"></a><span class='definition'>datatype2String</span> <span class='layout'>(</span><span class='varid'>lib</span><span class='layout'>,</span> <span class='varid'>localName</span><span class='layout'>)</span>
+<a name="line-351"></a>    <span class='keyglyph'>=</span> <span class='str'>"datatypelibrary = "</span> <span class='varop'>++</span> <span class='varid'>getLib</span> <span class='varop'>++</span> <span class='str'>", type = "</span> <span class='varop'>++</span> <span class='varid'>localName</span>
+<a name="line-352"></a>    <span class='keyword'>where</span>
+<a name="line-353"></a>    <span class='varid'>getLib</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>lib</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='keyword'>then</span> <span class='varid'>relaxNamespace</span> <span class='keyword'>else</span> <span class='varid'>lib</span>
+<a name="line-354"></a>  
+<a name="line-355"></a><a name="context2String"></a><span class='definition'>context2String</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-356"></a><span class='definition'>context2String</span> <span class='layout'>(</span><span class='varid'>base</span><span class='layout'>,</span> <span class='varid'>mapping</span><span class='layout'>)</span>
+<a name="line-357"></a>    <span class='keyglyph'>=</span> <span class='str'>"context (base-uri = "</span> <span class='varop'>++</span> <span class='varid'>base</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span>
+<a name="line-358"></a>      <span class='varid'>mapping2String</span> <span class='str'>"namespace environment"</span> <span class='varid'>mapping</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-359"></a>  
+<a name="line-360"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Schema.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Schema.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Schema.html
@@ -0,0 +1,3931 @@
+<!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'>{- |
+<a name="line-2"></a>   Module     : Text.HXT.RelaxNG.Schema
+<a name="line-3"></a>
+<a name="line-4"></a>   Don't edit this module, it's generated by RelaxSchemaToXmlTree
+<a name="line-5"></a>
+<a name="line-6"></a>-}</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Schema</span>
+<a name="line-9"></a>    <span class='layout'>(</span> <span class='varid'>relaxSchemaTree</span><span class='layout'>,</span> <span class='varid'>relaxSchemaArrow</span> <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'>TypeDefs</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'>XmlNode</span> <span class='layout'>(</span><span class='varid'>mkRoot</span><span class='layout'>,</span> <span class='varid'>mkElement</span><span class='layout'>,</span> <span class='varid'>mkAttr</span><span class='layout'>,</span> <span class='varid'>mkText</span><span class='layout'>)</span>
+<a name="line-14"></a>
+<a name="line-15"></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-16"></a>
+<a name="line-17"></a><a name="relaxSchemaArrow"></a><span class='definition'>relaxSchemaArrow</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='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-18"></a><span class='definition'>relaxSchemaArrow</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>relaxSchemaTree</span>
+<a name="line-19"></a>
+<a name="line-20"></a><a name="relaxSchemaTree"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>
+<a name="line-21"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>=</span>
+<a name="line-22"></a>  <span class='keyword'>let</span>
+<a name="line-23"></a>  <span class='varid'>ns1</span>	<span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>
+<a name="line-24"></a>  <span class='varid'>qn1</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContext:xml"</span>
+<a name="line-25"></a>  <span class='varid'>qn2</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextBaseURI"</span>
+<a name="line-26"></a>  <span class='varid'>qn3</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextDefault"</span>
+<a name="line-27"></a>  <span class='varid'>qn4</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"anyName"</span> <span class='varid'>ns1</span>
+<a name="line-28"></a>  <span class='varid'>qn5</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"attribute"</span> <span class='varid'>ns1</span>
+<a name="line-29"></a>  <span class='varid'>qn6</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"choice"</span> <span class='varid'>ns1</span>
+<a name="line-30"></a>  <span class='varid'>qn7</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"data"</span> <span class='varid'>ns1</span>
+<a name="line-31"></a>  <span class='varid'>qn8</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-32"></a>  <span class='varid'>qn9</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"define"</span> <span class='varid'>ns1</span>
+<a name="line-33"></a>  <span class='varid'>qn10</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"element"</span> <span class='varid'>ns1</span>
+<a name="line-34"></a>  <span class='varid'>qn11</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"empty"</span> <span class='varid'>ns1</span>
+<a name="line-35"></a>  <span class='varid'>qn12</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"except"</span> <span class='varid'>ns1</span>
+<a name="line-36"></a>  <span class='varid'>qn13</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"grammar"</span> <span class='varid'>ns1</span>
+<a name="line-37"></a>  <span class='varid'>qn14</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"group"</span> <span class='varid'>ns1</span>
+<a name="line-38"></a>  <span class='varid'>qn15</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"interleave"</span> <span class='varid'>ns1</span>
+<a name="line-39"></a>  <span class='varid'>qn16</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"name"</span>
+<a name="line-40"></a>  <span class='varid'>qn17</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"name"</span> <span class='varid'>ns1</span>
+<a name="line-41"></a>  <span class='varid'>qn18</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"ns"</span>
+<a name="line-42"></a>  <span class='varid'>qn19</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"nsName"</span> <span class='varid'>ns1</span>
+<a name="line-43"></a>  <span class='varid'>qn20</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"oneOrMore"</span> <span class='varid'>ns1</span>
+<a name="line-44"></a>  <span class='varid'>qn21</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"ref"</span> <span class='varid'>ns1</span>
+<a name="line-45"></a>  <span class='varid'>qn22</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"start"</span> <span class='varid'>ns1</span>
+<a name="line-46"></a>  <span class='varid'>qn23</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"text"</span> <span class='varid'>ns1</span>
+<a name="line-47"></a>  <span class='varid'>qn24</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"type"</span>
+<a name="line-48"></a>  <span class='varid'>qn25</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"value"</span> <span class='varid'>ns1</span>
+<a name="line-49"></a>  <span class='keyword'>in</span>
+<a name="line-50"></a>  <span class='varid'>mkRoot</span> <span class='conid'>[]</span>
+<a name="line-51"></a>    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn13</span> <span class='conid'>[]</span>
+<a name="line-52"></a>      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn22</span> <span class='conid'>[]</span>
+<a name="line-53"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-54"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-55"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-56"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-57"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-58"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-59"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-60"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-61"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-62"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-63"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-64"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-65"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-66"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-67"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-68"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-69"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-70"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-71"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-72"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-73"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-74"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-75"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-76"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-77"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-78"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-79"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-80"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-81"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-82"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-83"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-84"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-85"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-86"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-87"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-88"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-89"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-90"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-91"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-92"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-93"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-94"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-95"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-96"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-97"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-98"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-99"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-100"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-101"></a>                                <span class='keyglyph'>]</span>
+<a name="line-102"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-103"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-104"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-105"></a>                              <span class='keyglyph'>]</span>
+<a name="line-106"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-107"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-108"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-109"></a>                            <span class='keyglyph'>]</span>
+<a name="line-110"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-111"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-112"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-113"></a>                          <span class='keyglyph'>]</span>
+<a name="line-114"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-115"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-116"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-117"></a>                        <span class='keyglyph'>]</span>
+<a name="line-118"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-119"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-120"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-121"></a>                      <span class='keyglyph'>]</span>
+<a name="line-122"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-123"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-124"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-125"></a>                    <span class='keyglyph'>]</span>
+<a name="line-126"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-127"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-128"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-129"></a>                  <span class='keyglyph'>]</span>
+<a name="line-130"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-131"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-132"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-133"></a>                <span class='keyglyph'>]</span>
+<a name="line-134"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-135"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-136"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-137"></a>              <span class='keyglyph'>]</span>
+<a name="line-138"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-139"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-140"></a>              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-141"></a>            <span class='keyglyph'>]</span>
+<a name="line-142"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-143"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-144"></a>            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-145"></a>          <span class='keyglyph'>]</span>
+<a name="line-146"></a>        <span class='keyglyph'>]</span>
+<a name="line-147"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-148"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-149"></a>        <span class='keyglyph'>]</span>
+<a name="line-150"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-151"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-152"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-153"></a>            <span class='keyglyph'>]</span>
+<a name="line-154"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"grammar"</span>
+<a name="line-155"></a>            <span class='keyglyph'>]</span>
+<a name="line-156"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-157"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-158"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-159"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-160"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-161"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-162"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-163"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-164"></a>                      <span class='keyglyph'>]</span>
+<a name="line-165"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-166"></a>                      <span class='keyglyph'>]</span>
+<a name="line-167"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-168"></a>                    <span class='keyglyph'>]</span>
+<a name="line-169"></a>                  <span class='keyglyph'>]</span>
+<a name="line-170"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-171"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-172"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-173"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-174"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-175"></a>                      <span class='keyglyph'>]</span>
+<a name="line-176"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-177"></a>                      <span class='keyglyph'>]</span>
+<a name="line-178"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-179"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-180"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-181"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-182"></a>                    <span class='keyglyph'>]</span>
+<a name="line-183"></a>                  <span class='keyglyph'>]</span>
+<a name="line-184"></a>                <span class='keyglyph'>]</span>
+<a name="line-185"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-186"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-187"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-188"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-189"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-190"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-191"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-192"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-193"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-194"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-195"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-196"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-197"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-198"></a>                          <span class='keyglyph'>]</span>
+<a name="line-199"></a>                        <span class='keyglyph'>]</span>
+<a name="line-200"></a>                      <span class='keyglyph'>]</span>
+<a name="line-201"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-202"></a>                    <span class='keyglyph'>]</span>
+<a name="line-203"></a>                  <span class='keyglyph'>]</span>
+<a name="line-204"></a>                <span class='keyglyph'>]</span>
+<a name="line-205"></a>              <span class='keyglyph'>]</span>
+<a name="line-206"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-207"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-208"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-209"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-210"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-211"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-212"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-213"></a>                  <span class='keyglyph'>]</span>
+<a name="line-214"></a>                <span class='keyglyph'>]</span>
+<a name="line-215"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-216"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-217"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-218"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-219"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-220"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-221"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-222"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-223"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-224"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-225"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-226"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-227"></a>                        <span class='keyglyph'>]</span>
+<a name="line-228"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-229"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>
+<a name="line-230"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-231"></a>                      <span class='keyglyph'>]</span>
+<a name="line-232"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-233"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>
+<a name="line-234"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-235"></a>                    <span class='keyglyph'>]</span>
+<a name="line-236"></a>                  <span class='keyglyph'>]</span>
+<a name="line-237"></a>                <span class='keyglyph'>]</span>
+<a name="line-238"></a>              <span class='keyglyph'>]</span>
+<a name="line-239"></a>            <span class='keyglyph'>]</span>
+<a name="line-240"></a>          <span class='keyglyph'>]</span>
+<a name="line-241"></a>        <span class='keyglyph'>]</span>
+<a name="line-242"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-243"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-244"></a>        <span class='keyglyph'>]</span>
+<a name="line-245"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-246"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-247"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-248"></a>            <span class='keyglyph'>]</span>
+<a name="line-249"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"externalRef"</span>
+<a name="line-250"></a>            <span class='keyglyph'>]</span>
+<a name="line-251"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-252"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-253"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-254"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-255"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-256"></a>                  <span class='keyglyph'>]</span>
+<a name="line-257"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>
+<a name="line-258"></a>                  <span class='keyglyph'>]</span>
+<a name="line-259"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-260"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-261"></a>                  <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-262"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-263"></a>                <span class='keyglyph'>]</span>
+<a name="line-264"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-265"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-266"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-267"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-268"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-269"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-270"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-271"></a>                        <span class='keyglyph'>]</span>
+<a name="line-272"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-273"></a>                        <span class='keyglyph'>]</span>
+<a name="line-274"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-275"></a>                      <span class='keyglyph'>]</span>
+<a name="line-276"></a>                    <span class='keyglyph'>]</span>
+<a name="line-277"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-278"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-279"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-280"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-281"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-282"></a>                        <span class='keyglyph'>]</span>
+<a name="line-283"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-284"></a>                        <span class='keyglyph'>]</span>
+<a name="line-285"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-286"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-287"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-288"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-289"></a>                      <span class='keyglyph'>]</span>
+<a name="line-290"></a>                    <span class='keyglyph'>]</span>
+<a name="line-291"></a>                  <span class='keyglyph'>]</span>
+<a name="line-292"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-293"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-294"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-295"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-296"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-297"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-298"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-299"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-300"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-301"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-302"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-303"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-304"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-305"></a>                            <span class='keyglyph'>]</span>
+<a name="line-306"></a>                          <span class='keyglyph'>]</span>
+<a name="line-307"></a>                        <span class='keyglyph'>]</span>
+<a name="line-308"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-309"></a>                      <span class='keyglyph'>]</span>
+<a name="line-310"></a>                    <span class='keyglyph'>]</span>
+<a name="line-311"></a>                  <span class='keyglyph'>]</span>
+<a name="line-312"></a>                <span class='keyglyph'>]</span>
+<a name="line-313"></a>              <span class='keyglyph'>]</span>
+<a name="line-314"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-315"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-316"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-317"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-318"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-319"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-320"></a>                <span class='keyglyph'>]</span>
+<a name="line-321"></a>              <span class='keyglyph'>]</span>
+<a name="line-322"></a>            <span class='keyglyph'>]</span>
+<a name="line-323"></a>          <span class='keyglyph'>]</span>
+<a name="line-324"></a>        <span class='keyglyph'>]</span>
+<a name="line-325"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-326"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-327"></a>        <span class='keyglyph'>]</span>
+<a name="line-328"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-329"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-330"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-331"></a>            <span class='keyglyph'>]</span>
+<a name="line-332"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"notAllowed"</span>
+<a name="line-333"></a>            <span class='keyglyph'>]</span>
+<a name="line-334"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-335"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-336"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-337"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-338"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-339"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-340"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-341"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-342"></a>                      <span class='keyglyph'>]</span>
+<a name="line-343"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-344"></a>                      <span class='keyglyph'>]</span>
+<a name="line-345"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-346"></a>                    <span class='keyglyph'>]</span>
+<a name="line-347"></a>                  <span class='keyglyph'>]</span>
+<a name="line-348"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-349"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-350"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-351"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-352"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-353"></a>                      <span class='keyglyph'>]</span>
+<a name="line-354"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-355"></a>                      <span class='keyglyph'>]</span>
+<a name="line-356"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-357"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-358"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-359"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-360"></a>                    <span class='keyglyph'>]</span>
+<a name="line-361"></a>                  <span class='keyglyph'>]</span>
+<a name="line-362"></a>                <span class='keyglyph'>]</span>
+<a name="line-363"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-364"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-365"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-366"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-367"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-368"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-369"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-370"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-371"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-372"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-373"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-374"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-375"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-376"></a>                          <span class='keyglyph'>]</span>
+<a name="line-377"></a>                        <span class='keyglyph'>]</span>
+<a name="line-378"></a>                      <span class='keyglyph'>]</span>
+<a name="line-379"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-380"></a>                    <span class='keyglyph'>]</span>
+<a name="line-381"></a>                  <span class='keyglyph'>]</span>
+<a name="line-382"></a>                <span class='keyglyph'>]</span>
+<a name="line-383"></a>              <span class='keyglyph'>]</span>
+<a name="line-384"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-385"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-386"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-387"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-388"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-389"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-390"></a>                <span class='keyglyph'>]</span>
+<a name="line-391"></a>              <span class='keyglyph'>]</span>
+<a name="line-392"></a>            <span class='keyglyph'>]</span>
+<a name="line-393"></a>          <span class='keyglyph'>]</span>
+<a name="line-394"></a>        <span class='keyglyph'>]</span>
+<a name="line-395"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-396"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-397"></a>        <span class='keyglyph'>]</span>
+<a name="line-398"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-399"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-400"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-401"></a>            <span class='keyglyph'>]</span>
+<a name="line-402"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"data"</span>
+<a name="line-403"></a>            <span class='keyglyph'>]</span>
+<a name="line-404"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-405"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-406"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-407"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-408"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-409"></a>                  <span class='keyglyph'>]</span>
+<a name="line-410"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>
+<a name="line-411"></a>                  <span class='keyglyph'>]</span>
+<a name="line-412"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-413"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-414"></a>                  <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-415"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-416"></a>                <span class='keyglyph'>]</span>
+<a name="line-417"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-418"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-419"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-420"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-421"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-422"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-423"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-424"></a>                        <span class='keyglyph'>]</span>
+<a name="line-425"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-426"></a>                        <span class='keyglyph'>]</span>
+<a name="line-427"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-428"></a>                      <span class='keyglyph'>]</span>
+<a name="line-429"></a>                    <span class='keyglyph'>]</span>
+<a name="line-430"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-431"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-432"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-433"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-434"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-435"></a>                        <span class='keyglyph'>]</span>
+<a name="line-436"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-437"></a>                        <span class='keyglyph'>]</span>
+<a name="line-438"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-439"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-440"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-441"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-442"></a>                      <span class='keyglyph'>]</span>
+<a name="line-443"></a>                    <span class='keyglyph'>]</span>
+<a name="line-444"></a>                  <span class='keyglyph'>]</span>
+<a name="line-445"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-446"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-447"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-448"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-449"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-450"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-451"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-452"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-453"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-454"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-455"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-456"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-457"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-458"></a>                            <span class='keyglyph'>]</span>
+<a name="line-459"></a>                          <span class='keyglyph'>]</span>
+<a name="line-460"></a>                        <span class='keyglyph'>]</span>
+<a name="line-461"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-462"></a>                      <span class='keyglyph'>]</span>
+<a name="line-463"></a>                    <span class='keyglyph'>]</span>
+<a name="line-464"></a>                  <span class='keyglyph'>]</span>
+<a name="line-465"></a>                <span class='keyglyph'>]</span>
+<a name="line-466"></a>              <span class='keyglyph'>]</span>
+<a name="line-467"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-468"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-469"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-470"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-471"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-472"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-473"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-474"></a>                  <span class='keyglyph'>]</span>
+<a name="line-475"></a>                <span class='keyglyph'>]</span>
+<a name="line-476"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-477"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-478"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-479"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-480"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-481"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-482"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-483"></a>                    <span class='keyglyph'>]</span>
+<a name="line-484"></a>                  <span class='keyglyph'>]</span>
+<a name="line-485"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-486"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-487"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-488"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>
+<a name="line-489"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-490"></a>                  <span class='keyglyph'>]</span>
+<a name="line-491"></a>                <span class='keyglyph'>]</span>
+<a name="line-492"></a>              <span class='keyglyph'>]</span>
+<a name="line-493"></a>            <span class='keyglyph'>]</span>
+<a name="line-494"></a>          <span class='keyglyph'>]</span>
+<a name="line-495"></a>        <span class='keyglyph'>]</span>
+<a name="line-496"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-497"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>
+<a name="line-498"></a>        <span class='keyglyph'>]</span>
+<a name="line-499"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-500"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-501"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-502"></a>            <span class='keyglyph'>]</span>
+<a name="line-503"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>
+<a name="line-504"></a>            <span class='keyglyph'>]</span>
+<a name="line-505"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-506"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-507"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-508"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-509"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-510"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-511"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-512"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-513"></a>                      <span class='keyglyph'>]</span>
+<a name="line-514"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-515"></a>                      <span class='keyglyph'>]</span>
+<a name="line-516"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-517"></a>                    <span class='keyglyph'>]</span>
+<a name="line-518"></a>                  <span class='keyglyph'>]</span>
+<a name="line-519"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-520"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-521"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-522"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-523"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-524"></a>                      <span class='keyglyph'>]</span>
+<a name="line-525"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-526"></a>                      <span class='keyglyph'>]</span>
+<a name="line-527"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-528"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-529"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-530"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-531"></a>                    <span class='keyglyph'>]</span>
+<a name="line-532"></a>                  <span class='keyglyph'>]</span>
+<a name="line-533"></a>                <span class='keyglyph'>]</span>
+<a name="line-534"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-535"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-536"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-537"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-538"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-539"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-540"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-541"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-542"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-543"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-544"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-545"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-546"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-547"></a>                          <span class='keyglyph'>]</span>
+<a name="line-548"></a>                        <span class='keyglyph'>]</span>
+<a name="line-549"></a>                      <span class='keyglyph'>]</span>
+<a name="line-550"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-551"></a>                    <span class='keyglyph'>]</span>
+<a name="line-552"></a>                  <span class='keyglyph'>]</span>
+<a name="line-553"></a>                <span class='keyglyph'>]</span>
+<a name="line-554"></a>              <span class='keyglyph'>]</span>
+<a name="line-555"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-556"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-557"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-558"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-559"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-560"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-561"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-562"></a>                  <span class='keyglyph'>]</span>
+<a name="line-563"></a>                <span class='keyglyph'>]</span>
+<a name="line-564"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-565"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-566"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-567"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-568"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-569"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-570"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-571"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-572"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-573"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-574"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-575"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-576"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-577"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-578"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-579"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-580"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-581"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-582"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-583"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-584"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-585"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-586"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-587"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-588"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-589"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-590"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-591"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-592"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-593"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-594"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-595"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-596"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-597"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-598"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-599"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-600"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-601"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-602"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-603"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-604"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-605"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-606"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-607"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-608"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-609"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-610"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-611"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-612"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-613"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-614"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-615"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-616"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-617"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-618"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-619"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-620"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-621"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-622"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-623"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-624"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-625"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-626"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-627"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-628"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-629"></a>                                <span class='keyglyph'>]</span>
+<a name="line-630"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-631"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-632"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-633"></a>                              <span class='keyglyph'>]</span>
+<a name="line-634"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-635"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-636"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-637"></a>                            <span class='keyglyph'>]</span>
+<a name="line-638"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-639"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-640"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-641"></a>                          <span class='keyglyph'>]</span>
+<a name="line-642"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-643"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-644"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-645"></a>                        <span class='keyglyph'>]</span>
+<a name="line-646"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-647"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-648"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-649"></a>                      <span class='keyglyph'>]</span>
+<a name="line-650"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-651"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-652"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-653"></a>                    <span class='keyglyph'>]</span>
+<a name="line-654"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-655"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-656"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-657"></a>                  <span class='keyglyph'>]</span>
+<a name="line-658"></a>                <span class='keyglyph'>]</span>
+<a name="line-659"></a>              <span class='keyglyph'>]</span>
+<a name="line-660"></a>            <span class='keyglyph'>]</span>
+<a name="line-661"></a>          <span class='keyglyph'>]</span>
+<a name="line-662"></a>        <span class='keyglyph'>]</span>
+<a name="line-663"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-664"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-665"></a>        <span class='keyglyph'>]</span>
+<a name="line-666"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-667"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-668"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-669"></a>            <span class='keyglyph'>]</span>
+<a name="line-670"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"param"</span>
+<a name="line-671"></a>            <span class='keyglyph'>]</span>
+<a name="line-672"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-673"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-674"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-675"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-676"></a>                <span class='keyglyph'>]</span>
+<a name="line-677"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-678"></a>                <span class='keyglyph'>]</span>
+<a name="line-679"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-680"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-681"></a>                <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-682"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-683"></a>              <span class='keyglyph'>]</span>
+<a name="line-684"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-685"></a>            <span class='keyglyph'>]</span>
+<a name="line-686"></a>          <span class='keyglyph'>]</span>
+<a name="line-687"></a>        <span class='keyglyph'>]</span>
+<a name="line-688"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-689"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-690"></a>        <span class='keyglyph'>]</span>
+<a name="line-691"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-692"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-693"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-694"></a>            <span class='keyglyph'>]</span>
+<a name="line-695"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"value"</span>
+<a name="line-696"></a>            <span class='keyglyph'>]</span>
+<a name="line-697"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-698"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-699"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-700"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-701"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-702"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-703"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-704"></a>                    <span class='keyglyph'>]</span>
+<a name="line-705"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>
+<a name="line-706"></a>                    <span class='keyglyph'>]</span>
+<a name="line-707"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-708"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-709"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-710"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-711"></a>                  <span class='keyglyph'>]</span>
+<a name="line-712"></a>                <span class='keyglyph'>]</span>
+<a name="line-713"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-714"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-715"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-716"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-717"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-718"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-719"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-720"></a>                        <span class='keyglyph'>]</span>
+<a name="line-721"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-722"></a>                        <span class='keyglyph'>]</span>
+<a name="line-723"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-724"></a>                      <span class='keyglyph'>]</span>
+<a name="line-725"></a>                    <span class='keyglyph'>]</span>
+<a name="line-726"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-727"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-728"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-729"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-730"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-731"></a>                        <span class='keyglyph'>]</span>
+<a name="line-732"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-733"></a>                        <span class='keyglyph'>]</span>
+<a name="line-734"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-735"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-736"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-737"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-738"></a>                      <span class='keyglyph'>]</span>
+<a name="line-739"></a>                    <span class='keyglyph'>]</span>
+<a name="line-740"></a>                  <span class='keyglyph'>]</span>
+<a name="line-741"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-742"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-743"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-744"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-745"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-746"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-747"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-748"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-749"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-750"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-751"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-752"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-753"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-754"></a>                            <span class='keyglyph'>]</span>
+<a name="line-755"></a>                          <span class='keyglyph'>]</span>
+<a name="line-756"></a>                        <span class='keyglyph'>]</span>
+<a name="line-757"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-758"></a>                      <span class='keyglyph'>]</span>
+<a name="line-759"></a>                    <span class='keyglyph'>]</span>
+<a name="line-760"></a>                  <span class='keyglyph'>]</span>
+<a name="line-761"></a>                <span class='keyglyph'>]</span>
+<a name="line-762"></a>              <span class='keyglyph'>]</span>
+<a name="line-763"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-764"></a>            <span class='keyglyph'>]</span>
+<a name="line-765"></a>          <span class='keyglyph'>]</span>
+<a name="line-766"></a>        <span class='keyglyph'>]</span>
+<a name="line-767"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-768"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-769"></a>        <span class='keyglyph'>]</span>
+<a name="line-770"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-771"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-772"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-773"></a>            <span class='keyglyph'>]</span>
+<a name="line-774"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"text"</span>
+<a name="line-775"></a>            <span class='keyglyph'>]</span>
+<a name="line-776"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-777"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-778"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-779"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-780"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-781"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-782"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-783"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-784"></a>                      <span class='keyglyph'>]</span>
+<a name="line-785"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-786"></a>                      <span class='keyglyph'>]</span>
+<a name="line-787"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-788"></a>                    <span class='keyglyph'>]</span>
+<a name="line-789"></a>                  <span class='keyglyph'>]</span>
+<a name="line-790"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-791"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-792"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-793"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-794"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-795"></a>                      <span class='keyglyph'>]</span>
+<a name="line-796"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-797"></a>                      <span class='keyglyph'>]</span>
+<a name="line-798"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-799"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-800"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-801"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-802"></a>                    <span class='keyglyph'>]</span>
+<a name="line-803"></a>                  <span class='keyglyph'>]</span>
+<a name="line-804"></a>                <span class='keyglyph'>]</span>
+<a name="line-805"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-806"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-807"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-808"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-809"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-810"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-811"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-812"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-813"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-814"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-815"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-816"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-817"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-818"></a>                          <span class='keyglyph'>]</span>
+<a name="line-819"></a>                        <span class='keyglyph'>]</span>
+<a name="line-820"></a>                      <span class='keyglyph'>]</span>
+<a name="line-821"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-822"></a>                    <span class='keyglyph'>]</span>
+<a name="line-823"></a>                  <span class='keyglyph'>]</span>
+<a name="line-824"></a>                <span class='keyglyph'>]</span>
+<a name="line-825"></a>              <span class='keyglyph'>]</span>
+<a name="line-826"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-827"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-828"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-829"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-830"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-831"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-832"></a>                <span class='keyglyph'>]</span>
+<a name="line-833"></a>              <span class='keyglyph'>]</span>
+<a name="line-834"></a>            <span class='keyglyph'>]</span>
+<a name="line-835"></a>          <span class='keyglyph'>]</span>
+<a name="line-836"></a>        <span class='keyglyph'>]</span>
+<a name="line-837"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-838"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-839"></a>        <span class='keyglyph'>]</span>
+<a name="line-840"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-841"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-842"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-843"></a>            <span class='keyglyph'>]</span>
+<a name="line-844"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"empty"</span>
+<a name="line-845"></a>            <span class='keyglyph'>]</span>
+<a name="line-846"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-847"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-848"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-849"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-850"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-851"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-852"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-853"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-854"></a>                      <span class='keyglyph'>]</span>
+<a name="line-855"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-856"></a>                      <span class='keyglyph'>]</span>
+<a name="line-857"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-858"></a>                    <span class='keyglyph'>]</span>
+<a name="line-859"></a>                  <span class='keyglyph'>]</span>
+<a name="line-860"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-861"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-862"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-863"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-864"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-865"></a>                      <span class='keyglyph'>]</span>
+<a name="line-866"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-867"></a>                      <span class='keyglyph'>]</span>
+<a name="line-868"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-869"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-870"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-871"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-872"></a>                    <span class='keyglyph'>]</span>
+<a name="line-873"></a>                  <span class='keyglyph'>]</span>
+<a name="line-874"></a>                <span class='keyglyph'>]</span>
+<a name="line-875"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-876"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-877"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-878"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-879"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-880"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-881"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-882"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-883"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-884"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-885"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-886"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-887"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-888"></a>                          <span class='keyglyph'>]</span>
+<a name="line-889"></a>                        <span class='keyglyph'>]</span>
+<a name="line-890"></a>                      <span class='keyglyph'>]</span>
+<a name="line-891"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-892"></a>                    <span class='keyglyph'>]</span>
+<a name="line-893"></a>                  <span class='keyglyph'>]</span>
+<a name="line-894"></a>                <span class='keyglyph'>]</span>
+<a name="line-895"></a>              <span class='keyglyph'>]</span>
+<a name="line-896"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-897"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-898"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-899"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-900"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-901"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-902"></a>                <span class='keyglyph'>]</span>
+<a name="line-903"></a>              <span class='keyglyph'>]</span>
+<a name="line-904"></a>            <span class='keyglyph'>]</span>
+<a name="line-905"></a>          <span class='keyglyph'>]</span>
+<a name="line-906"></a>        <span class='keyglyph'>]</span>
+<a name="line-907"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-908"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-909"></a>        <span class='keyglyph'>]</span>
+<a name="line-910"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-911"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-912"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-913"></a>            <span class='keyglyph'>]</span>
+<a name="line-914"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"parentRef"</span>
+<a name="line-915"></a>            <span class='keyglyph'>]</span>
+<a name="line-916"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-917"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-918"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-919"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-920"></a>                <span class='keyglyph'>]</span>
+<a name="line-921"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-922"></a>                <span class='keyglyph'>]</span>
+<a name="line-923"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-924"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-925"></a>                <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-926"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-927"></a>              <span class='keyglyph'>]</span>
+<a name="line-928"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-929"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-930"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-931"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-932"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-933"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-934"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-935"></a>                      <span class='keyglyph'>]</span>
+<a name="line-936"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-937"></a>                      <span class='keyglyph'>]</span>
+<a name="line-938"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-939"></a>                    <span class='keyglyph'>]</span>
+<a name="line-940"></a>                  <span class='keyglyph'>]</span>
+<a name="line-941"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-942"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-943"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-944"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-945"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-946"></a>                      <span class='keyglyph'>]</span>
+<a name="line-947"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-948"></a>                      <span class='keyglyph'>]</span>
+<a name="line-949"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-950"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-951"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-952"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-953"></a>                    <span class='keyglyph'>]</span>
+<a name="line-954"></a>                  <span class='keyglyph'>]</span>
+<a name="line-955"></a>                <span class='keyglyph'>]</span>
+<a name="line-956"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-957"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-958"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-959"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-960"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-961"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-962"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-963"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-964"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-965"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-966"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-967"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-968"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-969"></a>                          <span class='keyglyph'>]</span>
+<a name="line-970"></a>                        <span class='keyglyph'>]</span>
+<a name="line-971"></a>                      <span class='keyglyph'>]</span>
+<a name="line-972"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-973"></a>                    <span class='keyglyph'>]</span>
+<a name="line-974"></a>                  <span class='keyglyph'>]</span>
+<a name="line-975"></a>                <span class='keyglyph'>]</span>
+<a name="line-976"></a>              <span class='keyglyph'>]</span>
+<a name="line-977"></a>            <span class='keyglyph'>]</span>
+<a name="line-978"></a>          <span class='keyglyph'>]</span>
+<a name="line-979"></a>        <span class='keyglyph'>]</span>
+<a name="line-980"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-981"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-982"></a>        <span class='keyglyph'>]</span>
+<a name="line-983"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-984"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-985"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-986"></a>            <span class='keyglyph'>]</span>
+<a name="line-987"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ref"</span>
+<a name="line-988"></a>            <span class='keyglyph'>]</span>
+<a name="line-989"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-990"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-991"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-992"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-993"></a>                <span class='keyglyph'>]</span>
+<a name="line-994"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-995"></a>                <span class='keyglyph'>]</span>
+<a name="line-996"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-997"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-998"></a>                <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-999"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1000"></a>              <span class='keyglyph'>]</span>
+<a name="line-1001"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1002"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1003"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1004"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1005"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1006"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1007"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1008"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1009"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1010"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1011"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1012"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1013"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1014"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1015"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1016"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1017"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1018"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1019"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1020"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1021"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1022"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1023"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1024"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1025"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1026"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1027"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1028"></a>                <span class='keyglyph'>]</span>
+<a name="line-1029"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1030"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1031"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1032"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1033"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1034"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1035"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1036"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1037"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1038"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1039"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1040"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1041"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1042"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1043"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1044"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1045"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1046"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1047"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1048"></a>                <span class='keyglyph'>]</span>
+<a name="line-1049"></a>              <span class='keyglyph'>]</span>
+<a name="line-1050"></a>            <span class='keyglyph'>]</span>
+<a name="line-1051"></a>          <span class='keyglyph'>]</span>
+<a name="line-1052"></a>        <span class='keyglyph'>]</span>
+<a name="line-1053"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1054"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1055"></a>        <span class='keyglyph'>]</span>
+<a name="line-1056"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1057"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1058"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1059"></a>            <span class='keyglyph'>]</span>
+<a name="line-1060"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"mixed"</span>
+<a name="line-1061"></a>            <span class='keyglyph'>]</span>
+<a name="line-1062"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1063"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1064"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1065"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1066"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1067"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1068"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1069"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1070"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1071"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1072"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1073"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1074"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1075"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1076"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1077"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1078"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1079"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1080"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1081"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1082"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1083"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1084"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1085"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1086"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1087"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1088"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1089"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1090"></a>                <span class='keyglyph'>]</span>
+<a name="line-1091"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1092"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1093"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1094"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1095"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1096"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1097"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1098"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1099"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1100"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1101"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1102"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1103"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1104"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1105"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1106"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1107"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1108"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1109"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1110"></a>                <span class='keyglyph'>]</span>
+<a name="line-1111"></a>              <span class='keyglyph'>]</span>
+<a name="line-1112"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1113"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1114"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1115"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1116"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1117"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-1118"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1119"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1120"></a>                <span class='keyglyph'>]</span>
+<a name="line-1121"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1122"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1123"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1124"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1125"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1126"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1127"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1128"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1129"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1130"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1131"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1132"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1133"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1134"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1135"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1136"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1137"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1138"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1139"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1140"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1141"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-1142"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1143"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1144"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1145"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1146"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1147"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1148"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1149"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1150"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1151"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1152"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1153"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1154"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1155"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1156"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1157"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1158"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1159"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1160"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1161"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1162"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1163"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1164"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1165"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1166"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1167"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1168"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1169"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1170"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1171"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1172"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1173"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1174"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1175"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1176"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1177"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1178"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1179"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1180"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1181"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1182"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1183"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1184"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1185"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1186"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1187"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1188"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1189"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1190"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1191"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1192"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1193"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1194"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1195"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1196"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1197"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1198"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1199"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1200"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1201"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1202"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1203"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1204"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-1205"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1206"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1207"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1208"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1209"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1210"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1211"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1212"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1213"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1214"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1215"></a>                <span class='keyglyph'>]</span>
+<a name="line-1216"></a>              <span class='keyglyph'>]</span>
+<a name="line-1217"></a>            <span class='keyglyph'>]</span>
+<a name="line-1218"></a>          <span class='keyglyph'>]</span>
+<a name="line-1219"></a>        <span class='keyglyph'>]</span>
+<a name="line-1220"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1221"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1222"></a>        <span class='keyglyph'>]</span>
+<a name="line-1223"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1224"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1225"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1226"></a>            <span class='keyglyph'>]</span>
+<a name="line-1227"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"list"</span>
+<a name="line-1228"></a>            <span class='keyglyph'>]</span>
+<a name="line-1229"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1230"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1231"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1232"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1233"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1234"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1235"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1236"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1237"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1238"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1239"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1240"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1241"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1242"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1243"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1244"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1245"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1246"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1247"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1248"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1249"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1250"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1251"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1252"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1253"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1254"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1255"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1256"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1257"></a>                <span class='keyglyph'>]</span>
+<a name="line-1258"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1259"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1260"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1261"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1262"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1263"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1264"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1265"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1266"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1267"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1268"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1269"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1270"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1271"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1272"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1273"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1274"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1275"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1276"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1277"></a>                <span class='keyglyph'>]</span>
+<a name="line-1278"></a>              <span class='keyglyph'>]</span>
+<a name="line-1279"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1280"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1281"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1282"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1283"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1284"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-1285"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1286"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1287"></a>                <span class='keyglyph'>]</span>
+<a name="line-1288"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1289"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1290"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1291"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1292"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1293"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1294"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1295"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1296"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1297"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1298"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1299"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1300"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1301"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1302"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1303"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1304"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1305"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1306"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1307"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1308"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-1309"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1310"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1311"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1312"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1313"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1314"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1315"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1316"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1317"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1318"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1319"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1320"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1321"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1322"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1323"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1324"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1325"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1326"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1327"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1328"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1329"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1330"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1331"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1332"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1333"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1334"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1335"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1336"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1337"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1338"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1339"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1340"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1341"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1342"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1343"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1344"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1345"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1346"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1347"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1348"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1349"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1350"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1351"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1352"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1353"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1354"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1355"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1356"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1357"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1358"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1359"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1360"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1361"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1362"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1363"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1364"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1365"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1366"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1367"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1368"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1369"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1370"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1371"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-1372"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1373"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1374"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1375"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1376"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1377"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1378"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1379"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1380"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1381"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1382"></a>                <span class='keyglyph'>]</span>
+<a name="line-1383"></a>              <span class='keyglyph'>]</span>
+<a name="line-1384"></a>            <span class='keyglyph'>]</span>
+<a name="line-1385"></a>          <span class='keyglyph'>]</span>
+<a name="line-1386"></a>        <span class='keyglyph'>]</span>
+<a name="line-1387"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1388"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1389"></a>        <span class='keyglyph'>]</span>
+<a name="line-1390"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1391"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1392"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1393"></a>            <span class='keyglyph'>]</span>
+<a name="line-1394"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"oneOrMore"</span>
+<a name="line-1395"></a>            <span class='keyglyph'>]</span>
+<a name="line-1396"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1397"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1398"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1399"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1400"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1401"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1402"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1403"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1404"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1405"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1406"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1407"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1408"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1409"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1410"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1411"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1412"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1413"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1414"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1415"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1416"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1417"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1418"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1419"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1420"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1421"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1422"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1423"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1424"></a>                <span class='keyglyph'>]</span>
+<a name="line-1425"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1426"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1427"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1428"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1429"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1430"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1431"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1432"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1433"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1434"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1435"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1436"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1437"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1438"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1439"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1440"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1441"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1442"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1443"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1444"></a>                <span class='keyglyph'>]</span>
+<a name="line-1445"></a>              <span class='keyglyph'>]</span>
+<a name="line-1446"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1447"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1448"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1449"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1450"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1451"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-1452"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1453"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1454"></a>                <span class='keyglyph'>]</span>
+<a name="line-1455"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1456"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1457"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1458"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1459"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1460"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1461"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1462"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1463"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1464"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1465"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1466"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1467"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1468"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1469"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1470"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1471"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1472"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1473"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1474"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1475"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-1476"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1477"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1478"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1479"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1480"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1481"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1482"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1483"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1484"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1485"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1486"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1487"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1488"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1489"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1490"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1491"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1492"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1493"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1494"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1495"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1496"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1497"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1498"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1499"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1500"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1501"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1502"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1503"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1504"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1505"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1506"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1507"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1508"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1509"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1510"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1511"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1512"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1513"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1514"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1515"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1516"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1517"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1518"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1519"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1520"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1521"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1522"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1523"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1524"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1525"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1526"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1527"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1528"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1529"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1530"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1531"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1532"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1533"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1534"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1535"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1536"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1537"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1538"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-1539"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1540"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1541"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1542"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1543"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1544"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1545"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1546"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1547"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1548"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1549"></a>                <span class='keyglyph'>]</span>
+<a name="line-1550"></a>              <span class='keyglyph'>]</span>
+<a name="line-1551"></a>            <span class='keyglyph'>]</span>
+<a name="line-1552"></a>          <span class='keyglyph'>]</span>
+<a name="line-1553"></a>        <span class='keyglyph'>]</span>
+<a name="line-1554"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1555"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1556"></a>        <span class='keyglyph'>]</span>
+<a name="line-1557"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1558"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1559"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1560"></a>            <span class='keyglyph'>]</span>
+<a name="line-1561"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"zeroOrMore"</span>
+<a name="line-1562"></a>            <span class='keyglyph'>]</span>
+<a name="line-1563"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1564"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1565"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1566"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1567"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1568"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1569"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1570"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1571"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1572"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1573"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1574"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1575"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1576"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1577"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1578"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1579"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1580"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1581"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1582"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1583"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1584"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1585"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1586"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1587"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1588"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1589"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1590"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1591"></a>                <span class='keyglyph'>]</span>
+<a name="line-1592"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1593"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1594"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1595"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1596"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1597"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1598"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1599"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1600"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1601"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1602"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1603"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1604"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1605"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1606"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1607"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1608"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1609"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1610"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1611"></a>                <span class='keyglyph'>]</span>
+<a name="line-1612"></a>              <span class='keyglyph'>]</span>
+<a name="line-1613"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1614"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1615"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1616"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1617"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1618"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-1619"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1620"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1621"></a>                <span class='keyglyph'>]</span>
+<a name="line-1622"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1623"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1624"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1625"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1626"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1627"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1628"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1629"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1630"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1631"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1632"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1633"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1634"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1635"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1636"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1637"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1638"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1639"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1640"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1641"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1642"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-1643"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1644"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1645"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1646"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1647"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1648"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1649"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1650"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1651"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1652"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1653"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1654"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1655"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1656"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1657"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1658"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1659"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1660"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1661"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1662"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1663"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1664"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1665"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1666"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1667"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1668"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1669"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1670"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1671"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1672"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1673"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1674"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1675"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1676"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1677"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1678"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1679"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1680"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1681"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1682"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1683"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1684"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1685"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1686"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1687"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1688"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1689"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1690"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1691"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1692"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1693"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1694"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1695"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1696"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1697"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1698"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1699"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1700"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1701"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1702"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1703"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1704"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1705"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-1706"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1707"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1708"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1709"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1710"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1711"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1712"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1713"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1714"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1715"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1716"></a>                <span class='keyglyph'>]</span>
+<a name="line-1717"></a>              <span class='keyglyph'>]</span>
+<a name="line-1718"></a>            <span class='keyglyph'>]</span>
+<a name="line-1719"></a>          <span class='keyglyph'>]</span>
+<a name="line-1720"></a>        <span class='keyglyph'>]</span>
+<a name="line-1721"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1722"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1723"></a>        <span class='keyglyph'>]</span>
+<a name="line-1724"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1725"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1726"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1727"></a>            <span class='keyglyph'>]</span>
+<a name="line-1728"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"optional"</span>
+<a name="line-1729"></a>            <span class='keyglyph'>]</span>
+<a name="line-1730"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1731"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1732"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1733"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1734"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1735"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1736"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1737"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1738"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1739"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1740"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1741"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1742"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1743"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1744"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1745"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1746"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1747"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1748"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1749"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1750"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1751"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1752"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1753"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1754"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1755"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1756"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1757"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1758"></a>                <span class='keyglyph'>]</span>
+<a name="line-1759"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1760"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1761"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1762"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1763"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1764"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1765"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1766"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1767"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1768"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1769"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1770"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1771"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1772"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1773"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1774"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1775"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1776"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1777"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1778"></a>                <span class='keyglyph'>]</span>
+<a name="line-1779"></a>              <span class='keyglyph'>]</span>
+<a name="line-1780"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1781"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1782"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1783"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1784"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1785"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-1786"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1787"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1788"></a>                <span class='keyglyph'>]</span>
+<a name="line-1789"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1790"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1791"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1792"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1793"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1794"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1795"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1796"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1797"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1798"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1799"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1800"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1801"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1802"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1803"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1804"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1805"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1806"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1807"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1808"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1809"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-1810"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1811"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1812"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1813"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1814"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1815"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1816"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1817"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1818"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1819"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1820"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1821"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1822"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1823"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1824"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1825"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1826"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1827"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1828"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1829"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1830"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1831"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1832"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1833"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1834"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1835"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1836"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1837"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1838"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1839"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1840"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1841"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1842"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1843"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1844"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1845"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1846"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1847"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1848"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1849"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1850"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1851"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1852"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1853"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1854"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1855"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1856"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1857"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1858"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1859"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1860"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1861"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1862"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1863"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1864"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1865"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1866"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1867"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1868"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1869"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1870"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1871"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1872"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-1873"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1874"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1875"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1876"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1877"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1878"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1879"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1880"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1881"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1882"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1883"></a>                <span class='keyglyph'>]</span>
+<a name="line-1884"></a>              <span class='keyglyph'>]</span>
+<a name="line-1885"></a>            <span class='keyglyph'>]</span>
+<a name="line-1886"></a>          <span class='keyglyph'>]</span>
+<a name="line-1887"></a>        <span class='keyglyph'>]</span>
+<a name="line-1888"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1889"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1890"></a>        <span class='keyglyph'>]</span>
+<a name="line-1891"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1892"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1893"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1894"></a>            <span class='keyglyph'>]</span>
+<a name="line-1895"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-1896"></a>            <span class='keyglyph'>]</span>
+<a name="line-1897"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1898"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1899"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1900"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1901"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1902"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1903"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1904"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1905"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1906"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1907"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1908"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1909"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1910"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1911"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1912"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1913"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1914"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1915"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1916"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1917"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1918"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1919"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1920"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1921"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1922"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1923"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1924"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1925"></a>                <span class='keyglyph'>]</span>
+<a name="line-1926"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1927"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1928"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1929"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1930"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1931"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1932"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1933"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1934"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1935"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1936"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1937"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1938"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1939"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1940"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1941"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1942"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1943"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1944"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1945"></a>                <span class='keyglyph'>]</span>
+<a name="line-1946"></a>              <span class='keyglyph'>]</span>
+<a name="line-1947"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1948"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1949"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1950"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1951"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1952"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-1953"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1954"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1955"></a>                <span class='keyglyph'>]</span>
+<a name="line-1956"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1957"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1958"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1959"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1960"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1961"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1962"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1963"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1964"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1965"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1966"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1967"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1968"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1969"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1970"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1971"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1972"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1973"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1974"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1975"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1976"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-1977"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1978"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1979"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1980"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1981"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1982"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1983"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1984"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1985"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1986"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1987"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1988"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1989"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1990"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1991"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1992"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1993"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1994"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1995"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1996"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1997"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1998"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1999"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2000"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2001"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2002"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2003"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2004"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2005"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2006"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2007"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2008"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2009"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2010"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2011"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2012"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2013"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2014"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2015"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2016"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2017"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2018"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2019"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2020"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2021"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2022"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2023"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2024"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2025"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2026"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2027"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2028"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2029"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2030"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2031"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2032"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2033"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2034"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2035"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2036"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2037"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2038"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2039"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-2040"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2041"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2042"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2043"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2044"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2045"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2046"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2047"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2048"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2049"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2050"></a>                <span class='keyglyph'>]</span>
+<a name="line-2051"></a>              <span class='keyglyph'>]</span>
+<a name="line-2052"></a>            <span class='keyglyph'>]</span>
+<a name="line-2053"></a>          <span class='keyglyph'>]</span>
+<a name="line-2054"></a>        <span class='keyglyph'>]</span>
+<a name="line-2055"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2056"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2057"></a>        <span class='keyglyph'>]</span>
+<a name="line-2058"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2059"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2060"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2061"></a>            <span class='keyglyph'>]</span>
+<a name="line-2062"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>
+<a name="line-2063"></a>            <span class='keyglyph'>]</span>
+<a name="line-2064"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2065"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2066"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2067"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2068"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2069"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2070"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2071"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2072"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2073"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2074"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2075"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2076"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2077"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2078"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2079"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2080"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2081"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2082"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2083"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2084"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2085"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2086"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2087"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2088"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2089"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2090"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2091"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2092"></a>                <span class='keyglyph'>]</span>
+<a name="line-2093"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2094"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2095"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2096"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2097"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2098"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2099"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2100"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2101"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2102"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2103"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2104"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2105"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2106"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2107"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2108"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2109"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2110"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2111"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2112"></a>                <span class='keyglyph'>]</span>
+<a name="line-2113"></a>              <span class='keyglyph'>]</span>
+<a name="line-2114"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2115"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2116"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2117"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2118"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2119"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2120"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2121"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2122"></a>                <span class='keyglyph'>]</span>
+<a name="line-2123"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2124"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2125"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2126"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2127"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2128"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2129"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2130"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2131"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2132"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2133"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2134"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2135"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2136"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2137"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2138"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2139"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2140"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2141"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2142"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2143"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2144"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2145"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2146"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2147"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2148"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2149"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2150"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2151"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2152"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2153"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2154"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2155"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2156"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2157"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2158"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2159"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2160"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2161"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2162"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2163"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2164"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2165"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2166"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2167"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2168"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2169"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2170"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2171"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2172"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2173"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2174"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2175"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2176"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2177"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2178"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2179"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2180"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2181"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2182"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2183"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2184"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2185"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2186"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2187"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2188"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2189"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2190"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2191"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2192"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2193"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2194"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2195"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2196"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2197"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2198"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2199"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2200"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2201"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2202"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2203"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2204"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2205"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2206"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-2207"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2208"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2209"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2210"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2211"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2212"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2213"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2214"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2215"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2216"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2217"></a>                <span class='keyglyph'>]</span>
+<a name="line-2218"></a>              <span class='keyglyph'>]</span>
+<a name="line-2219"></a>            <span class='keyglyph'>]</span>
+<a name="line-2220"></a>          <span class='keyglyph'>]</span>
+<a name="line-2221"></a>        <span class='keyglyph'>]</span>
+<a name="line-2222"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2223"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2224"></a>        <span class='keyglyph'>]</span>
+<a name="line-2225"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2226"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2227"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2228"></a>            <span class='keyglyph'>]</span>
+<a name="line-2229"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"group"</span>
+<a name="line-2230"></a>            <span class='keyglyph'>]</span>
+<a name="line-2231"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2232"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2233"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2234"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2235"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2236"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2237"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2238"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2239"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2240"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2241"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2242"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2243"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2244"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2245"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2246"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2247"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2248"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2249"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2250"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2251"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2252"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2253"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2254"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2255"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2256"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2257"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2258"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2259"></a>                <span class='keyglyph'>]</span>
+<a name="line-2260"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2261"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2262"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2263"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2264"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2265"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2266"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2267"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2268"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2269"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2270"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2271"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2272"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2273"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2274"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2275"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2276"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2277"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2278"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2279"></a>                <span class='keyglyph'>]</span>
+<a name="line-2280"></a>              <span class='keyglyph'>]</span>
+<a name="line-2281"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2282"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2283"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2284"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2285"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2286"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2287"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2288"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2289"></a>                <span class='keyglyph'>]</span>
+<a name="line-2290"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2291"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2292"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2293"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2294"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2295"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2296"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2297"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2298"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2299"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2300"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2301"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2302"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2303"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2304"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2305"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2306"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2307"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2308"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2309"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2310"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2311"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2312"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2313"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2314"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2315"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2316"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2317"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2318"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2319"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2320"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2321"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2322"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2323"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2324"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2325"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2326"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2327"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2328"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2329"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2330"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2331"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2332"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2333"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2334"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2335"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2336"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2337"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2338"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2339"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2340"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2341"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2342"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2343"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2344"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2345"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2346"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2347"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2348"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2349"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2350"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2351"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2352"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2353"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2354"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2355"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2356"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2357"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2358"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2359"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2360"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2361"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2362"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2363"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2364"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2365"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2366"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2367"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2368"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2369"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2370"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2371"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2372"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2373"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-2374"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2375"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2376"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2377"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2378"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2379"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2380"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2381"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2382"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2383"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2384"></a>                <span class='keyglyph'>]</span>
+<a name="line-2385"></a>              <span class='keyglyph'>]</span>
+<a name="line-2386"></a>            <span class='keyglyph'>]</span>
+<a name="line-2387"></a>          <span class='keyglyph'>]</span>
+<a name="line-2388"></a>        <span class='keyglyph'>]</span>
+<a name="line-2389"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2390"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2391"></a>        <span class='keyglyph'>]</span>
+<a name="line-2392"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2393"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2394"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2395"></a>            <span class='keyglyph'>]</span>
+<a name="line-2396"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"attribute"</span>
+<a name="line-2397"></a>            <span class='keyglyph'>]</span>
+<a name="line-2398"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2399"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2400"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2401"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2402"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2403"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2404"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2405"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2406"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2407"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2408"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2409"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2410"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2411"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2412"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2413"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2414"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2415"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2416"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2417"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2418"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2419"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2420"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2421"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2422"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2423"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2424"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2425"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2426"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2427"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2428"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2429"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2430"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2431"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2432"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2433"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2434"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2435"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2436"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2437"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2438"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2439"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2440"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2441"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2442"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2443"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2444"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2445"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2446"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2447"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2448"></a>                <span class='keyglyph'>]</span>
+<a name="line-2449"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2450"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2451"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2452"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2453"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2454"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-2455"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2456"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2457"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>
+<a name="line-2458"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2459"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2460"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2461"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2462"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2463"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2464"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2465"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2466"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2467"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2468"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2469"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2470"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2471"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2472"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2473"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2474"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-2475"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2476"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2477"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-2478"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2479"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2480"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2481"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-2482"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2483"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2484"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2485"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-2486"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2487"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2488"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2489"></a>                <span class='keyglyph'>]</span>
+<a name="line-2490"></a>              <span class='keyglyph'>]</span>
+<a name="line-2491"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2492"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2493"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2494"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2495"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2496"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2497"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2498"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2499"></a>                <span class='keyglyph'>]</span>
+<a name="line-2500"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2501"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2502"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2503"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2504"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2505"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2506"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2507"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2508"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2509"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2510"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2511"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2512"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2513"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2514"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2515"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2516"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2517"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2518"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2519"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2520"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2521"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2522"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2523"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2524"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2525"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2526"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2527"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2528"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2529"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2530"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2531"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2532"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2533"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2534"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2535"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2536"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2537"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2538"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2539"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2540"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2541"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2542"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2543"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2544"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2545"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2546"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2547"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2548"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2549"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2550"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2551"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2552"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2553"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2554"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2555"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2556"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2557"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2558"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2559"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2560"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2561"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2562"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2563"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2564"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2565"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2566"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2567"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2568"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2569"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2570"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2571"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2572"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2573"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2574"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2575"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2576"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2577"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2578"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2579"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2580"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2581"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2582"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2583"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2584"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-2585"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2586"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2587"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2588"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2589"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2590"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2591"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2592"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2593"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2594"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2595"></a>                <span class='keyglyph'>]</span>
+<a name="line-2596"></a>              <span class='keyglyph'>]</span>
+<a name="line-2597"></a>            <span class='keyglyph'>]</span>
+<a name="line-2598"></a>          <span class='keyglyph'>]</span>
+<a name="line-2599"></a>        <span class='keyglyph'>]</span>
+<a name="line-2600"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2601"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2602"></a>        <span class='keyglyph'>]</span>
+<a name="line-2603"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2604"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2605"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2606"></a>            <span class='keyglyph'>]</span>
+<a name="line-2607"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"element"</span>
+<a name="line-2608"></a>            <span class='keyglyph'>]</span>
+<a name="line-2609"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2610"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2611"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2612"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2613"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2614"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2615"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2616"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-2617"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2618"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2619"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>
+<a name="line-2620"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2621"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2622"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2623"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2624"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2625"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2626"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2627"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2628"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2629"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2630"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2631"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2632"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2633"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2634"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2635"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2636"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-2637"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2638"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2639"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-2640"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2641"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2642"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2643"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-2644"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2645"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2646"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2647"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-2648"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2649"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2650"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2651"></a>                <span class='keyglyph'>]</span>
+<a name="line-2652"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2653"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2654"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2655"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2656"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2657"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2658"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2659"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2660"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2661"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2662"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2663"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2664"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2665"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2666"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2667"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2668"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2669"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2670"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2671"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2672"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2673"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2674"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2675"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2676"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2677"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2678"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2679"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2680"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2681"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2682"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2683"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2684"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2685"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2686"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2687"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2688"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2689"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2690"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2691"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2692"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2693"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2694"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2695"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2696"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2697"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2698"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2699"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2700"></a>                <span class='keyglyph'>]</span>
+<a name="line-2701"></a>              <span class='keyglyph'>]</span>
+<a name="line-2702"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2703"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2704"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2705"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2706"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2707"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2708"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2709"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2710"></a>                <span class='keyglyph'>]</span>
+<a name="line-2711"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2712"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2713"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2714"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2715"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2716"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2717"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2718"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2719"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2720"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2721"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2722"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2723"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2724"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2725"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2726"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2727"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2728"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2729"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2730"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2731"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2732"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2733"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2734"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2735"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2736"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2737"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2738"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2739"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2740"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2741"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2742"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2743"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2744"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2745"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2746"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2747"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2748"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2749"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2750"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2751"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2752"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2753"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2754"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2755"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2756"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2757"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2758"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2759"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2760"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2761"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2762"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2763"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2764"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2765"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2766"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2767"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2768"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2769"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2770"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2771"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2772"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2773"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2774"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2775"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2776"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2777"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2778"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2779"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2780"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2781"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2782"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2783"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2784"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2785"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2786"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2787"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2788"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2789"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2790"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2791"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2792"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2793"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2794"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-2795"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2796"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2797"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2798"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2799"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2800"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2801"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2802"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2803"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2804"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2805"></a>                <span class='keyglyph'>]</span>
+<a name="line-2806"></a>              <span class='keyglyph'>]</span>
+<a name="line-2807"></a>            <span class='keyglyph'>]</span>
+<a name="line-2808"></a>          <span class='keyglyph'>]</span>
+<a name="line-2809"></a>        <span class='keyglyph'>]</span>
+<a name="line-2810"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2811"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>
+<a name="line-2812"></a>        <span class='keyglyph'>]</span>
+<a name="line-2813"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2814"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2815"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2816"></a>            <span class='keyglyph'>]</span>
+<a name="line-2817"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"include"</span>
+<a name="line-2818"></a>            <span class='keyglyph'>]</span>
+<a name="line-2819"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2820"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2821"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2822"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2823"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2824"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2825"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>
+<a name="line-2826"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2827"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2828"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2829"></a>                  <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2830"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2831"></a>                <span class='keyglyph'>]</span>
+<a name="line-2832"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2833"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2834"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2835"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2836"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2837"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2838"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2839"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2840"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2841"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2842"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2843"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2844"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2845"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2846"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2847"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2848"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2849"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2850"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2851"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2852"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2853"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2854"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2855"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2856"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2857"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2858"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2859"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2860"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2861"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2862"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2863"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2864"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2865"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2866"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2867"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2868"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2869"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2870"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2871"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2872"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2873"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2874"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2875"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2876"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2877"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2878"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2879"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2880"></a>                <span class='keyglyph'>]</span>
+<a name="line-2881"></a>              <span class='keyglyph'>]</span>
+<a name="line-2882"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2883"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2884"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2885"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2886"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2887"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2888"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2889"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2890"></a>                <span class='keyglyph'>]</span>
+<a name="line-2891"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2892"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2893"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2894"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2895"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2896"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2897"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-2898"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2899"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2900"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-2901"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2902"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2903"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2904"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-2905"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2906"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2907"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2908"></a>                <span class='keyglyph'>]</span>
+<a name="line-2909"></a>              <span class='keyglyph'>]</span>
+<a name="line-2910"></a>            <span class='keyglyph'>]</span>
+<a name="line-2911"></a>          <span class='keyglyph'>]</span>
+<a name="line-2912"></a>        <span class='keyglyph'>]</span>
+<a name="line-2913"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2914"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>
+<a name="line-2915"></a>        <span class='keyglyph'>]</span>
+<a name="line-2916"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2917"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2918"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2919"></a>            <span class='keyglyph'>]</span>
+<a name="line-2920"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>
+<a name="line-2921"></a>            <span class='keyglyph'>]</span>
+<a name="line-2922"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2923"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2924"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2925"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2926"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2927"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2928"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2929"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2930"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2931"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2932"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2933"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2934"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2935"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2936"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2937"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2938"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2939"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2940"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2941"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2942"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2943"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2944"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2945"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2946"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2947"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2948"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2949"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2950"></a>                <span class='keyglyph'>]</span>
+<a name="line-2951"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2952"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2953"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2954"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2955"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2956"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2957"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2958"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2959"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2960"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2961"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2962"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2963"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2964"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2965"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2966"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2967"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2968"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2969"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2970"></a>                <span class='keyglyph'>]</span>
+<a name="line-2971"></a>              <span class='keyglyph'>]</span>
+<a name="line-2972"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2973"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2974"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2975"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2976"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2977"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-2978"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2979"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2980"></a>                <span class='keyglyph'>]</span>
+<a name="line-2981"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2982"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2983"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2984"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2985"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2986"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2987"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2988"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-2989"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2990"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2991"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-2992"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2993"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2994"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2995"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>
+<a name="line-2996"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2997"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2998"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2999"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>
+<a name="line-3000"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3001"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3002"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3003"></a>                <span class='keyglyph'>]</span>
+<a name="line-3004"></a>              <span class='keyglyph'>]</span>
+<a name="line-3005"></a>            <span class='keyglyph'>]</span>
+<a name="line-3006"></a>          <span class='keyglyph'>]</span>
+<a name="line-3007"></a>        <span class='keyglyph'>]</span>
+<a name="line-3008"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3009"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-3010"></a>        <span class='keyglyph'>]</span>
+<a name="line-3011"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3012"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3013"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3014"></a>            <span class='keyglyph'>]</span>
+<a name="line-3015"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>
+<a name="line-3016"></a>            <span class='keyglyph'>]</span>
+<a name="line-3017"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3018"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3019"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3020"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3021"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3022"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3023"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3024"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3025"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3026"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3027"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3028"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3029"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3030"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3031"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3032"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3033"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3034"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3035"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3036"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3037"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3038"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3039"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3040"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3041"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3042"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3043"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3044"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3045"></a>                <span class='keyglyph'>]</span>
+<a name="line-3046"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3047"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3048"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3049"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3050"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3051"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3052"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3053"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3054"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3055"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3056"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3057"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3058"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3059"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3060"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3061"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3062"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3063"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3064"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3065"></a>                <span class='keyglyph'>]</span>
+<a name="line-3066"></a>              <span class='keyglyph'>]</span>
+<a name="line-3067"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3068"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3069"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3070"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3071"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3072"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3073"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3074"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3075"></a>                <span class='keyglyph'>]</span>
+<a name="line-3076"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3077"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3078"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3079"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3080"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3081"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3082"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-3083"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3084"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3085"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-3086"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3087"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3088"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3089"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-3090"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3091"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3092"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3093"></a>                <span class='keyglyph'>]</span>
+<a name="line-3094"></a>              <span class='keyglyph'>]</span>
+<a name="line-3095"></a>            <span class='keyglyph'>]</span>
+<a name="line-3096"></a>          <span class='keyglyph'>]</span>
+<a name="line-3097"></a>        <span class='keyglyph'>]</span>
+<a name="line-3098"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3099"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-3100"></a>        <span class='keyglyph'>]</span>
+<a name="line-3101"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3102"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3103"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3104"></a>            <span class='keyglyph'>]</span>
+<a name="line-3105"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-3106"></a>            <span class='keyglyph'>]</span>
+<a name="line-3107"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3108"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3109"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3110"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3111"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3112"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3113"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3114"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3115"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3116"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3117"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3118"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3119"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3120"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3121"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3122"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3123"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3124"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3125"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3126"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3127"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3128"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3129"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3130"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3131"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3132"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3133"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3134"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3135"></a>                <span class='keyglyph'>]</span>
+<a name="line-3136"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3137"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3138"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3139"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3140"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3141"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3142"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3143"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3144"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3145"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3146"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3147"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3148"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3149"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3150"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3151"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3152"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3153"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3154"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3155"></a>                <span class='keyglyph'>]</span>
+<a name="line-3156"></a>              <span class='keyglyph'>]</span>
+<a name="line-3157"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3158"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3159"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3160"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3161"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3162"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3163"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3164"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3165"></a>                <span class='keyglyph'>]</span>
+<a name="line-3166"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3167"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3168"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3169"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3170"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3171"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-3172"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3173"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3174"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-3175"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3176"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3177"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3178"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-3179"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3180"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3181"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3182"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-3183"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3184"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3185"></a>                <span class='keyglyph'>]</span>
+<a name="line-3186"></a>              <span class='keyglyph'>]</span>
+<a name="line-3187"></a>            <span class='keyglyph'>]</span>
+<a name="line-3188"></a>          <span class='keyglyph'>]</span>
+<a name="line-3189"></a>        <span class='keyglyph'>]</span>
+<a name="line-3190"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3191"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-3192"></a>        <span class='keyglyph'>]</span>
+<a name="line-3193"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3194"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3195"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3196"></a>            <span class='keyglyph'>]</span>
+<a name="line-3197"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"nsName"</span>
+<a name="line-3198"></a>            <span class='keyglyph'>]</span>
+<a name="line-3199"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3200"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3201"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3202"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3203"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3204"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3205"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3206"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3207"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3208"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3209"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3210"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3211"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3212"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3213"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3214"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3215"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3216"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3217"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3218"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3219"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3220"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3221"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3222"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3223"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3224"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3225"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3226"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3227"></a>                <span class='keyglyph'>]</span>
+<a name="line-3228"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3229"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3230"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3231"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3232"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3233"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3234"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3235"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3236"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3237"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3238"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3239"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3240"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3241"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3242"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3243"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3244"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3245"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3246"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3247"></a>                <span class='keyglyph'>]</span>
+<a name="line-3248"></a>              <span class='keyglyph'>]</span>
+<a name="line-3249"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3250"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3251"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3252"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3253"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3254"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3255"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3256"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3257"></a>                <span class='keyglyph'>]</span>
+<a name="line-3258"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3259"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3260"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3261"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3262"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3263"></a>                <span class='keyglyph'>]</span>
+<a name="line-3264"></a>              <span class='keyglyph'>]</span>
+<a name="line-3265"></a>            <span class='keyglyph'>]</span>
+<a name="line-3266"></a>          <span class='keyglyph'>]</span>
+<a name="line-3267"></a>        <span class='keyglyph'>]</span>
+<a name="line-3268"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3269"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-3270"></a>        <span class='keyglyph'>]</span>
+<a name="line-3271"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3272"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3273"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3274"></a>            <span class='keyglyph'>]</span>
+<a name="line-3275"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyName"</span>
+<a name="line-3276"></a>            <span class='keyglyph'>]</span>
+<a name="line-3277"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3278"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3279"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3280"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3281"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3282"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3283"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3284"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3285"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3286"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3287"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3288"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3289"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3290"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3291"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3292"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3293"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3294"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3295"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3296"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3297"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3298"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3299"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3300"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3301"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3302"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3303"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3304"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3305"></a>                <span class='keyglyph'>]</span>
+<a name="line-3306"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3307"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3308"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3309"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3310"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3311"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3312"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3313"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3314"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3315"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3316"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3317"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3318"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3319"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3320"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3321"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3322"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3323"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3324"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3325"></a>                <span class='keyglyph'>]</span>
+<a name="line-3326"></a>              <span class='keyglyph'>]</span>
+<a name="line-3327"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3328"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3329"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3330"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3331"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3332"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3333"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3334"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3335"></a>                <span class='keyglyph'>]</span>
+<a name="line-3336"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3337"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3338"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3339"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3340"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3341"></a>                <span class='keyglyph'>]</span>
+<a name="line-3342"></a>              <span class='keyglyph'>]</span>
+<a name="line-3343"></a>            <span class='keyglyph'>]</span>
+<a name="line-3344"></a>          <span class='keyglyph'>]</span>
+<a name="line-3345"></a>        <span class='keyglyph'>]</span>
+<a name="line-3346"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3347"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-3348"></a>        <span class='keyglyph'>]</span>
+<a name="line-3349"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3350"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3351"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3352"></a>            <span class='keyglyph'>]</span>
+<a name="line-3353"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-3354"></a>            <span class='keyglyph'>]</span>
+<a name="line-3355"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3356"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3357"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3358"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3359"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3360"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3361"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3362"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3363"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3364"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3365"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3366"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3367"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3368"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3369"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3370"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3371"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3372"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3373"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3374"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3375"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3376"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3377"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3378"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3379"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3380"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3381"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3382"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3383"></a>                <span class='keyglyph'>]</span>
+<a name="line-3384"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3385"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3386"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3387"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3388"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3389"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3390"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3391"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3392"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3393"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3394"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3395"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3396"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3397"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3398"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3399"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3400"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3401"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3402"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3403"></a>                <span class='keyglyph'>]</span>
+<a name="line-3404"></a>              <span class='keyglyph'>]</span>
+<a name="line-3405"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3406"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>
+<a name="line-3407"></a>              <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3408"></a>              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3409"></a>            <span class='keyglyph'>]</span>
+<a name="line-3410"></a>          <span class='keyglyph'>]</span>
+<a name="line-3411"></a>        <span class='keyglyph'>]</span>
+<a name="line-3412"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3413"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3414"></a>        <span class='keyglyph'>]</span>
+<a name="line-3415"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3416"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3417"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3418"></a>            <span class='keyglyph'>]</span>
+<a name="line-3419"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>
+<a name="line-3420"></a>            <span class='keyglyph'>]</span>
+<a name="line-3421"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3422"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3423"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3424"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3425"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3426"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3427"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3428"></a>                <span class='keyglyph'>]</span>
+<a name="line-3429"></a>              <span class='keyglyph'>]</span>
+<a name="line-3430"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3431"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3432"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3433"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3434"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3435"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-3436"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3437"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3438"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-3439"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3440"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3441"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3442"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-3443"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3444"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3445"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3446"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-3447"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3448"></a>                <span class='keyglyph'>]</span>
+<a name="line-3449"></a>              <span class='keyglyph'>]</span>
+<a name="line-3450"></a>            <span class='keyglyph'>]</span>
+<a name="line-3451"></a>          <span class='keyglyph'>]</span>
+<a name="line-3452"></a>        <span class='keyglyph'>]</span>
+<a name="line-3453"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3454"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3455"></a>        <span class='keyglyph'>]</span>
+<a name="line-3456"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3457"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3458"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3459"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3460"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3461"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3462"></a>              <span class='keyglyph'>]</span>
+<a name="line-3463"></a>            <span class='keyglyph'>]</span>
+<a name="line-3464"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3465"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3466"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3467"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3468"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3469"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3470"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3471"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3472"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3473"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3474"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3475"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3476"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>
+<a name="line-3477"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3478"></a>                <span class='keyglyph'>]</span>
+<a name="line-3479"></a>              <span class='keyglyph'>]</span>
+<a name="line-3480"></a>            <span class='keyglyph'>]</span>
+<a name="line-3481"></a>          <span class='keyglyph'>]</span>
+<a name="line-3482"></a>        <span class='keyglyph'>]</span>
+<a name="line-3483"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3484"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>
+<a name="line-3485"></a>        <span class='keyglyph'>]</span>
+<a name="line-3486"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3487"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3488"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3489"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3490"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3491"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3492"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3493"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3494"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3495"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3496"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3497"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3498"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3499"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3500"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>
+<a name="line-3501"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3502"></a>                <span class='keyglyph'>]</span>
+<a name="line-3503"></a>              <span class='keyglyph'>]</span>
+<a name="line-3504"></a>            <span class='keyglyph'>]</span>
+<a name="line-3505"></a>          <span class='keyglyph'>]</span>
+<a name="line-3506"></a>        <span class='keyglyph'>]</span>
+<a name="line-3507"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3508"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-3509"></a>        <span class='keyglyph'>]</span>
+<a name="line-3510"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3511"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3512"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3513"></a>            <span class='keyglyph'>]</span>
+<a name="line-3514"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"define"</span>
+<a name="line-3515"></a>            <span class='keyglyph'>]</span>
+<a name="line-3516"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3517"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3518"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3519"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3520"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3521"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3522"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3523"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-3524"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3525"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3526"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-3527"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3528"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3529"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3530"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3531"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3532"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3533"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3534"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3535"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3536"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>
+<a name="line-3537"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3538"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3539"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3540"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3541"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3542"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3543"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3544"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3545"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3546"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3547"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-3548"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3549"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3550"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3551"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3552"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3553"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3554"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3555"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3556"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3557"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>
+<a name="line-3558"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3559"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3560"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3561"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3562"></a>                <span class='keyglyph'>]</span>
+<a name="line-3563"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3564"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3565"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3566"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3567"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3568"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3569"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3570"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3571"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3572"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3573"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3574"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3575"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3576"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3577"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3578"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3579"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3580"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3581"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3582"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3583"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3584"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3585"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3586"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3587"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3588"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3589"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3590"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3591"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3592"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3593"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3594"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3595"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3596"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3597"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3598"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3599"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3600"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3601"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3602"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3603"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3604"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3605"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3606"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3607"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3608"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3609"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3610"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3611"></a>                <span class='keyglyph'>]</span>
+<a name="line-3612"></a>              <span class='keyglyph'>]</span>
+<a name="line-3613"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3614"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3615"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3616"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3617"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3618"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3619"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3620"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3621"></a>                <span class='keyglyph'>]</span>
+<a name="line-3622"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3623"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3624"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3625"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3626"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3627"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3628"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3629"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3630"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3631"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3632"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3633"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3634"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3635"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3636"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3637"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3638"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3639"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3640"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3641"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3642"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-3643"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3644"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3645"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-3646"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3647"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-3648"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3649"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-3650"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3651"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-3652"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3653"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-3654"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3655"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-3656"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3657"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-3658"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3659"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-3660"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3661"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-3662"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3663"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-3664"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3665"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-3666"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3667"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-3668"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3669"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-3670"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3671"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-3672"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3673"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-3674"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3675"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-3676"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3677"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-3678"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3679"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-3680"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3681"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-3682"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3683"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-3684"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3685"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-3686"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3687"></a>                                <span class='keyglyph'>]</span>
+<a name="line-3688"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3689"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-3690"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3691"></a>                              <span class='keyglyph'>]</span>
+<a name="line-3692"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3693"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-3694"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3695"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3696"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3697"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-3698"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3699"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3700"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3701"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-3702"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3703"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3704"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3705"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-3706"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3707"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3708"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3709"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-3710"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3711"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3712"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3713"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-3714"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3715"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3716"></a>                <span class='keyglyph'>]</span>
+<a name="line-3717"></a>              <span class='keyglyph'>]</span>
+<a name="line-3718"></a>            <span class='keyglyph'>]</span>
+<a name="line-3719"></a>          <span class='keyglyph'>]</span>
+<a name="line-3720"></a>        <span class='keyglyph'>]</span>
+<a name="line-3721"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3722"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-3723"></a>        <span class='keyglyph'>]</span>
+<a name="line-3724"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3725"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3726"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3727"></a>            <span class='keyglyph'>]</span>
+<a name="line-3728"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"start"</span>
+<a name="line-3729"></a>            <span class='keyglyph'>]</span>
+<a name="line-3730"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3731"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3732"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3733"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3734"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3735"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3736"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3737"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3738"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>
+<a name="line-3739"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3740"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3741"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3742"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3743"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3744"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3745"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3746"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3747"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3748"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3749"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-3750"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3751"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3752"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3753"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3754"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3755"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3756"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3757"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3758"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3759"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>
+<a name="line-3760"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3761"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3762"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3763"></a>                <span class='keyglyph'>]</span>
+<a name="line-3764"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3765"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3766"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3767"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3768"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3769"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3770"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3771"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3772"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3773"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3774"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3775"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3776"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3777"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3778"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3779"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3780"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3781"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3782"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3783"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3784"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3785"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3786"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3787"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3788"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3789"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3790"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3791"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3792"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3793"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3794"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3795"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3796"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3797"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3798"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3799"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3800"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3801"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3802"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3803"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3804"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3805"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3806"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3807"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3808"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3809"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3810"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3811"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3812"></a>                <span class='keyglyph'>]</span>
+<a name="line-3813"></a>              <span class='keyglyph'>]</span>
+<a name="line-3814"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3815"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3816"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3817"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3818"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3819"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>
+<a name="line-3820"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3821"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3822"></a>                <span class='keyglyph'>]</span>
+<a name="line-3823"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3824"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3825"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3826"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3827"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3828"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3829"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3830"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3831"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3832"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3833"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3834"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3835"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3836"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3837"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3838"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3839"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3840"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3841"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3842"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-3843"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3844"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3845"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-3846"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3847"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-3848"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3849"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-3850"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3851"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-3852"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3853"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-3854"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3855"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-3856"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3857"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-3858"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3859"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-3860"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3861"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-3862"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3863"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-3864"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3865"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-3866"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3867"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-3868"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3869"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-3870"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3871"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-3872"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3873"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-3874"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3875"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-3876"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3877"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-3878"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3879"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-3880"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3881"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-3882"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3883"></a>                                <span class='keyglyph'>]</span>
+<a name="line-3884"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3885"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-3886"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3887"></a>                              <span class='keyglyph'>]</span>
+<a name="line-3888"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3889"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-3890"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3891"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3892"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3893"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-3894"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3895"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3896"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3897"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-3898"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3899"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3900"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3901"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-3902"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3903"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3904"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3905"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-3906"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3907"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3908"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3909"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-3910"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3911"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3912"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3913"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-3914"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3915"></a>                <span class='keyglyph'>]</span>
+<a name="line-3916"></a>              <span class='keyglyph'>]</span>
+<a name="line-3917"></a>            <span class='keyglyph'>]</span>
+<a name="line-3918"></a>          <span class='keyglyph'>]</span>
+<a name="line-3919"></a>        <span class='keyglyph'>]</span>
+<a name="line-3920"></a>      <span class='keyglyph'>]</span>
+<a name="line-3921"></a>    <span class='keyglyph'>]</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-SchemaGrammar.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-SchemaGrammar.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-SchemaGrammar.html
@@ -0,0 +1,3841 @@
+<!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'>{- |
+<a name="line-2"></a>   Module     : Text.HXT.RelaxNG.SchemaGrammar
+<a name="line-3"></a>
+<a name="line-4"></a>   Don't edit this module, it's generated by RelaxSchemaToXmlTree
+<a name="line-5"></a>
+<a name="line-6"></a>-}</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>SchemaGrammar</span>
+<a name="line-9"></a>    <span class='layout'>(</span> <span class='varid'>relaxSchemaTree</span><span class='layout'>,</span> <span class='varid'>relaxSchemaArrow</span> <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'>TypeDefs</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'>XmlNode</span> <span class='layout'>(</span><span class='varid'>mkRoot</span><span class='layout'>,</span> <span class='varid'>mkElement</span><span class='layout'>,</span> <span class='varid'>mkAttr</span><span class='layout'>,</span> <span class='varid'>mkText</span><span class='layout'>)</span>
+<a name="line-14"></a>
+<a name="line-15"></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-16"></a>
+<a name="line-17"></a><a name="relaxSchemaArrow"></a><span class='definition'>relaxSchemaArrow</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='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-18"></a><span class='definition'>relaxSchemaArrow</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>relaxSchemaTree</span>
+<a name="line-19"></a>
+<a name="line-20"></a><a name="relaxSchemaTree"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>
+<a name="line-21"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>=</span>
+<a name="line-22"></a>  <span class='keyword'>let</span>
+<a name="line-23"></a>  <span class='varid'>ns1</span>	<span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>
+<a name="line-24"></a>  <span class='varid'>qn1</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContext:xml"</span>
+<a name="line-25"></a>  <span class='varid'>qn2</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextBaseURI"</span>
+<a name="line-26"></a>  <span class='varid'>qn3</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextDefault"</span>
+<a name="line-27"></a>  <span class='varid'>qn4</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"anyName"</span> <span class='varid'>ns1</span>
+<a name="line-28"></a>  <span class='varid'>qn5</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"attribute"</span> <span class='varid'>ns1</span>
+<a name="line-29"></a>  <span class='varid'>qn6</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"choice"</span> <span class='varid'>ns1</span>
+<a name="line-30"></a>  <span class='varid'>qn7</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"data"</span> <span class='varid'>ns1</span>
+<a name="line-31"></a>  <span class='varid'>qn8</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-32"></a>  <span class='varid'>qn9</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"define"</span> <span class='varid'>ns1</span>
+<a name="line-33"></a>  <span class='varid'>qn10</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"element"</span> <span class='varid'>ns1</span>
+<a name="line-34"></a>  <span class='varid'>qn11</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"empty"</span> <span class='varid'>ns1</span>
+<a name="line-35"></a>  <span class='varid'>qn12</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"except"</span> <span class='varid'>ns1</span>
+<a name="line-36"></a>  <span class='varid'>qn13</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"grammar"</span> <span class='varid'>ns1</span>
+<a name="line-37"></a>  <span class='varid'>qn14</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"group"</span> <span class='varid'>ns1</span>
+<a name="line-38"></a>  <span class='varid'>qn15</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"interleave"</span> <span class='varid'>ns1</span>
+<a name="line-39"></a>  <span class='varid'>qn16</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"name"</span>
+<a name="line-40"></a>  <span class='varid'>qn17</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"name"</span> <span class='varid'>ns1</span>
+<a name="line-41"></a>  <span class='varid'>qn18</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"ns"</span>
+<a name="line-42"></a>  <span class='varid'>qn19</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"nsName"</span> <span class='varid'>ns1</span>
+<a name="line-43"></a>  <span class='varid'>qn20</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"oneOrMore"</span> <span class='varid'>ns1</span>
+<a name="line-44"></a>  <span class='varid'>qn21</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"ref"</span> <span class='varid'>ns1</span>
+<a name="line-45"></a>  <span class='varid'>qn22</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"start"</span> <span class='varid'>ns1</span>
+<a name="line-46"></a>  <span class='varid'>qn23</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"text"</span> <span class='varid'>ns1</span>
+<a name="line-47"></a>  <span class='varid'>qn24</span>	<span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"type"</span>
+<a name="line-48"></a>  <span class='varid'>qn25</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"value"</span> <span class='varid'>ns1</span>
+<a name="line-49"></a>  <span class='keyword'>in</span>
+<a name="line-50"></a>  <span class='varid'>mkRoot</span> <span class='conid'>[]</span>
+<a name="line-51"></a>    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn13</span> <span class='conid'>[]</span>
+<a name="line-52"></a>      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn22</span> <span class='conid'>[]</span>
+<a name="line-53"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-54"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-55"></a>          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-56"></a>        <span class='keyglyph'>]</span>
+<a name="line-57"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-58"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-59"></a>        <span class='keyglyph'>]</span>
+<a name="line-60"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-61"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-62"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-63"></a>            <span class='keyglyph'>]</span>
+<a name="line-64"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"externalRef"</span>
+<a name="line-65"></a>            <span class='keyglyph'>]</span>
+<a name="line-66"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-67"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-68"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-69"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-70"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-71"></a>                  <span class='keyglyph'>]</span>
+<a name="line-72"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>
+<a name="line-73"></a>                  <span class='keyglyph'>]</span>
+<a name="line-74"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-75"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-76"></a>                  <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-77"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-78"></a>                <span class='keyglyph'>]</span>
+<a name="line-79"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-80"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-81"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-82"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-83"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-84"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-85"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-86"></a>                        <span class='keyglyph'>]</span>
+<a name="line-87"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-88"></a>                        <span class='keyglyph'>]</span>
+<a name="line-89"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-90"></a>                      <span class='keyglyph'>]</span>
+<a name="line-91"></a>                    <span class='keyglyph'>]</span>
+<a name="line-92"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-93"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-94"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-95"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-96"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-97"></a>                        <span class='keyglyph'>]</span>
+<a name="line-98"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-99"></a>                        <span class='keyglyph'>]</span>
+<a name="line-100"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-101"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-102"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-103"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-104"></a>                      <span class='keyglyph'>]</span>
+<a name="line-105"></a>                    <span class='keyglyph'>]</span>
+<a name="line-106"></a>                  <span class='keyglyph'>]</span>
+<a name="line-107"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-108"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-109"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-110"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-111"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-112"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-113"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-114"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-115"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-116"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-117"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-118"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-119"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-120"></a>                            <span class='keyglyph'>]</span>
+<a name="line-121"></a>                          <span class='keyglyph'>]</span>
+<a name="line-122"></a>                        <span class='keyglyph'>]</span>
+<a name="line-123"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-124"></a>                      <span class='keyglyph'>]</span>
+<a name="line-125"></a>                    <span class='keyglyph'>]</span>
+<a name="line-126"></a>                  <span class='keyglyph'>]</span>
+<a name="line-127"></a>                <span class='keyglyph'>]</span>
+<a name="line-128"></a>              <span class='keyglyph'>]</span>
+<a name="line-129"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-130"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-131"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-132"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-133"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-134"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-135"></a>                <span class='keyglyph'>]</span>
+<a name="line-136"></a>              <span class='keyglyph'>]</span>
+<a name="line-137"></a>            <span class='keyglyph'>]</span>
+<a name="line-138"></a>          <span class='keyglyph'>]</span>
+<a name="line-139"></a>        <span class='keyglyph'>]</span>
+<a name="line-140"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-141"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-142"></a>        <span class='keyglyph'>]</span>
+<a name="line-143"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-144"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-145"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-146"></a>            <span class='keyglyph'>]</span>
+<a name="line-147"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"notAllowed"</span>
+<a name="line-148"></a>            <span class='keyglyph'>]</span>
+<a name="line-149"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-150"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-151"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-152"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-153"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-154"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-155"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-156"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-157"></a>                      <span class='keyglyph'>]</span>
+<a name="line-158"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-159"></a>                      <span class='keyglyph'>]</span>
+<a name="line-160"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-161"></a>                    <span class='keyglyph'>]</span>
+<a name="line-162"></a>                  <span class='keyglyph'>]</span>
+<a name="line-163"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-164"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-165"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-166"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-167"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-168"></a>                      <span class='keyglyph'>]</span>
+<a name="line-169"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-170"></a>                      <span class='keyglyph'>]</span>
+<a name="line-171"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-172"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-173"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-174"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-175"></a>                    <span class='keyglyph'>]</span>
+<a name="line-176"></a>                  <span class='keyglyph'>]</span>
+<a name="line-177"></a>                <span class='keyglyph'>]</span>
+<a name="line-178"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-179"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-180"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-181"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-182"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-183"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-184"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-185"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-186"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-187"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-188"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-189"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-190"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-191"></a>                          <span class='keyglyph'>]</span>
+<a name="line-192"></a>                        <span class='keyglyph'>]</span>
+<a name="line-193"></a>                      <span class='keyglyph'>]</span>
+<a name="line-194"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-195"></a>                    <span class='keyglyph'>]</span>
+<a name="line-196"></a>                  <span class='keyglyph'>]</span>
+<a name="line-197"></a>                <span class='keyglyph'>]</span>
+<a name="line-198"></a>              <span class='keyglyph'>]</span>
+<a name="line-199"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-200"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-201"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-202"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-203"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-204"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-205"></a>                <span class='keyglyph'>]</span>
+<a name="line-206"></a>              <span class='keyglyph'>]</span>
+<a name="line-207"></a>            <span class='keyglyph'>]</span>
+<a name="line-208"></a>          <span class='keyglyph'>]</span>
+<a name="line-209"></a>        <span class='keyglyph'>]</span>
+<a name="line-210"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-211"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-212"></a>        <span class='keyglyph'>]</span>
+<a name="line-213"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-214"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-215"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-216"></a>            <span class='keyglyph'>]</span>
+<a name="line-217"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"data"</span>
+<a name="line-218"></a>            <span class='keyglyph'>]</span>
+<a name="line-219"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-220"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-221"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-222"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-223"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-224"></a>                  <span class='keyglyph'>]</span>
+<a name="line-225"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>
+<a name="line-226"></a>                  <span class='keyglyph'>]</span>
+<a name="line-227"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-228"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-229"></a>                  <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-230"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-231"></a>                <span class='keyglyph'>]</span>
+<a name="line-232"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-233"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-234"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-235"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-236"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-237"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-238"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-239"></a>                        <span class='keyglyph'>]</span>
+<a name="line-240"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-241"></a>                        <span class='keyglyph'>]</span>
+<a name="line-242"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-243"></a>                      <span class='keyglyph'>]</span>
+<a name="line-244"></a>                    <span class='keyglyph'>]</span>
+<a name="line-245"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-246"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-247"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-248"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-249"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-250"></a>                        <span class='keyglyph'>]</span>
+<a name="line-251"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-252"></a>                        <span class='keyglyph'>]</span>
+<a name="line-253"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-254"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-255"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-256"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-257"></a>                      <span class='keyglyph'>]</span>
+<a name="line-258"></a>                    <span class='keyglyph'>]</span>
+<a name="line-259"></a>                  <span class='keyglyph'>]</span>
+<a name="line-260"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-261"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-262"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-263"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-264"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-265"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-266"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-267"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-268"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-269"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-270"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-271"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-272"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-273"></a>                            <span class='keyglyph'>]</span>
+<a name="line-274"></a>                          <span class='keyglyph'>]</span>
+<a name="line-275"></a>                        <span class='keyglyph'>]</span>
+<a name="line-276"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-277"></a>                      <span class='keyglyph'>]</span>
+<a name="line-278"></a>                    <span class='keyglyph'>]</span>
+<a name="line-279"></a>                  <span class='keyglyph'>]</span>
+<a name="line-280"></a>                <span class='keyglyph'>]</span>
+<a name="line-281"></a>              <span class='keyglyph'>]</span>
+<a name="line-282"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-283"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-284"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-285"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-286"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-287"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-288"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-289"></a>                  <span class='keyglyph'>]</span>
+<a name="line-290"></a>                <span class='keyglyph'>]</span>
+<a name="line-291"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-292"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-293"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-294"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-295"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-296"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>
+<a name="line-297"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-298"></a>                    <span class='keyglyph'>]</span>
+<a name="line-299"></a>                  <span class='keyglyph'>]</span>
+<a name="line-300"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-301"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-302"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-303"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-304"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-305"></a>                  <span class='keyglyph'>]</span>
+<a name="line-306"></a>                <span class='keyglyph'>]</span>
+<a name="line-307"></a>              <span class='keyglyph'>]</span>
+<a name="line-308"></a>            <span class='keyglyph'>]</span>
+<a name="line-309"></a>          <span class='keyglyph'>]</span>
+<a name="line-310"></a>        <span class='keyglyph'>]</span>
+<a name="line-311"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-312"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>
+<a name="line-313"></a>        <span class='keyglyph'>]</span>
+<a name="line-314"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-315"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-316"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-317"></a>            <span class='keyglyph'>]</span>
+<a name="line-318"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>
+<a name="line-319"></a>            <span class='keyglyph'>]</span>
+<a name="line-320"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-321"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-322"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-323"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-324"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-325"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-326"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-327"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-328"></a>                      <span class='keyglyph'>]</span>
+<a name="line-329"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-330"></a>                      <span class='keyglyph'>]</span>
+<a name="line-331"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-332"></a>                    <span class='keyglyph'>]</span>
+<a name="line-333"></a>                  <span class='keyglyph'>]</span>
+<a name="line-334"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-335"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-336"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-337"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-338"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-339"></a>                      <span class='keyglyph'>]</span>
+<a name="line-340"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-341"></a>                      <span class='keyglyph'>]</span>
+<a name="line-342"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-343"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-344"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-345"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-346"></a>                    <span class='keyglyph'>]</span>
+<a name="line-347"></a>                  <span class='keyglyph'>]</span>
+<a name="line-348"></a>                <span class='keyglyph'>]</span>
+<a name="line-349"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-350"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-351"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-352"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-353"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-354"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-355"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-356"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-357"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-358"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-359"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-360"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-361"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-362"></a>                          <span class='keyglyph'>]</span>
+<a name="line-363"></a>                        <span class='keyglyph'>]</span>
+<a name="line-364"></a>                      <span class='keyglyph'>]</span>
+<a name="line-365"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-366"></a>                    <span class='keyglyph'>]</span>
+<a name="line-367"></a>                  <span class='keyglyph'>]</span>
+<a name="line-368"></a>                <span class='keyglyph'>]</span>
+<a name="line-369"></a>              <span class='keyglyph'>]</span>
+<a name="line-370"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-371"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-372"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-373"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-374"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-375"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-376"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-377"></a>                  <span class='keyglyph'>]</span>
+<a name="line-378"></a>                <span class='keyglyph'>]</span>
+<a name="line-379"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-380"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-381"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-382"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-383"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-384"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-385"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-386"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-387"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-388"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-389"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-390"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-391"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-392"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-393"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-394"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-395"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-396"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-397"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-398"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-399"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-400"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-401"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-402"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-403"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-404"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-405"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-406"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-407"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-408"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-409"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-410"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-411"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-412"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-413"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-414"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-415"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-416"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-417"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-418"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-419"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-420"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-421"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-422"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-423"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-424"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-425"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-426"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-427"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-428"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-429"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-430"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-431"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-432"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-433"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-434"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-435"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-436"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-437"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-438"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-439"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-440"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-441"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-442"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-443"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-444"></a>                                <span class='keyglyph'>]</span>
+<a name="line-445"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-446"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-447"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-448"></a>                              <span class='keyglyph'>]</span>
+<a name="line-449"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-450"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-451"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-452"></a>                            <span class='keyglyph'>]</span>
+<a name="line-453"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-454"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-455"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-456"></a>                          <span class='keyglyph'>]</span>
+<a name="line-457"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-458"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-459"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-460"></a>                        <span class='keyglyph'>]</span>
+<a name="line-461"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-462"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-463"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-464"></a>                      <span class='keyglyph'>]</span>
+<a name="line-465"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-466"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-467"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-468"></a>                    <span class='keyglyph'>]</span>
+<a name="line-469"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-470"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-471"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-472"></a>                  <span class='keyglyph'>]</span>
+<a name="line-473"></a>                <span class='keyglyph'>]</span>
+<a name="line-474"></a>              <span class='keyglyph'>]</span>
+<a name="line-475"></a>            <span class='keyglyph'>]</span>
+<a name="line-476"></a>          <span class='keyglyph'>]</span>
+<a name="line-477"></a>        <span class='keyglyph'>]</span>
+<a name="line-478"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-479"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>
+<a name="line-480"></a>        <span class='keyglyph'>]</span>
+<a name="line-481"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-482"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-483"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-484"></a>            <span class='keyglyph'>]</span>
+<a name="line-485"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"param"</span>
+<a name="line-486"></a>            <span class='keyglyph'>]</span>
+<a name="line-487"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-488"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-489"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-490"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-491"></a>                <span class='keyglyph'>]</span>
+<a name="line-492"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-493"></a>                <span class='keyglyph'>]</span>
+<a name="line-494"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-495"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-496"></a>                <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-497"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-498"></a>              <span class='keyglyph'>]</span>
+<a name="line-499"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-500"></a>            <span class='keyglyph'>]</span>
+<a name="line-501"></a>          <span class='keyglyph'>]</span>
+<a name="line-502"></a>        <span class='keyglyph'>]</span>
+<a name="line-503"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-504"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-505"></a>        <span class='keyglyph'>]</span>
+<a name="line-506"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-507"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-508"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-509"></a>            <span class='keyglyph'>]</span>
+<a name="line-510"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"value"</span>
+<a name="line-511"></a>            <span class='keyglyph'>]</span>
+<a name="line-512"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-513"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-514"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-515"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-516"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-517"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-518"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-519"></a>                    <span class='keyglyph'>]</span>
+<a name="line-520"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>
+<a name="line-521"></a>                    <span class='keyglyph'>]</span>
+<a name="line-522"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-523"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-524"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-525"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-526"></a>                  <span class='keyglyph'>]</span>
+<a name="line-527"></a>                <span class='keyglyph'>]</span>
+<a name="line-528"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-529"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-530"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-531"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-532"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-533"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-534"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-535"></a>                        <span class='keyglyph'>]</span>
+<a name="line-536"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-537"></a>                        <span class='keyglyph'>]</span>
+<a name="line-538"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-539"></a>                      <span class='keyglyph'>]</span>
+<a name="line-540"></a>                    <span class='keyglyph'>]</span>
+<a name="line-541"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-542"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-543"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-544"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-545"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-546"></a>                        <span class='keyglyph'>]</span>
+<a name="line-547"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-548"></a>                        <span class='keyglyph'>]</span>
+<a name="line-549"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-550"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-551"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-552"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-553"></a>                      <span class='keyglyph'>]</span>
+<a name="line-554"></a>                    <span class='keyglyph'>]</span>
+<a name="line-555"></a>                  <span class='keyglyph'>]</span>
+<a name="line-556"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-557"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-558"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-559"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-560"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-561"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-562"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-563"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-564"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-565"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-566"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-567"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-568"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-569"></a>                            <span class='keyglyph'>]</span>
+<a name="line-570"></a>                          <span class='keyglyph'>]</span>
+<a name="line-571"></a>                        <span class='keyglyph'>]</span>
+<a name="line-572"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-573"></a>                      <span class='keyglyph'>]</span>
+<a name="line-574"></a>                    <span class='keyglyph'>]</span>
+<a name="line-575"></a>                  <span class='keyglyph'>]</span>
+<a name="line-576"></a>                <span class='keyglyph'>]</span>
+<a name="line-577"></a>              <span class='keyglyph'>]</span>
+<a name="line-578"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-579"></a>            <span class='keyglyph'>]</span>
+<a name="line-580"></a>          <span class='keyglyph'>]</span>
+<a name="line-581"></a>        <span class='keyglyph'>]</span>
+<a name="line-582"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-583"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-584"></a>        <span class='keyglyph'>]</span>
+<a name="line-585"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-586"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-587"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-588"></a>            <span class='keyglyph'>]</span>
+<a name="line-589"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"text"</span>
+<a name="line-590"></a>            <span class='keyglyph'>]</span>
+<a name="line-591"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-592"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-593"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-594"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-595"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-596"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-597"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-598"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-599"></a>                      <span class='keyglyph'>]</span>
+<a name="line-600"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-601"></a>                      <span class='keyglyph'>]</span>
+<a name="line-602"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-603"></a>                    <span class='keyglyph'>]</span>
+<a name="line-604"></a>                  <span class='keyglyph'>]</span>
+<a name="line-605"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-606"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-607"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-608"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-609"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-610"></a>                      <span class='keyglyph'>]</span>
+<a name="line-611"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-612"></a>                      <span class='keyglyph'>]</span>
+<a name="line-613"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-614"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-615"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-616"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-617"></a>                    <span class='keyglyph'>]</span>
+<a name="line-618"></a>                  <span class='keyglyph'>]</span>
+<a name="line-619"></a>                <span class='keyglyph'>]</span>
+<a name="line-620"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-621"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-622"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-623"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-624"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-625"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-626"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-627"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-628"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-629"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-630"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-631"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-632"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-633"></a>                          <span class='keyglyph'>]</span>
+<a name="line-634"></a>                        <span class='keyglyph'>]</span>
+<a name="line-635"></a>                      <span class='keyglyph'>]</span>
+<a name="line-636"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-637"></a>                    <span class='keyglyph'>]</span>
+<a name="line-638"></a>                  <span class='keyglyph'>]</span>
+<a name="line-639"></a>                <span class='keyglyph'>]</span>
+<a name="line-640"></a>              <span class='keyglyph'>]</span>
+<a name="line-641"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-642"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-643"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-644"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-645"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-646"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-647"></a>                <span class='keyglyph'>]</span>
+<a name="line-648"></a>              <span class='keyglyph'>]</span>
+<a name="line-649"></a>            <span class='keyglyph'>]</span>
+<a name="line-650"></a>          <span class='keyglyph'>]</span>
+<a name="line-651"></a>        <span class='keyglyph'>]</span>
+<a name="line-652"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-653"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-654"></a>        <span class='keyglyph'>]</span>
+<a name="line-655"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-656"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-657"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-658"></a>            <span class='keyglyph'>]</span>
+<a name="line-659"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"empty"</span>
+<a name="line-660"></a>            <span class='keyglyph'>]</span>
+<a name="line-661"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-662"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-663"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-664"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-665"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-666"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-667"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-668"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-669"></a>                      <span class='keyglyph'>]</span>
+<a name="line-670"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-671"></a>                      <span class='keyglyph'>]</span>
+<a name="line-672"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-673"></a>                    <span class='keyglyph'>]</span>
+<a name="line-674"></a>                  <span class='keyglyph'>]</span>
+<a name="line-675"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-676"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-677"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-678"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-679"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-680"></a>                      <span class='keyglyph'>]</span>
+<a name="line-681"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-682"></a>                      <span class='keyglyph'>]</span>
+<a name="line-683"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-684"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-685"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-686"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-687"></a>                    <span class='keyglyph'>]</span>
+<a name="line-688"></a>                  <span class='keyglyph'>]</span>
+<a name="line-689"></a>                <span class='keyglyph'>]</span>
+<a name="line-690"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-691"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-692"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-693"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-694"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-695"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-696"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-697"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-698"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-699"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-700"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-701"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-702"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-703"></a>                          <span class='keyglyph'>]</span>
+<a name="line-704"></a>                        <span class='keyglyph'>]</span>
+<a name="line-705"></a>                      <span class='keyglyph'>]</span>
+<a name="line-706"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-707"></a>                    <span class='keyglyph'>]</span>
+<a name="line-708"></a>                  <span class='keyglyph'>]</span>
+<a name="line-709"></a>                <span class='keyglyph'>]</span>
+<a name="line-710"></a>              <span class='keyglyph'>]</span>
+<a name="line-711"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-712"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-713"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-714"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-715"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-716"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-717"></a>                <span class='keyglyph'>]</span>
+<a name="line-718"></a>              <span class='keyglyph'>]</span>
+<a name="line-719"></a>            <span class='keyglyph'>]</span>
+<a name="line-720"></a>          <span class='keyglyph'>]</span>
+<a name="line-721"></a>        <span class='keyglyph'>]</span>
+<a name="line-722"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-723"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-724"></a>        <span class='keyglyph'>]</span>
+<a name="line-725"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-726"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-727"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-728"></a>            <span class='keyglyph'>]</span>
+<a name="line-729"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"parentRef"</span>
+<a name="line-730"></a>            <span class='keyglyph'>]</span>
+<a name="line-731"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-732"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-733"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-734"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-735"></a>                <span class='keyglyph'>]</span>
+<a name="line-736"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-737"></a>                <span class='keyglyph'>]</span>
+<a name="line-738"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-739"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-740"></a>                <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-741"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-742"></a>              <span class='keyglyph'>]</span>
+<a name="line-743"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-744"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-745"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-746"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-747"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-748"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-749"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-750"></a>                      <span class='keyglyph'>]</span>
+<a name="line-751"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-752"></a>                      <span class='keyglyph'>]</span>
+<a name="line-753"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-754"></a>                    <span class='keyglyph'>]</span>
+<a name="line-755"></a>                  <span class='keyglyph'>]</span>
+<a name="line-756"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-757"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-758"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-759"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-760"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-761"></a>                      <span class='keyglyph'>]</span>
+<a name="line-762"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-763"></a>                      <span class='keyglyph'>]</span>
+<a name="line-764"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-765"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-766"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-767"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-768"></a>                    <span class='keyglyph'>]</span>
+<a name="line-769"></a>                  <span class='keyglyph'>]</span>
+<a name="line-770"></a>                <span class='keyglyph'>]</span>
+<a name="line-771"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-772"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-773"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-774"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-775"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-776"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-777"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-778"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-779"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-780"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-781"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-782"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-783"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-784"></a>                          <span class='keyglyph'>]</span>
+<a name="line-785"></a>                        <span class='keyglyph'>]</span>
+<a name="line-786"></a>                      <span class='keyglyph'>]</span>
+<a name="line-787"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-788"></a>                    <span class='keyglyph'>]</span>
+<a name="line-789"></a>                  <span class='keyglyph'>]</span>
+<a name="line-790"></a>                <span class='keyglyph'>]</span>
+<a name="line-791"></a>              <span class='keyglyph'>]</span>
+<a name="line-792"></a>            <span class='keyglyph'>]</span>
+<a name="line-793"></a>          <span class='keyglyph'>]</span>
+<a name="line-794"></a>        <span class='keyglyph'>]</span>
+<a name="line-795"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-796"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-797"></a>        <span class='keyglyph'>]</span>
+<a name="line-798"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-799"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-800"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-801"></a>            <span class='keyglyph'>]</span>
+<a name="line-802"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ref"</span>
+<a name="line-803"></a>            <span class='keyglyph'>]</span>
+<a name="line-804"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-805"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-806"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-807"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-808"></a>                <span class='keyglyph'>]</span>
+<a name="line-809"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-810"></a>                <span class='keyglyph'>]</span>
+<a name="line-811"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-812"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-813"></a>                <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-814"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-815"></a>              <span class='keyglyph'>]</span>
+<a name="line-816"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-817"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-818"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-819"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-820"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-821"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-822"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-823"></a>                      <span class='keyglyph'>]</span>
+<a name="line-824"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-825"></a>                      <span class='keyglyph'>]</span>
+<a name="line-826"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-827"></a>                    <span class='keyglyph'>]</span>
+<a name="line-828"></a>                  <span class='keyglyph'>]</span>
+<a name="line-829"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-830"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-831"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-832"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-833"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-834"></a>                      <span class='keyglyph'>]</span>
+<a name="line-835"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-836"></a>                      <span class='keyglyph'>]</span>
+<a name="line-837"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-838"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-839"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-840"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-841"></a>                    <span class='keyglyph'>]</span>
+<a name="line-842"></a>                  <span class='keyglyph'>]</span>
+<a name="line-843"></a>                <span class='keyglyph'>]</span>
+<a name="line-844"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-845"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-846"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-847"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-848"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-849"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-850"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-851"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-852"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-853"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-854"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-855"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-856"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-857"></a>                          <span class='keyglyph'>]</span>
+<a name="line-858"></a>                        <span class='keyglyph'>]</span>
+<a name="line-859"></a>                      <span class='keyglyph'>]</span>
+<a name="line-860"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-861"></a>                    <span class='keyglyph'>]</span>
+<a name="line-862"></a>                  <span class='keyglyph'>]</span>
+<a name="line-863"></a>                <span class='keyglyph'>]</span>
+<a name="line-864"></a>              <span class='keyglyph'>]</span>
+<a name="line-865"></a>            <span class='keyglyph'>]</span>
+<a name="line-866"></a>          <span class='keyglyph'>]</span>
+<a name="line-867"></a>        <span class='keyglyph'>]</span>
+<a name="line-868"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-869"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-870"></a>        <span class='keyglyph'>]</span>
+<a name="line-871"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-872"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-873"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-874"></a>            <span class='keyglyph'>]</span>
+<a name="line-875"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"mixed"</span>
+<a name="line-876"></a>            <span class='keyglyph'>]</span>
+<a name="line-877"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-878"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-879"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-880"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-881"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-882"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-883"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-884"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-885"></a>                      <span class='keyglyph'>]</span>
+<a name="line-886"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-887"></a>                      <span class='keyglyph'>]</span>
+<a name="line-888"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-889"></a>                    <span class='keyglyph'>]</span>
+<a name="line-890"></a>                  <span class='keyglyph'>]</span>
+<a name="line-891"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-892"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-893"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-894"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-895"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-896"></a>                      <span class='keyglyph'>]</span>
+<a name="line-897"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-898"></a>                      <span class='keyglyph'>]</span>
+<a name="line-899"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-900"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-901"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-902"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-903"></a>                    <span class='keyglyph'>]</span>
+<a name="line-904"></a>                  <span class='keyglyph'>]</span>
+<a name="line-905"></a>                <span class='keyglyph'>]</span>
+<a name="line-906"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-907"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-908"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-909"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-910"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-911"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-912"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-913"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-914"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-915"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-916"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-917"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-918"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-919"></a>                          <span class='keyglyph'>]</span>
+<a name="line-920"></a>                        <span class='keyglyph'>]</span>
+<a name="line-921"></a>                      <span class='keyglyph'>]</span>
+<a name="line-922"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-923"></a>                    <span class='keyglyph'>]</span>
+<a name="line-924"></a>                  <span class='keyglyph'>]</span>
+<a name="line-925"></a>                <span class='keyglyph'>]</span>
+<a name="line-926"></a>              <span class='keyglyph'>]</span>
+<a name="line-927"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-928"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-929"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-930"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-931"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-932"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-933"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-934"></a>                  <span class='keyglyph'>]</span>
+<a name="line-935"></a>                <span class='keyglyph'>]</span>
+<a name="line-936"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-937"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-938"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-939"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-940"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-941"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-942"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-943"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-944"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-945"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-946"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-947"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-948"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-949"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-950"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-951"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-952"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-953"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-954"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-955"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-956"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-957"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-958"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-959"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-960"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-961"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-962"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-963"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-964"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-965"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-966"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-967"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-968"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-969"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-970"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-971"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-972"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-973"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-974"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-975"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-976"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-977"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-978"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-979"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-980"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-981"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-982"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-983"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-984"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-985"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-986"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-987"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-988"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-989"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-990"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-991"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-992"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-993"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-994"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-995"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-996"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-997"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-998"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-999"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1000"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1001"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1002"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1003"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1004"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1005"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1006"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1007"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1008"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1009"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1010"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1011"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1012"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1013"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1014"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1015"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-1016"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1017"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1018"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1019"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1020"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1021"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1022"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1023"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1024"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1025"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1026"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1027"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-1028"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1029"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1030"></a>                <span class='keyglyph'>]</span>
+<a name="line-1031"></a>              <span class='keyglyph'>]</span>
+<a name="line-1032"></a>            <span class='keyglyph'>]</span>
+<a name="line-1033"></a>          <span class='keyglyph'>]</span>
+<a name="line-1034"></a>        <span class='keyglyph'>]</span>
+<a name="line-1035"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1036"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1037"></a>        <span class='keyglyph'>]</span>
+<a name="line-1038"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1039"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1040"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1041"></a>            <span class='keyglyph'>]</span>
+<a name="line-1042"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"list"</span>
+<a name="line-1043"></a>            <span class='keyglyph'>]</span>
+<a name="line-1044"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1045"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1046"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1047"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1048"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1049"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1050"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1051"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1052"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1053"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1054"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1055"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1056"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1057"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1058"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1059"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1060"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1061"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1062"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1063"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1064"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1065"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1066"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1067"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1068"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1069"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1070"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1071"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1072"></a>                <span class='keyglyph'>]</span>
+<a name="line-1073"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1074"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1075"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1076"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1077"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1078"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1079"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1080"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1081"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1082"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1083"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1084"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1085"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1086"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1087"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1088"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1089"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1090"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1091"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1092"></a>                <span class='keyglyph'>]</span>
+<a name="line-1093"></a>              <span class='keyglyph'>]</span>
+<a name="line-1094"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1095"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1096"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1097"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1098"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1099"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-1100"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1101"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1102"></a>                <span class='keyglyph'>]</span>
+<a name="line-1103"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1104"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1105"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1106"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1107"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1108"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1109"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1110"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1111"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1112"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1113"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1114"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1115"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1116"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1117"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1118"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1119"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1120"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1121"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1122"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1123"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1124"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1125"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1126"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1127"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1128"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1129"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1130"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1131"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1132"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1133"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1134"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1135"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1136"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1137"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1138"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1139"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1140"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1141"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1142"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1143"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1144"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1145"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1146"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1147"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1148"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1149"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1150"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1151"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1152"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1153"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1154"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1155"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1156"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1157"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1158"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1159"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1160"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1161"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1162"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1163"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1164"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1165"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1166"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1167"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1168"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1169"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1170"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1171"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1172"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1173"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1174"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1175"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1176"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1177"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1178"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1179"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1180"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1181"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1182"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-1183"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1184"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1185"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1186"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1187"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1188"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1189"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1190"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1191"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1192"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1193"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1194"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-1195"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1196"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1197"></a>                <span class='keyglyph'>]</span>
+<a name="line-1198"></a>              <span class='keyglyph'>]</span>
+<a name="line-1199"></a>            <span class='keyglyph'>]</span>
+<a name="line-1200"></a>          <span class='keyglyph'>]</span>
+<a name="line-1201"></a>        <span class='keyglyph'>]</span>
+<a name="line-1202"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1203"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1204"></a>        <span class='keyglyph'>]</span>
+<a name="line-1205"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1206"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1207"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1208"></a>            <span class='keyglyph'>]</span>
+<a name="line-1209"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"oneOrMore"</span>
+<a name="line-1210"></a>            <span class='keyglyph'>]</span>
+<a name="line-1211"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1212"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1213"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1214"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1215"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1216"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1217"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1218"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1219"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1220"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1221"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1222"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1223"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1224"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1225"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1226"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1227"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1228"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1229"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1230"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1231"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1232"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1233"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1234"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1235"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1236"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1237"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1238"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1239"></a>                <span class='keyglyph'>]</span>
+<a name="line-1240"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1241"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1242"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1243"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1244"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1245"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1246"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1247"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1248"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1249"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1250"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1251"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1252"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1253"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1254"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1255"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1256"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1257"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1258"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1259"></a>                <span class='keyglyph'>]</span>
+<a name="line-1260"></a>              <span class='keyglyph'>]</span>
+<a name="line-1261"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1262"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1263"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1264"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1265"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1266"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-1267"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1268"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1269"></a>                <span class='keyglyph'>]</span>
+<a name="line-1270"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1271"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1272"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1273"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1274"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1275"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1276"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1277"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1278"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1279"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1280"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1281"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1282"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1283"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1284"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1285"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1286"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1287"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1288"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1289"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1290"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1291"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1292"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1293"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1294"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1295"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1296"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1297"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1298"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1299"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1300"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1301"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1302"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1303"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1304"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1305"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1306"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1307"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1308"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1309"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1310"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1311"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1312"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1313"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1314"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1315"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1316"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1317"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1318"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1319"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1320"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1321"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1322"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1323"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1324"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1325"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1326"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1327"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1328"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1329"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1330"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1331"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1332"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1333"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1334"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1335"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1336"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1337"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1338"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1339"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1340"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1341"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1342"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1343"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1344"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1345"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1346"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1347"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1348"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1349"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-1350"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1351"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1352"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1353"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1354"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1355"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1356"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1357"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1358"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1359"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1360"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1361"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-1362"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1363"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1364"></a>                <span class='keyglyph'>]</span>
+<a name="line-1365"></a>              <span class='keyglyph'>]</span>
+<a name="line-1366"></a>            <span class='keyglyph'>]</span>
+<a name="line-1367"></a>          <span class='keyglyph'>]</span>
+<a name="line-1368"></a>        <span class='keyglyph'>]</span>
+<a name="line-1369"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1370"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1371"></a>        <span class='keyglyph'>]</span>
+<a name="line-1372"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1373"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1374"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1375"></a>            <span class='keyglyph'>]</span>
+<a name="line-1376"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"zeroOrMore"</span>
+<a name="line-1377"></a>            <span class='keyglyph'>]</span>
+<a name="line-1378"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1379"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1380"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1381"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1382"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1383"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1384"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1385"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1386"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1387"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1388"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1389"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1390"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1391"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1392"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1393"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1394"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1395"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1396"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1397"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1398"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1399"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1400"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1401"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1402"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1403"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1404"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1405"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1406"></a>                <span class='keyglyph'>]</span>
+<a name="line-1407"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1408"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1409"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1410"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1411"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1412"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1413"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1414"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1415"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1416"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1417"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1418"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1419"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1420"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1421"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1422"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1423"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1424"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1425"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1426"></a>                <span class='keyglyph'>]</span>
+<a name="line-1427"></a>              <span class='keyglyph'>]</span>
+<a name="line-1428"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1429"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1430"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1431"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1432"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1433"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-1434"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1435"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1436"></a>                <span class='keyglyph'>]</span>
+<a name="line-1437"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1438"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1439"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1440"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1441"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1442"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1443"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1444"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1445"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1446"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1447"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1448"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1449"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1450"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1451"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1452"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1453"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1454"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1455"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1456"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1457"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1458"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1459"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1460"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1461"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1462"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1463"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1464"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1465"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1466"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1467"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1468"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1469"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1470"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1471"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1472"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1473"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1474"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1475"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1476"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1477"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1478"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1479"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1480"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1481"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1482"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1483"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1484"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1485"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1486"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1487"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1488"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1489"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1490"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1491"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1492"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1493"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1494"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1495"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1496"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1497"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1498"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1499"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1500"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1501"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1502"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1503"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1504"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1505"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1506"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1507"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1508"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1509"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1510"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1511"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1512"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1513"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1514"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1515"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1516"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-1517"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1518"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1519"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1520"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1521"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1522"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1523"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1524"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1525"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1526"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1527"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1528"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-1529"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1530"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1531"></a>                <span class='keyglyph'>]</span>
+<a name="line-1532"></a>              <span class='keyglyph'>]</span>
+<a name="line-1533"></a>            <span class='keyglyph'>]</span>
+<a name="line-1534"></a>          <span class='keyglyph'>]</span>
+<a name="line-1535"></a>        <span class='keyglyph'>]</span>
+<a name="line-1536"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1537"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1538"></a>        <span class='keyglyph'>]</span>
+<a name="line-1539"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1540"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1541"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1542"></a>            <span class='keyglyph'>]</span>
+<a name="line-1543"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"optional"</span>
+<a name="line-1544"></a>            <span class='keyglyph'>]</span>
+<a name="line-1545"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1546"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1547"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1548"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1549"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1550"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1551"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1552"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1553"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1554"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1555"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1556"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1557"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1558"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1559"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1560"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1561"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1562"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1563"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1564"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1565"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1566"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1567"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1568"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1569"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1570"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1571"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1572"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1573"></a>                <span class='keyglyph'>]</span>
+<a name="line-1574"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1575"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1576"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1577"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1578"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1579"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1580"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1581"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1582"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1583"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1584"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1585"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1586"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1587"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1588"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1589"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1590"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1591"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1592"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1593"></a>                <span class='keyglyph'>]</span>
+<a name="line-1594"></a>              <span class='keyglyph'>]</span>
+<a name="line-1595"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1596"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1597"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1598"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1599"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1600"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-1601"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1602"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1603"></a>                <span class='keyglyph'>]</span>
+<a name="line-1604"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1605"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1606"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1607"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1608"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1609"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1610"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1611"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1612"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1613"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1614"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1615"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1616"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1617"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1618"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1619"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1620"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1621"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1622"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1623"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1624"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1625"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1626"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1627"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1628"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1629"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1630"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1631"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1632"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1633"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1634"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1635"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1636"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1637"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1638"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1639"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1640"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1641"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1642"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1643"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1644"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1645"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1646"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1647"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1648"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1649"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1650"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1651"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1652"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1653"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1654"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1655"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1656"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1657"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1658"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1659"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1660"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1661"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1662"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1663"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1664"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1665"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1666"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1667"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1668"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1669"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1670"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1671"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1672"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1673"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1674"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1675"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1676"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1677"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1678"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1679"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1680"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1681"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1682"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1683"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-1684"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1685"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1686"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1687"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1688"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1689"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1690"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1691"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1692"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1693"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1694"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1695"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-1696"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1697"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1698"></a>                <span class='keyglyph'>]</span>
+<a name="line-1699"></a>              <span class='keyglyph'>]</span>
+<a name="line-1700"></a>            <span class='keyglyph'>]</span>
+<a name="line-1701"></a>          <span class='keyglyph'>]</span>
+<a name="line-1702"></a>        <span class='keyglyph'>]</span>
+<a name="line-1703"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1704"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1705"></a>        <span class='keyglyph'>]</span>
+<a name="line-1706"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1707"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1708"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1709"></a>            <span class='keyglyph'>]</span>
+<a name="line-1710"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-1711"></a>            <span class='keyglyph'>]</span>
+<a name="line-1712"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1713"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1714"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1715"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1716"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1717"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1718"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1719"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1720"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1721"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1722"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1723"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1724"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1725"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1726"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1727"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1728"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1729"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1730"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1731"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1732"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1733"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1734"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1735"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1736"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1737"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1738"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1739"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1740"></a>                <span class='keyglyph'>]</span>
+<a name="line-1741"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1742"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1743"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1744"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1745"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1746"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1747"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1748"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1749"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1750"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1751"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1752"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1753"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1754"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1755"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1756"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1757"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1758"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1759"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1760"></a>                <span class='keyglyph'>]</span>
+<a name="line-1761"></a>              <span class='keyglyph'>]</span>
+<a name="line-1762"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1763"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1764"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1765"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1766"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1767"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-1768"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1769"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1770"></a>                <span class='keyglyph'>]</span>
+<a name="line-1771"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1772"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1773"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1774"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1775"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1776"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1777"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1778"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1779"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1780"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1781"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1782"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1783"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1784"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1785"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1786"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1787"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1788"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1789"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1790"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1791"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1792"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1793"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1794"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1795"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1796"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1797"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1798"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1799"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1800"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1801"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1802"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1803"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1804"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1805"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1806"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1807"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1808"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1809"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1810"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1811"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1812"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1813"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1814"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1815"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1816"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1817"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1818"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1819"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1820"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1821"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1822"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1823"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1824"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1825"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1826"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1827"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1828"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1829"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1830"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1831"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1832"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-1833"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1834"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-1835"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1836"></a>                                <span class='keyglyph'>]</span>
+<a name="line-1837"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1838"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-1839"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1840"></a>                              <span class='keyglyph'>]</span>
+<a name="line-1841"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1842"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-1843"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1844"></a>                            <span class='keyglyph'>]</span>
+<a name="line-1845"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1846"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-1847"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1848"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1849"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1850"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-1851"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1852"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1853"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1854"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-1855"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1856"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1857"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1858"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-1859"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1860"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1861"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1862"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-1863"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1864"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1865"></a>                <span class='keyglyph'>]</span>
+<a name="line-1866"></a>              <span class='keyglyph'>]</span>
+<a name="line-1867"></a>            <span class='keyglyph'>]</span>
+<a name="line-1868"></a>          <span class='keyglyph'>]</span>
+<a name="line-1869"></a>        <span class='keyglyph'>]</span>
+<a name="line-1870"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-1871"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1872"></a>        <span class='keyglyph'>]</span>
+<a name="line-1873"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-1874"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1875"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1876"></a>            <span class='keyglyph'>]</span>
+<a name="line-1877"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>
+<a name="line-1878"></a>            <span class='keyglyph'>]</span>
+<a name="line-1879"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1880"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1881"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-1882"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1883"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1884"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1885"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1886"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1887"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1888"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-1889"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1890"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1891"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1892"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1893"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1894"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1895"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1896"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-1897"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1898"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1899"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-1900"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1901"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-1902"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-1903"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-1904"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1905"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1906"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1907"></a>                <span class='keyglyph'>]</span>
+<a name="line-1908"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1909"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1910"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1911"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-1912"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-1913"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-1914"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1915"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1916"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-1917"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1918"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-1919"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-1920"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1921"></a>                          <span class='keyglyph'>]</span>
+<a name="line-1922"></a>                        <span class='keyglyph'>]</span>
+<a name="line-1923"></a>                      <span class='keyglyph'>]</span>
+<a name="line-1924"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1925"></a>                    <span class='keyglyph'>]</span>
+<a name="line-1926"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1927"></a>                <span class='keyglyph'>]</span>
+<a name="line-1928"></a>              <span class='keyglyph'>]</span>
+<a name="line-1929"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-1930"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1931"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-1932"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1933"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1934"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-1935"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1936"></a>                  <span class='keyglyph'>]</span>
+<a name="line-1937"></a>                <span class='keyglyph'>]</span>
+<a name="line-1938"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-1939"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1940"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1941"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1942"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1943"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1944"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1945"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1946"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1947"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1948"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1949"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1950"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1951"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1952"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1953"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1954"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1955"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1956"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-1957"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1958"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-1959"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1960"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1961"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-1962"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1963"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-1964"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1965"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-1966"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1967"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-1968"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1969"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-1970"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1971"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-1972"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1973"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-1974"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1975"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-1976"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1977"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-1978"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1979"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-1980"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1981"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-1982"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1983"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-1984"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1985"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-1986"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1987"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-1988"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1989"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-1990"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1991"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-1992"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1993"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-1994"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1995"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-1996"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-1997"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-1998"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-1999"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2000"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2001"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2002"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2003"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2004"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2005"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2006"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2007"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2008"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2009"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2010"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2011"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2012"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2013"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2014"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2015"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2016"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2017"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-2018"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2019"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2020"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2021"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2022"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2023"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2024"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2025"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2026"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2027"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2028"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2029"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-2030"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2031"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2032"></a>                <span class='keyglyph'>]</span>
+<a name="line-2033"></a>              <span class='keyglyph'>]</span>
+<a name="line-2034"></a>            <span class='keyglyph'>]</span>
+<a name="line-2035"></a>          <span class='keyglyph'>]</span>
+<a name="line-2036"></a>        <span class='keyglyph'>]</span>
+<a name="line-2037"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2038"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2039"></a>        <span class='keyglyph'>]</span>
+<a name="line-2040"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2041"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2042"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2043"></a>            <span class='keyglyph'>]</span>
+<a name="line-2044"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"group"</span>
+<a name="line-2045"></a>            <span class='keyglyph'>]</span>
+<a name="line-2046"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2047"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2048"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2049"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2050"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2051"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2052"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2053"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2054"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2055"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2056"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2057"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2058"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2059"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2060"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2061"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2062"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2063"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2064"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2065"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2066"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2067"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2068"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2069"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2070"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2071"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2072"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2073"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2074"></a>                <span class='keyglyph'>]</span>
+<a name="line-2075"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2076"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2077"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2078"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2079"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2080"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2081"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2082"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2083"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2084"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2085"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2086"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2087"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2088"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2089"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2090"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2091"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2092"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2093"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2094"></a>                <span class='keyglyph'>]</span>
+<a name="line-2095"></a>              <span class='keyglyph'>]</span>
+<a name="line-2096"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2097"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2098"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2099"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2100"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2101"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2102"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2103"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2104"></a>                <span class='keyglyph'>]</span>
+<a name="line-2105"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2106"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2107"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2108"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2109"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2110"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2111"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2112"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2113"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2114"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2115"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2116"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2117"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2118"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2119"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2120"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2121"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2122"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2123"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2124"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2125"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2126"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2127"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2128"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2129"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2130"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2131"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2132"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2133"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2134"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2135"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2136"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2137"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2138"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2139"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2140"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2141"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2142"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2143"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2144"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2145"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2146"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2147"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2148"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2149"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2150"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2151"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2152"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2153"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2154"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2155"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2156"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2157"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2158"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2159"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2160"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2161"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2162"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2163"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2164"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2165"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2166"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2167"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2168"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2169"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2170"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2171"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2172"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2173"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2174"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2175"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2176"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2177"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2178"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2179"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2180"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2181"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2182"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2183"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2184"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-2185"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2186"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2187"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2188"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2189"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2190"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2191"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2192"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2193"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2194"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2195"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2196"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-2197"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2198"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2199"></a>                <span class='keyglyph'>]</span>
+<a name="line-2200"></a>              <span class='keyglyph'>]</span>
+<a name="line-2201"></a>            <span class='keyglyph'>]</span>
+<a name="line-2202"></a>          <span class='keyglyph'>]</span>
+<a name="line-2203"></a>        <span class='keyglyph'>]</span>
+<a name="line-2204"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2205"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2206"></a>        <span class='keyglyph'>]</span>
+<a name="line-2207"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2208"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2209"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2210"></a>            <span class='keyglyph'>]</span>
+<a name="line-2211"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"attribute"</span>
+<a name="line-2212"></a>            <span class='keyglyph'>]</span>
+<a name="line-2213"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2214"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2215"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2216"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2217"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2218"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2219"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2220"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2221"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2222"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2223"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2224"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2225"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2226"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2227"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2228"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2229"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2230"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2231"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2232"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2233"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2234"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2235"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2236"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2237"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2238"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2239"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2240"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2241"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2242"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2243"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2244"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2245"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2246"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2247"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2248"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2249"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2250"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2251"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2252"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2253"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2254"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2255"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2256"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2257"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2258"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2259"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2260"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2261"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2262"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2263"></a>                <span class='keyglyph'>]</span>
+<a name="line-2264"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2265"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2266"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2267"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2268"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2269"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-2270"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2271"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2272"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>
+<a name="line-2273"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2274"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2275"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2276"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2277"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2278"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2279"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2280"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2281"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2282"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2283"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2284"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2285"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2286"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2287"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2288"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2289"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-2290"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2291"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2292"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-2293"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2294"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2295"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2296"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-2297"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2298"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2299"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2300"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-2301"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2302"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2303"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2304"></a>                <span class='keyglyph'>]</span>
+<a name="line-2305"></a>              <span class='keyglyph'>]</span>
+<a name="line-2306"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2307"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2308"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2309"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2310"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2311"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2312"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2313"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2314"></a>                <span class='keyglyph'>]</span>
+<a name="line-2315"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2316"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2317"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2318"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2319"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2320"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2321"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2322"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2323"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2324"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2325"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2326"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2327"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2328"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2329"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2330"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2331"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2332"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2333"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2334"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2335"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2336"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2337"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2338"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2339"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2340"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2341"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2342"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2343"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2344"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2345"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2346"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2347"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2348"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2349"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2350"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2351"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2352"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2353"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2354"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2355"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2356"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2357"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2358"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2359"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2360"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2361"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2362"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2363"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2364"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2365"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2366"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2367"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2368"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2369"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2370"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2371"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2372"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2373"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2374"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2375"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2376"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2377"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2378"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2379"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2380"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2381"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2382"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2383"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2384"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2385"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2386"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2387"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2388"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2389"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2390"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2391"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2392"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2393"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2394"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2395"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-2396"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2397"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2398"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2399"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2400"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2401"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2402"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2403"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2404"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2405"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2406"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2407"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-2408"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2409"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2410"></a>                <span class='keyglyph'>]</span>
+<a name="line-2411"></a>              <span class='keyglyph'>]</span>
+<a name="line-2412"></a>            <span class='keyglyph'>]</span>
+<a name="line-2413"></a>          <span class='keyglyph'>]</span>
+<a name="line-2414"></a>        <span class='keyglyph'>]</span>
+<a name="line-2415"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2416"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2417"></a>        <span class='keyglyph'>]</span>
+<a name="line-2418"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2419"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2420"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2421"></a>            <span class='keyglyph'>]</span>
+<a name="line-2422"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"element"</span>
+<a name="line-2423"></a>            <span class='keyglyph'>]</span>
+<a name="line-2424"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2425"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2426"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2427"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2428"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2429"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2430"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2431"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-2432"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2433"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2434"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>
+<a name="line-2435"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2436"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2437"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2438"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2439"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2440"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2441"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2442"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2443"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2444"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2445"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2446"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2447"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2448"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2449"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2450"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2451"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-2452"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2453"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2454"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-2455"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2456"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2457"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2458"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-2459"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2460"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2461"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2462"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-2463"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2464"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2465"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2466"></a>                <span class='keyglyph'>]</span>
+<a name="line-2467"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2468"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2469"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2470"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2471"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2472"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2473"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2474"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2475"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2476"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2477"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2478"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2479"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2480"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2481"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2482"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2483"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2484"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2485"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2486"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2487"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2488"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2489"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2490"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2491"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2492"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2493"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2494"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2495"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2496"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2497"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2498"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2499"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2500"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2501"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2502"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2503"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2504"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2505"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2506"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2507"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2508"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2509"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2510"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2511"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2512"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2513"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2514"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2515"></a>                <span class='keyglyph'>]</span>
+<a name="line-2516"></a>              <span class='keyglyph'>]</span>
+<a name="line-2517"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2518"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2519"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2520"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2521"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2522"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2523"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2524"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2525"></a>                <span class='keyglyph'>]</span>
+<a name="line-2526"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2527"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2528"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2529"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2530"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2531"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2532"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2533"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2534"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2535"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2536"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2537"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2538"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2539"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2540"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2541"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2542"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2543"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2544"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2545"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2546"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-2547"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2548"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2549"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-2550"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2551"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-2552"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2553"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-2554"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2555"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-2556"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2557"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-2558"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2559"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-2560"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2561"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-2562"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2563"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-2564"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2565"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-2566"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2567"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-2568"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2569"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-2570"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2571"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-2572"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2573"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-2574"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2575"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-2576"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2577"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-2578"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2579"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-2580"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2581"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-2582"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2583"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-2584"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2585"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-2586"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2587"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-2588"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2589"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-2590"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2591"></a>                                <span class='keyglyph'>]</span>
+<a name="line-2592"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2593"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-2594"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2595"></a>                              <span class='keyglyph'>]</span>
+<a name="line-2596"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2597"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-2598"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2599"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2600"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2601"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-2602"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2603"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2604"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2605"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-2606"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2607"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2608"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2609"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-2610"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2611"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2612"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2613"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-2614"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2615"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2616"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2617"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-2618"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2619"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2620"></a>                <span class='keyglyph'>]</span>
+<a name="line-2621"></a>              <span class='keyglyph'>]</span>
+<a name="line-2622"></a>            <span class='keyglyph'>]</span>
+<a name="line-2623"></a>          <span class='keyglyph'>]</span>
+<a name="line-2624"></a>        <span class='keyglyph'>]</span>
+<a name="line-2625"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2626"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2627"></a>        <span class='keyglyph'>]</span>
+<a name="line-2628"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2629"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2630"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2631"></a>            <span class='keyglyph'>]</span>
+<a name="line-2632"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"include"</span>
+<a name="line-2633"></a>            <span class='keyglyph'>]</span>
+<a name="line-2634"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2635"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2636"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2637"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2638"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2639"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2640"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>
+<a name="line-2641"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2642"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2643"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2644"></a>                  <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2645"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2646"></a>                <span class='keyglyph'>]</span>
+<a name="line-2647"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2648"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2649"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2650"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2651"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2652"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2653"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2654"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2655"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2656"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2657"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2658"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2659"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2660"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2661"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2662"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2663"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2664"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2665"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2666"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2667"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2668"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2669"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2670"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2671"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2672"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2673"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2674"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2675"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2676"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2677"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2678"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2679"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2680"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2681"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2682"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2683"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2684"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2685"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2686"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2687"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2688"></a>                            <span class='keyglyph'>]</span>
+<a name="line-2689"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2690"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2691"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2692"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2693"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2694"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2695"></a>                <span class='keyglyph'>]</span>
+<a name="line-2696"></a>              <span class='keyglyph'>]</span>
+<a name="line-2697"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2698"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2699"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2700"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2701"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2702"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2703"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2704"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2705"></a>                <span class='keyglyph'>]</span>
+<a name="line-2706"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2707"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2708"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2709"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2710"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2711"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2712"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-2713"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2714"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2715"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-2716"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2717"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2718"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2719"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>
+<a name="line-2720"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2721"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2722"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2723"></a>                <span class='keyglyph'>]</span>
+<a name="line-2724"></a>              <span class='keyglyph'>]</span>
+<a name="line-2725"></a>            <span class='keyglyph'>]</span>
+<a name="line-2726"></a>          <span class='keyglyph'>]</span>
+<a name="line-2727"></a>        <span class='keyglyph'>]</span>
+<a name="line-2728"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2729"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>
+<a name="line-2730"></a>        <span class='keyglyph'>]</span>
+<a name="line-2731"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2732"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2733"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2734"></a>            <span class='keyglyph'>]</span>
+<a name="line-2735"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>
+<a name="line-2736"></a>            <span class='keyglyph'>]</span>
+<a name="line-2737"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2738"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2739"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2740"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2741"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2742"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2743"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2744"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2745"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2746"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2747"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2748"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2749"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2750"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2751"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2752"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2753"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2754"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2755"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2756"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2757"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2758"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2759"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2760"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2761"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2762"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2763"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2764"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2765"></a>                <span class='keyglyph'>]</span>
+<a name="line-2766"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2767"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2768"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2769"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2770"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2771"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2772"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2773"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2774"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2775"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2776"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2777"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2778"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2779"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2780"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2781"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2782"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2783"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2784"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2785"></a>                <span class='keyglyph'>]</span>
+<a name="line-2786"></a>              <span class='keyglyph'>]</span>
+<a name="line-2787"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2788"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2789"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2790"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2791"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2792"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2793"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2794"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2795"></a>                <span class='keyglyph'>]</span>
+<a name="line-2796"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2797"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2798"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2799"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2800"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2801"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2802"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2803"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-2804"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2805"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2806"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-2807"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2808"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2809"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2810"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>
+<a name="line-2811"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2812"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2813"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2814"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-2815"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2816"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2817"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2818"></a>                <span class='keyglyph'>]</span>
+<a name="line-2819"></a>              <span class='keyglyph'>]</span>
+<a name="line-2820"></a>            <span class='keyglyph'>]</span>
+<a name="line-2821"></a>          <span class='keyglyph'>]</span>
+<a name="line-2822"></a>        <span class='keyglyph'>]</span>
+<a name="line-2823"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2824"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>
+<a name="line-2825"></a>        <span class='keyglyph'>]</span>
+<a name="line-2826"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2827"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2828"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2829"></a>            <span class='keyglyph'>]</span>
+<a name="line-2830"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>
+<a name="line-2831"></a>            <span class='keyglyph'>]</span>
+<a name="line-2832"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2833"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2834"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2835"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2836"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2837"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2838"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2839"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2840"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2841"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2842"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2843"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2844"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2845"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2846"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2847"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2848"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2849"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2850"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2851"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2852"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2853"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2854"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2855"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2856"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2857"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2858"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2859"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2860"></a>                <span class='keyglyph'>]</span>
+<a name="line-2861"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2862"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2863"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2864"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2865"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2866"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2867"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2868"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2869"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2870"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2871"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2872"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2873"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2874"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2875"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2876"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2877"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2878"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2879"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2880"></a>                <span class='keyglyph'>]</span>
+<a name="line-2881"></a>              <span class='keyglyph'>]</span>
+<a name="line-2882"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2883"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2884"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2885"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2886"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2887"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2888"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2889"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2890"></a>                <span class='keyglyph'>]</span>
+<a name="line-2891"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2892"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2893"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2894"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2895"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2896"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2897"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-2898"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2899"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2900"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-2901"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2902"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2903"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2904"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>
+<a name="line-2905"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2906"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2907"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2908"></a>                <span class='keyglyph'>]</span>
+<a name="line-2909"></a>              <span class='keyglyph'>]</span>
+<a name="line-2910"></a>            <span class='keyglyph'>]</span>
+<a name="line-2911"></a>          <span class='keyglyph'>]</span>
+<a name="line-2912"></a>        <span class='keyglyph'>]</span>
+<a name="line-2913"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-2914"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-2915"></a>        <span class='keyglyph'>]</span>
+<a name="line-2916"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-2917"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2918"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2919"></a>            <span class='keyglyph'>]</span>
+<a name="line-2920"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-2921"></a>            <span class='keyglyph'>]</span>
+<a name="line-2922"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2923"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2924"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-2925"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2926"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2927"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2928"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2929"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2930"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2931"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-2932"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2933"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2934"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2935"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2936"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2937"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2938"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2939"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-2940"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2941"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2942"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-2943"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2944"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-2945"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-2946"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-2947"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2948"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2949"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2950"></a>                <span class='keyglyph'>]</span>
+<a name="line-2951"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2952"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2953"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2954"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-2955"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-2956"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-2957"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2958"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2959"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-2960"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2961"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-2962"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-2963"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2964"></a>                          <span class='keyglyph'>]</span>
+<a name="line-2965"></a>                        <span class='keyglyph'>]</span>
+<a name="line-2966"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2967"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2968"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2969"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2970"></a>                <span class='keyglyph'>]</span>
+<a name="line-2971"></a>              <span class='keyglyph'>]</span>
+<a name="line-2972"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-2973"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2974"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2975"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2976"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2977"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-2978"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2979"></a>                  <span class='keyglyph'>]</span>
+<a name="line-2980"></a>                <span class='keyglyph'>]</span>
+<a name="line-2981"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-2982"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2983"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2984"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-2985"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2986"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-2987"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2988"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2989"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-2990"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2991"></a>                      <span class='keyglyph'>]</span>
+<a name="line-2992"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2993"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-2994"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2995"></a>                    <span class='keyglyph'>]</span>
+<a name="line-2996"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-2997"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-2998"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-2999"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3000"></a>                <span class='keyglyph'>]</span>
+<a name="line-3001"></a>              <span class='keyglyph'>]</span>
+<a name="line-3002"></a>            <span class='keyglyph'>]</span>
+<a name="line-3003"></a>          <span class='keyglyph'>]</span>
+<a name="line-3004"></a>        <span class='keyglyph'>]</span>
+<a name="line-3005"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3006"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-3007"></a>        <span class='keyglyph'>]</span>
+<a name="line-3008"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3009"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3010"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3011"></a>            <span class='keyglyph'>]</span>
+<a name="line-3012"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"nsName"</span>
+<a name="line-3013"></a>            <span class='keyglyph'>]</span>
+<a name="line-3014"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3015"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3016"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3017"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3018"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3019"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3020"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3021"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3022"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3023"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3024"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3025"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3026"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3027"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3028"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3029"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3030"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3031"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3032"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3033"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3034"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3035"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3036"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3037"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3038"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3039"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3040"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3041"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3042"></a>                <span class='keyglyph'>]</span>
+<a name="line-3043"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3044"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3045"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3046"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3047"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3048"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3049"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3050"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3051"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3052"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3053"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3054"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3055"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3056"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3057"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3058"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3059"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3060"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3061"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3062"></a>                <span class='keyglyph'>]</span>
+<a name="line-3063"></a>              <span class='keyglyph'>]</span>
+<a name="line-3064"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3065"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3066"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3067"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3068"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3069"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3070"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3071"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3072"></a>                <span class='keyglyph'>]</span>
+<a name="line-3073"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3074"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3075"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3076"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-3077"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3078"></a>                <span class='keyglyph'>]</span>
+<a name="line-3079"></a>              <span class='keyglyph'>]</span>
+<a name="line-3080"></a>            <span class='keyglyph'>]</span>
+<a name="line-3081"></a>          <span class='keyglyph'>]</span>
+<a name="line-3082"></a>        <span class='keyglyph'>]</span>
+<a name="line-3083"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3084"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-3085"></a>        <span class='keyglyph'>]</span>
+<a name="line-3086"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3087"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3088"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3089"></a>            <span class='keyglyph'>]</span>
+<a name="line-3090"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyName"</span>
+<a name="line-3091"></a>            <span class='keyglyph'>]</span>
+<a name="line-3092"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3093"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3094"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3095"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3096"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3097"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3098"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3099"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3100"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3101"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3102"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3103"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3104"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3105"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3106"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3107"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3108"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3109"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3110"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3111"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3112"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3113"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3114"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3115"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3116"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3117"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3118"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3119"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3120"></a>                <span class='keyglyph'>]</span>
+<a name="line-3121"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3122"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3123"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3124"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3125"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3126"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3127"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3128"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3129"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3130"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3131"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3132"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3133"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3134"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3135"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3136"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3137"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3138"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3139"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3140"></a>                <span class='keyglyph'>]</span>
+<a name="line-3141"></a>              <span class='keyglyph'>]</span>
+<a name="line-3142"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3143"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3144"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3145"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3146"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3147"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3148"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3149"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3150"></a>                <span class='keyglyph'>]</span>
+<a name="line-3151"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3152"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3153"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3154"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-3155"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3156"></a>                <span class='keyglyph'>]</span>
+<a name="line-3157"></a>              <span class='keyglyph'>]</span>
+<a name="line-3158"></a>            <span class='keyglyph'>]</span>
+<a name="line-3159"></a>          <span class='keyglyph'>]</span>
+<a name="line-3160"></a>        <span class='keyglyph'>]</span>
+<a name="line-3161"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3162"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-3163"></a>        <span class='keyglyph'>]</span>
+<a name="line-3164"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3165"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3166"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3167"></a>            <span class='keyglyph'>]</span>
+<a name="line-3168"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-3169"></a>            <span class='keyglyph'>]</span>
+<a name="line-3170"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3171"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3172"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3173"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3174"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3175"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3176"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3177"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3178"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3179"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3180"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3181"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3182"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3183"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3184"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3185"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3186"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3187"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3188"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3189"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3190"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3191"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3192"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3193"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3194"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3195"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3196"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3197"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3198"></a>                <span class='keyglyph'>]</span>
+<a name="line-3199"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3200"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3201"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3202"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3203"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3204"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3205"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3206"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3207"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3208"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3209"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3210"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3211"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3212"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3213"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3214"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3215"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3216"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3217"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3218"></a>                <span class='keyglyph'>]</span>
+<a name="line-3219"></a>              <span class='keyglyph'>]</span>
+<a name="line-3220"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3221"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>
+<a name="line-3222"></a>              <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3223"></a>              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3224"></a>            <span class='keyglyph'>]</span>
+<a name="line-3225"></a>          <span class='keyglyph'>]</span>
+<a name="line-3226"></a>        <span class='keyglyph'>]</span>
+<a name="line-3227"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3228"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>
+<a name="line-3229"></a>        <span class='keyglyph'>]</span>
+<a name="line-3230"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3231"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3232"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3233"></a>            <span class='keyglyph'>]</span>
+<a name="line-3234"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>
+<a name="line-3235"></a>            <span class='keyglyph'>]</span>
+<a name="line-3236"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3237"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3238"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3239"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3240"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3241"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3242"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3243"></a>                <span class='keyglyph'>]</span>
+<a name="line-3244"></a>              <span class='keyglyph'>]</span>
+<a name="line-3245"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3246"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3247"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3248"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3249"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3250"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>
+<a name="line-3251"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3252"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3253"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>
+<a name="line-3254"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3255"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3256"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3257"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>
+<a name="line-3258"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3259"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3260"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3261"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>
+<a name="line-3262"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3263"></a>                <span class='keyglyph'>]</span>
+<a name="line-3264"></a>              <span class='keyglyph'>]</span>
+<a name="line-3265"></a>            <span class='keyglyph'>]</span>
+<a name="line-3266"></a>          <span class='keyglyph'>]</span>
+<a name="line-3267"></a>        <span class='keyglyph'>]</span>
+<a name="line-3268"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3269"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3270"></a>        <span class='keyglyph'>]</span>
+<a name="line-3271"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3272"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3273"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3274"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3275"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3276"></a>                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3277"></a>              <span class='keyglyph'>]</span>
+<a name="line-3278"></a>            <span class='keyglyph'>]</span>
+<a name="line-3279"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3280"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3281"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3282"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3283"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3284"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3285"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3286"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3287"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3288"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3289"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3290"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3291"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>
+<a name="line-3292"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3293"></a>                <span class='keyglyph'>]</span>
+<a name="line-3294"></a>              <span class='keyglyph'>]</span>
+<a name="line-3295"></a>            <span class='keyglyph'>]</span>
+<a name="line-3296"></a>          <span class='keyglyph'>]</span>
+<a name="line-3297"></a>        <span class='keyglyph'>]</span>
+<a name="line-3298"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3299"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>
+<a name="line-3300"></a>        <span class='keyglyph'>]</span>
+<a name="line-3301"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3302"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3303"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3304"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3305"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3306"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3307"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3308"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3309"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3310"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3311"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3312"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3313"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3314"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3315"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>
+<a name="line-3316"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3317"></a>                <span class='keyglyph'>]</span>
+<a name="line-3318"></a>              <span class='keyglyph'>]</span>
+<a name="line-3319"></a>            <span class='keyglyph'>]</span>
+<a name="line-3320"></a>          <span class='keyglyph'>]</span>
+<a name="line-3321"></a>        <span class='keyglyph'>]</span>
+<a name="line-3322"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3323"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-3324"></a>        <span class='keyglyph'>]</span>
+<a name="line-3325"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3326"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3327"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3328"></a>            <span class='keyglyph'>]</span>
+<a name="line-3329"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"define"</span>
+<a name="line-3330"></a>            <span class='keyglyph'>]</span>
+<a name="line-3331"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3332"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3333"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3334"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3335"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3336"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3337"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3338"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>
+<a name="line-3339"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3340"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3341"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>
+<a name="line-3342"></a>                    <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3343"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3344"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3345"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3346"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3347"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3348"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3349"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3350"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3351"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>
+<a name="line-3352"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3353"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3354"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3355"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3356"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3357"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3358"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3359"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3360"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3361"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3362"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-3363"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3364"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3365"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3366"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3367"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3368"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3369"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3370"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3371"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3372"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>
+<a name="line-3373"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3374"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3375"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3376"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3377"></a>                <span class='keyglyph'>]</span>
+<a name="line-3378"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3379"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3380"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3381"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3382"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3383"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3384"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3385"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3386"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3387"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3388"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3389"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3390"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3391"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3392"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3393"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3394"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3395"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3396"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3397"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3398"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3399"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3400"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3401"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3402"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3403"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3404"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3405"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3406"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3407"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3408"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3409"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3410"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3411"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3412"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3413"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3414"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3415"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3416"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3417"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3418"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3419"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3420"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3421"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3422"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3423"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3424"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3425"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3426"></a>                <span class='keyglyph'>]</span>
+<a name="line-3427"></a>              <span class='keyglyph'>]</span>
+<a name="line-3428"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3429"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3430"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3431"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3432"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3433"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3434"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3435"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3436"></a>                <span class='keyglyph'>]</span>
+<a name="line-3437"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3438"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3439"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3440"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3441"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3442"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3443"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3444"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3445"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3446"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3447"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3448"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3449"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3450"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3451"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3452"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3453"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3454"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3455"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3456"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3457"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-3458"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3459"></a>                                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3460"></a>                                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-3461"></a>                                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3462"></a>                                                    <span class='keyglyph'>]</span>
+<a name="line-3463"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3464"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-3465"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3466"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-3467"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3468"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-3469"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3470"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-3471"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3472"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-3473"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3474"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-3475"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3476"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-3477"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3478"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-3479"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3480"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-3481"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3482"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-3483"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3484"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-3485"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3486"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-3487"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3488"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-3489"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3490"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-3491"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3492"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-3493"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3494"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-3495"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3496"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-3497"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3498"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-3499"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3500"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-3501"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3502"></a>                                <span class='keyglyph'>]</span>
+<a name="line-3503"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3504"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-3505"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3506"></a>                              <span class='keyglyph'>]</span>
+<a name="line-3507"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3508"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-3509"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3510"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3511"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3512"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-3513"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3514"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3515"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3516"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-3517"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3518"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3519"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3520"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-3521"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3522"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3523"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3524"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-3525"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3526"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3527"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3528"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-3529"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3530"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3531"></a>                <span class='keyglyph'>]</span>
+<a name="line-3532"></a>              <span class='keyglyph'>]</span>
+<a name="line-3533"></a>            <span class='keyglyph'>]</span>
+<a name="line-3534"></a>          <span class='keyglyph'>]</span>
+<a name="line-3535"></a>        <span class='keyglyph'>]</span>
+<a name="line-3536"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3537"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-3538"></a>        <span class='keyglyph'>]</span>
+<a name="line-3539"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3540"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3541"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3542"></a>            <span class='keyglyph'>]</span>
+<a name="line-3543"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"start"</span>
+<a name="line-3544"></a>            <span class='keyglyph'>]</span>
+<a name="line-3545"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3546"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3547"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3548"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3549"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3550"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3551"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3552"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3553"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>
+<a name="line-3554"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3555"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3556"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3557"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3558"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3559"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3560"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3561"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3562"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3563"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3564"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>
+<a name="line-3565"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3566"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>
+<a name="line-3567"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>
+<a name="line-3568"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3569"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>
+<a name="line-3570"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3571"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>
+<a name="line-3572"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3573"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3574"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>
+<a name="line-3575"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3576"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3577"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3578"></a>                <span class='keyglyph'>]</span>
+<a name="line-3579"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3580"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3581"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3582"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3583"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3584"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3585"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3586"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3587"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3588"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3589"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3590"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3591"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3592"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3593"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3594"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3595"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3596"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3597"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3598"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3599"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3600"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3601"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3602"></a>                        <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3603"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3604"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3605"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3606"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3607"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3608"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3609"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3610"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3611"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3612"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3613"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3614"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3615"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3616"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3617"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3618"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3619"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3620"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3621"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3622"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3623"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3624"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3625"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3626"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3627"></a>                <span class='keyglyph'>]</span>
+<a name="line-3628"></a>              <span class='keyglyph'>]</span>
+<a name="line-3629"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3630"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3631"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3632"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3633"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3634"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3635"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3636"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3637"></a>                <span class='keyglyph'>]</span>
+<a name="line-3638"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3639"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3640"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3641"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3642"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3643"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3644"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3645"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3646"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3647"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3648"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3649"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3650"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3651"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3652"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3653"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3654"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3655"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3656"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3657"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>
+<a name="line-3658"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3659"></a>                                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3660"></a>                                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>
+<a name="line-3661"></a>                                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3662"></a>                                                  <span class='keyglyph'>]</span>
+<a name="line-3663"></a>                                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3664"></a>                                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>
+<a name="line-3665"></a>                                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3666"></a>                                                <span class='keyglyph'>]</span>
+<a name="line-3667"></a>                                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3668"></a>                                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>
+<a name="line-3669"></a>                                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3670"></a>                                              <span class='keyglyph'>]</span>
+<a name="line-3671"></a>                                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3672"></a>                                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>
+<a name="line-3673"></a>                                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3674"></a>                                            <span class='keyglyph'>]</span>
+<a name="line-3675"></a>                                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3676"></a>                                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>
+<a name="line-3677"></a>                                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3678"></a>                                          <span class='keyglyph'>]</span>
+<a name="line-3679"></a>                                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3680"></a>                                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>
+<a name="line-3681"></a>                                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3682"></a>                                        <span class='keyglyph'>]</span>
+<a name="line-3683"></a>                                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3684"></a>                                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>
+<a name="line-3685"></a>                                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3686"></a>                                      <span class='keyglyph'>]</span>
+<a name="line-3687"></a>                                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3688"></a>                                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>
+<a name="line-3689"></a>                                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3690"></a>                                    <span class='keyglyph'>]</span>
+<a name="line-3691"></a>                                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3692"></a>                                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>
+<a name="line-3693"></a>                                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3694"></a>                                  <span class='keyglyph'>]</span>
+<a name="line-3695"></a>                                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3696"></a>                                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>
+<a name="line-3697"></a>                                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3698"></a>                                <span class='keyglyph'>]</span>
+<a name="line-3699"></a>                              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3700"></a>                                <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>
+<a name="line-3701"></a>                                <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3702"></a>                              <span class='keyglyph'>]</span>
+<a name="line-3703"></a>                            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3704"></a>                              <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>
+<a name="line-3705"></a>                              <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3706"></a>                            <span class='keyglyph'>]</span>
+<a name="line-3707"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3708"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>
+<a name="line-3709"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3710"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3711"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3712"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>
+<a name="line-3713"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3714"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3715"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3716"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>
+<a name="line-3717"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3718"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3719"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3720"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>
+<a name="line-3721"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3722"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3723"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3724"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>
+<a name="line-3725"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3726"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3727"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3728"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-3729"></a>                  <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3730"></a>                <span class='keyglyph'>]</span>
+<a name="line-3731"></a>              <span class='keyglyph'>]</span>
+<a name="line-3732"></a>            <span class='keyglyph'>]</span>
+<a name="line-3733"></a>          <span class='keyglyph'>]</span>
+<a name="line-3734"></a>        <span class='keyglyph'>]</span>
+<a name="line-3735"></a>      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>
+<a name="line-3736"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>
+<a name="line-3737"></a>        <span class='keyglyph'>]</span>
+<a name="line-3738"></a>        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>
+<a name="line-3739"></a>          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3740"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3741"></a>            <span class='keyglyph'>]</span>
+<a name="line-3742"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"grammar"</span>
+<a name="line-3743"></a>            <span class='keyglyph'>]</span>
+<a name="line-3744"></a>          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3745"></a>            <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3746"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>
+<a name="line-3747"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3748"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3749"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3750"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3751"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3752"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3753"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>
+<a name="line-3754"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3755"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3756"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3757"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3758"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3759"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3760"></a>                  <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3761"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>
+<a name="line-3762"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3763"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3764"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-3765"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3766"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>
+<a name="line-3767"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>
+<a name="line-3768"></a>                      <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>
+<a name="line-3769"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3770"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3771"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3772"></a>                <span class='keyglyph'>]</span>
+<a name="line-3773"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3774"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3775"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3776"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>
+<a name="line-3777"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>
+<a name="line-3778"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>
+<a name="line-3779"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3780"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3781"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>
+<a name="line-3782"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3783"></a>                          <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>
+<a name="line-3784"></a>                            <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>
+<a name="line-3785"></a>                            <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3786"></a>                          <span class='keyglyph'>]</span>
+<a name="line-3787"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3788"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3789"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3790"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3791"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3792"></a>                <span class='keyglyph'>]</span>
+<a name="line-3793"></a>              <span class='keyglyph'>]</span>
+<a name="line-3794"></a>            <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>
+<a name="line-3795"></a>              <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3796"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3797"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3798"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3799"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>
+<a name="line-3800"></a>                    <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3801"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3802"></a>                <span class='keyglyph'>]</span>
+<a name="line-3803"></a>              <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3804"></a>                <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-3805"></a>                <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>
+<a name="line-3806"></a>                  <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3807"></a>                    <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3808"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>
+<a name="line-3809"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3810"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>
+<a name="line-3811"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3812"></a>                        <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3813"></a>                          <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>
+<a name="line-3814"></a>                          <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3815"></a>                        <span class='keyglyph'>]</span>
+<a name="line-3816"></a>                      <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3817"></a>                        <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>
+<a name="line-3818"></a>                        <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3819"></a>                      <span class='keyglyph'>]</span>
+<a name="line-3820"></a>                    <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>
+<a name="line-3821"></a>                      <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>
+<a name="line-3822"></a>                      <span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-3823"></a>                    <span class='keyglyph'>]</span>
+<a name="line-3824"></a>                  <span class='keyglyph'>]</span>
+<a name="line-3825"></a>                <span class='keyglyph'>]</span>
+<a name="line-3826"></a>              <span class='keyglyph'>]</span>
+<a name="line-3827"></a>            <span class='keyglyph'>]</span>
+<a name="line-3828"></a>          <span class='keyglyph'>]</span>
+<a name="line-3829"></a>        <span class='keyglyph'>]</span>
+<a name="line-3830"></a>      <span class='keyglyph'>]</span>
+<a name="line-3831"></a>    <span class='keyglyph'>]</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html
@@ -0,0 +1,2317 @@
+<!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     : Text.XML.HXT.RelaxNG.Simplification
+<a name="line-5"></a>   Copyright  : Copyright (C) 2008 Torben Kuseler, 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 modul creates the simplified form of a Relax NG schema.
+<a name="line-13"></a>   See also chapter 4 of the Relax NG specification.
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Simplification</span>
+<a name="line-20"></a>  <span class='layout'>(</span> <span class='varid'>createSimpleForm</span>
+<a name="line-21"></a>  <span class='layout'>,</span> <span class='varid'>getErrors</span>
+<a name="line-22"></a>  <span class='layout'>)</span>
+<a name="line-23"></a>
+<a name="line-24"></a><span class='keyword'>where</span>
+<a name="line-25"></a>
+<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='varop'>.</span><span class='conid'>ListArrows</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'>Interface</span>
+<a name="line-30"></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-31"></a>    <span class='layout'>(</span> <span class='varid'>mkAttr</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>
+<a name="line-33"></a>    <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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>
+<a name="line-37"></a>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>
+<a name="line-39"></a>    <span class='layout'>(</span> <span class='varid'>processWithNsEnv</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>propagateNamespaces</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'>Edit</span>
+<a name="line-44"></a>    <span class='layout'>(</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-45"></a>    <span class='layout'>)</span>
+<a name="line-46"></a>
+<a name="line-47"></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'>DataTypes</span>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>BasicArrows</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibraries</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Schema</span>        <span class='keyword'>as</span> <span class='conid'>S</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>SchemaGrammar</span> <span class='keyword'>as</span> <span class='conid'>SG</span>
+<a name="line-55"></a>
+<a name="line-56"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>
+<a name="line-61"></a>  <span class='layout'>(</span> <span class='varid'>doesFileExist</span> <span class='layout'>)</span>
+<a name="line-62"></a>
+<a name="line-63"></a>  
+<a name="line-64"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="simplificationStep1"></a><span class='comment'>{- 
+<a name="line-67"></a>- 4.1. Annotations: Foreign attributes and elements are removed.
+<a name="line-68"></a>- 4.2. Whitespace:
+<a name="line-69"></a>    - For each element other than value and param, each child that is a string 
+<a name="line-70"></a>      containing only whitespace characters is removed. -&gt; fertig
+<a name="line-71"></a>    - Leading and trailing whitespace characters are removed from the value of each name,
+<a name="line-72"></a>      type and combine attribute and from the content of each name element. -&gt; fertig
+<a name="line-73"></a>- 4.3. datatypeLibrary attribute:
+<a name="line-74"></a>    - The value of each datatypeLibary attribute is transformed by escaping disallowed characters
+<a name="line-75"></a>    - For any data or value element that does not have a datatypeLibrary attribute, 
+<a name="line-76"></a>      a datatypeLibrary attribute is added.
+<a name="line-77"></a>    - Any datatypeLibrary attribute that is on an element other than data or value is removed.
+<a name="line-78"></a>- 4.4. type attribute of value element
+<a name="line-79"></a>-}</span>
+<a name="line-80"></a><span class='definition'>simplificationStep1</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-81"></a><span class='definition'>simplificationStep1</span>
+<a name="line-82"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='comment'>{- 
+<a name="line-83"></a>	- 4.5. href attribute
+<a name="line-84"></a>        - The value of the href attribute on an externalRef or include element is first 
+<a name="line-85"></a>        - transformed by escaping disallowed characters
+<a name="line-86"></a>        - The URI reference is then resolved into an absolute form
+<a name="line-87"></a>        - The value of the href attribute will be used to construct an element.
+<a name="line-88"></a>	-}</span>
+<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-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>
+<a name="line-96"></a>	<span class='comment'>-- Wird vorgezogen, da danach der Rest in einem Baumdurchlauf erledigt werden kann</span>
+<a name="line-97"></a>	<span class='varid'>processdatatypeLib</span> <span class='str'>""</span>
+<a name="line-98"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-99"></a>	<span class='varid'>processTopDownWithAttrl</span>
+<a name="line-100"></a>	<span class='layout'>(</span>
+<a name="line-101"></a>	 <span class='layout'>(</span> <span class='comment'>-- 4.1 Foreign attributes and elements are removed</span>
+<a name="line-102"></a>           <span class='varid'>none</span>
+<a name="line-103"></a>           <span class='varop'>`when`</span> 
+<a name="line-104"></a>           <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>isRoot</span> 
+<a name="line-105"></a>               <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-106"></a>               <span class='varid'>getNamespaceUri</span>
+<a name="line-107"></a>               <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-108"></a>               <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>compareURI</span> <span class='varid'>uri</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-109"></a>             <span class='layout'>)</span>
+<a name="line-110"></a>             <span class='varop'>`orElse`</span>
+<a name="line-111"></a>             <span class='layout'>(</span> <span class='varid'>isAttr</span>
+<a name="line-112"></a>               <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-113"></a>               <span class='varid'>getNamespaceUri</span>
+<a name="line-114"></a>               <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-115"></a>               <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>uri</span> <span class='varop'>/=</span> <span class='str'>""</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>compareURI</span> <span class='varid'>uri</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-116"></a>             <span class='layout'>)</span>
+<a name="line-117"></a>           <span class='layout'>)</span>
+<a name="line-118"></a>	 <span class='layout'>)</span>
+<a name="line-119"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-120"></a>	 <span class='layout'>(</span> <span class='comment'>-- 4.2 For each element other than value and param, each child that </span>
+<a name="line-121"></a>           <span class='comment'>-- is a string containing only whitespace characters is removed.</span>
+<a name="line-122"></a>           <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-123"></a>             <span class='varop'>`whenNot`</span> 
+<a name="line-124"></a>             <span class='layout'>(</span><span class='varid'>isRngParam</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</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='layout'>(</span> <span class='comment'>-- 4.2 Leading and trailing whitespace characters are removed from the value </span>
+<a name="line-130"></a>           <span class='comment'>-- of each name, type and combine attribute ...</span>
+<a name="line-131"></a>           <span class='varid'>changeAttrValue</span> <span class='varid'>normalizeWhitespace</span>
+<a name="line-132"></a>           <span class='varop'>`when`</span>
+<a name="line-133"></a>           <span class='layout'>(</span> <span class='varid'>isRngAttrName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttrType</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttrCombine</span><span class='layout'>)</span>
+<a name="line-134"></a>	 <span class='layout'>)</span>
+<a name="line-135"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-136"></a>	 <span class='layout'>(</span> <span class='comment'>-- 4.2 ... and from the content of each name element.</span>
+<a name="line-137"></a>           <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>normalizeWhitespace</span><span class='layout'>)</span>
+<a name="line-138"></a>           <span class='varop'>`when`</span>
+<a name="line-139"></a>           <span class='varid'>isRngName</span>
+<a name="line-140"></a>	 <span class='layout'>)</span>
+<a name="line-141"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-142"></a>	 <span class='layout'>(</span> <span class='comment'>-- 4.3 The value of each datatypeLibary attribute is transformed</span>
+<a name="line-143"></a>           <span class='comment'>-- by escaping disallowed characters</span>
+<a name="line-144"></a>           <span class='varid'>changeAttrValue</span> <span class='varid'>escapeURI</span>
+<a name="line-145"></a>           <span class='varop'>`when`</span>
+<a name="line-146"></a>           <span class='varid'>isRngAttrDatatypeLibrary</span>
+<a name="line-147"></a>	 <span class='layout'>)</span>
+<a name="line-148"></a>	 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-149"></a>	 <span class='layout'>(</span> <span class='comment'>-- The value of the datatypeLibary attribute has to be a valid URI</span>
+<a name="line-150"></a>           <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getRngAttrDatatypeLibrary</span>
+<a name="line-151"></a>				  <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-152"></a>				  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"datatypeLibrary attribute: "</span> <span class='varop'>++</span> 
+<a name="line-153"></a>						<span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" is not a valid URI"</span>
+<a name="line-154"></a>					      <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='layout'>)</span>
+<a name="line-158"></a>           <span class='varop'>`when`</span>
+<a name="line-159"></a>           <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-160"></a>	     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-161"></a>	     <span class='varid'>hasRngAttrDatatypeLibrary</span>
+<a name="line-162"></a>             <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-163"></a>             <span class='varid'>getRngAttrDatatypeLibrary</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'>isRelaxAnyURI</span><span class='layout'>)</span>
+<a name="line-164"></a>           <span class='layout'>)</span>
+<a name="line-165"></a>	 <span class='layout'>)</span>
+<a name="line-166"></a>	 <span class='varop'>&gt;&gt;&gt;</span>       
+<a name="line-167"></a>	 <span class='layout'>(</span> <span class='comment'>-- 4.3 Any datatypeLibrary attribute that is on an element </span>
+<a name="line-168"></a>           <span class='comment'>-- other than data or value is removed.</span>
+<a name="line-169"></a>           <span class='varid'>removeAttr</span> <span class='str'>"datatypeLibrary"</span>
+<a name="line-170"></a>           <span class='varop'>`when`</span>
+<a name="line-171"></a>           <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-172"></a>	     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-173"></a>	     <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>isRngData</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</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'>hasRngAttrDatatypeLibrary</span>
+<a name="line-176"></a>           <span class='layout'>)</span>
+<a name="line-177"></a>	 <span class='layout'>)</span>
+<a name="line-178"></a>	 <span class='varop'>&gt;&gt;&gt;</span>       
+<a name="line-179"></a>	 <span class='layout'>(</span> <span class='comment'>-- 4.4 For any value element that does not have a type attribute,</span>
+<a name="line-180"></a>           <span class='comment'>-- a type attribute is added with value token and the value of </span>
+<a name="line-181"></a>           <span class='comment'>-- the datatypeLibrary attribute is changed to the empty string.</span>
+<a name="line-182"></a>           <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='str'>"type"</span> <span class='str'>"token"</span>
+<a name="line-183"></a>	     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-184"></a>	     <span class='varid'>addAttr</span> <span class='str'>"datatypeLibrary"</span> <span class='str'>""</span>
+<a name="line-185"></a>	   <span class='layout'>)</span>
+<a name="line-186"></a>           <span class='varop'>`when`</span>
+<a name="line-187"></a>           <span class='layout'>(</span> <span class='varid'>isRngValue</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>hasRngAttrType</span> <span class='layout'>)</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='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-191"></a>    <span class='keyword'>where</span>
+<a name="line-192"></a>    <span class='varid'>processHref</span> <span class='keyglyph'>::</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-193"></a>    <span class='varid'>processHref</span> <span class='varid'>uri</span>
+<a name="line-194"></a>	<span class='keyglyph'>=</span> <span class='varid'>processChildren</span>
+<a name="line-195"></a>	  <span class='layout'>(</span> <span class='varid'>choiceA</span>
+<a name="line-196"></a>	    <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasAttr</span> <span class='str'>"xml:base"</span> <span class='layout'>)</span>
+<a name="line-197"></a>              <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>isExternalRefInclude</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrHref</span> <span class='layout'>)</span>
+<a name="line-198"></a>                    <span class='layout'>(</span> <span class='comment'>-- The value of the href attribute is transformed by</span>
+<a name="line-199"></a>                      <span class='comment'>-- escaping disallowed characters</span>
+<a name="line-200"></a>                      <span class='layout'>(</span><span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>changeAttrValue</span> <span class='varid'>escapeURI</span> <span class='varop'>`when`</span> <span class='varid'>isRngAttrHref</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-201"></a>                      <span class='varop'>&gt;&gt;&gt;</span> <span class='comment'>-- compute the new base uri from the old uri and the href attribute</span>
+<a name="line-202"></a>                      <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"href"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>absURI</span> <span class='str'>"href"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>absURI</span> <span class='str'>"xml:base"</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-203"></a>                      <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-204"></a>                      <span class='layout'>(</span><span class='varid'>processHref</span> <span class='varop'>$&lt;</span> <span class='varid'>absURI</span> <span class='str'>"xml:base"</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-205"></a>                    <span class='layout'>)</span> <span class='comment'>-- element without a href attribute, just compute the new base uri</span>
+<a name="line-206"></a>                    <span class='layout'>(</span><span class='varid'>processHref</span> <span class='varop'>$&lt;</span> <span class='varid'>absURI</span> <span class='str'>"xml:base"</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-207"></a>                  <span class='layout'>)</span>
+<a name="line-208"></a>	    <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isExternalRefInclude</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrHref</span> <span class='layout'>)</span>
+<a name="line-209"></a>              <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='comment'>-- The value of the href attribute is transformed by </span>
+<a name="line-210"></a>                    <span class='comment'>-- escaping disallowed characters</span>
+<a name="line-211"></a>                    <span class='layout'>(</span><span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>changeAttrValue</span> <span class='varid'>escapeURI</span> <span class='varop'>`when`</span> <span class='varid'>isRngAttrHref</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-212"></a>                    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-213"></a>                    <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"href"</span> <span class='varop'>$&lt;</span> <span class='varid'>absURI</span> <span class='str'>"href"</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-214"></a>                  <span class='layout'>)</span>
+<a name="line-215"></a>	    <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-216"></a>	      <span class='conop'>:-&gt;</span> <span class='varid'>processHref</span> <span class='varid'>uri</span>
+<a name="line-217"></a>            <span class='keyglyph'>]</span>
+<a name="line-218"></a>	  <span class='layout'>)</span>
+<a name="line-219"></a>	<span class='keyword'>where</span>
+<a name="line-220"></a>	<span class='varid'>absURI</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-221"></a>	<span class='varid'>absURI</span> <span class='varid'>attrName</span> <span class='varid'>u</span>
+<a name="line-222"></a>	    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>attrName</span>
+<a name="line-223"></a>		<span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-224"></a>                <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>expandURIString</span> <span class='varid'>a</span> <span class='varid'>u</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-225"></a>                <span class='varop'>&gt;&gt;&gt;</span> <span class='comment'>-- the uri should not have a fragment-identifier (4.5)</span>
+<a name="line-226"></a>                <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>", it is not a valid URI for text/xml"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-227"></a>                  <span class='varop'>`whenNot`</span>
+<a name="line-228"></a>                  <span class='layout'>(</span><span class='varid'>getFragmentFromURI</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>null</span><span class='layout'>)</span>
+<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-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>
+<a name="line-236"></a>              <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngElement</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttribute</span><span class='layout'>)</span>
+<a name="line-237"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-238"></a>		<span class='varid'>getRngAttrName</span>
+<a name="line-239"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-240"></a>		<span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>elem</span> <span class='chr'>':'</span><span class='layout'>)</span>
+<a name="line-241"></a>              <span class='layout'>)</span>
+<a name="line-242"></a>	    <span class='layout'>)</span>
+<a name="line-243"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-244"></a>	    <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>getBaseURI</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>createAttrL</span><span class='layout'>)</span><span class='layout'>)</span>      
+<a name="line-245"></a>              <span class='varop'>`when`</span>
+<a name="line-246"></a>              <span class='varid'>isRngValue</span>
+<a name="line-247"></a>	    <span class='layout'>)</span>
+<a name="line-248"></a>	  <span class='layout'>)</span>
+<a name="line-249"></a>	<span class='keyword'>where</span>
+<a name="line-250"></a>	<span class='varid'>createAttrL</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-251"></a>	<span class='varid'>createAttrL</span>
+<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-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-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-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-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-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-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>
+<a name="line-281"></a>    <span class='comment'>-- has a datatypeLibrary attribute, or the empty string </span>
+<a name="line-282"></a>    <span class='comment'>-- if there is no such ancestor.</span>
+<a name="line-283"></a>    <span class='varid'>processdatatypeLib</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</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-284"></a>    <span class='varid'>processdatatypeLib</span> <span class='varid'>lib</span> 
+<a name="line-285"></a>	<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>
+<a name="line-286"></a>          <span class='varid'>choiceA</span>
+<a name="line-287"></a>	  <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrDatatypeLibrary</span>
+<a name="line-288"></a>            <span class='comment'>-- set the new datatypeLibrary value</span>
+<a name="line-289"></a>            <span class='layout'>)</span>
+<a name="line-290"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-291"></a>	    <span class='layout'>(</span> <span class='varid'>processdatatypeLib</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrDatatypeLibrary</span> <span class='layout'>)</span>
+<a name="line-292"></a>	  <span class='layout'>,</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngData</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</span>
+<a name="line-293"></a>              <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-294"></a>              <span class='varid'>neg</span> <span class='varid'>hasRngAttrDatatypeLibrary</span>
+<a name="line-295"></a>              <span class='comment'>-- add a datatypeLibrary attribute</span>
+<a name="line-296"></a>	    <span class='layout'>)</span>
+<a name="line-297"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-298"></a>	    <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='str'>"datatypeLibrary"</span> <span class='varid'>lib</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processdatatypeLib</span> <span class='varid'>lib</span> <span class='layout'>)</span>
+<a name="line-299"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-300"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-301"></a>	    <span class='varid'>processdatatypeLib</span> <span class='varid'>lib</span>
+<a name="line-302"></a>          <span class='keyglyph'>]</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="line-307"></a><span class='comment'>{- 
+<a name="line-308"></a>- 4.5. href attribute
+<a name="line-309"></a>    - see simplificationStep1
+<a name="line-310"></a>- 4.6. externalRef element
+<a name="line-311"></a>    - An element is constructed using the URI reference 
+<a name="line-312"></a>      that is the value of href attribute
+<a name="line-313"></a>    - This element must match the syntax for pattern.
+<a name="line-314"></a>    - The element is transformed by recursively applying the rules from 
+<a name="line-315"></a>      this subsection and from previous subsections of this section.
+<a name="line-316"></a>    - This must not result in a loop.
+<a name="line-317"></a>    - Any ns attribute on the externalRef element is transferred 
+<a name="line-318"></a>      to the referenced element if the referenced element does
+<a name="line-319"></a>      not already have an ns attribute.
+<a name="line-320"></a>    - The externalRef element is then replaced by the referenced element.
+<a name="line-321"></a>- 4.7. include element
+<a name="line-322"></a>    - An element is constructed using the URI reference that is the
+<a name="line-323"></a>      value of href attribute
+<a name="line-324"></a>    - This element must be a grammar element, matching the syntax for grammar.
+<a name="line-325"></a>    - This grammar element is transformed by recursively applying the rules 
+<a name="line-326"></a>      from this subsection and from previous subsections of this section.
+<a name="line-327"></a>    - This must not result in a loop.
+<a name="line-328"></a>    
+<a name="line-329"></a>    - If the include element has a start component, then the grammar element
+<a name="line-330"></a>      must have a start component.
+<a name="line-331"></a>    - If the include element has a start component, then all start components
+<a name="line-332"></a>      are removed from the grammar element.
+<a name="line-333"></a>    - If the include element has a define component, then the grammar element
+<a name="line-334"></a>      must have a define component with the same name.
+<a name="line-335"></a>    - For every define component of the include element, all define components
+<a name="line-336"></a>      with the same name are removed from the grammar element.
+<a name="line-337"></a>    
+<a name="line-338"></a>    - The include element is transformed into a div element.
+<a name="line-339"></a>    - The attributes of the div element are the attributes of the 
+<a name="line-340"></a>      include element other than the href attribute.
+<a name="line-341"></a>    - The children of the div element are the grammar element
+<a name="line-342"></a>    - The grammar element is then renamed to div.
+<a name="line-343"></a>-}</span>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="simplificationStep2"></a><span class='definition'>simplificationStep2</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</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='keyglyph'>[</span><span class='conid'>Uri</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Uri</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-346"></a><span class='definition'>simplificationStep2</span> <span class='varid'>readOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='varid'>extHRefs</span> <span class='varid'>includeHRefs</span> <span class='keyglyph'>=</span>
+<a name="line-347"></a>  <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span>
+<a name="line-348"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>importExternalRef</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getRngAttrNs</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getRngAttrHref</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-349"></a>        <span class='varop'>`when`</span>
+<a name="line-350"></a>        <span class='varid'>isRngExternalRef</span>
+<a name="line-351"></a>      <span class='layout'>)</span>
+<a name="line-352"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-353"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>importInclude</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='str'>"href"</span><span class='layout'>)</span>
+<a name="line-354"></a>        <span class='varop'>`when`</span>
+<a name="line-355"></a>        <span class='varid'>isRngInclude</span>
+<a name="line-356"></a>      <span class='layout'>)</span>
+<a name="line-357"></a>    <span class='layout'>)</span>
+<a name="line-358"></a>  <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-359"></a>  <span class='keyword'>where</span>
+<a name="line-360"></a>  <span class='varid'>importExternalRef</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-361"></a>  <span class='varid'>importExternalRef</span> <span class='varid'>ns</span> <span class='varid'>href</span>
+<a name="line-362"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- test whether the referenced schema exists</span>
+<a name="line-363"></a>            <span class='varid'>neg</span> <span class='varop'>$</span> <span class='varid'>constA</span> <span class='varid'>href</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getPathFromURI</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isIOA</span> <span class='varid'>doesFileExist</span>
+<a name="line-364"></a>          <span class='layout'>)</span>
+<a name="line-365"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-366"></a>	  <span class='layout'>(</span> <span class='str'>"Can't read "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span>
+<a name="line-367"></a>	    <span class='str'>", referenced in externalRef-Pattern"</span>
+<a name="line-368"></a>	  <span class='layout'>)</span>
+<a name="line-369"></a>	<span class='layout'>)</span>
+<a name="line-370"></a>        <span class='layout'>(</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>href</span> <span class='varid'>extHRefs</span><span class='layout'>)</span>
+<a name="line-371"></a>           <span class='comment'>-- if the referenced name already exists in the list of processed ref attributes</span>
+<a name="line-372"></a>           <span class='comment'>-- we have found a loop</span>
+<a name="line-373"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-374"></a>	      <span class='layout'>(</span>  <span class='str'>"loop in externalRef-Pattern, "</span> <span class='varop'>++</span> 
+<a name="line-375"></a>                 <span class='varid'>formatStringListArr</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>href</span><span class='conop'>:</span><span class='varid'>extHRefs</span><span class='layout'>)</span>
+<a name="line-376"></a>	      <span class='layout'>)</span>
+<a name="line-377"></a>            <span class='layout'>)</span>
+<a name="line-378"></a>            <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>validateExternalRef</span> 					<span class='comment'>-- if validation parameters are set</span>
+<a name="line-379"></a>		    <span class='keyword'>then</span> <span class='varid'>validateDocWithRelax</span> <span class='conid'>S</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span> <span class='conid'>[]</span> <span class='varid'>href</span>	<span class='comment'>-- the referenced schema is validated with respect to</span>
+<a name="line-380"></a>		    <span class='keyword'>else</span> <span class='varid'>none</span>							<span class='comment'>-- the Relax NG spezification</span>
+<a name="line-381"></a>                  <span class='layout'>)</span>
+<a name="line-382"></a>                <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-383"></a>		  <span class='layout'>(</span> <span class='str'>"The content of the schema "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> 
+<a name="line-384"></a>		    <span class='str'>", referenced in externalRef does not "</span> <span class='varop'>++</span>
+<a name="line-385"></a>		    <span class='str'>"match the syntax for pattern"</span>
+<a name="line-386"></a>		  <span class='layout'>)</span>
+<a name="line-387"></a>                <span class='layout'>)</span>
+<a name="line-388"></a>                <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>readOptions</span> <span class='varid'>href</span>
+<a name="line-389"></a>                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-390"></a>                  <span class='varid'>simplificationStep1</span>						<span class='comment'>-- perform the transformations from previous steps</span>
+<a name="line-391"></a>                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-392"></a>                  <span class='varid'>simplificationStep2</span> <span class='varid'>readOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='layout'>(</span><span class='varid'>href</span><span class='conop'>:</span><span class='varid'>extHRefs</span><span class='layout'>)</span> <span class='varid'>includeHRefs</span>
+<a name="line-393"></a>                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-394"></a>                  <span class='varid'>getChildren</span> <span class='comment'>-- remove the root node</span>
+<a name="line-395"></a>                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-396"></a>                  <span class='layout'>(</span> <span class='comment'>-- Any ns attribute on the externalRef element</span>
+<a name="line-397"></a>                    <span class='comment'>-- is transferred to the referenced element</span>
+<a name="line-398"></a>                    <span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='varid'>ns</span>
+<a name="line-399"></a>                    <span class='varop'>`when`</span>
+<a name="line-400"></a>                    <span class='layout'>(</span><span class='varid'>getRngAttrNs</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>ns</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-401"></a>                  <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='layout'>)</span>
+<a name="line-405"></a>  
+<a name="line-406"></a>  <span class='varid'>importInclude</span> <span class='keyglyph'>::</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-407"></a>  <span class='varid'>importInclude</span> <span class='varid'>href</span>
+<a name="line-408"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- test whether the referenced schema exists</span>
+<a name="line-409"></a>            <span class='varid'>neg</span> <span class='varop'>$</span> <span class='varid'>constA</span> <span class='varid'>href</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getPathFromURI</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isIOA</span> <span class='varid'>doesFileExist</span>
+<a name="line-410"></a>          <span class='layout'>)</span>
+<a name="line-411"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-412"></a>	  <span class='layout'>(</span> <span class='str'>"Can't read "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span>
+<a name="line-413"></a>            <span class='str'>", referenced in include-Pattern"</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> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>href</span> <span class='varid'>includeHRefs</span><span class='layout'>)</span>
+<a name="line-417"></a>           <span class='comment'>-- if the referenced name still exists in the list of processed</span>
+<a name="line-418"></a>           <span class='comment'>-- ref attributes we have found a loop</span>
+<a name="line-419"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-420"></a>	      <span class='layout'>(</span> <span class='str'>"loop in include-Pattern, "</span> <span class='varop'>++</span> 
+<a name="line-421"></a>                <span class='varid'>formatStringListArr</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>href</span><span class='conop'>:</span><span class='varid'>includeHRefs</span><span class='layout'>)</span>
+<a name="line-422"></a>	      <span class='layout'>)</span>
+<a name="line-423"></a>            <span class='layout'>)</span>
+<a name="line-424"></a>            <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>validateInclude</span>						<span class='comment'>-- if the parameter is set</span>
+<a name="line-425"></a>		    <span class='keyword'>then</span> <span class='varid'>validateDocWithRelax</span> <span class='conid'>SG</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span> <span class='conid'>[]</span> <span class='varid'>href</span>	<span class='comment'>-- the referenced schema is validated with respect to</span>
+<a name="line-426"></a>                    <span class='keyword'>else</span> <span class='varid'>none</span>							<span class='comment'>-- the Relax NG grammar element</span>
+<a name="line-427"></a>                  <span class='layout'>)</span>
+<a name="line-428"></a>                <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-429"></a>		  <span class='layout'>(</span> <span class='str'>"The content of the schema "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> 
+<a name="line-430"></a>                    <span class='str'>", referenced in include does not match "</span> <span class='varop'>++</span>
+<a name="line-431"></a>                    <span class='str'>"the syntax for grammar"</span>
+<a name="line-432"></a>		  <span class='layout'>)</span>
+<a name="line-433"></a>                <span class='layout'>)</span>
+<a name="line-434"></a>                <span class='layout'>(</span> <span class='varid'>processInclude</span> <span class='varid'>href</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>readOptions</span> <span class='varid'>href</span>
+<a name="line-435"></a>                                           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-436"></a>                                           <span class='varid'>simplificationStep1</span>				<span class='comment'>-- perform the transformations from previous steps</span>
+<a name="line-437"></a>                                           <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-438"></a>                                           <span class='varid'>simplificationStep2</span> <span class='varid'>readOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='varid'>extHRefs</span> <span class='layout'>(</span><span class='varid'>href</span><span class='conop'>:</span><span class='varid'>includeHRefs</span><span class='layout'>)</span>
+<a name="line-439"></a>                                           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-440"></a>                                           <span class='varid'>getChildren</span>					<span class='comment'>-- remove the root node</span>
+<a name="line-441"></a>                                         <span class='layout'>)</span>
+<a name="line-442"></a>                <span class='layout'>)</span>
+<a name="line-443"></a>            <span class='layout'>)</span>
+<a name="line-444"></a>        <span class='layout'>)</span>
+<a name="line-445"></a>  
+<a name="line-446"></a>  <span class='varid'>processInclude</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-447"></a>  <span class='varid'>processInclude</span> <span class='varid'>href</span> <span class='varid'>newDoc</span>
+<a name="line-448"></a>    <span class='keyglyph'>=</span> <span class='comment'>-- The include element is transformed into a div element.</span>
+<a name="line-449"></a>      <span class='varid'>setRngNameDiv</span>
+<a name="line-450"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-451"></a>      <span class='comment'>-- The attributes of the div element are the attributes of </span>
+<a name="line-452"></a>      <span class='comment'>-- the include element other than the href attribute.</span>
+<a name="line-453"></a>      <span class='varid'>removeAttr</span> <span class='str'>"href"</span>
+<a name="line-454"></a>      <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-455"></a>      <span class='varid'>checkInclude</span> <span class='varid'>href</span> <span class='varid'>newDoc</span>
+<a name="line-456"></a>  
+<a name="line-457"></a>  
+<a name="line-458"></a>  <span class='varid'>insertNewDoc</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-459"></a>  <span class='varid'>insertNewDoc</span> <span class='varid'>newDoc</span> <span class='varid'>hasStart</span> <span class='varid'>defNames</span>
+<a name="line-460"></a>    <span class='keyglyph'>=</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='varop'>$</span>
+<a name="line-461"></a>        <span class='varid'>constA</span> <span class='varid'>newDoc</span>
+<a name="line-462"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-463"></a>        <span class='comment'>-- If the include element has a start component, then all start components</span>
+<a name="line-464"></a>        <span class='comment'>-- are removed from the grammar element.        </span>
+<a name="line-465"></a>        <span class='layout'>(</span><span class='varid'>removeStartComponent</span> <span class='varop'>`whenP`</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>hasStart</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-466"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-467"></a>        <span class='comment'>-- For every define component of the include element, all define components</span>
+<a name="line-468"></a>        <span class='comment'>-- with the same name are removed from the grammar element.</span>
+<a name="line-469"></a>        <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>removeDefineComponent</span> <span class='varid'>defNames</span><span class='layout'>)</span> <span class='varop'>`whenP`</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>defNames</span> <span class='varop'>/=</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-470"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-471"></a>        <span class='comment'>-- The grammar element is then renamed to div.</span>
+<a name="line-472"></a>        <span class='varid'>setRngNameDiv</span>
+<a name="line-473"></a>
+<a name="line-474"></a>  
+<a name="line-475"></a>  <span class='varid'>checkInclude</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-476"></a>  <span class='varid'>checkInclude</span> <span class='varid'>href</span> <span class='varid'>newDoc</span>
+<a name="line-477"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- If the include element has a start component, then the grammar element</span>
+<a name="line-478"></a>            <span class='comment'>-- must have a start component.</span>
+<a name="line-479"></a>            <span class='varid'>hasStartComponent</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>newDoc</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasStartComponent</span><span class='layout'>)</span>
+<a name="line-480"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-481"></a>            <span class='varid'>isA</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='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='keyword'>then</span> <span class='varid'>b</span> <span class='keyword'>else</span> <span class='conid'>True</span><span class='layout'>)</span>
+<a name="line-482"></a>          <span class='layout'>)</span>
+<a name="line-483"></a>        <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- If the include element has a define component, then the grammar element</span>
+<a name="line-484"></a>                <span class='comment'>-- must have a define component with the same name.</span>
+<a name="line-485"></a>                <span class='varid'>getDefineComponents</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>newDoc</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getDefineComponents</span><span class='layout'>)</span>
+<a name="line-486"></a>                <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-487"></a>                <span class='varid'>isA</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='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>diff</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-488"></a>              <span class='layout'>)</span>
+<a name="line-489"></a>            <span class='layout'>(</span><span class='varid'>insertNewDoc</span> <span class='varid'>newDoc</span> <span class='varop'>$&lt;&lt;</span> <span class='varid'>hasStartComponent</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getDefineComponents</span><span class='layout'>)</span>
+<a name="line-490"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-491"></a>	      <span class='layout'>(</span> <span class='str'>"Define-pattern missing in schema "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> 
+<a name="line-492"></a>                <span class='str'>", referenced in include-pattern"</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='layout'>)</span>
+<a name="line-496"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-497"></a>	  <span class='layout'>(</span> <span class='str'>"Grammar-element without a start-pattern in schema "</span> <span class='varop'>++</span>
+<a name="line-498"></a>            <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> <span class='str'>", referenced in include-pattern"</span>
+<a name="line-499"></a>	  <span class='layout'>)</span>
+<a name="line-500"></a>        <span class='layout'>)</span>
+<a name="line-501"></a>    <span class='keyword'>where</span>
+<a name="line-502"></a>    <span class='varid'>diff</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>noDoubles</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>\\</span> <span class='layout'>(</span><span class='varid'>noDoubles</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-503"></a>
+<a name="line-504"></a>  <span class='varid'>removeStartComponent</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-505"></a>  <span class='varid'>removeStartComponent</span>
+<a name="line-506"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>
+<a name="line-507"></a>        <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-508"></a>          <span class='varid'>isRngStart</span> <span class='conop'>:-&gt;</span> <span class='varid'>none</span><span class='layout'>,</span>
+<a name="line-509"></a>          <span class='varid'>isRngDiv</span>   <span class='conop'>:-&gt;</span> <span class='varid'>removeStartComponent</span><span class='layout'>,</span>
+<a name="line-510"></a>          <span class='varid'>this</span>       <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-511"></a>        <span class='keyglyph'>]</span>
+<a name="line-512"></a>
+<a name="line-513"></a>  <span class='varid'>removeDefineComponent</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='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-514"></a>  <span class='varid'>removeDefineComponent</span> <span class='varid'>defNames</span>
+<a name="line-515"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>
+<a name="line-516"></a>        <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-517"></a>          <span class='layout'>(</span> <span class='varid'>isRngDefine</span>
+<a name="line-518"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-519"></a>            <span class='varid'>getRngAttrName</span>
+<a name="line-520"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-521"></a>            <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>elem</span> <span class='varid'>n</span> <span class='varid'>defNames</span><span class='layout'>)</span><span class='layout'>)</span>          <span class='conop'>:-&gt;</span> <span class='varid'>none</span><span class='layout'>,</span>
+<a name="line-522"></a>          <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"div"</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>removeDefineComponent</span> <span class='varid'>defNames</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-523"></a>          <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>"foo"</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"foo"</span><span class='layout'>)</span><span class='layout'>)</span>       <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-524"></a>        <span class='keyglyph'>]</span>
+<a name="line-525"></a>  
+<a name="line-526"></a>  <span class='varid'>hasStartComponent</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>Bool</span>
+<a name="line-527"></a>  <span class='varid'>hasStartComponent</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>hasStartComponent'</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='varid'>id</span><span class='layout'>)</span>
+<a name="line-528"></a>    <span class='keyword'>where</span>
+<a name="line-529"></a>    <span class='varid'>hasStartComponent'</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>Bool</span>
+<a name="line-530"></a>    <span class='varid'>hasStartComponent'</span>
+<a name="line-531"></a>      <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-532"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-533"></a>        <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-534"></a>          <span class='varid'>isRngStart</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>True</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-535"></a>          <span class='varid'>isRngDiv</span>   <span class='conop'>:-&gt;</span> <span class='varid'>hasStartComponent'</span><span class='layout'>,</span>
+<a name="line-536"></a>          <span class='varid'>this</span>       <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>False</span><span class='layout'>)</span>
+<a name="line-537"></a>        <span class='keyglyph'>]</span>
+<a name="line-538"></a>
+<a name="line-539"></a>  <span class='varid'>getDefineComponents</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-540"></a>  <span class='varid'>getDefineComponents</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>getDefineComponents'</span>
+<a name="line-541"></a>                        <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-542"></a>                        <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>xs</span> <span class='keyglyph'>-&gt;</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'>xs</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-543"></a>    <span class='keyword'>where</span>
+<a name="line-544"></a>    <span class='varid'>getDefineComponents'</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-545"></a>    <span class='varid'>getDefineComponents'</span>
+<a name="line-546"></a>      <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-547"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-548"></a>        <span class='varid'>choiceA</span>
+<a name="line-549"></a>	<span class='keyglyph'>[</span> <span class='varid'>isRngDefine</span> <span class='conop'>:-&gt;</span> <span class='varid'>getRngAttrName</span>
+<a name="line-550"></a>	<span class='layout'>,</span> <span class='varid'>isRngDiv</span>    <span class='conop'>:-&gt;</span> <span class='varid'>getDefineComponents'</span>
+<a name="line-551"></a>	<span class='layout'>,</span> <span class='varid'>this</span>        <span class='conop'>:-&gt;</span> <span class='varid'>constA</span> <span class='str'>""</span>
+<a name="line-552"></a>        <span class='keyglyph'>]</span>
+<a name="line-553"></a>  
+<a name="line-554"></a>
+<a name="line-555"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-556"></a>
+<a name="line-557"></a>
+<a name="line-558"></a><a name="simplificationStep3"></a><span class='comment'>{-
+<a name="line-559"></a>- 4.8. name attribute of element and attribute elements
+<a name="line-560"></a>    - The name attribute on an element or attribute element
+<a name="line-561"></a>      is transformed into a name child element.
+<a name="line-562"></a>    - If an attribute element has a name attribute but no ns attribute,
+<a name="line-563"></a>      then an ns="" attribute is added to the name child element.
+<a name="line-564"></a>- 4.9. ns attribute
+<a name="line-565"></a>    - For any name, nsName or value element that does not have
+<a name="line-566"></a>      an ns attribute, an ns attribute is added.
+<a name="line-567"></a>    - any ns attribute that is on an element other than name,
+<a name="line-568"></a>      nsName or value is removed.
+<a name="line-569"></a>- 4.10. QNames
+<a name="line-570"></a>    - For any name element containing a prefix, the prefix is removed
+<a name="line-571"></a>      and an ns attribute is added replacing any existing ns attribute.
+<a name="line-572"></a>    - The value of the added ns attribute is the value to which the
+<a name="line-573"></a>      namespace map of the context of the name element maps the prefix.
+<a name="line-574"></a>    - The context must have a mapping for the prefix.
+<a name="line-575"></a>-}</span>
+<a name="line-576"></a><span class='definition'>simplificationStep3</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-577"></a><span class='definition'>simplificationStep3</span> <span class='keyglyph'>=</span>
+<a name="line-578"></a>  <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> 
+<a name="line-579"></a>      <span class='layout'>(</span> <span class='comment'>-- 4.8 The name attribute on an element or attribute</span>
+<a name="line-580"></a>        <span class='comment'>-- element is transformed into a name child element</span>
+<a name="line-581"></a>        <span class='layout'>(</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='layout'>(</span><span class='varid'>mkRngName</span> <span class='varid'>none</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-582"></a>        <span class='layout'>)</span>
+<a name="line-583"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-584"></a>        <span class='layout'>(</span> <span class='comment'>-- 4.8 If an attribute element has a name attribute but no ns attribute,</span>
+<a name="line-585"></a>          <span class='comment'>--  then an ns="" attribute is added to the name child element</span>
+<a name="line-586"></a>           <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='str'>""</span> <span class='varop'>`when`</span> <span class='varid'>isRngName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-587"></a>           <span class='varop'>`when`</span> 
+<a name="line-588"></a>           <span class='layout'>(</span><span class='varid'>isRngAttribute</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span>
+<a name="line-589"></a>        <span class='layout'>)</span>
+<a name="line-590"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-591"></a>        <span class='varid'>removeAttr</span> <span class='str'>"name"</span>      
+<a name="line-592"></a>      <span class='layout'>)</span>
+<a name="line-593"></a>      <span class='varop'>`when`</span>
+<a name="line-594"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngElement</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttribute</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrName</span> <span class='layout'>)</span>
+<a name="line-595"></a>    <span class='layout'>)</span>
+<a name="line-596"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-597"></a>    <span class='comment'>-- 4.9 For any name, nsName or value element that does not have </span>
+<a name="line-598"></a>    <span class='comment'>-- an ns attribute, an ns attribute is added.</span>
+<a name="line-599"></a>    <span class='varid'>processnsAttribute</span> <span class='str'>""</span>
+<a name="line-600"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-601"></a>    <span class='varid'>processTopDown</span> <span class='layout'>(</span>        
+<a name="line-602"></a>      <span class='layout'>(</span> <span class='comment'>-- 4.9 any ns attribute that is on an element other than name, </span>
+<a name="line-603"></a>        <span class='comment'>-- nsName or value is removed.</span>
+<a name="line-604"></a>        <span class='layout'>(</span><span class='varid'>removeAttr</span> <span class='str'>"ns"</span><span class='layout'>)</span>
+<a name="line-605"></a>        <span class='varop'>`when`</span>
+<a name="line-606"></a>        <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>isRngName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngNsName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-607"></a>      <span class='layout'>)</span>
+<a name="line-608"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-609"></a>      <span class='layout'>(</span> <span class='comment'>-- 4.10 For any name element containing a prefix, the prefix is removed and an ns attribute </span>
+<a name="line-610"></a>        <span class='comment'>-- is added replacing any existing ns attribute.</span>
+<a name="line-611"></a>        <span class='layout'>(</span><span class='varid'>replaceNameAttr</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-612"></a>        <span class='varop'>`when`</span>
+<a name="line-613"></a>        <span class='varid'>isRngName</span>
+<a name="line-614"></a>      <span class='layout'>)</span>
+<a name="line-615"></a>    <span class='layout'>)</span>
+<a name="line-616"></a>  <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-617"></a>  <span class='keyword'>where</span>
+<a name="line-618"></a>  <span class='varid'>replaceNameAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</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-619"></a>  <span class='varid'>replaceNameAttr</span> <span class='varid'>name</span> 
+<a name="line-620"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='varid'>pre</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='varid'>local</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-621"></a>      <span class='varop'>`whenP`</span>
+<a name="line-622"></a>      <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='chr'>'}'</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-623"></a>    <span class='keyword'>where</span> 
+<a name="line-624"></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-625"></a>    <span class='varid'>pre</span>            <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>pre'</span>
+<a name="line-626"></a>    <span class='varid'>local</span>          <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>local'</span>
+<a name="line-627"></a>          
+<a name="line-628"></a>  <span class='varid'>processnsAttribute</span> <span class='keyglyph'>::</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-629"></a>  <span class='varid'>processnsAttribute</span> <span class='varid'>name</span> 
+<a name="line-630"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>
+<a name="line-631"></a>        <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-632"></a>          <span class='comment'>-- set the new ns attribute value</span>
+<a name="line-633"></a>          <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span> 
+<a name="line-634"></a>               <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>processnsAttribute</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrNs</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-635"></a>          <span class='comment'>-- For any name, nsName or value element that does not have</span>
+<a name="line-636"></a>          <span class='comment'>-- an ns attribute, an ns attribute is added.               </span>
+<a name="line-637"></a>          <span class='layout'>(</span> <span class='varid'>isNameNsNameValue</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span>
+<a name="line-638"></a>               <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='varid'>name</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processnsAttribute</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-639"></a>          <span class='varid'>this</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>processnsAttribute</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-640"></a>        <span class='keyglyph'>]</span>
+<a name="line-641"></a>
+<a name="line-642"></a>
+<a name="line-643"></a><span class='comment'>-- ------------------------------------------------------------    </span>
+<a name="line-644"></a>
+<a name="line-645"></a>
+<a name="line-646"></a><a name="simplificationStep4"></a><span class='comment'>{-
+<a name="line-647"></a>- 4.11 Each div element is replaced by its children
+<a name="line-648"></a>- 4.12 Number of child elements
+<a name="line-649"></a>    - A define, oneOrMore, zeroOrMore, optional, list or mixed element 
+<a name="line-650"></a>      is transformed so that it has exactly one child element
+<a name="line-651"></a>    - An element element is transformed so that it has exactly two child elements
+<a name="line-652"></a>    - A except element is transformed so that it has exactly one child element
+<a name="line-653"></a>    - If an attribute element has only one child element (a name class), then a text element is added.
+<a name="line-654"></a>    - A choice, group or interleave element is transformed so that it has exactly two child elements.
+<a name="line-655"></a>- 4.13 A mixed element is transformed into an interleaving with a text element
+<a name="line-656"></a>- 4.14 An optional element is transformed into a choice with empty
+<a name="line-657"></a>- 4.15 A zeroOrMore element is transformed into a choice between oneOrMore and empty
+<a name="line-658"></a>- 4.16. Constraints: no transformation is performed, but various constraints are checked.
+<a name="line-659"></a>    - An except element that is a child of an anyName element must not have any anyName descendant elements.
+<a name="line-660"></a>    - An except element that is a child of an nsName element must not have any nsName or anyName
+<a name="line-661"></a>      descendant elements.
+<a name="line-662"></a>    - A name element that occurs as the first child of an attribute element or as the descendant of the 
+<a name="line-663"></a>      first child of an attribute element and that has an ns attribute with value equal to the empty 
+<a name="line-664"></a>      string must not have content equal to xmlns.
+<a name="line-665"></a>    - A name or nsName element that occurs as the first child of an attribute element or as the 
+<a name="line-666"></a>      descendant of the first child of an attribute element must not have an ns attribute with 
+<a name="line-667"></a>      value <a href="http://www.w3.org/2000/xmlns.">http://www.w3.org/2000/xmlns.</a>
+<a name="line-668"></a>    - A data or value element must be correct in its use of datatypes.
+<a name="line-669"></a>-}</span>
+<a name="line-670"></a><span class='definition'>simplificationStep4</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-671"></a><span class='definition'>simplificationStep4</span> <span class='keyglyph'>=</span>
+<a name="line-672"></a>  <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> 
+<a name="line-673"></a>      <span class='layout'>(</span> <span class='comment'>-- Each div element is replaced by its children.</span>
+<a name="line-674"></a>        <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>simplificationStep4</span><span class='layout'>)</span>
+<a name="line-675"></a>        <span class='varop'>`when`</span>
+<a name="line-676"></a>        <span class='varid'>isRngDiv</span>
+<a name="line-677"></a>      <span class='layout'>)</span>
+<a name="line-678"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-679"></a>      <span class='layout'>(</span> <span class='comment'>-- A define, oneOrMore, zeroOrMore, optional, list or mixed element</span>
+<a name="line-680"></a>        <span class='comment'>-- is transformed so that it has exactly one child element</span>
+<a name="line-681"></a>        <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
+<a name="line-682"></a>	  <span class='layout'>(</span> <span class='varid'>mkRngGroup</span>
+<a name="line-683"></a>            <span class='layout'>(</span><span class='varid'>setChangesAttr</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='str'>"group-Pattern: "</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>  
+<a name="line-684"></a>            <span class='varid'>getChildren</span>
+<a name="line-685"></a>	  <span class='layout'>)</span>
+<a name="line-686"></a>        <span class='layout'>)</span>
+<a name="line-687"></a>        <span class='varop'>`when`</span>
+<a name="line-688"></a>        <span class='layout'>(</span>  <span class='varid'>isDefineOneOrMoreZeroOrMoreOptionalListMixed</span>
+<a name="line-689"></a>           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-690"></a>	   <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>&gt;</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-691"></a>        <span class='layout'>)</span>
+<a name="line-692"></a>      <span class='layout'>)</span>
+<a name="line-693"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-694"></a>      <span class='layout'>(</span> <span class='comment'>-- An element element is transformed so that it has exactly two child elements       </span>
+<a name="line-695"></a>        <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
+<a name="line-696"></a>	  <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isNameAnyNameNsName</span> <span class='layout'>)</span>
+<a name="line-697"></a>            <span class='varop'>&lt;+&gt;</span> 
+<a name="line-698"></a>            <span class='layout'>(</span> <span class='varid'>mkRngGroup</span> <span class='varid'>none</span> 
+<a name="line-699"></a>              <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-700"></a>                <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-701"></a>                <span class='varid'>neg</span> <span class='varid'>isNameAnyNameNsName</span>
+<a name="line-702"></a>              <span class='layout'>)</span>
+<a name="line-703"></a>            <span class='layout'>)</span>
+<a name="line-704"></a>	  <span class='layout'>)</span>
+<a name="line-705"></a>        <span class='layout'>)</span>
+<a name="line-706"></a>        <span class='varop'>`when`</span>
+<a name="line-707"></a>        <span class='layout'>(</span> <span class='varid'>isRngElement</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>&gt;</span> <span class='num'>2</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-708"></a>      <span class='layout'>)</span>
+<a name="line-709"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-710"></a>      <span class='layout'>(</span> <span class='comment'>-- A except element is transformed so that it has exactly one child element.</span>
+<a name="line-711"></a>        <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>mkRngChoice</span> <span class='varid'>none</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-712"></a>        <span class='varop'>`when`</span>
+<a name="line-713"></a>        <span class='layout'>(</span> <span class='varid'>isRngExcept</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>&gt;</span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-714"></a>      <span class='layout'>)</span>
+<a name="line-715"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-716"></a>      <span class='layout'>(</span> <span class='comment'>-- If an attribute element has only one child element </span>
+<a name="line-717"></a>        <span class='comment'>-- (a name class), then a text element is added.</span>
+<a name="line-718"></a>        <span class='varid'>insertChildrenAt</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>mkRngText</span> <span class='varid'>none</span><span class='layout'>)</span>
+<a name="line-719"></a>        <span class='varop'>`when`</span>
+<a name="line-720"></a>        <span class='layout'>(</span> <span class='varid'>isRngAttribute</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-721"></a>      <span class='layout'>)</span>
+<a name="line-722"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-723"></a>      <span class='layout'>(</span> <span class='comment'>-- A choice, group or interleave element is transformed so</span>
+<a name="line-724"></a>        <span class='comment'>-- that it has exactly two child elements.</span>
+<a name="line-725"></a>        <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>wrapPattern2Two</span> <span class='varop'>$&lt;</span> <span class='varid'>getName</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>simplificationStep4</span><span class='layout'>)</span>
+<a name="line-726"></a>        <span class='varop'>`when`</span> 
+<a name="line-727"></a>        <span class='layout'>(</span>  <span class='varid'>isChoiceGroupInterleave</span>
+<a name="line-728"></a>           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-729"></a>           <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>i</span> <span class='varop'>&gt;</span> <span class='num'>2</span> <span class='varop'>||</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-730"></a>        <span class='layout'>)</span>
+<a name="line-731"></a>      <span class='layout'>)</span>
+<a name="line-732"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-733"></a>      <span class='layout'>(</span> <span class='comment'>-- A mixed element is transformed into an interleaving with a text element     </span>
+<a name="line-734"></a>        <span class='layout'>(</span> <span class='varid'>mkRngInterleave</span> 
+<a name="line-735"></a>          <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='str'>"mixed is transformed into an interleave"</span> <span class='layout'>)</span>
+<a name="line-736"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-737"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-738"></a>            <span class='varid'>mkRngText</span> 
+<a name="line-739"></a>            <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"new text-Pattern: mixed is transformed into "</span> <span class='varop'>++</span>
+<a name="line-740"></a>                                  <span class='str'>" an interleave with text"</span>
+<a name="line-741"></a>			     <span class='layout'>)</span>
+<a name="line-742"></a>            <span class='layout'>)</span>
+<a name="line-743"></a>          <span class='layout'>)</span>
+<a name="line-744"></a>        <span class='layout'>)</span>
+<a name="line-745"></a>        <span class='varop'>`when`</span>
+<a name="line-746"></a>        <span class='varid'>isRngMixed</span>
+<a name="line-747"></a>      <span class='layout'>)</span>
+<a name="line-748"></a>      <span class='varop'>&gt;&gt;&gt;</span>  
+<a name="line-749"></a>      <span class='layout'>(</span> <span class='comment'>-- An optional element is transformed into a choice with empty     </span>
+<a name="line-750"></a>        <span class='layout'>(</span> <span class='varid'>mkRngChoice</span> 
+<a name="line-751"></a>          <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='str'>"optional is transformed into a choice"</span> <span class='layout'>)</span>
+<a name="line-752"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-753"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-754"></a>            <span class='varid'>mkRngEmpty</span> 
+<a name="line-755"></a>            <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"new empty-Pattern: optional is transformed "</span> <span class='varop'>++</span>
+<a name="line-756"></a>                               <span class='str'>" into a choice with empty"</span>
+<a name="line-757"></a>			     <span class='layout'>)</span>
+<a name="line-758"></a>            <span class='layout'>)</span>
+<a name="line-759"></a>          <span class='layout'>)</span>
+<a name="line-760"></a>        <span class='layout'>)</span>
+<a name="line-761"></a>        <span class='varop'>`when`</span>
+<a name="line-762"></a>        <span class='varid'>isRngOptional</span>
+<a name="line-763"></a>      <span class='layout'>)</span>
+<a name="line-764"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-765"></a>      <span class='layout'>(</span> <span class='comment'>-- A zeroOrMore element is transformed into a choice between oneOrMore and empty</span>
+<a name="line-766"></a>        <span class='layout'>(</span> <span class='varid'>mkRngChoice</span> 
+<a name="line-767"></a>          <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='str'>"zeroOrMore is transformed into a choice"</span> <span class='layout'>)</span>
+<a name="line-768"></a>          <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRngOneOrMore</span> 
+<a name="line-769"></a>              <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"zeroOrMore is transformed into a "</span> <span class='varop'>++</span>
+<a name="line-770"></a>                                   <span class='str'>"choice between oneOrMore and empty"</span>
+<a name="line-771"></a>			       <span class='layout'>)</span>
+<a name="line-772"></a>              <span class='layout'>)</span>
+<a name="line-773"></a>              <span class='varid'>getChildren</span>
+<a name="line-774"></a>            <span class='layout'>)</span>
+<a name="line-775"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-776"></a>            <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> 
+<a name="line-777"></a>              <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"new empty-Pattern: zeroOrMore is transformed "</span> <span class='varop'>++</span>
+<a name="line-778"></a>                                   <span class='str'>"into a choice between oneOrMore and empty"</span>
+<a name="line-779"></a>			       <span class='layout'>)</span>
+<a name="line-780"></a>              <span class='layout'>)</span>
+<a name="line-781"></a>            <span class='layout'>)</span>
+<a name="line-782"></a>          <span class='layout'>)</span>
+<a name="line-783"></a>        <span class='layout'>)</span>
+<a name="line-784"></a>        <span class='varop'>`when`</span>
+<a name="line-785"></a>        <span class='varid'>isRngZeroOrMore</span>
+<a name="line-786"></a>      <span class='layout'>)</span>
+<a name="line-787"></a>    <span class='layout'>)</span>
+<a name="line-788"></a>  <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-789"></a>
+<a name="line-790"></a>
+<a name="line-791"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-792"></a>
+<a name="line-793"></a>
+<a name="line-794"></a><a name="restrictionsStep1"></a><span class='definition'>restrictionsStep1</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-795"></a><span class='definition'>restrictionsStep1</span> <span class='keyglyph'>=</span>
+<a name="line-796"></a>  <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span>
+<a name="line-797"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-798"></a>	  <span class='layout'>(</span> <span class='str'>"An except element that is a child of an anyName "</span> <span class='varop'>++</span>
+<a name="line-799"></a>            <span class='str'>"element must not have any anyName descendant elements"</span>
+<a name="line-800"></a>	  <span class='layout'>)</span>
+<a name="line-801"></a>	<span class='layout'>)</span>
+<a name="line-802"></a>        <span class='varop'>`when`</span> 
+<a name="line-803"></a>        <span class='layout'>(</span> <span class='varid'>isRngAnyName</span>
+<a name="line-804"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-805"></a>	  <span class='varid'>getChildren</span>
+<a name="line-806"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-807"></a>          <span class='varid'>isRngExcept</span>
+<a name="line-808"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-809"></a>          <span class='varid'>deep</span> <span class='varid'>isRngAnyName</span>
+<a name="line-810"></a>        <span class='layout'>)</span>
+<a name="line-811"></a>      <span class='layout'>)</span>
+<a name="line-812"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-813"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-814"></a>	  <span class='layout'>(</span> <span class='str'>"An except element that is a child of an nsName element "</span> <span class='varop'>++</span>
+<a name="line-815"></a>            <span class='str'>"must not have any nsName or anyName descendant elements."</span>
+<a name="line-816"></a>	  <span class='layout'>)</span>
+<a name="line-817"></a>        <span class='layout'>)</span>
+<a name="line-818"></a>        <span class='varop'>`when`</span> 
+<a name="line-819"></a>        <span class='layout'>(</span> <span class='varid'>isRngNsName</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='varop'>&gt;&gt;&gt;</span> 
+<a name="line-823"></a>          <span class='varid'>isRngExcept</span>
+<a name="line-824"></a>          <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-825"></a>          <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>isRngAnyName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngNsName</span><span class='layout'>)</span>
+<a name="line-826"></a>        <span class='layout'>)</span>
+<a name="line-827"></a>      <span class='layout'>)</span>
+<a name="line-828"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-829"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-830"></a>	  <span class='layout'>(</span> <span class='str'>"A name element that occurs as the first child or descendant of "</span> <span class='varop'>++</span>
+<a name="line-831"></a>            <span class='str'>"an attribute and has an ns attribute with an empty value must "</span> <span class='varop'>++</span>
+<a name="line-832"></a>            <span class='str'>"not have content equal to \"xmlns\""</span>
+<a name="line-833"></a>	  <span class='layout'>)</span>
+<a name="line-834"></a>        <span class='layout'>)</span>
+<a name="line-835"></a>        <span class='varop'>`when`</span> 
+<a name="line-836"></a>        <span class='layout'>(</span> <span class='varid'>isRngAttribute</span>
+<a name="line-837"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-838"></a>          <span class='varid'>firstChild</span>
+<a name="line-839"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-840"></a>          <span class='layout'>(</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isRngName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-841"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-842"></a>          <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getRngAttrNs</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>null</span><span class='layout'>)</span>
+<a name="line-843"></a>            <span class='varop'>`guards`</span>
+<a name="line-844"></a>            <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"xmlns"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-845"></a>          <span class='layout'>)</span>
+<a name="line-846"></a>        <span class='layout'>)</span>
+<a name="line-847"></a>      <span class='layout'>)</span> 
+<a name="line-848"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-849"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-850"></a>	  <span class='layout'>(</span> <span class='str'>"A name or nsName element that occurs as the first child or "</span> <span class='varop'>++</span>
+<a name="line-851"></a>            <span class='str'>"descendant of an attribute must not have an ns attribute "</span> <span class='varop'>++</span>
+<a name="line-852"></a>            <span class='str'>"with value http://www.w3.org/2000/xmlns"</span>
+<a name="line-853"></a>	  <span class='layout'>)</span>
+<a name="line-854"></a>        <span class='layout'>)</span>
+<a name="line-855"></a>        <span class='varop'>`when`</span> 
+<a name="line-856"></a>        <span class='layout'>(</span> <span class='varid'>isRngAttribute</span>
+<a name="line-857"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-858"></a>          <span class='varid'>firstChild</span>
+<a name="line-859"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-860"></a>          <span class='layout'>(</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isNameNsName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-861"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-862"></a>          <span class='varid'>getRngAttrNs</span>
+<a name="line-863"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-864"></a>          <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>compareURI</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>
+<a name="line-865"></a>        <span class='layout'>)</span>
+<a name="line-866"></a>      <span class='layout'>)</span> 
+<a name="line-867"></a>      <span class='varop'>&gt;&gt;&gt;</span> <span class='comment'>-- A data or value element must be correct in its use of datatypes.</span>
+<a name="line-868"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>checkDatatype</span> <span class='varop'>$&lt;&lt;</span> <span class='varid'>getRngAttrDatatypeLibrary</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getRngAttrType</span> <span class='layout'>)</span>
+<a name="line-869"></a>        <span class='varop'>`when`</span>
+<a name="line-870"></a>        <span class='layout'>(</span> <span class='varid'>isRngData</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span> <span class='layout'>)</span>
+<a name="line-871"></a>      <span class='layout'>)</span>
+<a name="line-872"></a>    <span class='layout'>)</span>
+<a name="line-873"></a>  <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-874"></a>  <span class='keyword'>where</span> 
+<a name="line-875"></a>
+<a name="line-876"></a>  <span class='comment'>-- the datatypeLibrary attribute must identify a valid datatype library</span>
+<a name="line-877"></a>
+<a name="line-878"></a>  <span class='varid'>checkDatatype</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-879"></a>  <span class='varid'>checkDatatype</span> <span class='varid'>libName</span> <span class='varid'>typeName</span> 
+<a name="line-880"></a>      <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>libName</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>datatypeLibraries</span><span class='layout'>)</span>    
+<a name="line-881"></a>        <span class='layout'>(</span> <span class='varid'>checkType</span> <span class='varid'>libName</span> <span class='varid'>typeName</span> <span class='varid'>allowedDataTypes</span> <span class='layout'>)</span>
+<a name="line-882"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-883"></a>	  <span class='layout'>(</span> <span class='str'>"DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>libName</span> <span class='varop'>++</span> <span class='str'>" not found"</span> <span class='layout'>)</span>
+<a name="line-884"></a>	<span class='layout'>)</span>
+<a name="line-885"></a>    <span class='keyword'>where</span>
+<a name="line-886"></a>    <span class='conid'>DTC</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>allowedDataTypes</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>libName</span> <span class='varid'>datatypeLibraries</span>
+<a name="line-887"></a>            
+<a name="line-888"></a>  <span class='comment'>-- the type attribute must identify a datatype within the datatype library identified</span>
+<a name="line-889"></a>  <span class='comment'>-- by the value of the datatypeLibrary attribute.</span>
+<a name="line-890"></a>
+<a name="line-891"></a>  <span class='varid'>checkType</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AllowedDatatypes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-892"></a>  <span class='varid'>checkType</span> <span class='varid'>libName</span> <span class='varid'>typeName</span> <span class='varid'>allowedTypes</span>
+<a name="line-893"></a>      <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>typeName</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>allowedTypes</span><span class='layout'>)</span>
+<a name="line-894"></a>        <span class='layout'>(</span> <span class='varid'>checkParams</span> <span class='varid'>typeName</span> <span class='varid'>libName</span> <span class='varid'>getParams</span> <span class='varop'>$&lt;</span> 
+<a name="line-895"></a>          <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngParam</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-896"></a>        <span class='layout'>)</span>
+<a name="line-897"></a>       <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-898"></a>	 <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typeName</span> <span class='varop'>++</span> 
+<a name="line-899"></a>           <span class='str'>" not declared for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>libName</span>
+<a name="line-900"></a>	 <span class='layout'>)</span>
+<a name="line-901"></a>       <span class='layout'>)</span>
+<a name="line-902"></a>    <span class='keyword'>where</span>
+<a name="line-903"></a>    <span class='varid'>getParams</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>typeName</span> <span class='varid'>allowedTypes</span>
+<a name="line-904"></a>            
+<a name="line-905"></a>  <span class='comment'>-- For a data element, the parameter list must be one that is allowed by the datatype</span>
+<a name="line-906"></a>
+<a name="line-907"></a>  <span class='varid'>checkParams</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Uri</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AllowedParams</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>ParamName</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-908"></a>  <span class='varid'>checkParams</span> <span class='varid'>typeName</span> <span class='varid'>libName</span> <span class='varid'>allowedParams</span> <span class='varid'>paramNames</span>
+<a name="line-909"></a>      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-910"></a>	  <span class='layout'>(</span> <span class='str'>"Param(s): "</span> <span class='varop'>++</span> <span class='varid'>formatStringListQuot</span> <span class='varid'>diff</span> <span class='varop'>++</span> 
+<a name="line-911"></a>            <span class='str'>" not allowed for Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typeName</span> <span class='varop'>++</span> 
+<a name="line-912"></a>            <span class='str'>" in Library "</span> <span class='varop'>++</span>
+<a name="line-913"></a>	    <span class='varid'>show</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>libName</span>
+<a name="line-914"></a>		   <span class='keyword'>then</span> <span class='varid'>relaxNamespace</span>
+<a name="line-915"></a>		   <span class='keyword'>else</span> <span class='varid'>libName</span>
+<a name="line-916"></a>		 <span class='layout'>)</span>
+<a name="line-917"></a>	  <span class='layout'>)</span>
+<a name="line-918"></a>	<span class='layout'>)</span>
+<a name="line-919"></a>        <span class='varop'>`when`</span>
+<a name="line-920"></a>	<span class='layout'>(</span> <span class='varid'>isRngData</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>diff</span> <span class='varop'>/=</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>)</span> 
+<a name="line-921"></a>      <span class='keyword'>where</span>
+<a name="line-922"></a>      <span class='varid'>diff</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>param</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>param</span> <span class='varid'>allowedParams</span><span class='layout'>)</span> <span class='varid'>paramNames</span>
+<a name="line-923"></a>
+<a name="line-924"></a>          
+<a name="line-925"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-926"></a>
+<a name="line-927"></a>
+<a name="line-928"></a><a name="simplificationStep5"></a><span class='comment'>{-
+<a name="line-929"></a>- 4.17. combine attribute
+<a name="line-930"></a>    - For each grammar element, all define elements with the same name are combined together.
+<a name="line-931"></a>    - Similarly, for each grammar element all start elements are combined together.
+<a name="line-932"></a>- 4.18. grammar element
+<a name="line-933"></a>    - A grammar must have a start child element.
+<a name="line-934"></a>    - Transform the top-level pattern p into &lt;grammar&gt;&lt;start&gt;p&lt;/start&gt;&lt;/grammar&gt;.
+<a name="line-935"></a>    - Rename define elements so that no two define elements anywhere in the schema 
+<a name="line-936"></a>      have the same name. To rename a define element, change the value of its name
+<a name="line-937"></a>      attribute and change the value of the name attribute of all ref and parentRef
+<a name="line-938"></a>      elements that refer to that define element.
+<a name="line-939"></a>    - Move all define elements to be children of the top-level grammar element
+<a name="line-940"></a>    - Replace each nested grammar element by the child of its start element
+<a name="line-941"></a>    - Rename each parentRef element to ref.
+<a name="line-942"></a>-}</span>
+<a name="line-943"></a><span class='definition'>simplificationStep5</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-944"></a><span class='definition'>simplificationStep5</span>
+<a name="line-945"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processTopDown</span>
+<a name="line-946"></a>	<span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span><span class='layout'>)</span>               
+<a name="line-947"></a>		<span class='varop'>&lt;+&gt;</span>
+<a name="line-948"></a>		<span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='str'>"A grammar must have a start child element"</span> <span class='layout'>)</span>
+<a name="line-949"></a>              <span class='layout'>)</span>
+<a name="line-950"></a>              <span class='varop'>`when`</span>
+<a name="line-951"></a>              <span class='layout'>(</span><span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngStart</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-952"></a>            <span class='layout'>)</span>
+<a name="line-953"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-954"></a>            <span class='comment'>-- For each grammar element, all define elements with the same </span>
+<a name="line-955"></a>            <span class='comment'>-- name are combined together.</span>
+<a name="line-956"></a>            <span class='layout'>(</span> <span class='varid'>combinePatternList</span> <span class='str'>"define"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"define"</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>nub</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-957"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-958"></a>            <span class='comment'>-- Similarly, for each grammar element all start elements </span>
+<a name="line-959"></a>            <span class='comment'>-- are combined together.</span>
+<a name="line-960"></a>            <span class='layout'>(</span> <span class='varid'>combinePatternList</span> <span class='str'>"start"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"start"</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>nub</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-961"></a>	  <span class='layout'>)</span>  
+<a name="line-962"></a>	  <span class='varop'>`when`</span>
+<a name="line-963"></a>	  <span class='varid'>isRngGrammar</span>
+<a name="line-964"></a>	<span class='layout'>)</span>
+<a name="line-965"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-966"></a>	<span class='layout'>(</span> <span class='comment'>-- transform the top-level pattern p into &lt;grammar&gt;&lt;start&gt;p&lt;/start&gt;&lt;/grammar&gt;.</span>
+<a name="line-967"></a>	  <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
+<a name="line-968"></a>	    <span class='layout'>(</span> <span class='varid'>mkRngGrammar</span> <span class='varid'>none</span> 
+<a name="line-969"></a>              <span class='layout'>(</span> <span class='varid'>mkRngStart</span> <span class='varid'>none</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-970"></a>            <span class='layout'>)</span>
+<a name="line-971"></a>	  <span class='layout'>)</span>
+<a name="line-972"></a>	  <span class='varop'>`when`</span>
+<a name="line-973"></a>	  <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngGrammar</span><span class='layout'>)</span>
+<a name="line-974"></a>	<span class='layout'>)</span>
+<a name="line-975"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-976"></a>	<span class='layout'>(</span> <span class='varid'>renameDefines</span> <span class='varop'>$&lt;&lt;</span>
+<a name="line-977"></a>	  <span class='layout'>(</span> <span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"define"</span>
+<a name="line-978"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-979"></a>            <span class='layout'>(</span><span class='varid'>createUniqueNames</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getAndSetCounter</span> <span class='str'>"define_id"</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>read</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-980"></a>            <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-981"></a>            <span class='varid'>constA</span> <span class='conid'>[]</span>
+<a name="line-982"></a>          <span class='layout'>)</span>
+<a name="line-983"></a>	<span class='layout'>)</span>
+<a name="line-984"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-985"></a>	<span class='comment'>-- Move all define elements to be children of the top-level grammar element</span>
+<a name="line-986"></a>	<span class='layout'>(</span> <span class='varid'>processChildren</span>
+<a name="line-987"></a>	  <span class='layout'>(</span> <span class='comment'>-- root node</span>
+<a name="line-988"></a>            <span class='varid'>processChildren</span>
+<a name="line-989"></a>	    <span class='layout'>(</span> <span class='comment'>-- the first grammar pattern remains unchanged</span>
+<a name="line-990"></a>	      <span class='layout'>(</span> <span class='varid'>deleteAllDefines</span>
+<a name="line-991"></a>		<span class='varop'>&lt;+&gt;</span>
+<a name="line-992"></a>		<span class='layout'>(</span> <span class='varid'>getAllDefines</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processChildren</span> <span class='varid'>deleteAllDefines</span> <span class='layout'>)</span>
+<a name="line-993"></a>              <span class='layout'>)</span>
+<a name="line-994"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-995"></a>              <span class='varid'>processTopDown</span>
+<a name="line-996"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='comment'>-- Replace each nested grammar element by the child of its start element</span>
+<a name="line-997"></a>		  <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngStart</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>
+<a name="line-998"></a>		  <span class='varop'>`when`</span>
+<a name="line-999"></a>		  <span class='varid'>isRngGrammar</span>
+<a name="line-1000"></a>		<span class='layout'>)</span>
+<a name="line-1001"></a>		<span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1002"></a>		<span class='layout'>(</span> <span class='comment'>-- Rename each parentRef element to ref.</span>
+<a name="line-1003"></a>		  <span class='layout'>(</span> <span class='varid'>setRngNameRef</span>
+<a name="line-1004"></a>		    <span class='varop'>`when`</span>
+<a name="line-1005"></a>		    <span class='varid'>isRngParentRef</span>
+<a name="line-1006"></a>		  <span class='layout'>)</span>
+<a name="line-1007"></a>		<span class='layout'>)</span>
+<a name="line-1008"></a>              <span class='layout'>)</span>  
+<a name="line-1009"></a>	    <span class='layout'>)</span>
+<a name="line-1010"></a>	  <span class='layout'>)</span>
+<a name="line-1011"></a>	<span class='layout'>)</span>
+<a name="line-1012"></a>      <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1013"></a>    <span class='keyword'>where</span>
+<a name="line-1014"></a>    <span class='varid'>getPatternNamesInGrammar</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</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='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-1015"></a>    <span class='varid'>getPatternNamesInGrammar</span> <span class='varid'>pattern</span>
+<a name="line-1016"></a>	<span class='keyglyph'>=</span> <span class='varid'>processChildren</span>
+<a name="line-1017"></a>	  <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isRngGrammar</span> <span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-1018"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1019"></a>	  <span class='varid'>listA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='varid'>pattern</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1020"></a>		  <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1021"></a>		  <span class='varid'>getRngAttrName</span>
+<a name="line-1022"></a>		<span class='layout'>)</span>
+<a name="line-1023"></a>
+<a name="line-1024"></a>    <span class='varid'>createUniqueNames</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>RefList</span>
+<a name="line-1025"></a>    <span class='varid'>createUniqueNames</span> <span class='varid'>num</span>
+<a name="line-1026"></a>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>unique</span> <span class='varid'>l</span> <span class='varid'>num</span><span class='layout'>)</span>
+<a name="line-1027"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1028"></a>	  <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>setParamInt</span> <span class='str'>"define_id"</span> <span class='varop'>$&lt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>max</span> <span class='varid'>num</span> <span class='varop'>.</span> <span class='varid'>getNextValue</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1029"></a>	<span class='keyword'>where</span>
+<a name="line-1030"></a>	<span class='varid'>unique</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='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RefList</span>
+<a name="line-1031"></a>	<span class='varid'>unique</span> <span class='conid'>[]</span>     <span class='keyword'>_</span>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-1032"></a>	<span class='varid'>unique</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'>num'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>num'</span><span class='layout'>)</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>unique</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>num'</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1033"></a>	<span class='varid'>getNextValue</span> <span class='keyglyph'>::</span> <span class='conid'>RefList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-1034"></a>	<span class='varid'>getNextValue</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-1035"></a>	<span class='varid'>getNextValue</span> <span class='varid'>rl</span> <span class='keyglyph'>=</span> <span class='varid'>maximum</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varop'>.</span> <span class='varid'>snd</span><span class='layout'>)</span> <span class='varid'>rl</span><span class='layout'>)</span> <span class='varop'>+</span> <span class='num'>1</span>    
+<a name="line-1036"></a>
+<a name="line-1037"></a>    <span class='varid'>renameDefines</span> <span class='keyglyph'>::</span> <span class='conid'>RefList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RefList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1038"></a>    <span class='varid'>renameDefines</span> <span class='varid'>ref</span> <span class='varid'>parentRef</span>
+<a name="line-1039"></a>	<span class='keyglyph'>=</span> <span class='varid'>processChildren</span>
+<a name="line-1040"></a>	  <span class='layout'>(</span> <span class='varid'>choiceA</span>
+<a name="line-1041"></a>	    <span class='keyglyph'>[</span> <span class='varid'>isRngDefine</span>
+<a name="line-1042"></a>              <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='comment'>-- the original name is needed for error messages</span>
+<a name="line-1043"></a>                    <span class='varid'>addAttr</span> <span class='varid'>defineOrigName</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1044"></a>                    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1045"></a>                    <span class='comment'>-- rename the define-pattern</span>
+<a name="line-1046"></a>                    <span class='comment'>-- the new name is looked up in the ref table</span>
+<a name="line-1047"></a>                    <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1048"></a>					<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1049"></a>					<span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>ref</span><span class='layout'>)</span>
+<a name="line-1050"></a>                                      <span class='layout'>)</span>
+<a name="line-1051"></a>                    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1052"></a>                    <span class='varid'>renameDefines</span> <span class='varid'>ref</span> <span class='varid'>parentRef</span>
+<a name="line-1053"></a>		  <span class='layout'>)</span>
+<a name="line-1054"></a>	    <span class='layout'>,</span> <span class='varid'>isRngGrammar</span> 
+<a name="line-1055"></a>              <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>renameDefines</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='comment'>-- compute all define names in the grammar</span>
+<a name="line-1056"></a>					  <span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"define"</span>
+<a name="line-1057"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1058"></a>					  <span class='comment'>-- create a new (unique) name for all define names</span>
+<a name="line-1059"></a>					  <span class='layout'>(</span><span class='varid'>createUniqueNames</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='str'>"define_id"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1060"></a>					<span class='layout'>)</span>
+<a name="line-1061"></a>					<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1062"></a>					<span class='comment'>-- set the old ref list to be the new parentRef list</span>
+<a name="line-1063"></a>					<span class='varid'>constA</span> <span class='varid'>ref</span>
+<a name="line-1064"></a>				      <span class='layout'>)</span>
+<a name="line-1065"></a>		  <span class='layout'>)</span>
+<a name="line-1066"></a>	    <span class='layout'>,</span> <span class='varid'>isRngRef</span>
+<a name="line-1067"></a>              <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1068"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1069"></a>			  <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>elem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>ref</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1070"></a>			<span class='layout'>)</span>
+<a name="line-1071"></a>                    <span class='layout'>(</span> <span class='comment'>-- the original name is needed for error messages</span>
+<a name="line-1072"></a>                      <span class='varid'>addAttr</span> <span class='varid'>defineOrigName</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1073"></a>                      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1074"></a>                      <span class='comment'>-- rename the ref-pattern</span>
+<a name="line-1075"></a>                      <span class='comment'>-- the new name is looked up in the ref table</span>
+<a name="line-1076"></a>                      <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1077"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1078"></a>					  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>ref</span><span class='layout'>)</span>
+<a name="line-1079"></a>					<span class='layout'>)</span>
+<a name="line-1080"></a>                    <span class='layout'>)</span>
+<a name="line-1081"></a>                    <span class='layout'>(</span> <span class='comment'>-- the referenced pattern does not exist in the schema</span>
+<a name="line-1082"></a>                      <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1083"></a>					   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1084"></a>					   <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Define-Pattern with name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1085"></a>							 <span class='str'>" referenced in ref-Pattern not "</span> <span class='varop'>++</span>
+<a name="line-1086"></a>							 <span class='str'>"found in schema"</span>
+<a name="line-1087"></a>						       <span class='layout'>)</span>
+<a name="line-1088"></a>                                               <span class='layout'>)</span>
+<a name="line-1089"></a>					 <span class='layout'>)</span>
+<a name="line-1090"></a>                    <span class='layout'>)</span>
+<a name="line-1091"></a>		  <span class='layout'>)</span>
+<a name="line-1092"></a>	    <span class='layout'>,</span> <span class='varid'>isRngParentRef</span> <span class='comment'>-- same as ref, but the parentRef list is used</span>
+<a name="line-1093"></a>              <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1094"></a>			  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1095"></a>			  <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>elem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>parentRef</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1096"></a>			<span class='layout'>)</span>
+<a name="line-1097"></a>                    <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>defineOrigName</span> <span class='varop'>$&lt;</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1098"></a>                      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1099"></a>                      <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1100"></a>					  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1101"></a>					  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>parentRef</span><span class='layout'>)</span>
+<a name="line-1102"></a>					<span class='layout'>)</span>
+<a name="line-1103"></a>                    <span class='layout'>)</span>
+<a name="line-1104"></a>                    <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span>
+<a name="line-1105"></a>		      <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1106"></a>			<span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1107"></a>			<span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Define-Pattern with name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1108"></a>                                      <span class='str'>" referenced in parentRef-Pattern "</span> <span class='varop'>++</span>
+<a name="line-1109"></a>                                      <span class='str'>"not found in schema"</span>
+<a name="line-1110"></a>                                    <span class='layout'>)</span>
+<a name="line-1111"></a>			    <span class='layout'>)</span>
+<a name="line-1112"></a>                      <span class='layout'>)</span>
+<a name="line-1113"></a>                    <span class='layout'>)</span>
+<a name="line-1114"></a>		  <span class='layout'>)</span>
+<a name="line-1115"></a>	    <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-1116"></a>	      <span class='conop'>:-&gt;</span> <span class='varid'>renameDefines</span> <span class='varid'>ref</span> <span class='varid'>parentRef</span>
+<a name="line-1117"></a>            <span class='keyglyph'>]</span>
+<a name="line-1118"></a>	  <span class='layout'>)</span>
+<a name="line-1119"></a>
+<a name="line-1120"></a>
+<a name="line-1121"></a>    <span class='varid'>getAllDefines</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1122"></a>    <span class='varid'>getAllDefines</span> <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='varid'>isRngDefine</span>
+<a name="line-1123"></a>
+<a name="line-1124"></a>    <span class='varid'>deleteAllDefines</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>      
+<a name="line-1125"></a>    <span class='varid'>deleteAllDefines</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='varop'>$</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isRngDefine</span>
+<a name="line-1126"></a>
+<a name="line-1127"></a>    <span class='varid'>combinePatternList</span> <span class='keyglyph'>::</span> <span class='conid'>String</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1128"></a>    <span class='varid'>combinePatternList</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>
+<a name="line-1129"></a>    <span class='varid'>combinePatternList</span> <span class='varid'>pattern</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-1130"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='varop'>$</span> <span class='varid'>combinePattern</span> <span class='varid'>pattern</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-1131"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1132"></a>	  <span class='varid'>combinePatternList</span> <span class='varid'>pattern</span> <span class='varid'>xs</span>
+<a name="line-1133"></a>        
+<a name="line-1134"></a>    <span class='comment'>-- combine a define- or start-pattern (first parameter) with a</span>
+<a name="line-1135"></a>    <span class='comment'>-- specific name (second parameter)</span>
+<a name="line-1136"></a>    <span class='varid'>combinePattern</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> 
+<a name="line-1137"></a>    <span class='varid'>combinePattern</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1138"></a>	<span class='keyglyph'>=</span> <span class='varid'>createPatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1139"></a>	  <span class='varop'>&lt;+&gt;</span>
+<a name="line-1140"></a>	  <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deletePatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span><span class='layout'>)</span>           
+<a name="line-1141"></a>
+<a name="line-1142"></a>    <span class='varid'>createPatternElems</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> 
+<a name="line-1143"></a>    <span class='varid'>createPatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> 
+<a name="line-1144"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getRngAttrCombine</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1145"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1146"></a>              <span class='varid'>checkPatternCombine</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1147"></a>            <span class='layout'>)</span> 
+<a name="line-1148"></a>            <span class='comment'>-- After determining this unique value, the combine attributes are removed.</span>
+<a name="line-1149"></a>            <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1150"></a>            <span class='layout'>(</span><span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>removeAttr</span> <span class='str'>"combine"</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>                      
+<a name="line-1151"></a>          <span class='varop'>&gt;&gt;&gt;</span> <span class='comment'>-- ((errorCode::Int,errorMessage::String), result::XmlTrees)</span>
+<a name="line-1152"></a>          <span class='varid'>choiceA</span>
+<a name="line-1153"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>code</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>-&gt;</span> <span class='varid'>code</span> <span class='varop'>==</span> <span class='num'>0</span><span class='layout'>)</span>
+<a name="line-1154"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1155"></a>	    <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1156"></a>	  <span class='layout'>,</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>code</span><span class='layout'>,</span><span class='varid'>str</span><span class='layout'>)</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>code</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>str</span> <span class='varop'>==</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-1157"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1158"></a>	    <span class='varid'>arrL</span> <span class='varid'>snd</span>
+<a name="line-1159"></a>	  <span class='layout'>,</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>code</span><span class='layout'>,</span><span class='varid'>str</span><span class='layout'>)</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>code</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>str</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-1160"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1161"></a>	    <span class='layout'>(</span> <span class='varid'>createPatternElem</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varop'>$&lt;&lt;</span> 
+<a name="line-1162"></a>              <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>snd</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-1163"></a>            <span class='layout'>)</span>
+<a name="line-1164"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-1165"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-1166"></a>	    <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-1167"></a>	      <span class='layout'>(</span> <span class='str'>"Can't create Pattern: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pattern</span> <span class='varop'>++</span> 
+<a name="line-1168"></a>                <span class='str'>" with name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" in createPatternElems"</span>
+<a name="line-1169"></a>	      <span class='layout'>)</span>
+<a name="line-1170"></a>            <span class='layout'>)</span>
+<a name="line-1171"></a>          <span class='keyglyph'>]</span>
+<a name="line-1172"></a>
+<a name="line-1173"></a>    <span class='varid'>createPatternElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>  
+<a name="line-1174"></a>    <span class='varid'>createPatternElem</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varid'>combine</span> <span class='varid'>trees</span>
+<a name="line-1175"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='varid'>pattern</span> <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='str'>"name"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-1176"></a>	  <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRngElement</span> <span class='varid'>combine</span> <span class='varid'>none</span> 
+<a name="line-1177"></a>              <span class='layout'>(</span><span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>trees</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-1178"></a>            <span class='layout'>)</span>
+<a name="line-1179"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1180"></a>            <span class='varid'>wrapPattern2Two</span> <span class='varid'>combine</span>
+<a name="line-1181"></a>	  <span class='layout'>)</span>
+<a name="line-1182"></a>                                         
+<a name="line-1183"></a>    <span class='varid'>checkPatternCombine</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</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='varid'>a</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>
+<a name="line-1184"></a>    <span class='varid'>checkPatternCombine</span> <span class='varid'>pattern</span> <span class='varid'>name</span> 
+<a name="line-1185"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-1186"></a>	  <span class='keyglyph'>[</span> <span class='comment'>-- just one pattern with that name -&gt; ok, no combine is needed</span>
+<a name="line-1187"></a>            <span class='layout'>(</span><span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>length</span> <span class='varid'>cl</span> <span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1188"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-1189"></a>	    <span class='varid'>constA</span> <span class='layout'>(</span><span class='num'>1</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-1190"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varop'>$</span> <span class='varid'>elemIndices</span> <span class='str'>""</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varop'>&gt;</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-1191"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1192"></a>	    <span class='varid'>constA</span> <span class='layout'>(</span> <span class='num'>0</span>
+<a name="line-1193"></a>		   <span class='layout'>,</span> <span class='str'>"More than one "</span> <span class='varop'>++</span> <span class='varid'>pattern</span> <span class='varop'>++</span> <span class='str'>"-Pattern: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> 
+<a name="line-1194"></a>                     <span class='str'>" without an combine-attribute in the same grammar"</span>
+<a name="line-1195"></a>		   <span class='layout'>)</span>
+<a name="line-1196"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varop'>$</span> <span class='varid'>nub</span> <span class='varop'>$</span> <span class='varid'>deleteBy</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='str'>""</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varop'>&gt;</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-1197"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1198"></a>	    <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='num'>0</span>
+<a name="line-1199"></a>			 <span class='layout'>,</span> <span class='str'>"Different combine-Attributes: "</span> <span class='varop'>++</span> 
+<a name="line-1200"></a>                           <span class='layout'>(</span><span class='varid'>formatStringListQuot</span> <span class='varop'>$</span> <span class='varid'>noDoubles</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-1201"></a>                           <span class='str'>" for the "</span> <span class='varop'>++</span> <span class='varid'>pattern</span> <span class='varop'>++</span> <span class='str'>"-Pattern "</span> <span class='varop'>++</span>
+<a name="line-1202"></a>                           <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" in the same grammar"</span>
+<a name="line-1203"></a>			 <span class='layout'>)</span>
+<a name="line-1204"></a>                <span class='layout'>)</span>
+<a name="line-1205"></a>	  <span class='layout'>,</span> <span class='comment'>-- ok -&gt; combine value is returned</span>
+<a name="line-1206"></a>            <span class='varid'>this</span>
+<a name="line-1207"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-1208"></a>	    <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='num'>1</span><span class='layout'>,</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>find</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1209"></a>	  <span class='keyglyph'>]</span>
+<a name="line-1210"></a>
+<a name="line-1211"></a>    <span class='varid'>isElemWithNameValue</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1212"></a>    <span class='varid'>isElemWithNameValue</span> <span class='varid'>ename</span> <span class='varid'>nvalue</span>
+<a name="line-1213"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isElem</span>
+<a name="line-1214"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1215"></a>	    <span class='varid'>hasRngName</span> <span class='varid'>ename</span>
+<a name="line-1216"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1217"></a>	    <span class='varid'>getRngAttrName</span>
+<a name="line-1218"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1219"></a>	    <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nvalue</span><span class='layout'>)</span>
+<a name="line-1220"></a>	  <span class='layout'>)</span>
+<a name="line-1221"></a>          <span class='varop'>`guards`</span> <span class='varid'>this</span>
+<a name="line-1222"></a>
+<a name="line-1223"></a>    <span class='varid'>getElems</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1224"></a>    <span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1225"></a>	<span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-1226"></a>	  <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1227"></a>	  <span class='varid'>choiceA</span>
+<a name="line-1228"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isElemWithNameValue</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1229"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-1230"></a>	    <span class='layout'>(</span><span class='varid'>this</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-1231"></a>	  <span class='layout'>,</span> <span class='varid'>isRngGrammar</span>
+<a name="line-1232"></a>	    <span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-1233"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-1234"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1235"></a>	    <span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1236"></a>	  <span class='keyglyph'>]</span>
+<a name="line-1237"></a>
+<a name="line-1238"></a>    <span class='varid'>deletePatternElems</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</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='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1239"></a>    <span class='varid'>deletePatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1240"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-1241"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isElemWithNameValue</span> <span class='varid'>pattern</span> <span class='varid'>name</span>
+<a name="line-1242"></a>            <span class='conop'>:-&gt;</span>
+<a name="line-1243"></a>	    <span class='varid'>none</span>
+<a name="line-1244"></a>	  <span class='layout'>,</span> <span class='varid'>isRngGrammar</span>
+<a name="line-1245"></a>            <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-1246"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-1247"></a>	    <span class='conop'>:-&gt;</span>
+<a name="line-1248"></a>	    <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>deletePatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='layout'>)</span>
+<a name="line-1249"></a>	  <span class='keyglyph'>]</span>
+<a name="line-1250"></a>
+<a name="line-1251"></a>
+<a name="line-1252"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1253"></a>
+<a name="line-1254"></a>
+<a name="line-1255"></a><a name="simplificationStep6"></a><span class='comment'>{-
+<a name="line-1256"></a>- 4.19. define and ref elements
+<a name="line-1257"></a>    - Remove any define element that is not reachable.
+<a name="line-1258"></a>    - Now, for each element element that is not the child of a define element,
+<a name="line-1259"></a>      add a define element to the grammar element, 
+<a name="line-1260"></a>      and replace the element element by a ref element referring
+<a name="line-1261"></a>      to the added define element.
+<a name="line-1262"></a>    - For each ref element that is expandable and is a descendant
+<a name="line-1263"></a>      of a start element or an element element, expand it by replacing
+<a name="line-1264"></a>      the ref element by the child of the define element to which it refers
+<a name="line-1265"></a>    - This must not result in a loop.
+<a name="line-1266"></a>    - Remove any define element whose child is not an element element.
+<a name="line-1267"></a>-}</span>
+<a name="line-1268"></a><span class='definition'>simplificationStep6</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1269"></a><span class='definition'>simplificationStep6</span> <span class='keyglyph'>=</span>
+<a name="line-1270"></a>  <span class='layout'>(</span> <span class='comment'>-- Remove any define element that is not reachable.</span>
+<a name="line-1271"></a>    <span class='layout'>(</span><span class='varid'>removeUnreachableDefines</span> <span class='varop'>$&lt;&lt;&lt;</span> <span class='varid'>getAllDeepDefines</span> 
+<a name="line-1272"></a>                                   <span class='varop'>&amp;&amp;&amp;</span> 
+<a name="line-1273"></a>                                   <span class='varid'>constA</span> <span class='conid'>[]</span>
+<a name="line-1274"></a>                                   <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1275"></a>                                   <span class='varid'>getRefsFromStartPattern</span>
+<a name="line-1276"></a>    <span class='layout'>)</span>
+<a name="line-1277"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1278"></a>    <span class='comment'>-- for each element element that is not the child of a define element,</span>
+<a name="line-1279"></a>    <span class='comment'>-- add a define element to the grammar element, </span>
+<a name="line-1280"></a>    <span class='layout'>(</span> <span class='varid'>processElements</span> <span class='conid'>False</span>
+<a name="line-1281"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1282"></a>      <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>insertChildrenAt</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>getParam</span> <span class='str'>"elementTable"</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1283"></a>    <span class='layout'>)</span>
+<a name="line-1284"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1285"></a>    <span class='comment'>-- For each ref element that is expandable... </span>
+<a name="line-1286"></a>    <span class='comment'>-- Remove any define element whose child is not an element element      </span>
+<a name="line-1287"></a>    <span class='layout'>(</span><span class='varid'>replaceExpandableRefs</span> <span class='conid'>[]</span> <span class='varop'>$&lt;</span> <span class='varid'>getExpandableDefines</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deleteExpandableDefines</span><span class='layout'>)</span>
+<a name="line-1288"></a>  <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1289"></a>  <span class='keyword'>where</span>
+<a name="line-1290"></a>  <span class='varid'>replaceExpandableRefs</span> <span class='keyglyph'>::</span> <span class='conid'>RefList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1291"></a>  <span class='varid'>replaceExpandableRefs</span> <span class='varid'>foundNames</span> <span class='varid'>defTable</span>
+<a name="line-1292"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-1293"></a>        <span class='varid'>isRngRef</span>
+<a name="line-1294"></a>             <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1295"></a>                        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1296"></a>                        <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>elem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>foundNames</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1297"></a>                      <span class='layout'>)</span>
+<a name="line-1298"></a>                    <span class='comment'>-- we have found a loop if the name is in the list</span>
+<a name="line-1299"></a>                    <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>defineOrigName</span>
+<a name="line-1300"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1301"></a>                                          <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Recursion in ref-Pattern: "</span> <span class='varop'>++</span> 
+<a name="line-1302"></a>							<span class='varid'>formatStringListArr</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>n</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>snd</span> <span class='varid'>foundNames</span><span class='layout'>)</span>
+<a name="line-1303"></a>						      <span class='layout'>)</span>
+<a name="line-1304"></a>                                              <span class='layout'>)</span>
+<a name="line-1305"></a>                                        <span class='layout'>)</span>
+<a name="line-1306"></a>                    <span class='layout'>)</span>
+<a name="line-1307"></a>                    <span class='layout'>(</span><span class='varid'>replaceRef</span> <span class='varop'>$&lt;&lt;</span> <span class='varid'>getRngAttrName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getAttrValue</span> <span class='varid'>defineOrigName</span><span class='layout'>)</span>
+<a name="line-1308"></a>                 <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-1309"></a>        <span class='varid'>this</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varop'>$</span> <span class='varid'>replaceExpandableRefs</span> <span class='varid'>foundNames</span> <span class='varid'>defTable</span><span class='layout'>)</span>
+<a name="line-1310"></a>      <span class='keyglyph'>]</span>
+<a name="line-1311"></a>    <span class='keyword'>where</span>                                               
+<a name="line-1312"></a>    <span class='varid'>replaceRef</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>OldName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1313"></a>    <span class='varid'>replaceRef</span> <span class='varid'>name</span> <span class='varid'>oldname</span>
+<a name="line-1314"></a>      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>defTable</span><span class='layout'>)</span>
+<a name="line-1315"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1316"></a>          <span class='varid'>getChildren</span>
+<a name="line-1317"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1318"></a>          <span class='varid'>replaceExpandableRefs</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>name</span><span class='layout'>,</span><span class='varid'>oldname</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>foundNames</span><span class='layout'>)</span> <span class='varid'>defTable</span>
+<a name="line-1319"></a>        <span class='layout'>)</span>
+<a name="line-1320"></a>        <span class='varop'>`whenP`</span>
+<a name="line-1321"></a>        <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>defTable</span><span class='layout'>)</span>
+<a name="line-1322"></a>
+<a name="line-1323"></a>
+<a name="line-1324"></a>  <span class='varid'>processElements</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1325"></a>  <span class='varid'>processElements</span> <span class='varid'>parentIsDefine</span>
+<a name="line-1326"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>
+<a name="line-1327"></a>      <span class='layout'>(</span> <span class='varid'>choiceA</span>
+<a name="line-1328"></a>	<span class='keyglyph'>[</span> <span class='varid'>isRngElement</span>
+<a name="line-1329"></a>          <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>parentIsDefine</span><span class='layout'>)</span>
+<a name="line-1330"></a>                <span class='layout'>(</span><span class='varid'>processElements</span> <span class='conid'>False</span><span class='layout'>)</span>
+<a name="line-1331"></a>                <span class='layout'>(</span> <span class='varid'>processElements'</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getAndSetCounter</span> <span class='str'>"define_id"</span> 
+<a name="line-1332"></a>					 <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1333"></a>					 <span class='varid'>getDefineName</span>
+<a name="line-1334"></a>				       <span class='layout'>)</span>
+<a name="line-1335"></a>                <span class='layout'>)</span>
+<a name="line-1336"></a>              <span class='layout'>)</span>
+<a name="line-1337"></a>	<span class='layout'>,</span> <span class='varid'>isRngDefine</span>
+<a name="line-1338"></a>	  <span class='conop'>:-&gt;</span> <span class='varid'>processElements</span> <span class='conid'>True</span>
+<a name="line-1339"></a>        <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-1340"></a>          <span class='conop'>:-&gt;</span> <span class='varid'>processElements</span> <span class='conid'>False</span>
+<a name="line-1341"></a>        <span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-1342"></a>    <span class='keyword'>where</span>
+<a name="line-1343"></a>    <span class='varid'>getDefineName</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-1344"></a>    <span class='varid'>getDefineName</span>
+<a name="line-1345"></a>	<span class='keyglyph'>=</span> <span class='varid'>firstChild</span>
+<a name="line-1346"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1347"></a>          <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>
+<a name="line-1348"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1349"></a>          <span class='varid'>arr</span> <span class='varid'>show</span>
+<a name="line-1350"></a>    
+<a name="line-1351"></a>    <span class='varid'>processElements'</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>OldName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1352"></a>    <span class='varid'>processElements'</span> <span class='varid'>name</span> <span class='varid'>oldname</span>
+<a name="line-1353"></a>      <span class='keyglyph'>=</span> <span class='varid'>storeElement</span> <span class='varid'>name</span> <span class='varid'>oldname</span>
+<a name="line-1354"></a>        <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1355"></a>        <span class='varid'>mkRngRef</span> <span class='layout'>(</span><span class='varid'>createAttr</span> <span class='varid'>name</span> <span class='varid'>oldname</span><span class='layout'>)</span> <span class='varid'>none</span>
+<a name="line-1356"></a>
+<a name="line-1357"></a>    <span class='varid'>storeElement</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>OldName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1358"></a>    <span class='varid'>storeElement</span> <span class='varid'>name</span> <span class='varid'>oldname</span>
+<a name="line-1359"></a>      <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='varop'>$</span> 
+<a name="line-1360"></a>          <span class='layout'>(</span> <span class='varid'>mkRngDefine</span>
+<a name="line-1361"></a>             <span class='layout'>(</span><span class='varid'>createAttr</span> <span class='varid'>name</span> <span class='varid'>oldname</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>processElements</span> <span class='conid'>False</span><span class='layout'>)</span>
+<a name="line-1362"></a>          <span class='layout'>)</span>
+<a name="line-1363"></a>          <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1364"></a>          <span class='layout'>(</span><span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>getParam</span> <span class='str'>"elementTable"</span><span class='layout'>)</span>
+<a name="line-1365"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1366"></a>          <span class='varid'>arr2</span> <span class='layout'>(</span><span class='conop'>:</span><span class='layout'>)</span>
+<a name="line-1367"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1368"></a>          <span class='varid'>setParamList</span> <span class='str'>"elementTable"</span>
+<a name="line-1369"></a>
+<a name="line-1370"></a>    <span class='varid'>createAttr</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>OldName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1371"></a>    <span class='varid'>createAttr</span> <span class='varid'>name</span> <span class='varid'>oldname</span>
+<a name="line-1372"></a>      <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='str'>"name"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>name</span><span class='layout'>)</span> 
+<a name="line-1373"></a>        <span class='varop'>&lt;+&gt;</span>
+<a name="line-1374"></a>        <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>defineOrigName</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varop'>$</span> <span class='str'>"created for element "</span> <span class='varop'>++</span> <span class='varid'>oldname</span><span class='layout'>)</span>
+<a name="line-1375"></a>       
+<a name="line-1376"></a>  <span class='varid'>getExpandableDefines</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Env</span> 
+<a name="line-1377"></a>  <span class='varid'>getExpandableDefines</span> 
+<a name="line-1378"></a>    <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>multi</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isRngDefine</span>
+<a name="line-1379"></a>                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1380"></a>                         <span class='varid'>getChildren</span>
+<a name="line-1381"></a>                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1382"></a>                         <span class='varid'>neg</span> <span class='varid'>isRngElement</span>
+<a name="line-1383"></a>                       <span class='layout'>)</span>
+<a name="line-1384"></a>                       <span class='varop'>`guards`</span>
+<a name="line-1385"></a>                       <span class='varid'>this</span>
+<a name="line-1386"></a>                     <span class='layout'>)</span>
+<a name="line-1387"></a>              <span class='layout'>)</span>
+<a name="line-1388"></a>              <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1389"></a>              <span class='layout'>(</span><span class='varid'>getRngAttrName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span><span class='layout'>)</span>
+<a name="line-1390"></a>  
+<a name="line-1391"></a>  <span class='varid'>deleteExpandableDefines</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1392"></a>  <span class='varid'>deleteExpandableDefines</span> 
+<a name="line-1393"></a>    <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='varop'>$</span> <span class='varid'>none</span>
+<a name="line-1394"></a>                       <span class='varop'>`when`</span> 
+<a name="line-1395"></a>                       <span class='layout'>(</span> <span class='varid'>isRngDefine</span>
+<a name="line-1396"></a>                         <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1397"></a>                         <span class='varid'>getChildren</span>
+<a name="line-1398"></a>                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1399"></a>                         <span class='varid'>neg</span> <span class='varid'>isRngElement</span>
+<a name="line-1400"></a>                       <span class='layout'>)</span>
+<a name="line-1401"></a>
+<a name="line-1402"></a>
+<a name="line-1403"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1404"></a>
+<a name="line-1405"></a>
+<a name="line-1406"></a><span class='comment'>{-
+<a name="line-1407"></a>- 4.20. notAllowed element
+<a name="line-1408"></a>    - An attribute, list, group, interleave, or oneOrMore element that has
+<a name="line-1409"></a>      a notAllowed child element is transformed into a notAllowed element.
+<a name="line-1410"></a>    - A choice element that has two notAllowed child elements 
+<a name="line-1411"></a>      is transformed into a notAllowed element
+<a name="line-1412"></a>    - A choice element that has one notAllowed child element
+<a name="line-1413"></a>      is transformed into its other child element.
+<a name="line-1414"></a>    - An except element that has a notAllowed child element is removed.
+<a name="line-1415"></a>    - The preceding transformations are applied repeatedly
+<a name="line-1416"></a>      until none of them is applicable any more.
+<a name="line-1417"></a>    - Any define element that is no longer reachable is removed.
+<a name="line-1418"></a>- 4.21. empty element
+<a name="line-1419"></a>    - A group, interleave or choice element that has two empty child
+<a name="line-1420"></a>      elements is transformed into an empty element.
+<a name="line-1421"></a>    - A group or interleave element that has one empty child element
+<a name="line-1422"></a>      is transformed into its other child element.
+<a name="line-1423"></a>    - A choice element whose second child element is an empty element
+<a name="line-1424"></a>      is transformed by interchanging its two child elements.
+<a name="line-1425"></a>    - A oneOrMore element that has an empty child element
+<a name="line-1426"></a>      is transformed into an empty element.
+<a name="line-1427"></a>    - The preceding transformations are applied repeatedly
+<a name="line-1428"></a>      until none of them is applicable any more.
+<a name="line-1429"></a>-}</span>
+<a name="line-1430"></a>
+<a name="line-1431"></a><a name="simplificationStep7"></a><span class='definition'>simplificationStep7</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1432"></a><span class='definition'>simplificationStep7</span>
+<a name="line-1433"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>markTreeChanged</span> <span class='num'>0</span>			 	<span class='comment'>-- 0 = no changes, 1 = changes performed</span>
+<a name="line-1434"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1435"></a>	<span class='varid'>processTopDownWithAttrl</span>
+<a name="line-1436"></a>	<span class='layout'>(</span> <span class='layout'>(</span> <span class='comment'>-- An attribute, list, group, interleave, or oneOrMore element that has a </span>
+<a name="line-1437"></a>            <span class='comment'>-- notAllowed child element is transformed into a notAllowed element.       </span>
+<a name="line-1438"></a>            <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRngNotAllowed</span> <span class='varid'>none</span> <span class='varid'>none</span>
+<a name="line-1439"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1440"></a>		<span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1441"></a>              <span class='layout'>)</span>
+<a name="line-1442"></a>              <span class='varop'>`whenNot`</span> 				<span class='comment'>-- keep all errors</span>
+<a name="line-1443"></a>              <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span><span class='layout'>)</span>
+<a name="line-1444"></a>            <span class='layout'>)</span>
+<a name="line-1445"></a>            <span class='varop'>`when`</span>
+<a name="line-1446"></a>            <span class='layout'>(</span> <span class='varid'>isAttributeListGroupInterleaveOneOrMore</span>
+<a name="line-1447"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1448"></a>              <span class='varid'>getChildren</span>
+<a name="line-1449"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1450"></a>              <span class='varid'>isRngNotAllowed</span>
+<a name="line-1451"></a>            <span class='layout'>)</span>
+<a name="line-1452"></a>	  <span class='layout'>)</span>
+<a name="line-1453"></a>	  <span class='varop'>&gt;&gt;&gt;</span>                                   
+<a name="line-1454"></a>	  <span class='layout'>(</span> <span class='comment'>-- A choice element that has two notAllowed child elements is </span>
+<a name="line-1455"></a>            <span class='comment'>-- transformed into a notAllowed element</span>
+<a name="line-1456"></a>            <span class='layout'>(</span> <span class='varid'>mkRngNotAllowed</span> <span class='varid'>none</span> <span class='varid'>none</span>
+<a name="line-1457"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1458"></a>              <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1459"></a>            <span class='layout'>)</span>
+<a name="line-1460"></a>            <span class='varop'>`when`</span>
+<a name="line-1461"></a>            <span class='layout'>(</span> <span class='varid'>isRngChoice</span>
+<a name="line-1462"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1463"></a>              <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngNotAllowed</span><span class='layout'>)</span>
+<a name="line-1464"></a>              <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1465"></a>              <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>length</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='num'>2</span><span class='layout'>)</span>
+<a name="line-1466"></a>            <span class='layout'>)</span>
+<a name="line-1467"></a>	  <span class='layout'>)</span>
+<a name="line-1468"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1469"></a>	  <span class='layout'>(</span> <span class='comment'>-- A choice element that has one notAllowed child element is </span>
+<a name="line-1470"></a>            <span class='comment'>-- transformed into its other child element.        </span>
+<a name="line-1471"></a>            <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>isRngNotAllowed</span>
+<a name="line-1472"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1473"></a>              <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1474"></a>            <span class='layout'>)</span>
+<a name="line-1475"></a>            <span class='varop'>`when`</span>
+<a name="line-1476"></a>            <span class='layout'>(</span> <span class='varid'>isRngChoice</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngNotAllowed</span> <span class='layout'>)</span>
+<a name="line-1477"></a>	  <span class='layout'>)</span>
+<a name="line-1478"></a>	  <span class='varop'>&gt;&gt;&gt;</span>       
+<a name="line-1479"></a>	  <span class='layout'>(</span> <span class='comment'>-- An except element that has a notAllowed child element is removed.</span>
+<a name="line-1480"></a>            <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1481"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1482"></a>		<span class='varid'>none</span>
+<a name="line-1483"></a>	      <span class='layout'>)</span> 
+<a name="line-1484"></a>              <span class='varop'>`whenNot`</span>			 <span class='comment'>-- keep all errors</span>
+<a name="line-1485"></a>              <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1486"></a>            <span class='layout'>)</span>
+<a name="line-1487"></a>            <span class='varop'>`when`</span>
+<a name="line-1488"></a>            <span class='layout'>(</span> <span class='varid'>isRngExcept</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngNotAllowed</span> <span class='layout'>)</span>
+<a name="line-1489"></a>	  <span class='layout'>)</span>
+<a name="line-1490"></a>	  <span class='varop'>&gt;&gt;&gt;</span> <span class='comment'>-- transforming the empty pattern (4.21)</span>
+<a name="line-1491"></a>	  <span class='layout'>(</span> <span class='comment'>-- A group, interleave or choice element that has two empty child elements</span>
+<a name="line-1492"></a>            <span class='comment'>-- is transformed into an empty element.</span>
+<a name="line-1493"></a>            <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> <span class='varid'>none</span>
+<a name="line-1494"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1495"></a>              <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1496"></a>            <span class='layout'>)</span>
+<a name="line-1497"></a>            <span class='varop'>`when`</span>
+<a name="line-1498"></a>            <span class='layout'>(</span> <span class='varid'>isChoiceGroupInterleave</span>
+<a name="line-1499"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1500"></a>              <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngEmpty</span><span class='layout'>)</span>
+<a name="line-1501"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1502"></a>              <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>length</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='num'>2</span><span class='layout'>)</span>
+<a name="line-1503"></a>            <span class='layout'>)</span>
+<a name="line-1504"></a>	  <span class='layout'>)</span>
+<a name="line-1505"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1506"></a>	  <span class='layout'>(</span> <span class='comment'>-- A group or interleave element that has one empty child element </span>
+<a name="line-1507"></a>            <span class='comment'>-- is transformed into its other child element.</span>
+<a name="line-1508"></a>            <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1509"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1510"></a>	      <span class='varid'>neg</span> <span class='varid'>isRngEmpty</span>
+<a name="line-1511"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1512"></a>	      <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1513"></a>	    <span class='layout'>)</span>
+<a name="line-1514"></a>            <span class='varop'>`when`</span>
+<a name="line-1515"></a>            <span class='layout'>(</span> <span class='varid'>isGroupInterleave</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngEmpty</span> <span class='layout'>)</span>
+<a name="line-1516"></a>	  <span class='layout'>)</span>
+<a name="line-1517"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1518"></a>	  <span class='layout'>(</span> <span class='comment'>-- A choice element whose second child element is an empty element is transformed </span>
+<a name="line-1519"></a>            <span class='comment'>-- by interchanging its two child elements.</span>
+<a name="line-1520"></a>            <span class='varid'>changeChoiceChildren</span>
+<a name="line-1521"></a>            <span class='varop'>`when`</span>
+<a name="line-1522"></a>            <span class='layout'>(</span> <span class='varid'>isRngChoice</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngEmpty</span> <span class='layout'>)</span>
+<a name="line-1523"></a>	  <span class='layout'>)</span>
+<a name="line-1524"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1525"></a>	  <span class='layout'>(</span> <span class='comment'>-- A oneOrMore element that has an empty child element</span>
+<a name="line-1526"></a>            <span class='comment'>-- is transformed into an empty element.</span>
+<a name="line-1527"></a>            <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> <span class='varid'>none</span>
+<a name="line-1528"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1529"></a>              <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1530"></a>            <span class='layout'>)</span>
+<a name="line-1531"></a>            <span class='varop'>`when`</span>
+<a name="line-1532"></a>            <span class='layout'>(</span> <span class='varid'>isRngOneOrMore</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngEmpty</span> <span class='layout'>)</span>
+<a name="line-1533"></a>	  <span class='layout'>)</span>
+<a name="line-1534"></a>	<span class='layout'>)</span>
+<a name="line-1535"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1536"></a>	<span class='comment'>-- The preceding transformations are applied repeatedly</span>
+<a name="line-1537"></a>	<span class='comment'>-- until none of them is applicable any more.</span>
+<a name="line-1538"></a>	<span class='layout'>(</span> <span class='varid'>simplificationStep7</span>
+<a name="line-1539"></a>	  <span class='varop'>`when`</span>
+<a name="line-1540"></a>	  <span class='varid'>hasTreeChanged</span>
+<a name="line-1541"></a>	<span class='layout'>)</span>
+<a name="line-1542"></a>      <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1543"></a>    <span class='keyword'>where</span>
+<a name="line-1544"></a>    <span class='varid'>changeChoiceChildren</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1545"></a>    <span class='varid'>changeChoiceChildren</span>
+<a name="line-1546"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>
+<a name="line-1547"></a>	      <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> <span class='varid'>none</span>
+<a name="line-1548"></a>		<span class='varop'>&lt;+&gt;</span> 
+<a name="line-1549"></a>		<span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>neg</span> <span class='varid'>isRngEmpty</span><span class='layout'>)</span>
+<a name="line-1550"></a>              <span class='layout'>)</span> 
+<a name="line-1551"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1552"></a>              <span class='varid'>markTreeChanged</span> <span class='num'>1</span>
+<a name="line-1553"></a>	    <span class='layout'>)</span>
+<a name="line-1554"></a>	    <span class='varop'>`when`</span>
+<a name="line-1555"></a>	    <span class='layout'>(</span> <span class='varid'>single</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isElem</span><span class='layout'>)</span>		<span class='comment'>-- first child not "empty" elem</span>
+<a name="line-1556"></a>              <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1557"></a>              <span class='varid'>neg</span> <span class='varid'>isRngEmpty</span>
+<a name="line-1558"></a>	    <span class='layout'>)</span>
+<a name="line-1559"></a>	  <span class='layout'>)</span>
+<a name="line-1560"></a>
+<a name="line-1561"></a><a name="hasTreeChanged"></a><span class='definition'>hasTreeChanged</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>Int</span>
+<a name="line-1562"></a><span class='definition'>hasTreeChanged</span>
+<a name="line-1563"></a>    <span class='keyglyph'>=</span> <span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='str'>"rng:changeTree"</span>
+<a name="line-1564"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1565"></a>      <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-1566"></a>
+<a name="line-1567"></a><a name="markTreeChanged"></a><span class='definition'>markTreeChanged</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>
+<a name="line-1568"></a><span class='definition'>markTreeChanged</span> <span class='varid'>i</span>
+<a name="line-1569"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>setParamInt</span> <span class='str'>"rng:changeTree"</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-1570"></a>
+<a name="line-1571"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1572"></a>
+<a name="line-1573"></a>
+<a name="line-1574"></a><a name="simplificationStep8"></a><span class='definition'>simplificationStep8</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1575"></a><span class='definition'>simplificationStep8</span>			<span class='comment'>-- Remove any define element that is not reachable.</span>
+<a name="line-1576"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>removeUnreachableDefines</span> <span class='varop'>$&lt;&lt;&lt;</span>
+<a name="line-1577"></a>	  <span class='layout'>(</span> <span class='varid'>getAllDeepDefines</span>
+<a name="line-1578"></a>            <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1579"></a>            <span class='varid'>constA</span> <span class='conid'>[]</span>
+<a name="line-1580"></a>            <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1581"></a>            <span class='varid'>getRefsFromStartPattern</span>
+<a name="line-1582"></a>	  <span class='layout'>)</span>
+<a name="line-1583"></a>	<span class='layout'>)</span>
+<a name="line-1584"></a>	<span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1585"></a>      <span class='layout'>)</span>
+<a name="line-1586"></a>               
+<a name="line-1587"></a>
+<a name="line-1588"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1589"></a>
+<a name="line-1590"></a>
+<a name="line-1591"></a><a name="restrictionsStep2"></a><span class='definition'>restrictionsStep2</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1592"></a><span class='definition'>restrictionsStep2</span> <span class='keyglyph'>=</span>
+<a name="line-1593"></a>  <span class='varid'>processTopDown</span> <span class='layout'>(</span>
+<a name="line-1594"></a>    <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>
+<a name="line-1595"></a><span class='comment'>-- 7.1.1. attribute pattern, the following paths are prohibited:</span>
+<a name="line-1596"></a><span class='comment'>--        attribute//(ref | attribute)</span>
+<a name="line-1597"></a>      <span class='varid'>isRngAttribute</span> <span class='conop'>:-&gt;</span> 
+<a name="line-1598"></a>        <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1599"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-1600"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>
+<a name="line-1601"></a>                                <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1602"></a>                                <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1603"></a>                                          <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1604"></a>                                          <span class='varid'>deep</span> <span class='varid'>isAttributeRef</span>
+<a name="line-1605"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1606"></a>                                          <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChangesAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1607"></a>                                        <span class='layout'>)</span>
+<a name="line-1608"></a>                                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1609"></a>                                  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1610"></a>                                             <span class='str'>"Pattern not allowed as descendent(s)"</span> <span class='varop'>++</span>
+<a name="line-1611"></a>                                             <span class='str'>" of a attribute-Pattern"</span>
+<a name="line-1612"></a>                                      <span class='layout'>)</span>
+<a name="line-1613"></a>                                <span class='layout'>)</span>
+<a name="line-1614"></a>                               <span class='layout'>)</span>
+<a name="line-1615"></a>            <span class='layout'>)</span> 
+<a name="line-1616"></a>          <span class='layout'>)</span>
+<a name="line-1617"></a>          <span class='varop'>`when`</span> 
+<a name="line-1618"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deep</span> <span class='varid'>isAttributeRef</span> <span class='layout'>)</span>
+<a name="line-1619"></a>        <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-1620"></a>
+<a name="line-1621"></a><span class='comment'>-- 7.1.2. oneOrMore pattern, the following paths are prohibited:</span>
+<a name="line-1622"></a><span class='comment'>--        oneOrMore//(group | interleave)//attribute</span>
+<a name="line-1623"></a>      <span class='varid'>isRngOneOrMore</span> <span class='conop'>:-&gt;</span>
+<a name="line-1624"></a>        <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1625"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-1626"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>
+<a name="line-1627"></a>                                <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1628"></a>                                <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1629"></a>                                          <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1630"></a>                                          <span class='varid'>deep</span> <span class='varid'>isGroupInterleave</span>
+<a name="line-1631"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1632"></a>                                          <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChangesAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1633"></a>                                        <span class='layout'>)</span>
+<a name="line-1634"></a>                                  <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1635"></a>                                  <span class='varid'>getChangesAttr</span>
+<a name="line-1636"></a>                                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1637"></a>                                  <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1638"></a>                                                   <span class='str'>"Pattern not allowed as descendent(s) "</span> <span class='varop'>++</span>
+<a name="line-1639"></a>                                                   <span class='str'>"of a oneOrMore-Pattern"</span> <span class='varop'>++</span>
+<a name="line-1640"></a>						   <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>c</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>++</span> 
+<a name="line-1641"></a>                                                   <span class='str'>" followed by an attribute descendent"</span>
+<a name="line-1642"></a>						 <span class='layout'>)</span>
+<a name="line-1643"></a>                                       <span class='layout'>)</span>
+<a name="line-1644"></a>                                <span class='layout'>)</span>
+<a name="line-1645"></a>                               <span class='layout'>)</span>
+<a name="line-1646"></a>            <span class='layout'>)</span> 
+<a name="line-1647"></a>          <span class='layout'>)</span>
+<a name="line-1648"></a>          <span class='varop'>`when`</span> 
+<a name="line-1649"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deep</span> <span class='varid'>isGroupInterleave</span>
+<a name="line-1650"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1651"></a>            <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>deep</span> <span class='varid'>isRngAttribute</span>
+<a name="line-1652"></a>          <span class='layout'>)</span>
+<a name="line-1653"></a>        <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-1654"></a>
+<a name="line-1655"></a><span class='comment'>-- 7.1.3. list pattern, the following paths are prohibited:</span>
+<a name="line-1656"></a><span class='comment'>--        list//( list | ref | attribute | text | interleave)</span>
+<a name="line-1657"></a>      <span class='varid'>isRngList</span> <span class='conop'>:-&gt;</span> 
+<a name="line-1658"></a>        <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1659"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-1660"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>
+<a name="line-1661"></a>                                <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1662"></a>                                <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1663"></a>                                          <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1664"></a>                                          <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListInterleave</span>
+<a name="line-1665"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1666"></a>                                          <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChangesAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1667"></a>                                        <span class='layout'>)</span>
+<a name="line-1668"></a>                                  <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1669"></a>                                  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1670"></a>                                             <span class='str'>"Pattern not allowed as descendent(s) of a list-Pattern"</span><span class='layout'>)</span>
+<a name="line-1671"></a>                                <span class='layout'>)</span>
+<a name="line-1672"></a>                               <span class='layout'>)</span>
+<a name="line-1673"></a>            <span class='layout'>)</span> 
+<a name="line-1674"></a>          <span class='layout'>)</span>
+<a name="line-1675"></a>          <span class='varop'>`when`</span> 
+<a name="line-1676"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1677"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1678"></a>            <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListInterleave</span>
+<a name="line-1679"></a>          <span class='layout'>)</span>
+<a name="line-1680"></a>        <span class='layout'>)</span><span class='layout'>,</span> 
+<a name="line-1681"></a>
+<a name="line-1682"></a><span class='comment'>-- 7.1.4. except in data pattern, the following paths are prohibited:</span>
+<a name="line-1683"></a><span class='comment'>--        data/except//(attribute | ref | text | list | group | interleave | oneOrMore | empty)</span>
+<a name="line-1684"></a>      <span class='varid'>isRngData</span> <span class='conop'>:-&gt;</span> 
+<a name="line-1685"></a>        <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>              
+<a name="line-1686"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-1687"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>
+<a name="line-1688"></a>                                <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1689"></a>                                <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span>
+<a name="line-1690"></a>                                         <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1691"></a>                                         <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span>
+<a name="line-1692"></a>                                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1693"></a>                                         <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChangesAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1694"></a>                                        <span class='layout'>)</span>
+<a name="line-1695"></a>                                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1696"></a>                                  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1697"></a>                                             <span class='str'>"Pattern not allowed as descendent(s) of a data/except-Pattern"</span><span class='layout'>)</span>
+<a name="line-1698"></a>                                <span class='layout'>)</span>
+<a name="line-1699"></a>                               <span class='layout'>)</span>
+<a name="line-1700"></a>            <span class='layout'>)</span> 
+<a name="line-1701"></a>          <span class='layout'>)</span>
+<a name="line-1702"></a>          <span class='varop'>`when`</span> 
+<a name="line-1703"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1704"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1705"></a>	    <span class='varid'>isRngExcept</span>
+<a name="line-1706"></a>	    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1707"></a>            <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span>
+<a name="line-1708"></a>          <span class='layout'>)</span>
+<a name="line-1709"></a>        <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-1710"></a>
+<a name="line-1711"></a><span class='comment'>-- 7.1.5. start element, the following paths are prohibited:</span>
+<a name="line-1712"></a><span class='comment'>--        start//(attribute | data | value | text | list | group | interleave | oneOrMore | empty)</span>
+<a name="line-1713"></a>      <span class='varid'>isRngStart</span> <span class='conop'>:-&gt;</span> 
+<a name="line-1714"></a>        <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1715"></a>            <span class='varop'>&lt;+&gt;</span>
+<a name="line-1716"></a>            <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>
+<a name="line-1717"></a>                                <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1718"></a>                                <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span>
+<a name="line-1719"></a>                                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1720"></a>                                         <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>checkElemName</span> <span class='keyglyph'>[</span> <span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"data"</span><span class='layout'>,</span> <span class='str'>"value"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> 
+<a name="line-1721"></a>                                                               <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"empty"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-1722"></a>                                         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1723"></a>                                         <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getChangesAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1724"></a>                                        <span class='layout'>)</span>
+<a name="line-1725"></a>                                  <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1726"></a>                                  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> 
+<a name="line-1727"></a>                                             <span class='str'>"Pattern not allowed as descendent(s) of a start-Pattern"</span><span class='layout'>)</span>
+<a name="line-1728"></a>                                <span class='layout'>)</span>
+<a name="line-1729"></a>                               <span class='layout'>)</span>
+<a name="line-1730"></a>            <span class='layout'>)</span> 
+<a name="line-1731"></a>          <span class='layout'>)</span>
+<a name="line-1732"></a>          <span class='varop'>`when`</span> 
+<a name="line-1733"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1734"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1735"></a>            <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>checkElemName</span> <span class='keyglyph'>[</span> <span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"data"</span><span class='layout'>,</span> <span class='str'>"value"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> 
+<a name="line-1736"></a>                                  <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"empty"</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-1737"></a>          <span class='layout'>)</span>  
+<a name="line-1738"></a>        <span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-1739"></a>            
+<a name="line-1740"></a>        <span class='varid'>this</span> <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-1741"></a>      <span class='keyglyph'>]</span>
+<a name="line-1742"></a>  <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1743"></a>
+<a name="line-1744"></a>     
+<a name="line-1745"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1746"></a>
+<a name="line-1747"></a>
+<a name="line-1748"></a><a name="restrictionsStep3"></a><span class='definition'>restrictionsStep3</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1749"></a><span class='definition'>restrictionsStep3</span>
+<a name="line-1750"></a>    <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span>
+<a name="line-1751"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1752"></a>          <span class='varop'>&lt;+&gt;</span>
+<a name="line-1753"></a>          <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span> 
+<a name="line-1754"></a>            <span class='layout'>(</span> <span class='comment'>-- getRngAttrName</span>
+<a name="line-1755"></a>              <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getText</span> <span class='layout'>)</span>
+<a name="line-1756"></a>              <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1757"></a>              <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Content of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" contains a pattern that can match "</span> <span class='varop'>++</span>
+<a name="line-1758"></a>                            <span class='str'>"a child and a pattern that matches a single string"</span>
+<a name="line-1759"></a>			  <span class='layout'>)</span>
+<a name="line-1760"></a>		  <span class='layout'>)</span>
+<a name="line-1761"></a>            <span class='layout'>)</span>
+<a name="line-1762"></a>          <span class='layout'>)</span>
+<a name="line-1763"></a>	<span class='layout'>)</span>
+<a name="line-1764"></a>	<span class='varop'>`when`</span>
+<a name="line-1765"></a>	<span class='layout'>(</span> <span class='varid'>isRngElement</span>
+<a name="line-1766"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1767"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;.</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>reverse</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-1768"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1769"></a>          <span class='varid'>getContentType</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1770"></a>	<span class='layout'>)</span>
+<a name="line-1771"></a>      <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1772"></a>
+<a name="line-1773"></a>    
+<a name="line-1774"></a>    
+<a name="line-1775"></a><a name="getContentType"></a><span class='definition'>getContentType</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1776"></a><span class='definition'>getContentType</span>
+<a name="line-1777"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-1778"></a>      <span class='keyglyph'>[</span> <span class='varid'>isRngValue</span>      <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span>
+<a name="line-1779"></a>      <span class='layout'>,</span> <span class='varid'>isRngData</span>       <span class='conop'>:-&gt;</span> <span class='varid'>processData</span>
+<a name="line-1780"></a>      <span class='layout'>,</span> <span class='varid'>isRngList</span>       <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span>
+<a name="line-1781"></a>      <span class='layout'>,</span> <span class='varid'>isRngText</span>       <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTComplex</span><span class='layout'>)</span>
+<a name="line-1782"></a>      <span class='layout'>,</span> <span class='varid'>isRngRef</span>        <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTComplex</span><span class='layout'>)</span>
+<a name="line-1783"></a>      <span class='layout'>,</span> <span class='varid'>isRngEmpty</span>      <span class='conop'>:-&gt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTEmpty</span><span class='layout'>)</span>
+<a name="line-1784"></a>      <span class='layout'>,</span> <span class='varid'>isRngAttribute</span>  <span class='conop'>:-&gt;</span> <span class='varid'>processAttribute</span>
+<a name="line-1785"></a>      <span class='layout'>,</span> <span class='varid'>isRngGroup</span>      <span class='conop'>:-&gt;</span> <span class='varid'>processGroup</span>
+<a name="line-1786"></a>      <span class='layout'>,</span> <span class='varid'>isRngInterleave</span> <span class='conop'>:-&gt;</span> <span class='varid'>processInterleave</span>
+<a name="line-1787"></a>      <span class='layout'>,</span> <span class='varid'>isRngOneOrMore</span>  <span class='conop'>:-&gt;</span> <span class='varid'>processOneOrMore</span>
+<a name="line-1788"></a>      <span class='layout'>,</span> <span class='varid'>isRngChoice</span>     <span class='conop'>:-&gt;</span> <span class='varid'>processChoice</span>
+<a name="line-1789"></a>      <span class='keyglyph'>]</span>
+<a name="line-1790"></a>    <span class='keyword'>where</span>
+<a name="line-1791"></a>    <span class='varid'>processData</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1792"></a>    <span class='varid'>processData</span>
+<a name="line-1793"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isRngExcept</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1794"></a>          <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span>
+<a name="line-1795"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1796"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1797"></a>            <span class='varid'>isRngExcept</span>
+<a name="line-1798"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1799"></a>            <span class='varid'>getChildren</span>
+<a name="line-1800"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1801"></a>            <span class='varid'>getContentType</span>
+<a name="line-1802"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1803"></a>            <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='conid'>CTNone</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1804"></a>          <span class='layout'>)</span>
+<a name="line-1805"></a>    <span class='varid'>processAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1806"></a>    <span class='varid'>processAttribute</span>
+<a name="line-1807"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>lastChild</span>
+<a name="line-1808"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1809"></a>		<span class='varid'>getContentType</span>
+<a name="line-1810"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1811"></a>		<span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1812"></a>              <span class='layout'>)</span>
+<a name="line-1813"></a>          <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTEmpty</span><span class='layout'>)</span>
+<a name="line-1814"></a>          <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1815"></a>  
+<a name="line-1816"></a>    <span class='varid'>processGroup</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1817"></a>    <span class='varid'>processGroup</span>
+<a name="line-1818"></a>	<span class='keyglyph'>=</span> <span class='varid'>get2ContentTypes</span>
+<a name="line-1819"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1820"></a>	  <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>isGroupable</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='varid'>max</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>else</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1821"></a>  
+<a name="line-1822"></a>    <span class='varid'>processInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1823"></a>    <span class='varid'>processInterleave</span>
+<a name="line-1824"></a>	<span class='keyglyph'>=</span> <span class='varid'>get2ContentTypes</span>
+<a name="line-1825"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1826"></a>	  <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>isGroupable</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='varid'>max</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>else</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1827"></a>  
+<a name="line-1828"></a>    <span class='varid'>processOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1829"></a>    <span class='varid'>processOneOrMore</span>
+<a name="line-1830"></a>	<span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1831"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1832"></a>		<span class='varid'>getContentType</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='conid'>CTNone</span><span class='layout'>)</span>
+<a name="line-1833"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1834"></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'>isGroupable</span> <span class='varid'>t</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-1835"></a>              <span class='layout'>)</span>
+<a name="line-1836"></a>          <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getContentType</span> <span class='layout'>)</span>
+<a name="line-1837"></a>          <span class='layout'>(</span> <span class='varid'>constA</span> <span class='conid'>CTNone</span> <span class='layout'>)</span>
+<a name="line-1838"></a>  
+<a name="line-1839"></a>    <span class='varid'>processChoice</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>
+<a name="line-1840"></a>    <span class='varid'>processChoice</span>
+<a name="line-1841"></a>	<span class='keyglyph'>=</span> <span class='varid'>get2ContentTypes</span>
+<a name="line-1842"></a>	  <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1843"></a>	  <span class='varid'>arr2</span> <span class='varid'>max</span>
+<a name="line-1844"></a>
+<a name="line-1845"></a>    <span class='varid'>isGroupable</span> <span class='keyglyph'>::</span> <span class='conid'>ContentType</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ContentType</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1846"></a>    <span class='varid'>isGroupable</span> <span class='conid'>CTEmpty</span>   <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-1847"></a>    <span class='varid'>isGroupable</span> <span class='keyword'>_</span>         <span class='conid'>CTEmpty</span>   <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-1848"></a>    <span class='varid'>isGroupable</span> <span class='conid'>CTComplex</span> <span class='conid'>CTComplex</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-1849"></a>    <span class='varid'>isGroupable</span> <span class='keyword'>_</span>         <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='conid'>False</span>   
+<a name="line-1850"></a>
+<a name="line-1851"></a>
+<a name="line-1852"></a><a name="checkPattern"></a><span class='definition'>checkPattern</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='layout'>(</span><span class='conid'>XmlTree</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>
+<a name="line-1853"></a><span class='definition'>checkPattern</span>
+<a name="line-1854"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</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='keyglyph'>-&gt;</span> <span class='varid'>isIn</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>`guardsP`</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span><span class='layout'>)</span>
+<a name="line-1855"></a>    <span class='keyword'>where</span>
+<a name="line-1856"></a>    <span class='varid'>isIn</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1857"></a>    <span class='varid'>isIn</span> <span class='keyword'>_</span> <span class='conid'>[]</span>      <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-1858"></a>    <span class='varid'>isIn</span> <span class='conid'>[]</span> <span class='keyword'>_</span>      <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-1859"></a>    <span class='varid'>isIn</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'>ys</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>overlap</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='varid'>isIn</span> <span class='varid'>xs</span> <span class='varid'>ys</span>
+<a name="line-1860"></a>
+<a name="line-1861"></a>
+<a name="line-1862"></a><a name="occur"></a><span class='definition'>occur</span> <span class='keyglyph'>::</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1863"></a><span class='definition'>occur</span> <span class='varid'>name</span> <span class='varid'>fct</span>
+<a name="line-1864"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-1865"></a>      <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasRngName</span> <span class='varid'>name</span> <span class='layout'>)</span>
+<a name="line-1866"></a>	<span class='conop'>:-&gt;</span>
+<a name="line-1867"></a>	<span class='varid'>fct</span>
+<a name="line-1868"></a>      <span class='layout'>,</span> <span class='varid'>isChoiceGroupInterleaveOneOrMore</span>
+<a name="line-1869"></a>	<span class='conop'>:-&gt;</span>
+<a name="line-1870"></a>	<span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>occur</span> <span class='varid'>name</span> <span class='varid'>fct</span><span class='layout'>)</span>
+<a name="line-1871"></a>      <span class='keyglyph'>]</span>
+<a name="line-1872"></a>
+<a name="line-1873"></a><a name="get2ContentTypes"></a><span class='definition'>get2ContentTypes</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>ContentType</span><span class='layout'>,</span> <span class='conid'>ContentType</span><span class='layout'>)</span>
+<a name="line-1874"></a><span class='definition'>get2ContentTypes</span>
+<a name="line-1875"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getContentType</span> <span class='layout'>)</span>
+<a name="line-1876"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1877"></a>	<span class='layout'>(</span> <span class='varid'>lastChild</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getContentType</span> <span class='layout'>)</span>
+<a name="line-1878"></a>      <span class='layout'>)</span>
+<a name="line-1879"></a>
+<a name="line-1880"></a><span class='comment'>-- ------------------------------------------------------------            </span>
+<a name="line-1881"></a>
+<a name="line-1882"></a>
+<a name="line-1883"></a><span class='comment'>-- Duplicate attributes are not allowed. -&gt; fertig</span>
+<a name="line-1884"></a><span class='comment'>-- Attributes using infinite name classes must be repeated; an attribute element that </span>
+<a name="line-1885"></a><span class='comment'>-- has an anyName or nsName descendant element must have a oneOrMore ancestor element. -&gt; fertig</span>
+<a name="line-1886"></a>
+<a name="line-1887"></a><span class='comment'>-- berechnet alle define-Namen (fuer ref-Pattern) und Nameclasses der element-Pattern</span>
+<a name="line-1888"></a>
+<a name="line-1889"></a><a name="restrictionsStep4"></a><span class='definition'>restrictionsStep4</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>          
+<a name="line-1890"></a><span class='definition'>restrictionsStep4</span>
+<a name="line-1891"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>restrictionsStep4'</span> <span class='varop'>$&lt;</span>
+<a name="line-1892"></a>	<span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngDefine</span>				<span class='comment'>-- get all defines</span>
+<a name="line-1893"></a>		<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1894"></a>		<span class='layout'>(</span> <span class='varid'>getRngAttrName</span>				<span class='comment'>-- get define name</span>
+<a name="line-1895"></a>		  <span class='varop'>&amp;&amp;&amp;</span> 
+<a name="line-1896"></a>		  <span class='layout'>(</span> <span class='varid'>single</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1897"></a>			     <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1898"></a>			     <span class='varid'>getChildren</span>
+<a name="line-1899"></a>			     <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1900"></a>			     <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>		<span class='comment'>-- compute the name class from 1. grandchild</span>
+<a name="line-1901"></a>			   <span class='layout'>)</span>
+<a name="line-1902"></a>		    <span class='varop'>`orElse`</span>
+<a name="line-1903"></a>		    <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>AnyName</span><span class='layout'>)</span>
+<a name="line-1904"></a>		  <span class='layout'>)</span>
+<a name="line-1905"></a>		<span class='layout'>)</span>
+<a name="line-1906"></a>              <span class='layout'>)</span>
+<a name="line-1907"></a>      <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>
+<a name="line-1908"></a>
+<a name="line-1909"></a><a name="restrictionsStep4'"></a><span class='definition'>restrictionsStep4'</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'>NameClass</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-1910"></a><span class='definition'>restrictionsStep4'</span> <span class='varid'>nc</span> <span class='keyglyph'>=</span>
+<a name="line-1911"></a>  <span class='varid'>processTopDown</span> <span class='layout'>(</span>
+<a name="line-1912"></a>    <span class='layout'>(</span> 
+<a name="line-1913"></a>      <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1914"></a>        <span class='varop'>&lt;+&gt;</span>
+<a name="line-1915"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$&lt;</span> 
+<a name="line-1916"></a>          <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>
+<a name="line-1917"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1918"></a>            <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='str'>"Both attribute-pattern occuring in an "</span> <span class='varop'>++</span> 
+<a name="line-1919"></a>			  <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" belong to the same name-class"</span>
+<a name="line-1920"></a>			<span class='layout'>)</span>
+<a name="line-1921"></a>		<span class='layout'>)</span>
+<a name="line-1922"></a>          <span class='layout'>)</span>
+<a name="line-1923"></a>        <span class='layout'>)</span>
+<a name="line-1924"></a>      <span class='layout'>)</span>    
+<a name="line-1925"></a>      <span class='varop'>`when`</span> 
+<a name="line-1926"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngGroup</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngInterleave</span><span class='layout'>)</span>
+<a name="line-1927"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1928"></a>        <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1929"></a>          <span class='varop'>&amp;&amp;&amp;</span> 
+<a name="line-1930"></a>          <span class='layout'>(</span> <span class='varid'>firstChild</span>
+<a name="line-1931"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1932"></a>            <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>occur</span> <span class='str'>"attribute"</span> <span class='layout'>(</span><span class='varid'>single</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-1933"></a>                    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1934"></a>                    <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>
+<a name="line-1935"></a>                  <span class='layout'>)</span>
+<a name="line-1936"></a>          <span class='layout'>)</span> 
+<a name="line-1937"></a>          <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1938"></a>          <span class='layout'>(</span> <span class='varid'>lastChild</span>
+<a name="line-1939"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1940"></a>            <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>occur</span> <span class='str'>"attribute"</span> <span class='layout'>(</span><span class='varid'>single</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-1941"></a>                    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1942"></a>                    <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>
+<a name="line-1943"></a>                  <span class='layout'>)</span>
+<a name="line-1944"></a>          <span class='layout'>)</span>
+<a name="line-1945"></a>        <span class='layout'>)</span> 
+<a name="line-1946"></a>        <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkPattern</span>
+<a name="line-1947"></a>      <span class='layout'>)</span>           
+<a name="line-1948"></a>    <span class='layout'>)</span>     
+<a name="line-1949"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1950"></a>    <span class='layout'>(</span>  
+<a name="line-1951"></a>      <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1952"></a>        <span class='varop'>&lt;+&gt;</span>
+<a name="line-1953"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-1954"></a>	  <span class='layout'>(</span> <span class='str'>"An attribute that has an anyName or nsName descendant element "</span> <span class='varop'>++</span>
+<a name="line-1955"></a>            <span class='str'>"must have a oneOrMore ancestor element"</span>
+<a name="line-1956"></a>	  <span class='layout'>)</span>
+<a name="line-1957"></a>	<span class='layout'>)</span>
+<a name="line-1958"></a>      <span class='layout'>)</span>
+<a name="line-1959"></a>      <span class='varop'>`when`</span>
+<a name="line-1960"></a>      <span class='layout'>(</span><span class='varid'>isRngElement</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkInfiniteAttribute</span><span class='layout'>)</span>
+<a name="line-1961"></a>    <span class='layout'>)</span>
+<a name="line-1962"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1963"></a>    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1964"></a>        <span class='varop'>&lt;+&gt;</span>
+<a name="line-1965"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>
+<a name="line-1966"></a>	  <span class='layout'>(</span> <span class='str'>"Both element-pattern occuring in an interleave "</span> <span class='varop'>++</span>
+<a name="line-1967"></a>            <span class='str'>"belong to the same name-class"</span>
+<a name="line-1968"></a>	  <span class='layout'>)</span>
+<a name="line-1969"></a>        <span class='layout'>)</span>
+<a name="line-1970"></a>      <span class='layout'>)</span>
+<a name="line-1971"></a>      <span class='varop'>`when`</span> 
+<a name="line-1972"></a>      <span class='layout'>(</span> <span class='varid'>isRngInterleave</span>
+<a name="line-1973"></a>        <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-1974"></a>        <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-1975"></a>          <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1976"></a>          <span class='layout'>(</span><span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>occur</span> <span class='str'>"ref"</span> <span class='varid'>this</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-1977"></a>          <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-1978"></a>          <span class='layout'>(</span><span class='varid'>lastChild</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>occur</span> <span class='str'>"ref"</span> <span class='varid'>this</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-1979"></a>        <span class='layout'>)</span>
+<a name="line-1980"></a>        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1981"></a>        <span class='varid'>checkNames</span>
+<a name="line-1982"></a>      <span class='layout'>)</span>
+<a name="line-1983"></a>    <span class='layout'>)</span>
+<a name="line-1984"></a>    <span class='varop'>&gt;&gt;&gt;</span>     
+<a name="line-1985"></a>    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>
+<a name="line-1986"></a>        <span class='varop'>&lt;+&gt;</span> 
+<a name="line-1987"></a>        <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='str'>"A text pattern must not occur in both children of an interleave"</span> <span class='layout'>)</span>
+<a name="line-1988"></a>      <span class='layout'>)</span>
+<a name="line-1989"></a>      <span class='varop'>`when`</span> 
+<a name="line-1990"></a>      <span class='layout'>(</span><span class='varid'>isRngInterleave</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>checkText</span><span class='layout'>)</span>
+<a name="line-1991"></a>    <span class='layout'>)</span>
+<a name="line-1992"></a>  <span class='layout'>)</span>
+<a name="line-1993"></a>  <span class='keyword'>where</span>
+<a name="line-1994"></a>  <span class='varid'>checkInfiniteAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-1995"></a>  <span class='varid'>checkInfiniteAttribute</span>
+<a name="line-1996"></a>    <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>
+<a name="line-1997"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-1998"></a>      <span class='varid'>choiceA</span>
+<a name="line-1999"></a>      <span class='keyglyph'>[</span> <span class='varid'>isRngOneOrMore</span> <span class='conop'>:-&gt;</span> <span class='varid'>none</span>
+<a name="line-2000"></a>      <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isRngAttribute</span>
+<a name="line-2001"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2002"></a>          <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>isRngAnyName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngNsName</span><span class='layout'>)</span>
+<a name="line-2003"></a>        <span class='layout'>)</span> <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-2004"></a>      <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-&gt;</span> <span class='varid'>checkInfiniteAttribute</span>
+<a name="line-2005"></a>      <span class='keyglyph'>]</span>
+<a name="line-2006"></a>
+<a name="line-2007"></a>  <span class='varid'>checkNames</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='layout'>(</span><span class='conid'>XmlTree</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'>XmlTree</span>
+<a name="line-2008"></a>  <span class='varid'>checkNames</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span><span class='layout'>)</span>
+<a name="line-2009"></a>               <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-2010"></a>               <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>getNameClasses</span> <span class='varid'>nc</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-2011"></a>               <span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-2012"></a>               <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</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'>getNameClasses</span> <span class='varid'>nc</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-2013"></a>               <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2014"></a>               <span class='varid'>checkPattern</span>
+<a name="line-2015"></a>    <span class='keyword'>where</span>
+<a name="line-2016"></a>    <span class='varid'>getNameClasses</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'>NameClass</span><span class='layout'>)</span><span class='keyglyph'>]</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='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span>
+<a name="line-2017"></a>    <span class='varid'>getNameClasses</span> <span class='varid'>nc'</span> <span class='varid'>l</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='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>x</span> <span class='varid'>nc'</span><span class='layout'>)</span> <span class='varid'>l</span>
+<a name="line-2018"></a>    
+<a name="line-2019"></a>  <span class='varid'>checkText</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2020"></a>  <span class='varid'>checkText</span>
+<a name="line-2021"></a>      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>occur</span> <span class='str'>"text"</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-2022"></a>        <span class='varop'>`guards`</span> 
+<a name="line-2023"></a>        <span class='layout'>(</span> <span class='varid'>lastChild</span>  <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>occur</span> <span class='str'>"text"</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-2024"></a>       
+<a name="line-2025"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2026"></a>
+<a name="line-2027"></a>
+<a name="line-2028"></a><a name="overlap"></a><span class='definition'>overlap</span>		<span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2029"></a><span class='definition'>overlap</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span>
+<a name="line-2030"></a>    <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>bothContain</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc1</span> <span class='varop'>++</span> <span class='varid'>representatives</span> <span class='varid'>nc2</span><span class='layout'>)</span>
+<a name="line-2031"></a>
+<a name="line-2032"></a><a name="bothContain"></a><span class='definition'>bothContain</span>	<span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2033"></a><span class='definition'>bothContain</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span> <span class='varid'>qn</span>
+<a name="line-2034"></a>    <span class='keyglyph'>=</span> <span class='varid'>contains</span> <span class='varid'>nc1</span> <span class='varid'>qn</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>contains</span> <span class='varid'>nc2</span> <span class='varid'>qn</span>
+<a name="line-2035"></a>
+<a name="line-2036"></a><a name="illegalLocalName"></a><span class='definition'>illegalLocalName</span>	<span class='keyglyph'>::</span> <span class='conid'>LocalName</span>
+<a name="line-2037"></a><span class='definition'>illegalLocalName</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-2038"></a>
+<a name="line-2039"></a><a name="illegalUri"></a><span class='definition'>illegalUri</span>		<span class='keyglyph'>::</span> <span class='conid'>Uri</span>
+<a name="line-2040"></a><span class='definition'>illegalUri</span>		<span class='keyglyph'>=</span> <span class='str'>"\x1"</span>
+<a name="line-2041"></a>
+<a name="line-2042"></a><a name="representatives"></a><span class='definition'>representatives</span>		<span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span>
+<a name="line-2043"></a><span class='definition'>representatives</span> <span class='conid'>AnyName</span>
+<a name="line-2044"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>illegalUri</span><span class='keyglyph'>]</span>
+<a name="line-2045"></a>
+<a name="line-2046"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nc</span><span class='layout'>)</span>
+<a name="line-2047"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>illegalUri</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc</span><span class='layout'>)</span>
+<a name="line-2048"></a>
+<a name="line-2049"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-2050"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-2051"></a>
+<a name="line-2052"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>ns</span> <span class='varid'>nc</span><span class='layout'>)</span>
+<a name="line-2053"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc</span><span class='layout'>)</span>
+<a name="line-2054"></a>
+<a name="line-2055"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>ns</span> <span class='varid'>ln</span><span class='layout'>)</span>
+<a name="line-2056"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>ln</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-2057"></a>
+<a name="line-2058"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span>
+<a name="line-2059"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc1</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc2</span><span class='layout'>)</span>
+<a name="line-2060"></a>
+<a name="line-2061"></a><span class='definition'>representatives</span> <span class='keyword'>_</span>
+<a name="line-2062"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-2063"></a>
+<a name="line-2064"></a><a name="resetStates"></a><span class='comment'>-- -------------------------------------------------------------------------------------------------------            </span>
+<a name="line-2065"></a><span class='definition'>resetStates</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2066"></a><span class='definition'>resetStates</span>
+<a name="line-2067"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='varid'>setParamInt</span> <span class='str'>"define_id"</span> <span class='num'>0</span><span class='layout'>)</span>
+<a name="line-2068"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2069"></a>	<span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>[]</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>setParamList</span> <span class='str'>"elementTable"</span> <span class='layout'>)</span>
+<a name="line-2070"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2071"></a>	<span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='varid'>setParamInt</span> <span class='varid'>a_numberOfErrors</span> <span class='num'>0</span><span class='layout'>)</span>
+<a name="line-2072"></a>      <span class='layout'>)</span>
+<a name="line-2073"></a>
+<a name="line-2074"></a>
+<a name="line-2075"></a><a name="getAllDeepDefines"></a><span class='definition'>getAllDeepDefines</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>Env</span>
+<a name="line-2076"></a><span class='definition'>getAllDeepDefines</span>
+<a name="line-2077"></a>    <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='varid'>isRngDefine</span>
+<a name="line-2078"></a>      <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-2079"></a>      <span class='layout'>(</span> <span class='varid'>getRngAttrName</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>
+<a name="line-2080"></a>
+<a name="line-2081"></a>
+<a name="line-2082"></a><span class='comment'>-- | Return all reachable defines from the start pattern</span>
+<a name="line-2083"></a>
+<a name="line-2084"></a><a name="getRefsFromStartPattern"></a><span class='definition'>getRefsFromStartPattern</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-2085"></a><span class='definition'>getRefsFromStartPattern</span>
+<a name="line-2086"></a>  <span class='keyglyph'>=</span> <span class='varid'>listA</span>
+<a name="line-2087"></a>    <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-2088"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2089"></a>      <span class='varid'>isRngGrammar</span>
+<a name="line-2090"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2091"></a>      <span class='varid'>getChildren</span>
+<a name="line-2092"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2093"></a>      <span class='varid'>isRngStart</span>
+<a name="line-2094"></a>      <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-2095"></a>      <span class='varid'>deep</span> <span class='varid'>isRngRef</span>
+<a name="line-2096"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2097"></a>      <span class='varid'>getRngAttrName</span>
+<a name="line-2098"></a>    <span class='layout'>)</span>
+<a name="line-2099"></a>
+<a name="line-2100"></a><a name="removeUnreachableDefines"></a><span class='definition'>removeUnreachableDefines</span> <span class='keyglyph'>::</span> <span class='conid'>Env</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='keyglyph'>[</span><span class='conid'>String</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-2101"></a><span class='definition'>removeUnreachableDefines</span> <span class='varid'>allDefs</span> <span class='varid'>processedDefs</span> <span class='varid'>reachableDefs</span>
+<a name="line-2102"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>unprocessedDefs</span> <span class='varop'>/=</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-2103"></a>      <span class='layout'>(</span> <span class='varid'>removeUnreachableDefines</span> <span class='varid'>allDefs</span> <span class='layout'>(</span><span class='varid'>nextTreeName</span> <span class='conop'>:</span> <span class='varid'>processedDefs</span><span class='layout'>)</span> <span class='varop'>$&lt;</span> <span class='varid'>newReachableDefs</span> <span class='layout'>)</span>
+<a name="line-2104"></a>      <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varop'>$</span> <span class='comment'>-- root node</span>
+<a name="line-2105"></a>        <span class='varid'>processChildren</span> <span class='varop'>$</span> <span class='comment'>-- first grammar</span>
+<a name="line-2106"></a>        <span class='layout'>(</span> <span class='varid'>none</span> 
+<a name="line-2107"></a>          <span class='varop'>`when`</span>
+<a name="line-2108"></a>          <span class='layout'>(</span> <span class='varid'>isRngDefine</span>
+<a name="line-2109"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2110"></a>            <span class='varid'>getRngAttrName</span>
+<a name="line-2111"></a>            <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-2112"></a>            <span class='varid'>isA</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='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>n</span> <span class='varid'>reachableDefs</span><span class='layout'>)</span>
+<a name="line-2113"></a>          <span class='layout'>)</span>
+<a name="line-2114"></a>	<span class='layout'>)</span>
+<a name="line-2115"></a>      <span class='layout'>)</span>
+<a name="line-2116"></a>    <span class='keyword'>where</span>
+<a name="line-2117"></a>    <span class='varid'>unprocessedDefs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-2118"></a>    <span class='varid'>unprocessedDefs</span>
+<a name="line-2119"></a>	<span class='keyglyph'>=</span> <span class='varid'>reachableDefs</span> <span class='varop'>\\</span> <span class='varid'>processedDefs</span>
+<a name="line-2120"></a>
+<a name="line-2121"></a>    <span class='varid'>newReachableDefs</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-2122"></a>    <span class='varid'>newReachableDefs</span>
+<a name="line-2123"></a>	<span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>getTree</span>
+<a name="line-2124"></a>          <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-2125"></a>          <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRef</span>
+<a name="line-2126"></a>                  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2127"></a>                  <span class='varid'>getRngAttrName</span>
+<a name="line-2128"></a>                <span class='layout'>)</span>
+<a name="line-2129"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2130"></a>          <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>noDoubles</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>reachableDefs</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-2131"></a>
+<a name="line-2132"></a>    <span class='varid'>getTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>
+<a name="line-2133"></a>    <span class='varid'>getTree</span>
+<a name="line-2134"></a>	<span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>nextTreeName</span> <span class='varid'>allDefs</span>
+<a name="line-2135"></a>
+<a name="line-2136"></a>    <span class='varid'>nextTreeName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-2137"></a>    <span class='varid'>nextTreeName</span>
+<a name="line-2138"></a>	<span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varid'>unprocessedDefs</span>
+<a name="line-2139"></a>
+<a name="line-2140"></a>
+<a name="line-2141"></a><span class='comment'>-- -------------------------------------------------------------------------------------------------------    </span>
+<a name="line-2142"></a>    
+<a name="line-2143"></a>
+<a name="line-2144"></a><a name="checkElemName"></a><span class='definition'>checkElemName</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='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2145"></a><span class='definition'>checkElemName</span> <span class='varid'>l</span>
+<a name="line-2146"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getLocalPart</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>elem</span> <span class='varid'>s</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-2147"></a>      <span class='varop'>`guards`</span>
+<a name="line-2148"></a>      <span class='varid'>this</span>
+<a name="line-2149"></a>
+<a name="line-2150"></a><a name="wrapPattern2Two"></a><span class='definition'>wrapPattern2Two</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</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-2151"></a><span class='definition'>wrapPattern2Two</span> <span class='varid'>name</span> 
+<a name="line-2152"></a>  <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>
+<a name="line-2153"></a>    <span class='keyglyph'>[</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>&gt;</span> <span class='num'>2</span><span class='layout'>)</span>
+<a name="line-2154"></a>      <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>mkRngElement</span> <span class='varid'>name</span> <span class='varid'>none</span> 
+<a name="line-2155"></a>                               <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>take</span> <span class='num'>2</span><span class='layout'>)</span>
+<a name="line-2156"></a>                              <span class='layout'>)</span> 
+<a name="line-2157"></a>                              <span class='varop'>&lt;+&gt;</span> 
+<a name="line-2158"></a>                              <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>drop</span> <span class='num'>2</span><span class='layout'>)</span>
+<a name="line-2159"></a>                            <span class='layout'>)</span>
+<a name="line-2160"></a>            <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2161"></a>            <span class='varid'>wrapPattern2Two</span> <span class='varid'>name</span>
+<a name="line-2162"></a>          <span class='layout'>)</span>
+<a name="line-2163"></a>    <span class='layout'>,</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-2164"></a>      <span class='conop'>:-&gt;</span> <span class='varid'>getChildren</span>
+<a name="line-2165"></a>    <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-2166"></a>      <span class='conop'>:-&gt;</span> <span class='varid'>this</span>
+<a name="line-2167"></a>    <span class='keyglyph'>]</span>
+<a name="line-2168"></a>
+<a name="line-2169"></a><a name="mkRelaxError"></a><span class='definition'>mkRelaxError</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'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-2170"></a><span class='definition'>mkRelaxError</span> <span class='varid'>changesStr</span> <span class='varid'>errStr</span>
+<a name="line-2171"></a>  <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>getAndSetCounter</span> <span class='varid'>a_numberOfErrors</span><span class='layout'>)</span>
+<a name="line-2172"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2173"></a>    <span class='varid'>mkRngRelaxError</span> <span class='varid'>none</span> <span class='varid'>none</span>
+<a name="line-2174"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2175"></a>    <span class='varid'>addAttr</span> <span class='str'>"desc"</span> <span class='varid'>errStr</span>
+<a name="line-2176"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2177"></a>    <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='str'>"changes"</span> <span class='varid'>changesStr</span>
+<a name="line-2178"></a>      <span class='varop'>`whenP`</span>
+<a name="line-2179"></a>      <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>changesStr</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-2180"></a>    <span class='layout'>)</span>
+<a name="line-2181"></a>
+<a name="line-2182"></a><a name="collectErrors"></a><span class='definition'>collectErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2183"></a><span class='definition'>collectErrors</span>
+<a name="line-2184"></a>  <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-2185"></a>    <span class='varop'>`when`</span>
+<a name="line-2186"></a>    <span class='layout'>(</span> <span class='varid'>stopAfterFirstError</span>
+<a name="line-2187"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2188"></a>      <span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='varid'>a_numberOfErrors</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='num'>0</span><span class='layout'>)</span>
+<a name="line-2189"></a>    <span class='layout'>)</span>
+<a name="line-2190"></a>  <span class='keyword'>where</span>
+<a name="line-2191"></a>  <span class='varid'>stopAfterFirstError</span> <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>a_do_not_collect_errors</span>
+<a name="line-2192"></a>                        <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2193"></a>                        <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"1"</span><span class='layout'>)</span>
+<a name="line-2194"></a> 
+<a name="line-2195"></a>
+<a name="line-2196"></a><a name="getErrors"></a><span class='comment'>-- | Returns the list of simplification errors or 'none'</span>
+<a name="line-2197"></a><span class='definition'>getErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2198"></a><span class='definition'>getErrors</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='varid'>a_numberOfErrors</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</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-2199"></a>            <span class='varop'>`guards`</span>
+<a name="line-2200"></a>            <span class='layout'>(</span><span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>multi</span> <span class='varid'>isRngRelaxError</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-2201"></a>
+<a name="line-2202"></a><a name="setChangesAttr"></a><span class='definition'>setChangesAttr</span> <span class='keyglyph'>::</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-2203"></a><span class='definition'>setChangesAttr</span> <span class='varid'>str</span>
+<a name="line-2204"></a>  <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>)</span>
+<a name="line-2205"></a>      <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='varop'>$</span>
+<a name="line-2206"></a>          <span class='varid'>changeAttrValue</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='layout'>(</span><span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>str</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-2207"></a>          <span class='varop'>`when`</span>
+<a name="line-2208"></a>          <span class='layout'>(</span><span class='varid'>hasRngName</span> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>)</span>
+<a name="line-2209"></a>      <span class='layout'>)</span>
+<a name="line-2210"></a>      <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>str</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-2211"></a>
+<a name="line-2212"></a>
+<a name="line-2213"></a><a name="getChangesAttr"></a><span class='definition'>getChangesAttr</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-2214"></a><span class='definition'>getChangesAttr</span>
+<a name="line-2215"></a>  <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_relaxSimplificationChanges</span> 
+<a name="line-2216"></a>    <span class='varop'>&amp;&amp;&amp;</span> 
+<a name="line-2217"></a>    <span class='varid'>getParamString</span> <span class='varid'>a_output_changes</span>
+<a name="line-2218"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2219"></a>    <span class='varid'>ifP</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>changes</span><span class='layout'>,</span> <span class='varid'>param</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>changes</span> <span class='varop'>/=</span> <span class='str'>""</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>param</span> <span class='varop'>==</span> <span class='str'>"1"</span><span class='layout'>)</span>
+<a name="line-2220"></a>      <span class='layout'>(</span><span class='varid'>arr2</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>l</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span>
+<a name="line-2221"></a>      <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-2222"></a>      
+<a name="line-2223"></a>
+<a name="line-2224"></a><a name="getAndSetCounter"></a><span class='definition'>getAndSetCounter</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>String</span>
+<a name="line-2225"></a><span class='definition'>getAndSetCounter</span> <span class='varid'>name</span>   
+<a name="line-2226"></a>  <span class='keyglyph'>=</span> <span class='varid'>genNewId</span> <span class='varop'>$&lt;</span> <span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='varid'>name</span>
+<a name="line-2227"></a>  <span class='keyword'>where</span>
+<a name="line-2228"></a>  <span class='varid'>genNewId</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>String</span>
+<a name="line-2229"></a>  <span class='varid'>genNewId</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='varid'>setParamInt</span> <span class='varid'>name</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='varop'>&gt;&gt;&gt;</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>
+<a name="line-2230"></a>
+<a name="line-2231"></a>     
+<a name="line-2232"></a><span class='comment'>-- -------------------------------------------------------------------------------------------------------            </span>
+<a name="line-2233"></a>
+<a name="line-2234"></a><span class='comment'>-- | Creates the simple form of a Relax NG schema</span>
+<a name="line-2235"></a><span class='comment'>-- (see also: 'relaxOptions')</span>
+<a name="line-2236"></a>
+<a name="line-2237"></a><a name="createSimpleForm"></a><span class='definition'>createSimpleForm</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2238"></a><span class='definition'>createSimpleForm</span> <span class='varid'>remainingOptions</span> <span class='varid'>checkRestrictions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span>
+<a name="line-2239"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"createSimpleForm: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>remainingOptions</span><span class='layout'>,</span> <span class='varid'>checkRestrictions</span><span class='layout'>,</span><span class='varid'>validateExternalRef</span><span class='layout'>,</span> <span class='varid'>validateInclude</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-2240"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2241"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>checkRestrictions</span>
+<a name="line-2242"></a>	<span class='keyword'>then</span> <span class='varid'>createSimpleWithRest</span>
+<a name="line-2243"></a>	<span class='keyword'>else</span> <span class='varid'>createSimpleWithoutRest</span>
+<a name="line-2244"></a>      <span class='layout'>)</span>
+<a name="line-2245"></a>    <span class='keyword'>where</span>
+<a name="line-2246"></a>
+<a name="line-2247"></a>    <span class='varid'>createSimpleWithRest</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2248"></a>    <span class='varid'>createSimpleWithRest</span>
+<a name="line-2249"></a>	<span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='varid'>simplificationPart1</span>
+<a name="line-2250"></a>			<span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: simplificationPart1 done"</span>
+<a name="line-2251"></a>			<span class='layout'>,</span> <span class='varid'>restrictionsPart1</span>
+<a name="line-2252"></a>			<span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: restrictionsPart1 done"</span>
+<a name="line-2253"></a>			<span class='layout'>,</span> <span class='varid'>simplificationPart2</span>
+<a name="line-2254"></a>			<span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG simplificationPart2 done"</span>
+<a name="line-2255"></a>			<span class='layout'>,</span> <span class='varid'>restrictionsPart2</span>
+<a name="line-2256"></a>			<span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: restrictionsPart2 done"</span>
+<a name="line-2257"></a>			<span class='layout'>,</span> <span class='varid'>finalCleanUp</span>
+<a name="line-2258"></a>			<span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: finalCleanUp done"</span>
+<a name="line-2259"></a>			<span class='keyglyph'>]</span>
+<a name="line-2260"></a>
+<a name="line-2261"></a>    <span class='varid'>createSimpleWithoutRest</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2262"></a>    <span class='varid'>createSimpleWithoutRest</span>
+<a name="line-2263"></a>	<span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='varid'>simplificationPart1</span>
+<a name="line-2264"></a>			<span class='layout'>,</span> <span class='varid'>simplificationPart2</span>
+<a name="line-2265"></a>			<span class='layout'>,</span> <span class='varid'>finalCleanUp</span>
+<a name="line-2266"></a>			<span class='keyglyph'>]</span>
+<a name="line-2267"></a>    <span class='varid'>simplificationPart1</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-2268"></a>    <span class='varid'>simplificationPart1</span>
+<a name="line-2269"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>propagateNamespaces</span>
+<a name="line-2270"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep1</span>
+<a name="line-2271"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep2</span> <span class='varid'>remainingOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-2272"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep3</span>
+<a name="line-2273"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep4</span>
+<a name="line-2274"></a>	  <span class='keyglyph'>]</span>
+<a name="line-2275"></a>
+<a name="line-2276"></a>    <span class='varid'>simplificationPart2</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-2277"></a>    <span class='varid'>simplificationPart2</span>
+<a name="line-2278"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>simplificationStep5</span>
+<a name="line-2279"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep6</span>
+<a name="line-2280"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep7</span>
+<a name="line-2281"></a>	  <span class='layout'>,</span> <span class='varid'>simplificationStep8</span>
+<a name="line-2282"></a>	  <span class='keyglyph'>]</span>
+<a name="line-2283"></a>
+<a name="line-2284"></a>    <span class='varid'>restrictionsPart1</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-2285"></a>    <span class='varid'>restrictionsPart1</span>
+<a name="line-2286"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>restrictionsStep1</span> <span class='keyglyph'>]</span>
+<a name="line-2287"></a>
+<a name="line-2288"></a>    <span class='varid'>restrictionsPart2</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-2289"></a>    <span class='varid'>restrictionsPart2</span>
+<a name="line-2290"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>restrictionsStep2</span>
+<a name="line-2291"></a>	  <span class='layout'>,</span> <span class='varid'>restrictionsStep3</span>
+<a name="line-2292"></a>	  <span class='layout'>,</span> <span class='varid'>restrictionsStep4</span>                    
+<a name="line-2293"></a>	  <span class='keyglyph'>]</span>
+<a name="line-2294"></a>
+<a name="line-2295"></a>    <span class='varid'>finalCleanUp</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>                    
+<a name="line-2296"></a>    <span class='varid'>finalCleanUp</span>
+<a name="line-2297"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>cleanUp</span>
+<a name="line-2298"></a>	  <span class='layout'>,</span> <span class='varid'>resetStates</span>
+<a name="line-2299"></a>	  <span class='keyglyph'>]</span>
+<a name="line-2300"></a>
+<a name="line-2301"></a>    <span class='varid'>cleanUp</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-2302"></a>    <span class='varid'>cleanUp</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='varop'>$</span> 
+<a name="line-2303"></a>              <span class='varid'>removeAttr</span> <span class='varid'>a_relaxSimplificationChanges</span>
+<a name="line-2304"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-2305"></a>              <span class='varid'>removeAttr</span> <span class='varid'>defineOrigName</span>
+<a name="line-2306"></a>
+<a name="line-2307"></a><span class='comment'>-- -------------------------------------------------------------------------------------------------------            </span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
@@ -0,0 +1,196 @@
+<!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     : Text.XML.HXT.RelaxNG.Unicode.Blocks
+<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 Code Blocks
+<a name="line-14"></a>
+<a name="line-15"></a>   don't edit this module
+<a name="line-16"></a>   it's generated from 'http:\/\/www.unicode.org\/Public\/UNIDATA\/Blocks.txt'
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>Blocks</span>
+<a name="line-22"></a>  <span class='layout'>(</span> <span class='varid'>codeBlocks</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='comment'>-- ------------------------------------------------------------</span>
+<a name="line-26"></a>
+<a name="line-27"></a><a name="codeBlocks"></a><span class='definition'>codeBlocks</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'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-28"></a><span class='definition'>codeBlocks</span> <span class='keyglyph'>=</span>
+<a name="line-29"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='str'>"BasicLatin"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0000'</span><span class='layout'>,</span> <span class='chr'>'\x007F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Latin-1Supplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0080'</span><span class='layout'>,</span> <span class='chr'>'\x00FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-A"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0100'</span><span class='layout'>,</span> <span class='chr'>'\x017F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-B"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0180'</span><span class='layout'>,</span> <span class='chr'>'\x024F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"IPAExtensions"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0250'</span><span class='layout'>,</span> <span class='chr'>'\x02AF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SpacingModifierLetters"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x02B0'</span><span class='layout'>,</span> <span class='chr'>'\x02FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningDiacriticalMarks"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0300'</span><span class='layout'>,</span> <span class='chr'>'\x036F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GreekandCoptic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0370'</span><span class='layout'>,</span> <span class='chr'>'\x03FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Cyrillic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0400'</span><span class='layout'>,</span> <span class='chr'>'\x04FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CyrillicSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0500'</span><span class='layout'>,</span> <span class='chr'>'\x052F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Armenian"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0530'</span><span class='layout'>,</span> <span class='chr'>'\x058F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Hebrew"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0590'</span><span class='layout'>,</span> <span class='chr'>'\x05FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-41"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Arabic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0600'</span><span class='layout'>,</span> <span class='chr'>'\x06FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Syriac"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0700'</span><span class='layout'>,</span> <span class='chr'>'\x074F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ArabicSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0750'</span><span class='layout'>,</span> <span class='chr'>'\x077F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Thaana"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0780'</span><span class='layout'>,</span> <span class='chr'>'\x07BF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"NKo"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x07C0'</span><span class='layout'>,</span> <span class='chr'>'\x07FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Devanagari"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0900'</span><span class='layout'>,</span> <span class='chr'>'\x097F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-47"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Bengali"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0980'</span><span class='layout'>,</span> <span class='chr'>'\x09FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Gurmukhi"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0A00'</span><span class='layout'>,</span> <span class='chr'>'\x0A7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Gujarati"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0A80'</span><span class='layout'>,</span> <span class='chr'>'\x0AFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Oriya"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0B00'</span><span class='layout'>,</span> <span class='chr'>'\x0B7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tamil"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0B80'</span><span class='layout'>,</span> <span class='chr'>'\x0BFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Telugu"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0C00'</span><span class='layout'>,</span> <span class='chr'>'\x0C7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Kannada"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0C80'</span><span class='layout'>,</span> <span class='chr'>'\x0CFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-54"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Malayalam"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0D00'</span><span class='layout'>,</span> <span class='chr'>'\x0D7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Sinhala"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0D80'</span><span class='layout'>,</span> <span class='chr'>'\x0DFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Thai"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0E00'</span><span class='layout'>,</span> <span class='chr'>'\x0E7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Lao"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0E80'</span><span class='layout'>,</span> <span class='chr'>'\x0EFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-58"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tibetan"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x0F00'</span><span class='layout'>,</span> <span class='chr'>'\x0FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-59"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Myanmar"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1000'</span><span class='layout'>,</span> <span class='chr'>'\x109F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Georgian"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10A0'</span><span class='layout'>,</span> <span class='chr'>'\x10FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HangulJamo"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1100'</span><span class='layout'>,</span> <span class='chr'>'\x11FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Ethiopic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1200'</span><span class='layout'>,</span> <span class='chr'>'\x137F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-63"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EthiopicSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1380'</span><span class='layout'>,</span> <span class='chr'>'\x139F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Cherokee"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x13A0'</span><span class='layout'>,</span> <span class='chr'>'\x13FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-65"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"UnifiedCanadianAboriginalSyllabics"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1400'</span><span class='layout'>,</span> <span class='chr'>'\x167F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Ogham"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1680'</span><span class='layout'>,</span> <span class='chr'>'\x169F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Runic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x16A0'</span><span class='layout'>,</span> <span class='chr'>'\x16FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tagalog"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1700'</span><span class='layout'>,</span> <span class='chr'>'\x171F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Hanunoo"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1720'</span><span class='layout'>,</span> <span class='chr'>'\x173F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Buhid"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1740'</span><span class='layout'>,</span> <span class='chr'>'\x175F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tagbanwa"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1760'</span><span class='layout'>,</span> <span class='chr'>'\x177F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Khmer"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1780'</span><span class='layout'>,</span> <span class='chr'>'\x17FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Mongolian"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1800'</span><span class='layout'>,</span> <span class='chr'>'\x18AF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Limbu"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1900'</span><span class='layout'>,</span> <span class='chr'>'\x194F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"TaiLe"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1950'</span><span class='layout'>,</span> <span class='chr'>'\x197F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"NewTaiLue"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1980'</span><span class='layout'>,</span> <span class='chr'>'\x19DF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-77"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"KhmerSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x19E0'</span><span class='layout'>,</span> <span class='chr'>'\x19FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-78"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Buginese"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1A00'</span><span class='layout'>,</span> <span class='chr'>'\x1A1F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-79"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Balinese"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1B00'</span><span class='layout'>,</span> <span class='chr'>'\x1B7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-80"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"PhoneticExtensions"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D00'</span><span class='layout'>,</span> <span class='chr'>'\x1D7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-81"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"PhoneticExtensionsSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D80'</span><span class='layout'>,</span> <span class='chr'>'\x1DBF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-82"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningDiacriticalMarksSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1DC0'</span><span class='layout'>,</span> <span class='chr'>'\x1DFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-83"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtendedAdditional"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1E00'</span><span class='layout'>,</span> <span class='chr'>'\x1EFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-84"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GreekExtended"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1F00'</span><span class='layout'>,</span> <span class='chr'>'\x1FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-85"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GeneralPunctuation"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2000'</span><span class='layout'>,</span> <span class='chr'>'\x206F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-86"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SuperscriptsandSubscripts"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2070'</span><span class='layout'>,</span> <span class='chr'>'\x209F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-87"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CurrencySymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x20A0'</span><span class='layout'>,</span> <span class='chr'>'\x20CF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-88"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningDiacriticalMarksforSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x20D0'</span><span class='layout'>,</span> <span class='chr'>'\x20FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-89"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LetterlikeSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2100'</span><span class='layout'>,</span> <span class='chr'>'\x214F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-90"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"NumberForms"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2150'</span><span class='layout'>,</span> <span class='chr'>'\x218F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-91"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Arrows"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2190'</span><span class='layout'>,</span> <span class='chr'>'\x21FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-92"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MathematicalOperators"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2200'</span><span class='layout'>,</span> <span class='chr'>'\x22FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-93"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousTechnical"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2300'</span><span class='layout'>,</span> <span class='chr'>'\x23FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-94"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ControlPictures"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2400'</span><span class='layout'>,</span> <span class='chr'>'\x243F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-95"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"OpticalCharacterRecognition"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2440'</span><span class='layout'>,</span> <span class='chr'>'\x245F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-96"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EnclosedAlphanumerics"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2460'</span><span class='layout'>,</span> <span class='chr'>'\x24FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-97"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BoxDrawing"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2500'</span><span class='layout'>,</span> <span class='chr'>'\x257F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-98"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BlockElements"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2580'</span><span class='layout'>,</span> <span class='chr'>'\x259F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-99"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GeometricShapes"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x25A0'</span><span class='layout'>,</span> <span class='chr'>'\x25FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-100"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2600'</span><span class='layout'>,</span> <span class='chr'>'\x26FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-101"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Dingbats"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2700'</span><span class='layout'>,</span> <span class='chr'>'\x27BF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-102"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousMathematicalSymbols-A"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x27C0'</span><span class='layout'>,</span> <span class='chr'>'\x27EF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-103"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalArrows-A"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x27F0'</span><span class='layout'>,</span> <span class='chr'>'\x27FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-104"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BraillePatterns"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2800'</span><span class='layout'>,</span> <span class='chr'>'\x28FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-105"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalArrows-B"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2900'</span><span class='layout'>,</span> <span class='chr'>'\x297F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-106"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousMathematicalSymbols-B"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2980'</span><span class='layout'>,</span> <span class='chr'>'\x29FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-107"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalMathematicalOperators"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2A00'</span><span class='layout'>,</span> <span class='chr'>'\x2AFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-108"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousSymbolsandArrows"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2B00'</span><span class='layout'>,</span> <span class='chr'>'\x2BFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-109"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Glagolitic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2C00'</span><span class='layout'>,</span> <span class='chr'>'\x2C5F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-110"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-C"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2C60'</span><span class='layout'>,</span> <span class='chr'>'\x2C7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-111"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Coptic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2C80'</span><span class='layout'>,</span> <span class='chr'>'\x2CFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-112"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GeorgianSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2D00'</span><span class='layout'>,</span> <span class='chr'>'\x2D2F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-113"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tifinagh"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2D30'</span><span class='layout'>,</span> <span class='chr'>'\x2D7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-114"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EthiopicExtended"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2D80'</span><span class='layout'>,</span> <span class='chr'>'\x2DDF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-115"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalPunctuation"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2E00'</span><span class='layout'>,</span> <span class='chr'>'\x2E7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-116"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKRadicalsSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2E80'</span><span class='layout'>,</span> <span class='chr'>'\x2EFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-117"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"KangxiRadicals"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2F00'</span><span class='layout'>,</span> <span class='chr'>'\x2FDF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-118"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"IdeographicDescriptionCharacters"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2FF0'</span><span class='layout'>,</span> <span class='chr'>'\x2FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-119"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKSymbolsandPunctuation"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3000'</span><span class='layout'>,</span> <span class='chr'>'\x303F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-120"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Hiragana"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3040'</span><span class='layout'>,</span> <span class='chr'>'\x309F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-121"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Katakana"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x30A0'</span><span class='layout'>,</span> <span class='chr'>'\x30FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-122"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Bopomofo"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3100'</span><span class='layout'>,</span> <span class='chr'>'\x312F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-123"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HangulCompatibilityJamo"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3130'</span><span class='layout'>,</span> <span class='chr'>'\x318F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-124"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Kanbun"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3190'</span><span class='layout'>,</span> <span class='chr'>'\x319F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-125"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BopomofoExtended"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x31A0'</span><span class='layout'>,</span> <span class='chr'>'\x31BF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-126"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKStrokes"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x31C0'</span><span class='layout'>,</span> <span class='chr'>'\x31EF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-127"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"KatakanaPhoneticExtensions"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x31F0'</span><span class='layout'>,</span> <span class='chr'>'\x31FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-128"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EnclosedCJKLettersandMonths"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3200'</span><span class='layout'>,</span> <span class='chr'>'\x32FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-129"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibility"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3300'</span><span class='layout'>,</span> <span class='chr'>'\x33FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-130"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKUnifiedIdeographsExtensionA"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x3400'</span><span class='layout'>,</span> <span class='chr'>'\x4DBF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-131"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"YijingHexagramSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x4DC0'</span><span class='layout'>,</span> <span class='chr'>'\x4DFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-132"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKUnifiedIdeographs"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x4E00'</span><span class='layout'>,</span> <span class='chr'>'\x9FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-133"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"YiSyllables"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xA000'</span><span class='layout'>,</span> <span class='chr'>'\xA48F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-134"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"YiRadicals"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xA490'</span><span class='layout'>,</span> <span class='chr'>'\xA4CF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-135"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ModifierToneLetters"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xA700'</span><span class='layout'>,</span> <span class='chr'>'\xA71F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-136"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-D"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xA720'</span><span class='layout'>,</span> <span class='chr'>'\xA7FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-137"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SylotiNagri"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xA800'</span><span class='layout'>,</span> <span class='chr'>'\xA82F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-138"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Phags-pa"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xA840'</span><span class='layout'>,</span> <span class='chr'>'\xA87F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-139"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HangulSyllables"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xAC00'</span><span class='layout'>,</span> <span class='chr'>'\xD7AF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-140"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HighSurrogates"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xD800'</span><span class='layout'>,</span> <span class='chr'>'\xDB7F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-141"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HighPrivateUseSurrogates"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xDB80'</span><span class='layout'>,</span> <span class='chr'>'\xDBFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-142"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LowSurrogates"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xDC00'</span><span class='layout'>,</span> <span class='chr'>'\xDFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-143"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"PrivateUseArea"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xE000'</span><span class='layout'>,</span> <span class='chr'>'\xF8FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-144"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibilityIdeographs"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xF900'</span><span class='layout'>,</span> <span class='chr'>'\xFAFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-145"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AlphabeticPresentationForms"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFB00'</span><span class='layout'>,</span> <span class='chr'>'\xFB4F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-146"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ArabicPresentationForms-A"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFB50'</span><span class='layout'>,</span> <span class='chr'>'\xFDFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-147"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"VariationSelectors"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFE00'</span><span class='layout'>,</span> <span class='chr'>'\xFE0F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-148"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"VerticalForms"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFE10'</span><span class='layout'>,</span> <span class='chr'>'\xFE1F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-149"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningHalfMarks"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFE20'</span><span class='layout'>,</span> <span class='chr'>'\xFE2F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-150"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibilityForms"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFE30'</span><span class='layout'>,</span> <span class='chr'>'\xFE4F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-151"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SmallFormVariants"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFE50'</span><span class='layout'>,</span> <span class='chr'>'\xFE6F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-152"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ArabicPresentationForms-B"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFE70'</span><span class='layout'>,</span> <span class='chr'>'\xFEFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-153"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HalfwidthandFullwidthForms"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFF00'</span><span class='layout'>,</span> <span class='chr'>'\xFFEF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-154"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Specials"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xFFF0'</span><span class='layout'>,</span> <span class='chr'>'\xFFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-155"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LinearBSyllabary"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10000'</span><span class='layout'>,</span> <span class='chr'>'\x1007F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-156"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LinearBIdeograms"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10080'</span><span class='layout'>,</span> <span class='chr'>'\x100FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-157"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AegeanNumbers"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10100'</span><span class='layout'>,</span> <span class='chr'>'\x1013F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-158"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AncientGreekNumbers"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10140'</span><span class='layout'>,</span> <span class='chr'>'\x1018F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-159"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"OldItalic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10300'</span><span class='layout'>,</span> <span class='chr'>'\x1032F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-160"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Gothic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10330'</span><span class='layout'>,</span> <span class='chr'>'\x1034F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-161"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Ugaritic"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10380'</span><span class='layout'>,</span> <span class='chr'>'\x1039F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-162"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"OldPersian"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x103A0'</span><span class='layout'>,</span> <span class='chr'>'\x103DF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-163"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Deseret"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10400'</span><span class='layout'>,</span> <span class='chr'>'\x1044F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-164"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Shavian"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10450'</span><span class='layout'>,</span> <span class='chr'>'\x1047F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-165"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Osmanya"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10480'</span><span class='layout'>,</span> <span class='chr'>'\x104AF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-166"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CypriotSyllabary"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10800'</span><span class='layout'>,</span> <span class='chr'>'\x1083F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-167"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Phoenician"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10900'</span><span class='layout'>,</span> <span class='chr'>'\x1091F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-168"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Kharoshthi"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x10A00'</span><span class='layout'>,</span> <span class='chr'>'\x10A5F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-169"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Cuneiform"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x12000'</span><span class='layout'>,</span> <span class='chr'>'\x123FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-170"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CuneiformNumbersandPunctuation"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x12400'</span><span class='layout'>,</span> <span class='chr'>'\x1247F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-171"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ByzantineMusicalSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D000'</span><span class='layout'>,</span> <span class='chr'>'\x1D0FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-172"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MusicalSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D100'</span><span class='layout'>,</span> <span class='chr'>'\x1D1FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-173"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AncientGreekMusicalNotation"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D200'</span><span class='layout'>,</span> <span class='chr'>'\x1D24F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-174"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"TaiXuanJingSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D300'</span><span class='layout'>,</span> <span class='chr'>'\x1D35F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-175"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CountingRodNumerals"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D360'</span><span class='layout'>,</span> <span class='chr'>'\x1D37F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-176"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MathematicalAlphanumericSymbols"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x1D400'</span><span class='layout'>,</span> <span class='chr'>'\x1D7FF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-177"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKUnifiedIdeographsExtensionB"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x20000'</span><span class='layout'>,</span> <span class='chr'>'\x2A6DF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-178"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibilityIdeographsSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x2F800'</span><span class='layout'>,</span> <span class='chr'>'\x2FA1F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-179"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tags"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xE0000'</span><span class='layout'>,</span> <span class='chr'>'\xE007F'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-180"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"VariationSelectorsSupplement"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xE0100'</span><span class='layout'>,</span> <span class='chr'>'\xE01EF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-181"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementaryPrivateUseArea-A"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\xF0000'</span><span class='layout'>,</span> <span class='chr'>'\xFFFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-182"></a>    <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementaryPrivateUseArea-B"</span><span class='layout'>,</span>	<span class='layout'>(</span> <span class='chr'>'\x100000'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-183"></a>    <span class='keyglyph'>]</span>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-186"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
@@ -0,0 +1,3267 @@
+<!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     : Text.XML.HXT.RelaxNG.Unicode.CharProps
+<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 character properties
+<a name="line-14"></a>
+<a name="line-15"></a>   don't edit this module
+<a name="line-16"></a>   it's generated from 'http:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt'
+<a name="line-17"></a>
+<a name="line-18"></a>-}</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-21"></a>
+<a name="line-22"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>CharProps</span>
+<a name="line-23"></a>  <span class='layout'>(</span> <span class='varid'>isUnicodeC</span>
+<a name="line-24"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeCc</span>
+<a name="line-25"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeCf</span>
+<a name="line-26"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeCo</span>
+<a name="line-27"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeCs</span>
+<a name="line-28"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeL</span>
+<a name="line-29"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeLl</span>
+<a name="line-30"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeLm</span>
+<a name="line-31"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeLo</span>
+<a name="line-32"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeLt</span>
+<a name="line-33"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeLu</span>
+<a name="line-34"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeM</span>
+<a name="line-35"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeMc</span>
+<a name="line-36"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeMe</span>
+<a name="line-37"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeMn</span>
+<a name="line-38"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeN</span>
+<a name="line-39"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeNd</span>
+<a name="line-40"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeNl</span>
+<a name="line-41"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeNo</span>
+<a name="line-42"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeP</span>
+<a name="line-43"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePc</span>
+<a name="line-44"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePd</span>
+<a name="line-45"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePe</span>
+<a name="line-46"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePf</span>
+<a name="line-47"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePi</span>
+<a name="line-48"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePo</span>
+<a name="line-49"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodePs</span>
+<a name="line-50"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeS</span>
+<a name="line-51"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeSc</span>
+<a name="line-52"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeSk</span>
+<a name="line-53"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeSm</span>
+<a name="line-54"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeSo</span>
+<a name="line-55"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeZ</span>
+<a name="line-56"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeZl</span>
+<a name="line-57"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeZp</span>
+<a name="line-58"></a>  <span class='layout'>,</span> <span class='varid'>isUnicodeZs</span>
+<a name="line-59"></a>  <span class='layout'>)</span>
+<a name="line-60"></a><span class='keyword'>where</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><a name="isInList"></a><span class='definition'>isInList</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-65"></a><span class='definition'>isInList</span> <span class='varid'>i</span> <span class='keyglyph'>=</span>
+<a name="line-66"></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-67"></a>
+<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="isUnicodeC"></a><span class='definition'>isUnicodeC</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-71"></a><span class='definition'>isUnicodeC</span> <span class='varid'>c</span>
+<a name="line-72"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-73"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\NUL'</span><span class='layout'>,</span><span class='chr'>'\US'</span><span class='layout'>)</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\DEL'</span><span class='layout'>,</span><span class='chr'>'\159'</span><span class='layout'>)</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173'</span><span class='layout'>,</span><span class='chr'>'\173'</span><span class='layout'>)</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1536'</span><span class='layout'>,</span><span class='chr'>'\1539'</span><span class='layout'>)</span>
+<a name="line-77"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1757'</span><span class='layout'>,</span><span class='chr'>'\1757'</span><span class='layout'>)</span>
+<a name="line-78"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1807'</span><span class='layout'>,</span><span class='chr'>'\1807'</span><span class='layout'>)</span>
+<a name="line-79"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6068'</span><span class='layout'>,</span><span class='chr'>'\6069'</span><span class='layout'>)</span>
+<a name="line-80"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8203'</span><span class='layout'>,</span><span class='chr'>'\8207'</span><span class='layout'>)</span>
+<a name="line-81"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8234'</span><span class='layout'>,</span><span class='chr'>'\8238'</span><span class='layout'>)</span>
+<a name="line-82"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8288'</span><span class='layout'>,</span><span class='chr'>'\8291'</span><span class='layout'>)</span>
+<a name="line-83"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8298'</span><span class='layout'>,</span><span class='chr'>'\8303'</span><span class='layout'>)</span>
+<a name="line-84"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\55296'</span><span class='layout'>,</span><span class='chr'>'\55296'</span><span class='layout'>)</span>
+<a name="line-85"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56191'</span><span class='layout'>,</span><span class='chr'>'\56192'</span><span class='layout'>)</span>
+<a name="line-86"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56319'</span><span class='layout'>,</span><span class='chr'>'\56320'</span><span class='layout'>)</span>
+<a name="line-87"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\57343'</span><span class='layout'>,</span><span class='chr'>'\57344'</span><span class='layout'>)</span>
+<a name="line-88"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63743'</span><span class='layout'>,</span><span class='chr'>'\63743'</span><span class='layout'>)</span>
+<a name="line-89"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65279'</span><span class='layout'>,</span><span class='chr'>'\65279'</span><span class='layout'>)</span>
+<a name="line-90"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65529'</span><span class='layout'>,</span><span class='chr'>'\65531'</span><span class='layout'>)</span>
+<a name="line-91"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119155'</span><span class='layout'>,</span><span class='chr'>'\119162'</span><span class='layout'>)</span>
+<a name="line-92"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917505'</span><span class='layout'>,</span><span class='chr'>'\917505'</span><span class='layout'>)</span>
+<a name="line-93"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917536'</span><span class='layout'>,</span><span class='chr'>'\917631'</span><span class='layout'>)</span>
+<a name="line-94"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\983040'</span><span class='layout'>,</span><span class='chr'>'\983040'</span><span class='layout'>)</span>
+<a name="line-95"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048573'</span><span class='layout'>,</span><span class='chr'>'\1048573'</span><span class='layout'>)</span>
+<a name="line-96"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048576'</span><span class='layout'>,</span><span class='chr'>'\1048576'</span><span class='layout'>)</span>
+<a name="line-97"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1114109'</span><span class='layout'>,</span><span class='chr'>'\1114109'</span><span class='layout'>)</span>
+<a name="line-98"></a>    <span class='keyglyph'>]</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="isUnicodeCc"></a><span class='definition'>isUnicodeCc</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-103"></a><span class='definition'>isUnicodeCc</span> <span class='varid'>c</span>
+<a name="line-104"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-105"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\NUL'</span><span class='layout'>,</span><span class='chr'>'\US'</span><span class='layout'>)</span>
+<a name="line-106"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\DEL'</span><span class='layout'>,</span><span class='chr'>'\159'</span><span class='layout'>)</span>
+<a name="line-107"></a>    <span class='keyglyph'>]</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="isUnicodeCf"></a><span class='definition'>isUnicodeCf</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-112"></a><span class='definition'>isUnicodeCf</span> <span class='varid'>c</span>
+<a name="line-113"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-114"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\173'</span><span class='layout'>,</span><span class='chr'>'\173'</span><span class='layout'>)</span>
+<a name="line-115"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1536'</span><span class='layout'>,</span><span class='chr'>'\1539'</span><span class='layout'>)</span>
+<a name="line-116"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1757'</span><span class='layout'>,</span><span class='chr'>'\1757'</span><span class='layout'>)</span>
+<a name="line-117"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1807'</span><span class='layout'>,</span><span class='chr'>'\1807'</span><span class='layout'>)</span>
+<a name="line-118"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6068'</span><span class='layout'>,</span><span class='chr'>'\6069'</span><span class='layout'>)</span>
+<a name="line-119"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8203'</span><span class='layout'>,</span><span class='chr'>'\8207'</span><span class='layout'>)</span>
+<a name="line-120"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8234'</span><span class='layout'>,</span><span class='chr'>'\8238'</span><span class='layout'>)</span>
+<a name="line-121"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8288'</span><span class='layout'>,</span><span class='chr'>'\8291'</span><span class='layout'>)</span>
+<a name="line-122"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8298'</span><span class='layout'>,</span><span class='chr'>'\8303'</span><span class='layout'>)</span>
+<a name="line-123"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65279'</span><span class='layout'>,</span><span class='chr'>'\65279'</span><span class='layout'>)</span>
+<a name="line-124"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65529'</span><span class='layout'>,</span><span class='chr'>'\65531'</span><span class='layout'>)</span>
+<a name="line-125"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119155'</span><span class='layout'>,</span><span class='chr'>'\119162'</span><span class='layout'>)</span>
+<a name="line-126"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917505'</span><span class='layout'>,</span><span class='chr'>'\917505'</span><span class='layout'>)</span>
+<a name="line-127"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917536'</span><span class='layout'>,</span><span class='chr'>'\917631'</span><span class='layout'>)</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>
+<a name="line-132"></a><a name="isUnicodeCo"></a><span class='definition'>isUnicodeCo</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-133"></a><span class='definition'>isUnicodeCo</span> <span class='varid'>c</span>
+<a name="line-134"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-135"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\57344'</span><span class='layout'>,</span><span class='chr'>'\57344'</span><span class='layout'>)</span>
+<a name="line-136"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63743'</span><span class='layout'>,</span><span class='chr'>'\63743'</span><span class='layout'>)</span>
+<a name="line-137"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\983040'</span><span class='layout'>,</span><span class='chr'>'\983040'</span><span class='layout'>)</span>
+<a name="line-138"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048573'</span><span class='layout'>,</span><span class='chr'>'\1048573'</span><span class='layout'>)</span>
+<a name="line-139"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048576'</span><span class='layout'>,</span><span class='chr'>'\1048576'</span><span class='layout'>)</span>
+<a name="line-140"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1114109'</span><span class='layout'>,</span><span class='chr'>'\1114109'</span><span class='layout'>)</span>
+<a name="line-141"></a>    <span class='keyglyph'>]</span>
+<a name="line-142"></a>
+<a name="line-143"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-144"></a>
+<a name="line-145"></a><a name="isUnicodeCs"></a><span class='definition'>isUnicodeCs</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-146"></a><span class='definition'>isUnicodeCs</span> <span class='varid'>c</span>
+<a name="line-147"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-148"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\55296'</span><span class='layout'>,</span><span class='chr'>'\55296'</span><span class='layout'>)</span>
+<a name="line-149"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56191'</span><span class='layout'>,</span><span class='chr'>'\56192'</span><span class='layout'>)</span>
+<a name="line-150"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56319'</span><span class='layout'>,</span><span class='chr'>'\56320'</span><span class='layout'>)</span>
+<a name="line-151"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\57343'</span><span class='layout'>,</span><span class='chr'>'\57343'</span><span class='layout'>)</span>
+<a name="line-152"></a>    <span class='keyglyph'>]</span>
+<a name="line-153"></a>
+<a name="line-154"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-155"></a>
+<a name="line-156"></a><a name="isUnicodeL"></a><span class='definition'>isUnicodeL</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-157"></a><span class='definition'>isUnicodeL</span> <span class='varid'>c</span>
+<a name="line-158"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-159"></a>    <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-160"></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-161"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span><span class='chr'>'\170'</span><span class='layout'>)</span>
+<a name="line-162"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span><span class='chr'>'\181'</span><span class='layout'>)</span>
+<a name="line-163"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span><span class='chr'>'\186'</span><span class='layout'>)</span>
+<a name="line-164"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span><span class='chr'>'\214'</span><span class='layout'>)</span>
+<a name="line-165"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span><span class='chr'>'\246'</span><span class='layout'>)</span>
+<a name="line-166"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span><span class='chr'>'\705'</span><span class='layout'>)</span>
+<a name="line-167"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\710'</span><span class='layout'>,</span><span class='chr'>'\721'</span><span class='layout'>)</span>
+<a name="line-168"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\736'</span><span class='layout'>,</span><span class='chr'>'\740'</span><span class='layout'>)</span>
+<a name="line-169"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\750'</span><span class='layout'>,</span><span class='chr'>'\750'</span><span class='layout'>)</span>
+<a name="line-170"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\890'</span><span class='layout'>,</span><span class='chr'>'\893'</span><span class='layout'>)</span>
+<a name="line-171"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\902'</span><span class='layout'>,</span><span class='chr'>'\902'</span><span class='layout'>)</span>
+<a name="line-172"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\904'</span><span class='layout'>,</span><span class='chr'>'\906'</span><span class='layout'>)</span>
+<a name="line-173"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\908'</span><span class='layout'>,</span><span class='chr'>'\908'</span><span class='layout'>)</span>
+<a name="line-174"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\910'</span><span class='layout'>,</span><span class='chr'>'\929'</span><span class='layout'>)</span>
+<a name="line-175"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\931'</span><span class='layout'>,</span><span class='chr'>'\974'</span><span class='layout'>)</span>
+<a name="line-176"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\976'</span><span class='layout'>,</span><span class='chr'>'\1013'</span><span class='layout'>)</span>
+<a name="line-177"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1015'</span><span class='layout'>,</span><span class='chr'>'\1153'</span><span class='layout'>)</span>
+<a name="line-178"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1162'</span><span class='layout'>,</span><span class='chr'>'\1299'</span><span class='layout'>)</span>
+<a name="line-179"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1329'</span><span class='layout'>,</span><span class='chr'>'\1366'</span><span class='layout'>)</span>
+<a name="line-180"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1369'</span><span class='layout'>,</span><span class='chr'>'\1369'</span><span class='layout'>)</span>
+<a name="line-181"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1377'</span><span class='layout'>,</span><span class='chr'>'\1415'</span><span class='layout'>)</span>
+<a name="line-182"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1488'</span><span class='layout'>,</span><span class='chr'>'\1514'</span><span class='layout'>)</span>
+<a name="line-183"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1520'</span><span class='layout'>,</span><span class='chr'>'\1522'</span><span class='layout'>)</span>
+<a name="line-184"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1569'</span><span class='layout'>,</span><span class='chr'>'\1594'</span><span class='layout'>)</span>
+<a name="line-185"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1600'</span><span class='layout'>,</span><span class='chr'>'\1610'</span><span class='layout'>)</span>
+<a name="line-186"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1646'</span><span class='layout'>,</span><span class='chr'>'\1647'</span><span class='layout'>)</span>
+<a name="line-187"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1649'</span><span class='layout'>,</span><span class='chr'>'\1747'</span><span class='layout'>)</span>
+<a name="line-188"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1749'</span><span class='layout'>,</span><span class='chr'>'\1749'</span><span class='layout'>)</span>
+<a name="line-189"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1765'</span><span class='layout'>,</span><span class='chr'>'\1766'</span><span class='layout'>)</span>
+<a name="line-190"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1774'</span><span class='layout'>,</span><span class='chr'>'\1775'</span><span class='layout'>)</span>
+<a name="line-191"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1786'</span><span class='layout'>,</span><span class='chr'>'\1788'</span><span class='layout'>)</span>
+<a name="line-192"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1791'</span><span class='layout'>,</span><span class='chr'>'\1791'</span><span class='layout'>)</span>
+<a name="line-193"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1808'</span><span class='layout'>,</span><span class='chr'>'\1808'</span><span class='layout'>)</span>
+<a name="line-194"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1810'</span><span class='layout'>,</span><span class='chr'>'\1839'</span><span class='layout'>)</span>
+<a name="line-195"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1869'</span><span class='layout'>,</span><span class='chr'>'\1901'</span><span class='layout'>)</span>
+<a name="line-196"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1920'</span><span class='layout'>,</span><span class='chr'>'\1957'</span><span class='layout'>)</span>
+<a name="line-197"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1969'</span><span class='layout'>,</span><span class='chr'>'\1969'</span><span class='layout'>)</span>
+<a name="line-198"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1994'</span><span class='layout'>,</span><span class='chr'>'\2026'</span><span class='layout'>)</span>
+<a name="line-199"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2036'</span><span class='layout'>,</span><span class='chr'>'\2037'</span><span class='layout'>)</span>
+<a name="line-200"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2042'</span><span class='layout'>,</span><span class='chr'>'\2042'</span><span class='layout'>)</span>
+<a name="line-201"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2308'</span><span class='layout'>,</span><span class='chr'>'\2361'</span><span class='layout'>)</span>
+<a name="line-202"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2365'</span><span class='layout'>,</span><span class='chr'>'\2365'</span><span class='layout'>)</span>
+<a name="line-203"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2384'</span><span class='layout'>,</span><span class='chr'>'\2384'</span><span class='layout'>)</span>
+<a name="line-204"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2392'</span><span class='layout'>,</span><span class='chr'>'\2401'</span><span class='layout'>)</span>
+<a name="line-205"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2427'</span><span class='layout'>,</span><span class='chr'>'\2431'</span><span class='layout'>)</span>
+<a name="line-206"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2437'</span><span class='layout'>,</span><span class='chr'>'\2444'</span><span class='layout'>)</span>
+<a name="line-207"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2447'</span><span class='layout'>,</span><span class='chr'>'\2448'</span><span class='layout'>)</span>
+<a name="line-208"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2451'</span><span class='layout'>,</span><span class='chr'>'\2472'</span><span class='layout'>)</span>
+<a name="line-209"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2474'</span><span class='layout'>,</span><span class='chr'>'\2480'</span><span class='layout'>)</span>
+<a name="line-210"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2482'</span><span class='layout'>,</span><span class='chr'>'\2482'</span><span class='layout'>)</span>
+<a name="line-211"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2486'</span><span class='layout'>,</span><span class='chr'>'\2489'</span><span class='layout'>)</span>
+<a name="line-212"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2493'</span><span class='layout'>,</span><span class='chr'>'\2493'</span><span class='layout'>)</span>
+<a name="line-213"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2510'</span><span class='layout'>,</span><span class='chr'>'\2510'</span><span class='layout'>)</span>
+<a name="line-214"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2524'</span><span class='layout'>,</span><span class='chr'>'\2525'</span><span class='layout'>)</span>
+<a name="line-215"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2527'</span><span class='layout'>,</span><span class='chr'>'\2529'</span><span class='layout'>)</span>
+<a name="line-216"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2544'</span><span class='layout'>,</span><span class='chr'>'\2545'</span><span class='layout'>)</span>
+<a name="line-217"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2565'</span><span class='layout'>,</span><span class='chr'>'\2570'</span><span class='layout'>)</span>
+<a name="line-218"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2575'</span><span class='layout'>,</span><span class='chr'>'\2576'</span><span class='layout'>)</span>
+<a name="line-219"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2579'</span><span class='layout'>,</span><span class='chr'>'\2600'</span><span class='layout'>)</span>
+<a name="line-220"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2602'</span><span class='layout'>,</span><span class='chr'>'\2608'</span><span class='layout'>)</span>
+<a name="line-221"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2610'</span><span class='layout'>,</span><span class='chr'>'\2611'</span><span class='layout'>)</span>
+<a name="line-222"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2613'</span><span class='layout'>,</span><span class='chr'>'\2614'</span><span class='layout'>)</span>
+<a name="line-223"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2616'</span><span class='layout'>,</span><span class='chr'>'\2617'</span><span class='layout'>)</span>
+<a name="line-224"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2649'</span><span class='layout'>,</span><span class='chr'>'\2652'</span><span class='layout'>)</span>
+<a name="line-225"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2654'</span><span class='layout'>,</span><span class='chr'>'\2654'</span><span class='layout'>)</span>
+<a name="line-226"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2674'</span><span class='layout'>,</span><span class='chr'>'\2676'</span><span class='layout'>)</span>
+<a name="line-227"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2693'</span><span class='layout'>,</span><span class='chr'>'\2701'</span><span class='layout'>)</span>
+<a name="line-228"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2703'</span><span class='layout'>,</span><span class='chr'>'\2705'</span><span class='layout'>)</span>
+<a name="line-229"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2707'</span><span class='layout'>,</span><span class='chr'>'\2728'</span><span class='layout'>)</span>
+<a name="line-230"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2730'</span><span class='layout'>,</span><span class='chr'>'\2736'</span><span class='layout'>)</span>
+<a name="line-231"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2738'</span><span class='layout'>,</span><span class='chr'>'\2739'</span><span class='layout'>)</span>
+<a name="line-232"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2741'</span><span class='layout'>,</span><span class='chr'>'\2745'</span><span class='layout'>)</span>
+<a name="line-233"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2749'</span><span class='layout'>,</span><span class='chr'>'\2749'</span><span class='layout'>)</span>
+<a name="line-234"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2768'</span><span class='layout'>,</span><span class='chr'>'\2768'</span><span class='layout'>)</span>
+<a name="line-235"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2784'</span><span class='layout'>,</span><span class='chr'>'\2785'</span><span class='layout'>)</span>
+<a name="line-236"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2821'</span><span class='layout'>,</span><span class='chr'>'\2828'</span><span class='layout'>)</span>
+<a name="line-237"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2831'</span><span class='layout'>,</span><span class='chr'>'\2832'</span><span class='layout'>)</span>
+<a name="line-238"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2835'</span><span class='layout'>,</span><span class='chr'>'\2856'</span><span class='layout'>)</span>
+<a name="line-239"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2858'</span><span class='layout'>,</span><span class='chr'>'\2864'</span><span class='layout'>)</span>
+<a name="line-240"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2866'</span><span class='layout'>,</span><span class='chr'>'\2867'</span><span class='layout'>)</span>
+<a name="line-241"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2869'</span><span class='layout'>,</span><span class='chr'>'\2873'</span><span class='layout'>)</span>
+<a name="line-242"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2877'</span><span class='layout'>,</span><span class='chr'>'\2877'</span><span class='layout'>)</span>
+<a name="line-243"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2908'</span><span class='layout'>,</span><span class='chr'>'\2909'</span><span class='layout'>)</span>
+<a name="line-244"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2911'</span><span class='layout'>,</span><span class='chr'>'\2913'</span><span class='layout'>)</span>
+<a name="line-245"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2929'</span><span class='layout'>,</span><span class='chr'>'\2929'</span><span class='layout'>)</span>
+<a name="line-246"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2947'</span><span class='layout'>,</span><span class='chr'>'\2947'</span><span class='layout'>)</span>
+<a name="line-247"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2949'</span><span class='layout'>,</span><span class='chr'>'\2954'</span><span class='layout'>)</span>
+<a name="line-248"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2958'</span><span class='layout'>,</span><span class='chr'>'\2960'</span><span class='layout'>)</span>
+<a name="line-249"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2962'</span><span class='layout'>,</span><span class='chr'>'\2965'</span><span class='layout'>)</span>
+<a name="line-250"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2969'</span><span class='layout'>,</span><span class='chr'>'\2970'</span><span class='layout'>)</span>
+<a name="line-251"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2972'</span><span class='layout'>,</span><span class='chr'>'\2972'</span><span class='layout'>)</span>
+<a name="line-252"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2974'</span><span class='layout'>,</span><span class='chr'>'\2975'</span><span class='layout'>)</span>
+<a name="line-253"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2979'</span><span class='layout'>,</span><span class='chr'>'\2980'</span><span class='layout'>)</span>
+<a name="line-254"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2984'</span><span class='layout'>,</span><span class='chr'>'\2986'</span><span class='layout'>)</span>
+<a name="line-255"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2990'</span><span class='layout'>,</span><span class='chr'>'\3001'</span><span class='layout'>)</span>
+<a name="line-256"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3077'</span><span class='layout'>,</span><span class='chr'>'\3084'</span><span class='layout'>)</span>
+<a name="line-257"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3086'</span><span class='layout'>,</span><span class='chr'>'\3088'</span><span class='layout'>)</span>
+<a name="line-258"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3090'</span><span class='layout'>,</span><span class='chr'>'\3112'</span><span class='layout'>)</span>
+<a name="line-259"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3114'</span><span class='layout'>,</span><span class='chr'>'\3123'</span><span class='layout'>)</span>
+<a name="line-260"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3125'</span><span class='layout'>,</span><span class='chr'>'\3129'</span><span class='layout'>)</span>
+<a name="line-261"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3168'</span><span class='layout'>,</span><span class='chr'>'\3169'</span><span class='layout'>)</span>
+<a name="line-262"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3205'</span><span class='layout'>,</span><span class='chr'>'\3212'</span><span class='layout'>)</span>
+<a name="line-263"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3214'</span><span class='layout'>,</span><span class='chr'>'\3216'</span><span class='layout'>)</span>
+<a name="line-264"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3218'</span><span class='layout'>,</span><span class='chr'>'\3240'</span><span class='layout'>)</span>
+<a name="line-265"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3242'</span><span class='layout'>,</span><span class='chr'>'\3251'</span><span class='layout'>)</span>
+<a name="line-266"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3253'</span><span class='layout'>,</span><span class='chr'>'\3257'</span><span class='layout'>)</span>
+<a name="line-267"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3261'</span><span class='layout'>,</span><span class='chr'>'\3261'</span><span class='layout'>)</span>
+<a name="line-268"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3294'</span><span class='layout'>,</span><span class='chr'>'\3294'</span><span class='layout'>)</span>
+<a name="line-269"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3296'</span><span class='layout'>,</span><span class='chr'>'\3297'</span><span class='layout'>)</span>
+<a name="line-270"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3333'</span><span class='layout'>,</span><span class='chr'>'\3340'</span><span class='layout'>)</span>
+<a name="line-271"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3342'</span><span class='layout'>,</span><span class='chr'>'\3344'</span><span class='layout'>)</span>
+<a name="line-272"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3346'</span><span class='layout'>,</span><span class='chr'>'\3368'</span><span class='layout'>)</span>
+<a name="line-273"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3370'</span><span class='layout'>,</span><span class='chr'>'\3385'</span><span class='layout'>)</span>
+<a name="line-274"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3424'</span><span class='layout'>,</span><span class='chr'>'\3425'</span><span class='layout'>)</span>
+<a name="line-275"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3461'</span><span class='layout'>,</span><span class='chr'>'\3478'</span><span class='layout'>)</span>
+<a name="line-276"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3482'</span><span class='layout'>,</span><span class='chr'>'\3505'</span><span class='layout'>)</span>
+<a name="line-277"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3507'</span><span class='layout'>,</span><span class='chr'>'\3515'</span><span class='layout'>)</span>
+<a name="line-278"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3517'</span><span class='layout'>,</span><span class='chr'>'\3517'</span><span class='layout'>)</span>
+<a name="line-279"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3520'</span><span class='layout'>,</span><span class='chr'>'\3526'</span><span class='layout'>)</span>
+<a name="line-280"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3585'</span><span class='layout'>,</span><span class='chr'>'\3632'</span><span class='layout'>)</span>
+<a name="line-281"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3634'</span><span class='layout'>,</span><span class='chr'>'\3635'</span><span class='layout'>)</span>
+<a name="line-282"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3648'</span><span class='layout'>,</span><span class='chr'>'\3654'</span><span class='layout'>)</span>
+<a name="line-283"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3713'</span><span class='layout'>,</span><span class='chr'>'\3714'</span><span class='layout'>)</span>
+<a name="line-284"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3716'</span><span class='layout'>,</span><span class='chr'>'\3716'</span><span class='layout'>)</span>
+<a name="line-285"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3719'</span><span class='layout'>,</span><span class='chr'>'\3720'</span><span class='layout'>)</span>
+<a name="line-286"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3722'</span><span class='layout'>,</span><span class='chr'>'\3722'</span><span class='layout'>)</span>
+<a name="line-287"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3725'</span><span class='layout'>,</span><span class='chr'>'\3725'</span><span class='layout'>)</span>
+<a name="line-288"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3732'</span><span class='layout'>,</span><span class='chr'>'\3735'</span><span class='layout'>)</span>
+<a name="line-289"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3737'</span><span class='layout'>,</span><span class='chr'>'\3743'</span><span class='layout'>)</span>
+<a name="line-290"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3745'</span><span class='layout'>,</span><span class='chr'>'\3747'</span><span class='layout'>)</span>
+<a name="line-291"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3749'</span><span class='layout'>,</span><span class='chr'>'\3749'</span><span class='layout'>)</span>
+<a name="line-292"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3751'</span><span class='layout'>,</span><span class='chr'>'\3751'</span><span class='layout'>)</span>
+<a name="line-293"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3754'</span><span class='layout'>,</span><span class='chr'>'\3755'</span><span class='layout'>)</span>
+<a name="line-294"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3757'</span><span class='layout'>,</span><span class='chr'>'\3760'</span><span class='layout'>)</span>
+<a name="line-295"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3762'</span><span class='layout'>,</span><span class='chr'>'\3763'</span><span class='layout'>)</span>
+<a name="line-296"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3773'</span><span class='layout'>,</span><span class='chr'>'\3773'</span><span class='layout'>)</span>
+<a name="line-297"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3776'</span><span class='layout'>,</span><span class='chr'>'\3780'</span><span class='layout'>)</span>
+<a name="line-298"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3782'</span><span class='layout'>,</span><span class='chr'>'\3782'</span><span class='layout'>)</span>
+<a name="line-299"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3804'</span><span class='layout'>,</span><span class='chr'>'\3805'</span><span class='layout'>)</span>
+<a name="line-300"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3840'</span><span class='layout'>,</span><span class='chr'>'\3840'</span><span class='layout'>)</span>
+<a name="line-301"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3904'</span><span class='layout'>,</span><span class='chr'>'\3911'</span><span class='layout'>)</span>
+<a name="line-302"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3913'</span><span class='layout'>,</span><span class='chr'>'\3946'</span><span class='layout'>)</span>
+<a name="line-303"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3976'</span><span class='layout'>,</span><span class='chr'>'\3979'</span><span class='layout'>)</span>
+<a name="line-304"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4096'</span><span class='layout'>,</span><span class='chr'>'\4129'</span><span class='layout'>)</span>
+<a name="line-305"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4131'</span><span class='layout'>,</span><span class='chr'>'\4135'</span><span class='layout'>)</span>
+<a name="line-306"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4137'</span><span class='layout'>,</span><span class='chr'>'\4138'</span><span class='layout'>)</span>
+<a name="line-307"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4176'</span><span class='layout'>,</span><span class='chr'>'\4181'</span><span class='layout'>)</span>
+<a name="line-308"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4256'</span><span class='layout'>,</span><span class='chr'>'\4293'</span><span class='layout'>)</span>
+<a name="line-309"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4304'</span><span class='layout'>,</span><span class='chr'>'\4346'</span><span class='layout'>)</span>
+<a name="line-310"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4348'</span><span class='layout'>,</span><span class='chr'>'\4348'</span><span class='layout'>)</span>
+<a name="line-311"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4352'</span><span class='layout'>,</span><span class='chr'>'\4441'</span><span class='layout'>)</span>
+<a name="line-312"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4447'</span><span class='layout'>,</span><span class='chr'>'\4514'</span><span class='layout'>)</span>
+<a name="line-313"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4520'</span><span class='layout'>,</span><span class='chr'>'\4601'</span><span class='layout'>)</span>
+<a name="line-314"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4608'</span><span class='layout'>,</span><span class='chr'>'\4680'</span><span class='layout'>)</span>
+<a name="line-315"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4682'</span><span class='layout'>,</span><span class='chr'>'\4685'</span><span class='layout'>)</span>
+<a name="line-316"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4688'</span><span class='layout'>,</span><span class='chr'>'\4694'</span><span class='layout'>)</span>
+<a name="line-317"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4696'</span><span class='layout'>,</span><span class='chr'>'\4696'</span><span class='layout'>)</span>
+<a name="line-318"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4698'</span><span class='layout'>,</span><span class='chr'>'\4701'</span><span class='layout'>)</span>
+<a name="line-319"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4704'</span><span class='layout'>,</span><span class='chr'>'\4744'</span><span class='layout'>)</span>
+<a name="line-320"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4746'</span><span class='layout'>,</span><span class='chr'>'\4749'</span><span class='layout'>)</span>
+<a name="line-321"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4752'</span><span class='layout'>,</span><span class='chr'>'\4784'</span><span class='layout'>)</span>
+<a name="line-322"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4786'</span><span class='layout'>,</span><span class='chr'>'\4789'</span><span class='layout'>)</span>
+<a name="line-323"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4792'</span><span class='layout'>,</span><span class='chr'>'\4798'</span><span class='layout'>)</span>
+<a name="line-324"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4800'</span><span class='layout'>,</span><span class='chr'>'\4800'</span><span class='layout'>)</span>
+<a name="line-325"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4802'</span><span class='layout'>,</span><span class='chr'>'\4805'</span><span class='layout'>)</span>
+<a name="line-326"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4808'</span><span class='layout'>,</span><span class='chr'>'\4822'</span><span class='layout'>)</span>
+<a name="line-327"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4824'</span><span class='layout'>,</span><span class='chr'>'\4880'</span><span class='layout'>)</span>
+<a name="line-328"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4882'</span><span class='layout'>,</span><span class='chr'>'\4885'</span><span class='layout'>)</span>
+<a name="line-329"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4888'</span><span class='layout'>,</span><span class='chr'>'\4954'</span><span class='layout'>)</span>
+<a name="line-330"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4992'</span><span class='layout'>,</span><span class='chr'>'\5007'</span><span class='layout'>)</span>
+<a name="line-331"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5024'</span><span class='layout'>,</span><span class='chr'>'\5108'</span><span class='layout'>)</span>
+<a name="line-332"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5121'</span><span class='layout'>,</span><span class='chr'>'\5740'</span><span class='layout'>)</span>
+<a name="line-333"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5743'</span><span class='layout'>,</span><span class='chr'>'\5750'</span><span class='layout'>)</span>
+<a name="line-334"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5761'</span><span class='layout'>,</span><span class='chr'>'\5786'</span><span class='layout'>)</span>
+<a name="line-335"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5792'</span><span class='layout'>,</span><span class='chr'>'\5866'</span><span class='layout'>)</span>
+<a name="line-336"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5888'</span><span class='layout'>,</span><span class='chr'>'\5900'</span><span class='layout'>)</span>
+<a name="line-337"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5902'</span><span class='layout'>,</span><span class='chr'>'\5905'</span><span class='layout'>)</span>
+<a name="line-338"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5920'</span><span class='layout'>,</span><span class='chr'>'\5937'</span><span class='layout'>)</span>
+<a name="line-339"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5952'</span><span class='layout'>,</span><span class='chr'>'\5969'</span><span class='layout'>)</span>
+<a name="line-340"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5984'</span><span class='layout'>,</span><span class='chr'>'\5996'</span><span class='layout'>)</span>
+<a name="line-341"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5998'</span><span class='layout'>,</span><span class='chr'>'\6000'</span><span class='layout'>)</span>
+<a name="line-342"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6016'</span><span class='layout'>,</span><span class='chr'>'\6067'</span><span class='layout'>)</span>
+<a name="line-343"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6103'</span><span class='layout'>,</span><span class='chr'>'\6103'</span><span class='layout'>)</span>
+<a name="line-344"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6108'</span><span class='layout'>,</span><span class='chr'>'\6108'</span><span class='layout'>)</span>
+<a name="line-345"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6176'</span><span class='layout'>,</span><span class='chr'>'\6263'</span><span class='layout'>)</span>
+<a name="line-346"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6272'</span><span class='layout'>,</span><span class='chr'>'\6312'</span><span class='layout'>)</span>
+<a name="line-347"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6400'</span><span class='layout'>,</span><span class='chr'>'\6428'</span><span class='layout'>)</span>
+<a name="line-348"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6480'</span><span class='layout'>,</span><span class='chr'>'\6509'</span><span class='layout'>)</span>
+<a name="line-349"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6512'</span><span class='layout'>,</span><span class='chr'>'\6516'</span><span class='layout'>)</span>
+<a name="line-350"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6528'</span><span class='layout'>,</span><span class='chr'>'\6569'</span><span class='layout'>)</span>
+<a name="line-351"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6593'</span><span class='layout'>,</span><span class='chr'>'\6599'</span><span class='layout'>)</span>
+<a name="line-352"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6656'</span><span class='layout'>,</span><span class='chr'>'\6678'</span><span class='layout'>)</span>
+<a name="line-353"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6917'</span><span class='layout'>,</span><span class='chr'>'\6963'</span><span class='layout'>)</span>
+<a name="line-354"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6981'</span><span class='layout'>,</span><span class='chr'>'\6987'</span><span class='layout'>)</span>
+<a name="line-355"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7424'</span><span class='layout'>,</span><span class='chr'>'\7615'</span><span class='layout'>)</span>
+<a name="line-356"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7680'</span><span class='layout'>,</span><span class='chr'>'\7835'</span><span class='layout'>)</span>
+<a name="line-357"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7840'</span><span class='layout'>,</span><span class='chr'>'\7929'</span><span class='layout'>)</span>
+<a name="line-358"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7936'</span><span class='layout'>,</span><span class='chr'>'\7957'</span><span class='layout'>)</span>
+<a name="line-359"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7960'</span><span class='layout'>,</span><span class='chr'>'\7965'</span><span class='layout'>)</span>
+<a name="line-360"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7968'</span><span class='layout'>,</span><span class='chr'>'\8005'</span><span class='layout'>)</span>
+<a name="line-361"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8008'</span><span class='layout'>,</span><span class='chr'>'\8013'</span><span class='layout'>)</span>
+<a name="line-362"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8016'</span><span class='layout'>,</span><span class='chr'>'\8023'</span><span class='layout'>)</span>
+<a name="line-363"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8025'</span><span class='layout'>,</span><span class='chr'>'\8025'</span><span class='layout'>)</span>
+<a name="line-364"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8027'</span><span class='layout'>,</span><span class='chr'>'\8027'</span><span class='layout'>)</span>
+<a name="line-365"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8029'</span><span class='layout'>,</span><span class='chr'>'\8029'</span><span class='layout'>)</span>
+<a name="line-366"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8031'</span><span class='layout'>,</span><span class='chr'>'\8061'</span><span class='layout'>)</span>
+<a name="line-367"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8064'</span><span class='layout'>,</span><span class='chr'>'\8116'</span><span class='layout'>)</span>
+<a name="line-368"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8118'</span><span class='layout'>,</span><span class='chr'>'\8124'</span><span class='layout'>)</span>
+<a name="line-369"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8126'</span><span class='layout'>,</span><span class='chr'>'\8126'</span><span class='layout'>)</span>
+<a name="line-370"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8130'</span><span class='layout'>,</span><span class='chr'>'\8132'</span><span class='layout'>)</span>
+<a name="line-371"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8134'</span><span class='layout'>,</span><span class='chr'>'\8140'</span><span class='layout'>)</span>
+<a name="line-372"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8144'</span><span class='layout'>,</span><span class='chr'>'\8147'</span><span class='layout'>)</span>
+<a name="line-373"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8150'</span><span class='layout'>,</span><span class='chr'>'\8155'</span><span class='layout'>)</span>
+<a name="line-374"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8160'</span><span class='layout'>,</span><span class='chr'>'\8172'</span><span class='layout'>)</span>
+<a name="line-375"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8178'</span><span class='layout'>,</span><span class='chr'>'\8180'</span><span class='layout'>)</span>
+<a name="line-376"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8182'</span><span class='layout'>,</span><span class='chr'>'\8188'</span><span class='layout'>)</span>
+<a name="line-377"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8305'</span><span class='layout'>,</span><span class='chr'>'\8305'</span><span class='layout'>)</span>
+<a name="line-378"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8319'</span><span class='layout'>,</span><span class='chr'>'\8319'</span><span class='layout'>)</span>
+<a name="line-379"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8336'</span><span class='layout'>,</span><span class='chr'>'\8340'</span><span class='layout'>)</span>
+<a name="line-380"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8450'</span><span class='layout'>,</span><span class='chr'>'\8450'</span><span class='layout'>)</span>
+<a name="line-381"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8455'</span><span class='layout'>,</span><span class='chr'>'\8455'</span><span class='layout'>)</span>
+<a name="line-382"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8458'</span><span class='layout'>,</span><span class='chr'>'\8467'</span><span class='layout'>)</span>
+<a name="line-383"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8469'</span><span class='layout'>,</span><span class='chr'>'\8469'</span><span class='layout'>)</span>
+<a name="line-384"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8473'</span><span class='layout'>,</span><span class='chr'>'\8477'</span><span class='layout'>)</span>
+<a name="line-385"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8484'</span><span class='layout'>,</span><span class='chr'>'\8484'</span><span class='layout'>)</span>
+<a name="line-386"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8486'</span><span class='layout'>,</span><span class='chr'>'\8486'</span><span class='layout'>)</span>
+<a name="line-387"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8488'</span><span class='layout'>,</span><span class='chr'>'\8488'</span><span class='layout'>)</span>
+<a name="line-388"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8490'</span><span class='layout'>,</span><span class='chr'>'\8493'</span><span class='layout'>)</span>
+<a name="line-389"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8495'</span><span class='layout'>,</span><span class='chr'>'\8505'</span><span class='layout'>)</span>
+<a name="line-390"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8508'</span><span class='layout'>,</span><span class='chr'>'\8511'</span><span class='layout'>)</span>
+<a name="line-391"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8517'</span><span class='layout'>,</span><span class='chr'>'\8521'</span><span class='layout'>)</span>
+<a name="line-392"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8526'</span><span class='layout'>,</span><span class='chr'>'\8526'</span><span class='layout'>)</span>
+<a name="line-393"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8579'</span><span class='layout'>,</span><span class='chr'>'\8580'</span><span class='layout'>)</span>
+<a name="line-394"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11264'</span><span class='layout'>,</span><span class='chr'>'\11310'</span><span class='layout'>)</span>
+<a name="line-395"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11312'</span><span class='layout'>,</span><span class='chr'>'\11358'</span><span class='layout'>)</span>
+<a name="line-396"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11360'</span><span class='layout'>,</span><span class='chr'>'\11372'</span><span class='layout'>)</span>
+<a name="line-397"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11380'</span><span class='layout'>,</span><span class='chr'>'\11383'</span><span class='layout'>)</span>
+<a name="line-398"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11392'</span><span class='layout'>,</span><span class='chr'>'\11492'</span><span class='layout'>)</span>
+<a name="line-399"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11520'</span><span class='layout'>,</span><span class='chr'>'\11557'</span><span class='layout'>)</span>
+<a name="line-400"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11568'</span><span class='layout'>,</span><span class='chr'>'\11621'</span><span class='layout'>)</span>
+<a name="line-401"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11631'</span><span class='layout'>,</span><span class='chr'>'\11631'</span><span class='layout'>)</span>
+<a name="line-402"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11648'</span><span class='layout'>,</span><span class='chr'>'\11670'</span><span class='layout'>)</span>
+<a name="line-403"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11680'</span><span class='layout'>,</span><span class='chr'>'\11686'</span><span class='layout'>)</span>
+<a name="line-404"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11688'</span><span class='layout'>,</span><span class='chr'>'\11694'</span><span class='layout'>)</span>
+<a name="line-405"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11696'</span><span class='layout'>,</span><span class='chr'>'\11702'</span><span class='layout'>)</span>
+<a name="line-406"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11704'</span><span class='layout'>,</span><span class='chr'>'\11710'</span><span class='layout'>)</span>
+<a name="line-407"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11712'</span><span class='layout'>,</span><span class='chr'>'\11718'</span><span class='layout'>)</span>
+<a name="line-408"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11720'</span><span class='layout'>,</span><span class='chr'>'\11726'</span><span class='layout'>)</span>
+<a name="line-409"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11728'</span><span class='layout'>,</span><span class='chr'>'\11734'</span><span class='layout'>)</span>
+<a name="line-410"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11736'</span><span class='layout'>,</span><span class='chr'>'\11742'</span><span class='layout'>)</span>
+<a name="line-411"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12293'</span><span class='layout'>,</span><span class='chr'>'\12294'</span><span class='layout'>)</span>
+<a name="line-412"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12337'</span><span class='layout'>,</span><span class='chr'>'\12341'</span><span class='layout'>)</span>
+<a name="line-413"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12347'</span><span class='layout'>,</span><span class='chr'>'\12348'</span><span class='layout'>)</span>
+<a name="line-414"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12353'</span><span class='layout'>,</span><span class='chr'>'\12438'</span><span class='layout'>)</span>
+<a name="line-415"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12445'</span><span class='layout'>,</span><span class='chr'>'\12447'</span><span class='layout'>)</span>
+<a name="line-416"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12449'</span><span class='layout'>,</span><span class='chr'>'\12538'</span><span class='layout'>)</span>
+<a name="line-417"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12540'</span><span class='layout'>,</span><span class='chr'>'\12543'</span><span class='layout'>)</span>
+<a name="line-418"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12549'</span><span class='layout'>,</span><span class='chr'>'\12588'</span><span class='layout'>)</span>
+<a name="line-419"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12593'</span><span class='layout'>,</span><span class='chr'>'\12686'</span><span class='layout'>)</span>
+<a name="line-420"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12704'</span><span class='layout'>,</span><span class='chr'>'\12727'</span><span class='layout'>)</span>
+<a name="line-421"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12784'</span><span class='layout'>,</span><span class='chr'>'\12799'</span><span class='layout'>)</span>
+<a name="line-422"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13312'</span><span class='layout'>,</span><span class='chr'>'\13312'</span><span class='layout'>)</span>
+<a name="line-423"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19893'</span><span class='layout'>,</span><span class='chr'>'\19893'</span><span class='layout'>)</span>
+<a name="line-424"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19968'</span><span class='layout'>,</span><span class='chr'>'\19968'</span><span class='layout'>)</span>
+<a name="line-425"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40891'</span><span class='layout'>,</span><span class='chr'>'\40891'</span><span class='layout'>)</span>
+<a name="line-426"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40960'</span><span class='layout'>,</span><span class='chr'>'\42124'</span><span class='layout'>)</span>
+<a name="line-427"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42775'</span><span class='layout'>,</span><span class='chr'>'\42778'</span><span class='layout'>)</span>
+<a name="line-428"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43008'</span><span class='layout'>,</span><span class='chr'>'\43009'</span><span class='layout'>)</span>
+<a name="line-429"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43011'</span><span class='layout'>,</span><span class='chr'>'\43013'</span><span class='layout'>)</span>
+<a name="line-430"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43015'</span><span class='layout'>,</span><span class='chr'>'\43018'</span><span class='layout'>)</span>
+<a name="line-431"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43020'</span><span class='layout'>,</span><span class='chr'>'\43042'</span><span class='layout'>)</span>
+<a name="line-432"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43072'</span><span class='layout'>,</span><span class='chr'>'\43123'</span><span class='layout'>)</span>
+<a name="line-433"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\44032'</span><span class='layout'>,</span><span class='chr'>'\44032'</span><span class='layout'>)</span>
+<a name="line-434"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\55203'</span><span class='layout'>,</span><span class='chr'>'\55203'</span><span class='layout'>)</span>
+<a name="line-435"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63744'</span><span class='layout'>,</span><span class='chr'>'\64045'</span><span class='layout'>)</span>
+<a name="line-436"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64048'</span><span class='layout'>,</span><span class='chr'>'\64106'</span><span class='layout'>)</span>
+<a name="line-437"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64112'</span><span class='layout'>,</span><span class='chr'>'\64217'</span><span class='layout'>)</span>
+<a name="line-438"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64256'</span><span class='layout'>,</span><span class='chr'>'\64262'</span><span class='layout'>)</span>
+<a name="line-439"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64275'</span><span class='layout'>,</span><span class='chr'>'\64279'</span><span class='layout'>)</span>
+<a name="line-440"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64285'</span><span class='layout'>,</span><span class='chr'>'\64285'</span><span class='layout'>)</span>
+<a name="line-441"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64287'</span><span class='layout'>,</span><span class='chr'>'\64296'</span><span class='layout'>)</span>
+<a name="line-442"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64298'</span><span class='layout'>,</span><span class='chr'>'\64310'</span><span class='layout'>)</span>
+<a name="line-443"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64312'</span><span class='layout'>,</span><span class='chr'>'\64316'</span><span class='layout'>)</span>
+<a name="line-444"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64318'</span><span class='layout'>,</span><span class='chr'>'\64318'</span><span class='layout'>)</span>
+<a name="line-445"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64320'</span><span class='layout'>,</span><span class='chr'>'\64321'</span><span class='layout'>)</span>
+<a name="line-446"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64323'</span><span class='layout'>,</span><span class='chr'>'\64324'</span><span class='layout'>)</span>
+<a name="line-447"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64326'</span><span class='layout'>,</span><span class='chr'>'\64433'</span><span class='layout'>)</span>
+<a name="line-448"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64467'</span><span class='layout'>,</span><span class='chr'>'\64829'</span><span class='layout'>)</span>
+<a name="line-449"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64848'</span><span class='layout'>,</span><span class='chr'>'\64911'</span><span class='layout'>)</span>
+<a name="line-450"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64914'</span><span class='layout'>,</span><span class='chr'>'\64967'</span><span class='layout'>)</span>
+<a name="line-451"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65008'</span><span class='layout'>,</span><span class='chr'>'\65019'</span><span class='layout'>)</span>
+<a name="line-452"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65136'</span><span class='layout'>,</span><span class='chr'>'\65140'</span><span class='layout'>)</span>
+<a name="line-453"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65142'</span><span class='layout'>,</span><span class='chr'>'\65276'</span><span class='layout'>)</span>
+<a name="line-454"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65313'</span><span class='layout'>,</span><span class='chr'>'\65338'</span><span class='layout'>)</span>
+<a name="line-455"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65345'</span><span class='layout'>,</span><span class='chr'>'\65370'</span><span class='layout'>)</span>
+<a name="line-456"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65382'</span><span class='layout'>,</span><span class='chr'>'\65470'</span><span class='layout'>)</span>
+<a name="line-457"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65474'</span><span class='layout'>,</span><span class='chr'>'\65479'</span><span class='layout'>)</span>
+<a name="line-458"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65482'</span><span class='layout'>,</span><span class='chr'>'\65487'</span><span class='layout'>)</span>
+<a name="line-459"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65490'</span><span class='layout'>,</span><span class='chr'>'\65495'</span><span class='layout'>)</span>
+<a name="line-460"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65498'</span><span class='layout'>,</span><span class='chr'>'\65500'</span><span class='layout'>)</span>
+<a name="line-461"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65536'</span><span class='layout'>,</span><span class='chr'>'\65547'</span><span class='layout'>)</span>
+<a name="line-462"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65549'</span><span class='layout'>,</span><span class='chr'>'\65574'</span><span class='layout'>)</span>
+<a name="line-463"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65576'</span><span class='layout'>,</span><span class='chr'>'\65594'</span><span class='layout'>)</span>
+<a name="line-464"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65596'</span><span class='layout'>,</span><span class='chr'>'\65597'</span><span class='layout'>)</span>
+<a name="line-465"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65599'</span><span class='layout'>,</span><span class='chr'>'\65613'</span><span class='layout'>)</span>
+<a name="line-466"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65616'</span><span class='layout'>,</span><span class='chr'>'\65629'</span><span class='layout'>)</span>
+<a name="line-467"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65664'</span><span class='layout'>,</span><span class='chr'>'\65786'</span><span class='layout'>)</span>
+<a name="line-468"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66304'</span><span class='layout'>,</span><span class='chr'>'\66334'</span><span class='layout'>)</span>
+<a name="line-469"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66352'</span><span class='layout'>,</span><span class='chr'>'\66368'</span><span class='layout'>)</span>
+<a name="line-470"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66370'</span><span class='layout'>,</span><span class='chr'>'\66377'</span><span class='layout'>)</span>
+<a name="line-471"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66432'</span><span class='layout'>,</span><span class='chr'>'\66461'</span><span class='layout'>)</span>
+<a name="line-472"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66464'</span><span class='layout'>,</span><span class='chr'>'\66499'</span><span class='layout'>)</span>
+<a name="line-473"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66504'</span><span class='layout'>,</span><span class='chr'>'\66511'</span><span class='layout'>)</span>
+<a name="line-474"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66560'</span><span class='layout'>,</span><span class='chr'>'\66717'</span><span class='layout'>)</span>
+<a name="line-475"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67584'</span><span class='layout'>,</span><span class='chr'>'\67589'</span><span class='layout'>)</span>
+<a name="line-476"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67592'</span><span class='layout'>,</span><span class='chr'>'\67592'</span><span class='layout'>)</span>
+<a name="line-477"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67594'</span><span class='layout'>,</span><span class='chr'>'\67637'</span><span class='layout'>)</span>
+<a name="line-478"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67639'</span><span class='layout'>,</span><span class='chr'>'\67640'</span><span class='layout'>)</span>
+<a name="line-479"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67644'</span><span class='layout'>,</span><span class='chr'>'\67644'</span><span class='layout'>)</span>
+<a name="line-480"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67647'</span><span class='layout'>,</span><span class='chr'>'\67647'</span><span class='layout'>)</span>
+<a name="line-481"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67840'</span><span class='layout'>,</span><span class='chr'>'\67861'</span><span class='layout'>)</span>
+<a name="line-482"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68096'</span><span class='layout'>,</span><span class='chr'>'\68096'</span><span class='layout'>)</span>
+<a name="line-483"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68112'</span><span class='layout'>,</span><span class='chr'>'\68115'</span><span class='layout'>)</span>
+<a name="line-484"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68117'</span><span class='layout'>,</span><span class='chr'>'\68119'</span><span class='layout'>)</span>
+<a name="line-485"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68121'</span><span class='layout'>,</span><span class='chr'>'\68147'</span><span class='layout'>)</span>
+<a name="line-486"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\73728'</span><span class='layout'>,</span><span class='chr'>'\74606'</span><span class='layout'>)</span>
+<a name="line-487"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119808'</span><span class='layout'>,</span><span class='chr'>'\119892'</span><span class='layout'>)</span>
+<a name="line-488"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119894'</span><span class='layout'>,</span><span class='chr'>'\119964'</span><span class='layout'>)</span>
+<a name="line-489"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119966'</span><span class='layout'>,</span><span class='chr'>'\119967'</span><span class='layout'>)</span>
+<a name="line-490"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119970'</span><span class='layout'>,</span><span class='chr'>'\119970'</span><span class='layout'>)</span>
+<a name="line-491"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119973'</span><span class='layout'>,</span><span class='chr'>'\119974'</span><span class='layout'>)</span>
+<a name="line-492"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119977'</span><span class='layout'>,</span><span class='chr'>'\119980'</span><span class='layout'>)</span>
+<a name="line-493"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119982'</span><span class='layout'>,</span><span class='chr'>'\119993'</span><span class='layout'>)</span>
+<a name="line-494"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119995'</span><span class='layout'>,</span><span class='chr'>'\119995'</span><span class='layout'>)</span>
+<a name="line-495"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119997'</span><span class='layout'>,</span><span class='chr'>'\120003'</span><span class='layout'>)</span>
+<a name="line-496"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120005'</span><span class='layout'>,</span><span class='chr'>'\120069'</span><span class='layout'>)</span>
+<a name="line-497"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120071'</span><span class='layout'>,</span><span class='chr'>'\120074'</span><span class='layout'>)</span>
+<a name="line-498"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120077'</span><span class='layout'>,</span><span class='chr'>'\120084'</span><span class='layout'>)</span>
+<a name="line-499"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120086'</span><span class='layout'>,</span><span class='chr'>'\120092'</span><span class='layout'>)</span>
+<a name="line-500"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120094'</span><span class='layout'>,</span><span class='chr'>'\120121'</span><span class='layout'>)</span>
+<a name="line-501"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120123'</span><span class='layout'>,</span><span class='chr'>'\120126'</span><span class='layout'>)</span>
+<a name="line-502"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120128'</span><span class='layout'>,</span><span class='chr'>'\120132'</span><span class='layout'>)</span>
+<a name="line-503"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120134'</span><span class='layout'>,</span><span class='chr'>'\120134'</span><span class='layout'>)</span>
+<a name="line-504"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120138'</span><span class='layout'>,</span><span class='chr'>'\120144'</span><span class='layout'>)</span>
+<a name="line-505"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120146'</span><span class='layout'>,</span><span class='chr'>'\120485'</span><span class='layout'>)</span>
+<a name="line-506"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120488'</span><span class='layout'>,</span><span class='chr'>'\120512'</span><span class='layout'>)</span>
+<a name="line-507"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120514'</span><span class='layout'>,</span><span class='chr'>'\120538'</span><span class='layout'>)</span>
+<a name="line-508"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120540'</span><span class='layout'>,</span><span class='chr'>'\120570'</span><span class='layout'>)</span>
+<a name="line-509"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120572'</span><span class='layout'>,</span><span class='chr'>'\120596'</span><span class='layout'>)</span>
+<a name="line-510"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120598'</span><span class='layout'>,</span><span class='chr'>'\120628'</span><span class='layout'>)</span>
+<a name="line-511"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120630'</span><span class='layout'>,</span><span class='chr'>'\120654'</span><span class='layout'>)</span>
+<a name="line-512"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120656'</span><span class='layout'>,</span><span class='chr'>'\120686'</span><span class='layout'>)</span>
+<a name="line-513"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120688'</span><span class='layout'>,</span><span class='chr'>'\120712'</span><span class='layout'>)</span>
+<a name="line-514"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120714'</span><span class='layout'>,</span><span class='chr'>'\120744'</span><span class='layout'>)</span>
+<a name="line-515"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120746'</span><span class='layout'>,</span><span class='chr'>'\120770'</span><span class='layout'>)</span>
+<a name="line-516"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120772'</span><span class='layout'>,</span><span class='chr'>'\120779'</span><span class='layout'>)</span>
+<a name="line-517"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\131072'</span><span class='layout'>,</span><span class='chr'>'\131072'</span><span class='layout'>)</span>
+<a name="line-518"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173782'</span><span class='layout'>,</span><span class='chr'>'\173782'</span><span class='layout'>)</span>
+<a name="line-519"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194560'</span><span class='layout'>,</span><span class='chr'>'\195101'</span><span class='layout'>)</span>
+<a name="line-520"></a>    <span class='keyglyph'>]</span>
+<a name="line-521"></a>
+<a name="line-522"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-523"></a>
+<a name="line-524"></a><a name="isUnicodeLl"></a><span class='definition'>isUnicodeLl</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-525"></a><span class='definition'>isUnicodeLl</span> <span class='varid'>c</span>
+<a name="line-526"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-527"></a>    <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-528"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span><span class='chr'>'\170'</span><span class='layout'>)</span>
+<a name="line-529"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span><span class='chr'>'\181'</span><span class='layout'>)</span>
+<a name="line-530"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span><span class='chr'>'\186'</span><span class='layout'>)</span>
+<a name="line-531"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span><span class='chr'>'\246'</span><span class='layout'>)</span>
+<a name="line-532"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span><span class='chr'>'\255'</span><span class='layout'>)</span>
+<a name="line-533"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\257'</span><span class='layout'>,</span><span class='chr'>'\257'</span><span class='layout'>)</span>
+<a name="line-534"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\259'</span><span class='layout'>,</span><span class='chr'>'\259'</span><span class='layout'>)</span>
+<a name="line-535"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\261'</span><span class='layout'>,</span><span class='chr'>'\261'</span><span class='layout'>)</span>
+<a name="line-536"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\263'</span><span class='layout'>,</span><span class='chr'>'\263'</span><span class='layout'>)</span>
+<a name="line-537"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\265'</span><span class='layout'>,</span><span class='chr'>'\265'</span><span class='layout'>)</span>
+<a name="line-538"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\267'</span><span class='layout'>,</span><span class='chr'>'\267'</span><span class='layout'>)</span>
+<a name="line-539"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\269'</span><span class='layout'>,</span><span class='chr'>'\269'</span><span class='layout'>)</span>
+<a name="line-540"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\271'</span><span class='layout'>,</span><span class='chr'>'\271'</span><span class='layout'>)</span>
+<a name="line-541"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\273'</span><span class='layout'>,</span><span class='chr'>'\273'</span><span class='layout'>)</span>
+<a name="line-542"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\275'</span><span class='layout'>,</span><span class='chr'>'\275'</span><span class='layout'>)</span>
+<a name="line-543"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\277'</span><span class='layout'>,</span><span class='chr'>'\277'</span><span class='layout'>)</span>
+<a name="line-544"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\279'</span><span class='layout'>,</span><span class='chr'>'\279'</span><span class='layout'>)</span>
+<a name="line-545"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\281'</span><span class='layout'>,</span><span class='chr'>'\281'</span><span class='layout'>)</span>
+<a name="line-546"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\283'</span><span class='layout'>,</span><span class='chr'>'\283'</span><span class='layout'>)</span>
+<a name="line-547"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\285'</span><span class='layout'>,</span><span class='chr'>'\285'</span><span class='layout'>)</span>
+<a name="line-548"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\287'</span><span class='layout'>,</span><span class='chr'>'\287'</span><span class='layout'>)</span>
+<a name="line-549"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\289'</span><span class='layout'>,</span><span class='chr'>'\289'</span><span class='layout'>)</span>
+<a name="line-550"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\291'</span><span class='layout'>,</span><span class='chr'>'\291'</span><span class='layout'>)</span>
+<a name="line-551"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\293'</span><span class='layout'>,</span><span class='chr'>'\293'</span><span class='layout'>)</span>
+<a name="line-552"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\295'</span><span class='layout'>,</span><span class='chr'>'\295'</span><span class='layout'>)</span>
+<a name="line-553"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\297'</span><span class='layout'>,</span><span class='chr'>'\297'</span><span class='layout'>)</span>
+<a name="line-554"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\299'</span><span class='layout'>,</span><span class='chr'>'\299'</span><span class='layout'>)</span>
+<a name="line-555"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\301'</span><span class='layout'>,</span><span class='chr'>'\301'</span><span class='layout'>)</span>
+<a name="line-556"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\303'</span><span class='layout'>,</span><span class='chr'>'\303'</span><span class='layout'>)</span>
+<a name="line-557"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\305'</span><span class='layout'>,</span><span class='chr'>'\305'</span><span class='layout'>)</span>
+<a name="line-558"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\307'</span><span class='layout'>,</span><span class='chr'>'\307'</span><span class='layout'>)</span>
+<a name="line-559"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\309'</span><span class='layout'>,</span><span class='chr'>'\309'</span><span class='layout'>)</span>
+<a name="line-560"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\311'</span><span class='layout'>,</span><span class='chr'>'\312'</span><span class='layout'>)</span>
+<a name="line-561"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\314'</span><span class='layout'>,</span><span class='chr'>'\314'</span><span class='layout'>)</span>
+<a name="line-562"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\316'</span><span class='layout'>,</span><span class='chr'>'\316'</span><span class='layout'>)</span>
+<a name="line-563"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\318'</span><span class='layout'>,</span><span class='chr'>'\318'</span><span class='layout'>)</span>
+<a name="line-564"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\320'</span><span class='layout'>,</span><span class='chr'>'\320'</span><span class='layout'>)</span>
+<a name="line-565"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\322'</span><span class='layout'>,</span><span class='chr'>'\322'</span><span class='layout'>)</span>
+<a name="line-566"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\324'</span><span class='layout'>,</span><span class='chr'>'\324'</span><span class='layout'>)</span>
+<a name="line-567"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\326'</span><span class='layout'>,</span><span class='chr'>'\326'</span><span class='layout'>)</span>
+<a name="line-568"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\328'</span><span class='layout'>,</span><span class='chr'>'\329'</span><span class='layout'>)</span>
+<a name="line-569"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\331'</span><span class='layout'>,</span><span class='chr'>'\331'</span><span class='layout'>)</span>
+<a name="line-570"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\333'</span><span class='layout'>,</span><span class='chr'>'\333'</span><span class='layout'>)</span>
+<a name="line-571"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\335'</span><span class='layout'>,</span><span class='chr'>'\335'</span><span class='layout'>)</span>
+<a name="line-572"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\337'</span><span class='layout'>,</span><span class='chr'>'\337'</span><span class='layout'>)</span>
+<a name="line-573"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\339'</span><span class='layout'>,</span><span class='chr'>'\339'</span><span class='layout'>)</span>
+<a name="line-574"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\341'</span><span class='layout'>,</span><span class='chr'>'\341'</span><span class='layout'>)</span>
+<a name="line-575"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\343'</span><span class='layout'>,</span><span class='chr'>'\343'</span><span class='layout'>)</span>
+<a name="line-576"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\345'</span><span class='layout'>,</span><span class='chr'>'\345'</span><span class='layout'>)</span>
+<a name="line-577"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\347'</span><span class='layout'>,</span><span class='chr'>'\347'</span><span class='layout'>)</span>
+<a name="line-578"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\349'</span><span class='layout'>,</span><span class='chr'>'\349'</span><span class='layout'>)</span>
+<a name="line-579"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\351'</span><span class='layout'>,</span><span class='chr'>'\351'</span><span class='layout'>)</span>
+<a name="line-580"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\353'</span><span class='layout'>,</span><span class='chr'>'\353'</span><span class='layout'>)</span>
+<a name="line-581"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\355'</span><span class='layout'>,</span><span class='chr'>'\355'</span><span class='layout'>)</span>
+<a name="line-582"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\357'</span><span class='layout'>,</span><span class='chr'>'\357'</span><span class='layout'>)</span>
+<a name="line-583"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\359'</span><span class='layout'>,</span><span class='chr'>'\359'</span><span class='layout'>)</span>
+<a name="line-584"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\361'</span><span class='layout'>,</span><span class='chr'>'\361'</span><span class='layout'>)</span>
+<a name="line-585"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\363'</span><span class='layout'>,</span><span class='chr'>'\363'</span><span class='layout'>)</span>
+<a name="line-586"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\365'</span><span class='layout'>,</span><span class='chr'>'\365'</span><span class='layout'>)</span>
+<a name="line-587"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\367'</span><span class='layout'>,</span><span class='chr'>'\367'</span><span class='layout'>)</span>
+<a name="line-588"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\369'</span><span class='layout'>,</span><span class='chr'>'\369'</span><span class='layout'>)</span>
+<a name="line-589"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\371'</span><span class='layout'>,</span><span class='chr'>'\371'</span><span class='layout'>)</span>
+<a name="line-590"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\373'</span><span class='layout'>,</span><span class='chr'>'\373'</span><span class='layout'>)</span>
+<a name="line-591"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\375'</span><span class='layout'>,</span><span class='chr'>'\375'</span><span class='layout'>)</span>
+<a name="line-592"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\378'</span><span class='layout'>,</span><span class='chr'>'\378'</span><span class='layout'>)</span>
+<a name="line-593"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\380'</span><span class='layout'>,</span><span class='chr'>'\380'</span><span class='layout'>)</span>
+<a name="line-594"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\382'</span><span class='layout'>,</span><span class='chr'>'\384'</span><span class='layout'>)</span>
+<a name="line-595"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\387'</span><span class='layout'>,</span><span class='chr'>'\387'</span><span class='layout'>)</span>
+<a name="line-596"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\389'</span><span class='layout'>,</span><span class='chr'>'\389'</span><span class='layout'>)</span>
+<a name="line-597"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\392'</span><span class='layout'>,</span><span class='chr'>'\392'</span><span class='layout'>)</span>
+<a name="line-598"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\396'</span><span class='layout'>,</span><span class='chr'>'\397'</span><span class='layout'>)</span>
+<a name="line-599"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\402'</span><span class='layout'>,</span><span class='chr'>'\402'</span><span class='layout'>)</span>
+<a name="line-600"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\405'</span><span class='layout'>,</span><span class='chr'>'\405'</span><span class='layout'>)</span>
+<a name="line-601"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\409'</span><span class='layout'>,</span><span class='chr'>'\411'</span><span class='layout'>)</span>
+<a name="line-602"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\414'</span><span class='layout'>,</span><span class='chr'>'\414'</span><span class='layout'>)</span>
+<a name="line-603"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\417'</span><span class='layout'>,</span><span class='chr'>'\417'</span><span class='layout'>)</span>
+<a name="line-604"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\419'</span><span class='layout'>,</span><span class='chr'>'\419'</span><span class='layout'>)</span>
+<a name="line-605"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\421'</span><span class='layout'>,</span><span class='chr'>'\421'</span><span class='layout'>)</span>
+<a name="line-606"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\424'</span><span class='layout'>,</span><span class='chr'>'\424'</span><span class='layout'>)</span>
+<a name="line-607"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\426'</span><span class='layout'>,</span><span class='chr'>'\427'</span><span class='layout'>)</span>
+<a name="line-608"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\429'</span><span class='layout'>,</span><span class='chr'>'\429'</span><span class='layout'>)</span>
+<a name="line-609"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\432'</span><span class='layout'>,</span><span class='chr'>'\432'</span><span class='layout'>)</span>
+<a name="line-610"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\436'</span><span class='layout'>,</span><span class='chr'>'\436'</span><span class='layout'>)</span>
+<a name="line-611"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\438'</span><span class='layout'>,</span><span class='chr'>'\438'</span><span class='layout'>)</span>
+<a name="line-612"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\441'</span><span class='layout'>,</span><span class='chr'>'\442'</span><span class='layout'>)</span>
+<a name="line-613"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\445'</span><span class='layout'>,</span><span class='chr'>'\447'</span><span class='layout'>)</span>
+<a name="line-614"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\454'</span><span class='layout'>,</span><span class='chr'>'\454'</span><span class='layout'>)</span>
+<a name="line-615"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\457'</span><span class='layout'>,</span><span class='chr'>'\457'</span><span class='layout'>)</span>
+<a name="line-616"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\460'</span><span class='layout'>,</span><span class='chr'>'\460'</span><span class='layout'>)</span>
+<a name="line-617"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\462'</span><span class='layout'>,</span><span class='chr'>'\462'</span><span class='layout'>)</span>
+<a name="line-618"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\464'</span><span class='layout'>,</span><span class='chr'>'\464'</span><span class='layout'>)</span>
+<a name="line-619"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\466'</span><span class='layout'>,</span><span class='chr'>'\466'</span><span class='layout'>)</span>
+<a name="line-620"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\468'</span><span class='layout'>,</span><span class='chr'>'\468'</span><span class='layout'>)</span>
+<a name="line-621"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\470'</span><span class='layout'>,</span><span class='chr'>'\470'</span><span class='layout'>)</span>
+<a name="line-622"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\472'</span><span class='layout'>,</span><span class='chr'>'\472'</span><span class='layout'>)</span>
+<a name="line-623"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\474'</span><span class='layout'>,</span><span class='chr'>'\474'</span><span class='layout'>)</span>
+<a name="line-624"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\476'</span><span class='layout'>,</span><span class='chr'>'\477'</span><span class='layout'>)</span>
+<a name="line-625"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\479'</span><span class='layout'>,</span><span class='chr'>'\479'</span><span class='layout'>)</span>
+<a name="line-626"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\481'</span><span class='layout'>,</span><span class='chr'>'\481'</span><span class='layout'>)</span>
+<a name="line-627"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\483'</span><span class='layout'>,</span><span class='chr'>'\483'</span><span class='layout'>)</span>
+<a name="line-628"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\485'</span><span class='layout'>,</span><span class='chr'>'\485'</span><span class='layout'>)</span>
+<a name="line-629"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\487'</span><span class='layout'>,</span><span class='chr'>'\487'</span><span class='layout'>)</span>
+<a name="line-630"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\489'</span><span class='layout'>,</span><span class='chr'>'\489'</span><span class='layout'>)</span>
+<a name="line-631"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\491'</span><span class='layout'>,</span><span class='chr'>'\491'</span><span class='layout'>)</span>
+<a name="line-632"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\493'</span><span class='layout'>,</span><span class='chr'>'\493'</span><span class='layout'>)</span>
+<a name="line-633"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\495'</span><span class='layout'>,</span><span class='chr'>'\496'</span><span class='layout'>)</span>
+<a name="line-634"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\499'</span><span class='layout'>,</span><span class='chr'>'\499'</span><span class='layout'>)</span>
+<a name="line-635"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\501'</span><span class='layout'>,</span><span class='chr'>'\501'</span><span class='layout'>)</span>
+<a name="line-636"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\505'</span><span class='layout'>,</span><span class='chr'>'\505'</span><span class='layout'>)</span>
+<a name="line-637"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\507'</span><span class='layout'>,</span><span class='chr'>'\507'</span><span class='layout'>)</span>
+<a name="line-638"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\509'</span><span class='layout'>,</span><span class='chr'>'\509'</span><span class='layout'>)</span>
+<a name="line-639"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\511'</span><span class='layout'>,</span><span class='chr'>'\511'</span><span class='layout'>)</span>
+<a name="line-640"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\513'</span><span class='layout'>,</span><span class='chr'>'\513'</span><span class='layout'>)</span>
+<a name="line-641"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\515'</span><span class='layout'>,</span><span class='chr'>'\515'</span><span class='layout'>)</span>
+<a name="line-642"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\517'</span><span class='layout'>,</span><span class='chr'>'\517'</span><span class='layout'>)</span>
+<a name="line-643"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\519'</span><span class='layout'>,</span><span class='chr'>'\519'</span><span class='layout'>)</span>
+<a name="line-644"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\521'</span><span class='layout'>,</span><span class='chr'>'\521'</span><span class='layout'>)</span>
+<a name="line-645"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\523'</span><span class='layout'>,</span><span class='chr'>'\523'</span><span class='layout'>)</span>
+<a name="line-646"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\525'</span><span class='layout'>,</span><span class='chr'>'\525'</span><span class='layout'>)</span>
+<a name="line-647"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\527'</span><span class='layout'>,</span><span class='chr'>'\527'</span><span class='layout'>)</span>
+<a name="line-648"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\529'</span><span class='layout'>,</span><span class='chr'>'\529'</span><span class='layout'>)</span>
+<a name="line-649"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\531'</span><span class='layout'>,</span><span class='chr'>'\531'</span><span class='layout'>)</span>
+<a name="line-650"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\533'</span><span class='layout'>,</span><span class='chr'>'\533'</span><span class='layout'>)</span>
+<a name="line-651"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\535'</span><span class='layout'>,</span><span class='chr'>'\535'</span><span class='layout'>)</span>
+<a name="line-652"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\537'</span><span class='layout'>,</span><span class='chr'>'\537'</span><span class='layout'>)</span>
+<a name="line-653"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\539'</span><span class='layout'>,</span><span class='chr'>'\539'</span><span class='layout'>)</span>
+<a name="line-654"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\541'</span><span class='layout'>,</span><span class='chr'>'\541'</span><span class='layout'>)</span>
+<a name="line-655"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\543'</span><span class='layout'>,</span><span class='chr'>'\543'</span><span class='layout'>)</span>
+<a name="line-656"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\545'</span><span class='layout'>,</span><span class='chr'>'\545'</span><span class='layout'>)</span>
+<a name="line-657"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\547'</span><span class='layout'>,</span><span class='chr'>'\547'</span><span class='layout'>)</span>
+<a name="line-658"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\549'</span><span class='layout'>,</span><span class='chr'>'\549'</span><span class='layout'>)</span>
+<a name="line-659"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\551'</span><span class='layout'>,</span><span class='chr'>'\551'</span><span class='layout'>)</span>
+<a name="line-660"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\553'</span><span class='layout'>,</span><span class='chr'>'\553'</span><span class='layout'>)</span>
+<a name="line-661"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\555'</span><span class='layout'>,</span><span class='chr'>'\555'</span><span class='layout'>)</span>
+<a name="line-662"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\557'</span><span class='layout'>,</span><span class='chr'>'\557'</span><span class='layout'>)</span>
+<a name="line-663"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\559'</span><span class='layout'>,</span><span class='chr'>'\559'</span><span class='layout'>)</span>
+<a name="line-664"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\561'</span><span class='layout'>,</span><span class='chr'>'\561'</span><span class='layout'>)</span>
+<a name="line-665"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\563'</span><span class='layout'>,</span><span class='chr'>'\569'</span><span class='layout'>)</span>
+<a name="line-666"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\572'</span><span class='layout'>,</span><span class='chr'>'\572'</span><span class='layout'>)</span>
+<a name="line-667"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\575'</span><span class='layout'>,</span><span class='chr'>'\576'</span><span class='layout'>)</span>
+<a name="line-668"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\578'</span><span class='layout'>,</span><span class='chr'>'\578'</span><span class='layout'>)</span>
+<a name="line-669"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\583'</span><span class='layout'>,</span><span class='chr'>'\583'</span><span class='layout'>)</span>
+<a name="line-670"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\585'</span><span class='layout'>,</span><span class='chr'>'\585'</span><span class='layout'>)</span>
+<a name="line-671"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\587'</span><span class='layout'>,</span><span class='chr'>'\587'</span><span class='layout'>)</span>
+<a name="line-672"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\589'</span><span class='layout'>,</span><span class='chr'>'\589'</span><span class='layout'>)</span>
+<a name="line-673"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\591'</span><span class='layout'>,</span><span class='chr'>'\659'</span><span class='layout'>)</span>
+<a name="line-674"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\661'</span><span class='layout'>,</span><span class='chr'>'\687'</span><span class='layout'>)</span>
+<a name="line-675"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\891'</span><span class='layout'>,</span><span class='chr'>'\893'</span><span class='layout'>)</span>
+<a name="line-676"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\912'</span><span class='layout'>,</span><span class='chr'>'\912'</span><span class='layout'>)</span>
+<a name="line-677"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\940'</span><span class='layout'>,</span><span class='chr'>'\974'</span><span class='layout'>)</span>
+<a name="line-678"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\976'</span><span class='layout'>,</span><span class='chr'>'\977'</span><span class='layout'>)</span>
+<a name="line-679"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\981'</span><span class='layout'>,</span><span class='chr'>'\983'</span><span class='layout'>)</span>
+<a name="line-680"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\985'</span><span class='layout'>,</span><span class='chr'>'\985'</span><span class='layout'>)</span>
+<a name="line-681"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\987'</span><span class='layout'>,</span><span class='chr'>'\987'</span><span class='layout'>)</span>
+<a name="line-682"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\989'</span><span class='layout'>,</span><span class='chr'>'\989'</span><span class='layout'>)</span>
+<a name="line-683"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\991'</span><span class='layout'>,</span><span class='chr'>'\991'</span><span class='layout'>)</span>
+<a name="line-684"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\993'</span><span class='layout'>,</span><span class='chr'>'\993'</span><span class='layout'>)</span>
+<a name="line-685"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\995'</span><span class='layout'>,</span><span class='chr'>'\995'</span><span class='layout'>)</span>
+<a name="line-686"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\997'</span><span class='layout'>,</span><span class='chr'>'\997'</span><span class='layout'>)</span>
+<a name="line-687"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\999'</span><span class='layout'>,</span><span class='chr'>'\999'</span><span class='layout'>)</span>
+<a name="line-688"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1001'</span><span class='layout'>,</span><span class='chr'>'\1001'</span><span class='layout'>)</span>
+<a name="line-689"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1003'</span><span class='layout'>,</span><span class='chr'>'\1003'</span><span class='layout'>)</span>
+<a name="line-690"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1005'</span><span class='layout'>,</span><span class='chr'>'\1005'</span><span class='layout'>)</span>
+<a name="line-691"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1007'</span><span class='layout'>,</span><span class='chr'>'\1011'</span><span class='layout'>)</span>
+<a name="line-692"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1013'</span><span class='layout'>,</span><span class='chr'>'\1013'</span><span class='layout'>)</span>
+<a name="line-693"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1016'</span><span class='layout'>,</span><span class='chr'>'\1016'</span><span class='layout'>)</span>
+<a name="line-694"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1019'</span><span class='layout'>,</span><span class='chr'>'\1020'</span><span class='layout'>)</span>
+<a name="line-695"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1072'</span><span class='layout'>,</span><span class='chr'>'\1119'</span><span class='layout'>)</span>
+<a name="line-696"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1121'</span><span class='layout'>,</span><span class='chr'>'\1121'</span><span class='layout'>)</span>
+<a name="line-697"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1123'</span><span class='layout'>,</span><span class='chr'>'\1123'</span><span class='layout'>)</span>
+<a name="line-698"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1125'</span><span class='layout'>,</span><span class='chr'>'\1125'</span><span class='layout'>)</span>
+<a name="line-699"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1127'</span><span class='layout'>,</span><span class='chr'>'\1127'</span><span class='layout'>)</span>
+<a name="line-700"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1129'</span><span class='layout'>,</span><span class='chr'>'\1129'</span><span class='layout'>)</span>
+<a name="line-701"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1131'</span><span class='layout'>,</span><span class='chr'>'\1131'</span><span class='layout'>)</span>
+<a name="line-702"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1133'</span><span class='layout'>,</span><span class='chr'>'\1133'</span><span class='layout'>)</span>
+<a name="line-703"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1135'</span><span class='layout'>,</span><span class='chr'>'\1135'</span><span class='layout'>)</span>
+<a name="line-704"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1137'</span><span class='layout'>,</span><span class='chr'>'\1137'</span><span class='layout'>)</span>
+<a name="line-705"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1139'</span><span class='layout'>,</span><span class='chr'>'\1139'</span><span class='layout'>)</span>
+<a name="line-706"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1141'</span><span class='layout'>,</span><span class='chr'>'\1141'</span><span class='layout'>)</span>
+<a name="line-707"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1143'</span><span class='layout'>,</span><span class='chr'>'\1143'</span><span class='layout'>)</span>
+<a name="line-708"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1145'</span><span class='layout'>,</span><span class='chr'>'\1145'</span><span class='layout'>)</span>
+<a name="line-709"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1147'</span><span class='layout'>,</span><span class='chr'>'\1147'</span><span class='layout'>)</span>
+<a name="line-710"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1149'</span><span class='layout'>,</span><span class='chr'>'\1149'</span><span class='layout'>)</span>
+<a name="line-711"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1151'</span><span class='layout'>,</span><span class='chr'>'\1151'</span><span class='layout'>)</span>
+<a name="line-712"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1153'</span><span class='layout'>,</span><span class='chr'>'\1153'</span><span class='layout'>)</span>
+<a name="line-713"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1163'</span><span class='layout'>,</span><span class='chr'>'\1163'</span><span class='layout'>)</span>
+<a name="line-714"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1165'</span><span class='layout'>,</span><span class='chr'>'\1165'</span><span class='layout'>)</span>
+<a name="line-715"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1167'</span><span class='layout'>,</span><span class='chr'>'\1167'</span><span class='layout'>)</span>
+<a name="line-716"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1169'</span><span class='layout'>,</span><span class='chr'>'\1169'</span><span class='layout'>)</span>
+<a name="line-717"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1171'</span><span class='layout'>,</span><span class='chr'>'\1171'</span><span class='layout'>)</span>
+<a name="line-718"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1173'</span><span class='layout'>,</span><span class='chr'>'\1173'</span><span class='layout'>)</span>
+<a name="line-719"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1175'</span><span class='layout'>,</span><span class='chr'>'\1175'</span><span class='layout'>)</span>
+<a name="line-720"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1177'</span><span class='layout'>,</span><span class='chr'>'\1177'</span><span class='layout'>)</span>
+<a name="line-721"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1179'</span><span class='layout'>,</span><span class='chr'>'\1179'</span><span class='layout'>)</span>
+<a name="line-722"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1181'</span><span class='layout'>,</span><span class='chr'>'\1181'</span><span class='layout'>)</span>
+<a name="line-723"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1183'</span><span class='layout'>,</span><span class='chr'>'\1183'</span><span class='layout'>)</span>
+<a name="line-724"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1185'</span><span class='layout'>,</span><span class='chr'>'\1185'</span><span class='layout'>)</span>
+<a name="line-725"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1187'</span><span class='layout'>,</span><span class='chr'>'\1187'</span><span class='layout'>)</span>
+<a name="line-726"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1189'</span><span class='layout'>,</span><span class='chr'>'\1189'</span><span class='layout'>)</span>
+<a name="line-727"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1191'</span><span class='layout'>,</span><span class='chr'>'\1191'</span><span class='layout'>)</span>
+<a name="line-728"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1193'</span><span class='layout'>,</span><span class='chr'>'\1193'</span><span class='layout'>)</span>
+<a name="line-729"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1195'</span><span class='layout'>,</span><span class='chr'>'\1195'</span><span class='layout'>)</span>
+<a name="line-730"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1197'</span><span class='layout'>,</span><span class='chr'>'\1197'</span><span class='layout'>)</span>
+<a name="line-731"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1199'</span><span class='layout'>,</span><span class='chr'>'\1199'</span><span class='layout'>)</span>
+<a name="line-732"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1201'</span><span class='layout'>,</span><span class='chr'>'\1201'</span><span class='layout'>)</span>
+<a name="line-733"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1203'</span><span class='layout'>,</span><span class='chr'>'\1203'</span><span class='layout'>)</span>
+<a name="line-734"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1205'</span><span class='layout'>,</span><span class='chr'>'\1205'</span><span class='layout'>)</span>
+<a name="line-735"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1207'</span><span class='layout'>,</span><span class='chr'>'\1207'</span><span class='layout'>)</span>
+<a name="line-736"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1209'</span><span class='layout'>,</span><span class='chr'>'\1209'</span><span class='layout'>)</span>
+<a name="line-737"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1211'</span><span class='layout'>,</span><span class='chr'>'\1211'</span><span class='layout'>)</span>
+<a name="line-738"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1213'</span><span class='layout'>,</span><span class='chr'>'\1213'</span><span class='layout'>)</span>
+<a name="line-739"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1215'</span><span class='layout'>,</span><span class='chr'>'\1215'</span><span class='layout'>)</span>
+<a name="line-740"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1218'</span><span class='layout'>,</span><span class='chr'>'\1218'</span><span class='layout'>)</span>
+<a name="line-741"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1220'</span><span class='layout'>,</span><span class='chr'>'\1220'</span><span class='layout'>)</span>
+<a name="line-742"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1222'</span><span class='layout'>,</span><span class='chr'>'\1222'</span><span class='layout'>)</span>
+<a name="line-743"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1224'</span><span class='layout'>,</span><span class='chr'>'\1224'</span><span class='layout'>)</span>
+<a name="line-744"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1226'</span><span class='layout'>,</span><span class='chr'>'\1226'</span><span class='layout'>)</span>
+<a name="line-745"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1228'</span><span class='layout'>,</span><span class='chr'>'\1228'</span><span class='layout'>)</span>
+<a name="line-746"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1230'</span><span class='layout'>,</span><span class='chr'>'\1231'</span><span class='layout'>)</span>
+<a name="line-747"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1233'</span><span class='layout'>,</span><span class='chr'>'\1233'</span><span class='layout'>)</span>
+<a name="line-748"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1235'</span><span class='layout'>,</span><span class='chr'>'\1235'</span><span class='layout'>)</span>
+<a name="line-749"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1237'</span><span class='layout'>,</span><span class='chr'>'\1237'</span><span class='layout'>)</span>
+<a name="line-750"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1239'</span><span class='layout'>,</span><span class='chr'>'\1239'</span><span class='layout'>)</span>
+<a name="line-751"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1241'</span><span class='layout'>,</span><span class='chr'>'\1241'</span><span class='layout'>)</span>
+<a name="line-752"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1243'</span><span class='layout'>,</span><span class='chr'>'\1243'</span><span class='layout'>)</span>
+<a name="line-753"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1245'</span><span class='layout'>,</span><span class='chr'>'\1245'</span><span class='layout'>)</span>
+<a name="line-754"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1247'</span><span class='layout'>,</span><span class='chr'>'\1247'</span><span class='layout'>)</span>
+<a name="line-755"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1249'</span><span class='layout'>,</span><span class='chr'>'\1249'</span><span class='layout'>)</span>
+<a name="line-756"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1251'</span><span class='layout'>,</span><span class='chr'>'\1251'</span><span class='layout'>)</span>
+<a name="line-757"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1253'</span><span class='layout'>,</span><span class='chr'>'\1253'</span><span class='layout'>)</span>
+<a name="line-758"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1255'</span><span class='layout'>,</span><span class='chr'>'\1255'</span><span class='layout'>)</span>
+<a name="line-759"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1257'</span><span class='layout'>,</span><span class='chr'>'\1257'</span><span class='layout'>)</span>
+<a name="line-760"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1259'</span><span class='layout'>,</span><span class='chr'>'\1259'</span><span class='layout'>)</span>
+<a name="line-761"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1261'</span><span class='layout'>,</span><span class='chr'>'\1261'</span><span class='layout'>)</span>
+<a name="line-762"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1263'</span><span class='layout'>,</span><span class='chr'>'\1263'</span><span class='layout'>)</span>
+<a name="line-763"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1265'</span><span class='layout'>,</span><span class='chr'>'\1265'</span><span class='layout'>)</span>
+<a name="line-764"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1267'</span><span class='layout'>,</span><span class='chr'>'\1267'</span><span class='layout'>)</span>
+<a name="line-765"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1269'</span><span class='layout'>,</span><span class='chr'>'\1269'</span><span class='layout'>)</span>
+<a name="line-766"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1271'</span><span class='layout'>,</span><span class='chr'>'\1271'</span><span class='layout'>)</span>
+<a name="line-767"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1273'</span><span class='layout'>,</span><span class='chr'>'\1273'</span><span class='layout'>)</span>
+<a name="line-768"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1275'</span><span class='layout'>,</span><span class='chr'>'\1275'</span><span class='layout'>)</span>
+<a name="line-769"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1277'</span><span class='layout'>,</span><span class='chr'>'\1277'</span><span class='layout'>)</span>
+<a name="line-770"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1279'</span><span class='layout'>,</span><span class='chr'>'\1279'</span><span class='layout'>)</span>
+<a name="line-771"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1281'</span><span class='layout'>,</span><span class='chr'>'\1281'</span><span class='layout'>)</span>
+<a name="line-772"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1283'</span><span class='layout'>,</span><span class='chr'>'\1283'</span><span class='layout'>)</span>
+<a name="line-773"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1285'</span><span class='layout'>,</span><span class='chr'>'\1285'</span><span class='layout'>)</span>
+<a name="line-774"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1287'</span><span class='layout'>,</span><span class='chr'>'\1287'</span><span class='layout'>)</span>
+<a name="line-775"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1289'</span><span class='layout'>,</span><span class='chr'>'\1289'</span><span class='layout'>)</span>
+<a name="line-776"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1291'</span><span class='layout'>,</span><span class='chr'>'\1291'</span><span class='layout'>)</span>
+<a name="line-777"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1293'</span><span class='layout'>,</span><span class='chr'>'\1293'</span><span class='layout'>)</span>
+<a name="line-778"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1295'</span><span class='layout'>,</span><span class='chr'>'\1295'</span><span class='layout'>)</span>
+<a name="line-779"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1297'</span><span class='layout'>,</span><span class='chr'>'\1297'</span><span class='layout'>)</span>
+<a name="line-780"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1299'</span><span class='layout'>,</span><span class='chr'>'\1299'</span><span class='layout'>)</span>
+<a name="line-781"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1377'</span><span class='layout'>,</span><span class='chr'>'\1415'</span><span class='layout'>)</span>
+<a name="line-782"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7424'</span><span class='layout'>,</span><span class='chr'>'\7467'</span><span class='layout'>)</span>
+<a name="line-783"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7522'</span><span class='layout'>,</span><span class='chr'>'\7543'</span><span class='layout'>)</span>
+<a name="line-784"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7545'</span><span class='layout'>,</span><span class='chr'>'\7578'</span><span class='layout'>)</span>
+<a name="line-785"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7681'</span><span class='layout'>,</span><span class='chr'>'\7681'</span><span class='layout'>)</span>
+<a name="line-786"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7683'</span><span class='layout'>,</span><span class='chr'>'\7683'</span><span class='layout'>)</span>
+<a name="line-787"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7685'</span><span class='layout'>,</span><span class='chr'>'\7685'</span><span class='layout'>)</span>
+<a name="line-788"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7687'</span><span class='layout'>,</span><span class='chr'>'\7687'</span><span class='layout'>)</span>
+<a name="line-789"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7689'</span><span class='layout'>,</span><span class='chr'>'\7689'</span><span class='layout'>)</span>
+<a name="line-790"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7691'</span><span class='layout'>,</span><span class='chr'>'\7691'</span><span class='layout'>)</span>
+<a name="line-791"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7693'</span><span class='layout'>,</span><span class='chr'>'\7693'</span><span class='layout'>)</span>
+<a name="line-792"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7695'</span><span class='layout'>,</span><span class='chr'>'\7695'</span><span class='layout'>)</span>
+<a name="line-793"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7697'</span><span class='layout'>,</span><span class='chr'>'\7697'</span><span class='layout'>)</span>
+<a name="line-794"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7699'</span><span class='layout'>,</span><span class='chr'>'\7699'</span><span class='layout'>)</span>
+<a name="line-795"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7701'</span><span class='layout'>,</span><span class='chr'>'\7701'</span><span class='layout'>)</span>
+<a name="line-796"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7703'</span><span class='layout'>,</span><span class='chr'>'\7703'</span><span class='layout'>)</span>
+<a name="line-797"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7705'</span><span class='layout'>,</span><span class='chr'>'\7705'</span><span class='layout'>)</span>
+<a name="line-798"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7707'</span><span class='layout'>,</span><span class='chr'>'\7707'</span><span class='layout'>)</span>
+<a name="line-799"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7709'</span><span class='layout'>,</span><span class='chr'>'\7709'</span><span class='layout'>)</span>
+<a name="line-800"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7711'</span><span class='layout'>,</span><span class='chr'>'\7711'</span><span class='layout'>)</span>
+<a name="line-801"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7713'</span><span class='layout'>,</span><span class='chr'>'\7713'</span><span class='layout'>)</span>
+<a name="line-802"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7715'</span><span class='layout'>,</span><span class='chr'>'\7715'</span><span class='layout'>)</span>
+<a name="line-803"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7717'</span><span class='layout'>,</span><span class='chr'>'\7717'</span><span class='layout'>)</span>
+<a name="line-804"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7719'</span><span class='layout'>,</span><span class='chr'>'\7719'</span><span class='layout'>)</span>
+<a name="line-805"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7721'</span><span class='layout'>,</span><span class='chr'>'\7721'</span><span class='layout'>)</span>
+<a name="line-806"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7723'</span><span class='layout'>,</span><span class='chr'>'\7723'</span><span class='layout'>)</span>
+<a name="line-807"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7725'</span><span class='layout'>,</span><span class='chr'>'\7725'</span><span class='layout'>)</span>
+<a name="line-808"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7727'</span><span class='layout'>,</span><span class='chr'>'\7727'</span><span class='layout'>)</span>
+<a name="line-809"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7729'</span><span class='layout'>,</span><span class='chr'>'\7729'</span><span class='layout'>)</span>
+<a name="line-810"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7731'</span><span class='layout'>,</span><span class='chr'>'\7731'</span><span class='layout'>)</span>
+<a name="line-811"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7733'</span><span class='layout'>,</span><span class='chr'>'\7733'</span><span class='layout'>)</span>
+<a name="line-812"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7735'</span><span class='layout'>,</span><span class='chr'>'\7735'</span><span class='layout'>)</span>
+<a name="line-813"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7737'</span><span class='layout'>,</span><span class='chr'>'\7737'</span><span class='layout'>)</span>
+<a name="line-814"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7739'</span><span class='layout'>,</span><span class='chr'>'\7739'</span><span class='layout'>)</span>
+<a name="line-815"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7741'</span><span class='layout'>,</span><span class='chr'>'\7741'</span><span class='layout'>)</span>
+<a name="line-816"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7743'</span><span class='layout'>,</span><span class='chr'>'\7743'</span><span class='layout'>)</span>
+<a name="line-817"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7745'</span><span class='layout'>,</span><span class='chr'>'\7745'</span><span class='layout'>)</span>
+<a name="line-818"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7747'</span><span class='layout'>,</span><span class='chr'>'\7747'</span><span class='layout'>)</span>
+<a name="line-819"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7749'</span><span class='layout'>,</span><span class='chr'>'\7749'</span><span class='layout'>)</span>
+<a name="line-820"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7751'</span><span class='layout'>,</span><span class='chr'>'\7751'</span><span class='layout'>)</span>
+<a name="line-821"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7753'</span><span class='layout'>,</span><span class='chr'>'\7753'</span><span class='layout'>)</span>
+<a name="line-822"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7755'</span><span class='layout'>,</span><span class='chr'>'\7755'</span><span class='layout'>)</span>
+<a name="line-823"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7757'</span><span class='layout'>,</span><span class='chr'>'\7757'</span><span class='layout'>)</span>
+<a name="line-824"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7759'</span><span class='layout'>,</span><span class='chr'>'\7759'</span><span class='layout'>)</span>
+<a name="line-825"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7761'</span><span class='layout'>,</span><span class='chr'>'\7761'</span><span class='layout'>)</span>
+<a name="line-826"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7763'</span><span class='layout'>,</span><span class='chr'>'\7763'</span><span class='layout'>)</span>
+<a name="line-827"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7765'</span><span class='layout'>,</span><span class='chr'>'\7765'</span><span class='layout'>)</span>
+<a name="line-828"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7767'</span><span class='layout'>,</span><span class='chr'>'\7767'</span><span class='layout'>)</span>
+<a name="line-829"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7769'</span><span class='layout'>,</span><span class='chr'>'\7769'</span><span class='layout'>)</span>
+<a name="line-830"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7771'</span><span class='layout'>,</span><span class='chr'>'\7771'</span><span class='layout'>)</span>
+<a name="line-831"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7773'</span><span class='layout'>,</span><span class='chr'>'\7773'</span><span class='layout'>)</span>
+<a name="line-832"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7775'</span><span class='layout'>,</span><span class='chr'>'\7775'</span><span class='layout'>)</span>
+<a name="line-833"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7777'</span><span class='layout'>,</span><span class='chr'>'\7777'</span><span class='layout'>)</span>
+<a name="line-834"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7779'</span><span class='layout'>,</span><span class='chr'>'\7779'</span><span class='layout'>)</span>
+<a name="line-835"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7781'</span><span class='layout'>,</span><span class='chr'>'\7781'</span><span class='layout'>)</span>
+<a name="line-836"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7783'</span><span class='layout'>,</span><span class='chr'>'\7783'</span><span class='layout'>)</span>
+<a name="line-837"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7785'</span><span class='layout'>,</span><span class='chr'>'\7785'</span><span class='layout'>)</span>
+<a name="line-838"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7787'</span><span class='layout'>,</span><span class='chr'>'\7787'</span><span class='layout'>)</span>
+<a name="line-839"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7789'</span><span class='layout'>,</span><span class='chr'>'\7789'</span><span class='layout'>)</span>
+<a name="line-840"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7791'</span><span class='layout'>,</span><span class='chr'>'\7791'</span><span class='layout'>)</span>
+<a name="line-841"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7793'</span><span class='layout'>,</span><span class='chr'>'\7793'</span><span class='layout'>)</span>
+<a name="line-842"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7795'</span><span class='layout'>,</span><span class='chr'>'\7795'</span><span class='layout'>)</span>
+<a name="line-843"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7797'</span><span class='layout'>,</span><span class='chr'>'\7797'</span><span class='layout'>)</span>
+<a name="line-844"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7799'</span><span class='layout'>,</span><span class='chr'>'\7799'</span><span class='layout'>)</span>
+<a name="line-845"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7801'</span><span class='layout'>,</span><span class='chr'>'\7801'</span><span class='layout'>)</span>
+<a name="line-846"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7803'</span><span class='layout'>,</span><span class='chr'>'\7803'</span><span class='layout'>)</span>
+<a name="line-847"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7805'</span><span class='layout'>,</span><span class='chr'>'\7805'</span><span class='layout'>)</span>
+<a name="line-848"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7807'</span><span class='layout'>,</span><span class='chr'>'\7807'</span><span class='layout'>)</span>
+<a name="line-849"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7809'</span><span class='layout'>,</span><span class='chr'>'\7809'</span><span class='layout'>)</span>
+<a name="line-850"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7811'</span><span class='layout'>,</span><span class='chr'>'\7811'</span><span class='layout'>)</span>
+<a name="line-851"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7813'</span><span class='layout'>,</span><span class='chr'>'\7813'</span><span class='layout'>)</span>
+<a name="line-852"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7815'</span><span class='layout'>,</span><span class='chr'>'\7815'</span><span class='layout'>)</span>
+<a name="line-853"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7817'</span><span class='layout'>,</span><span class='chr'>'\7817'</span><span class='layout'>)</span>
+<a name="line-854"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7819'</span><span class='layout'>,</span><span class='chr'>'\7819'</span><span class='layout'>)</span>
+<a name="line-855"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7821'</span><span class='layout'>,</span><span class='chr'>'\7821'</span><span class='layout'>)</span>
+<a name="line-856"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7823'</span><span class='layout'>,</span><span class='chr'>'\7823'</span><span class='layout'>)</span>
+<a name="line-857"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7825'</span><span class='layout'>,</span><span class='chr'>'\7825'</span><span class='layout'>)</span>
+<a name="line-858"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7827'</span><span class='layout'>,</span><span class='chr'>'\7827'</span><span class='layout'>)</span>
+<a name="line-859"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7829'</span><span class='layout'>,</span><span class='chr'>'\7835'</span><span class='layout'>)</span>
+<a name="line-860"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7841'</span><span class='layout'>,</span><span class='chr'>'\7841'</span><span class='layout'>)</span>
+<a name="line-861"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7843'</span><span class='layout'>,</span><span class='chr'>'\7843'</span><span class='layout'>)</span>
+<a name="line-862"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7845'</span><span class='layout'>,</span><span class='chr'>'\7845'</span><span class='layout'>)</span>
+<a name="line-863"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7847'</span><span class='layout'>,</span><span class='chr'>'\7847'</span><span class='layout'>)</span>
+<a name="line-864"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7849'</span><span class='layout'>,</span><span class='chr'>'\7849'</span><span class='layout'>)</span>
+<a name="line-865"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7851'</span><span class='layout'>,</span><span class='chr'>'\7851'</span><span class='layout'>)</span>
+<a name="line-866"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7853'</span><span class='layout'>,</span><span class='chr'>'\7853'</span><span class='layout'>)</span>
+<a name="line-867"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7855'</span><span class='layout'>,</span><span class='chr'>'\7855'</span><span class='layout'>)</span>
+<a name="line-868"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7857'</span><span class='layout'>,</span><span class='chr'>'\7857'</span><span class='layout'>)</span>
+<a name="line-869"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7859'</span><span class='layout'>,</span><span class='chr'>'\7859'</span><span class='layout'>)</span>
+<a name="line-870"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7861'</span><span class='layout'>,</span><span class='chr'>'\7861'</span><span class='layout'>)</span>
+<a name="line-871"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7863'</span><span class='layout'>,</span><span class='chr'>'\7863'</span><span class='layout'>)</span>
+<a name="line-872"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7865'</span><span class='layout'>,</span><span class='chr'>'\7865'</span><span class='layout'>)</span>
+<a name="line-873"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7867'</span><span class='layout'>,</span><span class='chr'>'\7867'</span><span class='layout'>)</span>
+<a name="line-874"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7869'</span><span class='layout'>,</span><span class='chr'>'\7869'</span><span class='layout'>)</span>
+<a name="line-875"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7871'</span><span class='layout'>,</span><span class='chr'>'\7871'</span><span class='layout'>)</span>
+<a name="line-876"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7873'</span><span class='layout'>,</span><span class='chr'>'\7873'</span><span class='layout'>)</span>
+<a name="line-877"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7875'</span><span class='layout'>,</span><span class='chr'>'\7875'</span><span class='layout'>)</span>
+<a name="line-878"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7877'</span><span class='layout'>,</span><span class='chr'>'\7877'</span><span class='layout'>)</span>
+<a name="line-879"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7879'</span><span class='layout'>,</span><span class='chr'>'\7879'</span><span class='layout'>)</span>
+<a name="line-880"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7881'</span><span class='layout'>,</span><span class='chr'>'\7881'</span><span class='layout'>)</span>
+<a name="line-881"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7883'</span><span class='layout'>,</span><span class='chr'>'\7883'</span><span class='layout'>)</span>
+<a name="line-882"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7885'</span><span class='layout'>,</span><span class='chr'>'\7885'</span><span class='layout'>)</span>
+<a name="line-883"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7887'</span><span class='layout'>,</span><span class='chr'>'\7887'</span><span class='layout'>)</span>
+<a name="line-884"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7889'</span><span class='layout'>,</span><span class='chr'>'\7889'</span><span class='layout'>)</span>
+<a name="line-885"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7891'</span><span class='layout'>,</span><span class='chr'>'\7891'</span><span class='layout'>)</span>
+<a name="line-886"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7893'</span><span class='layout'>,</span><span class='chr'>'\7893'</span><span class='layout'>)</span>
+<a name="line-887"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7895'</span><span class='layout'>,</span><span class='chr'>'\7895'</span><span class='layout'>)</span>
+<a name="line-888"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7897'</span><span class='layout'>,</span><span class='chr'>'\7897'</span><span class='layout'>)</span>
+<a name="line-889"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7899'</span><span class='layout'>,</span><span class='chr'>'\7899'</span><span class='layout'>)</span>
+<a name="line-890"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7901'</span><span class='layout'>,</span><span class='chr'>'\7901'</span><span class='layout'>)</span>
+<a name="line-891"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7903'</span><span class='layout'>,</span><span class='chr'>'\7903'</span><span class='layout'>)</span>
+<a name="line-892"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7905'</span><span class='layout'>,</span><span class='chr'>'\7905'</span><span class='layout'>)</span>
+<a name="line-893"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7907'</span><span class='layout'>,</span><span class='chr'>'\7907'</span><span class='layout'>)</span>
+<a name="line-894"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7909'</span><span class='layout'>,</span><span class='chr'>'\7909'</span><span class='layout'>)</span>
+<a name="line-895"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7911'</span><span class='layout'>,</span><span class='chr'>'\7911'</span><span class='layout'>)</span>
+<a name="line-896"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7913'</span><span class='layout'>,</span><span class='chr'>'\7913'</span><span class='layout'>)</span>
+<a name="line-897"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7915'</span><span class='layout'>,</span><span class='chr'>'\7915'</span><span class='layout'>)</span>
+<a name="line-898"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7917'</span><span class='layout'>,</span><span class='chr'>'\7917'</span><span class='layout'>)</span>
+<a name="line-899"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7919'</span><span class='layout'>,</span><span class='chr'>'\7919'</span><span class='layout'>)</span>
+<a name="line-900"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7921'</span><span class='layout'>,</span><span class='chr'>'\7921'</span><span class='layout'>)</span>
+<a name="line-901"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7923'</span><span class='layout'>,</span><span class='chr'>'\7923'</span><span class='layout'>)</span>
+<a name="line-902"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7925'</span><span class='layout'>,</span><span class='chr'>'\7925'</span><span class='layout'>)</span>
+<a name="line-903"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7927'</span><span class='layout'>,</span><span class='chr'>'\7927'</span><span class='layout'>)</span>
+<a name="line-904"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7929'</span><span class='layout'>,</span><span class='chr'>'\7929'</span><span class='layout'>)</span>
+<a name="line-905"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7936'</span><span class='layout'>,</span><span class='chr'>'\7943'</span><span class='layout'>)</span>
+<a name="line-906"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7952'</span><span class='layout'>,</span><span class='chr'>'\7957'</span><span class='layout'>)</span>
+<a name="line-907"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7968'</span><span class='layout'>,</span><span class='chr'>'\7975'</span><span class='layout'>)</span>
+<a name="line-908"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7984'</span><span class='layout'>,</span><span class='chr'>'\7991'</span><span class='layout'>)</span>
+<a name="line-909"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8000'</span><span class='layout'>,</span><span class='chr'>'\8005'</span><span class='layout'>)</span>
+<a name="line-910"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8016'</span><span class='layout'>,</span><span class='chr'>'\8023'</span><span class='layout'>)</span>
+<a name="line-911"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8032'</span><span class='layout'>,</span><span class='chr'>'\8039'</span><span class='layout'>)</span>
+<a name="line-912"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8048'</span><span class='layout'>,</span><span class='chr'>'\8061'</span><span class='layout'>)</span>
+<a name="line-913"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8064'</span><span class='layout'>,</span><span class='chr'>'\8071'</span><span class='layout'>)</span>
+<a name="line-914"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8080'</span><span class='layout'>,</span><span class='chr'>'\8087'</span><span class='layout'>)</span>
+<a name="line-915"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8096'</span><span class='layout'>,</span><span class='chr'>'\8103'</span><span class='layout'>)</span>
+<a name="line-916"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8112'</span><span class='layout'>,</span><span class='chr'>'\8116'</span><span class='layout'>)</span>
+<a name="line-917"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8118'</span><span class='layout'>,</span><span class='chr'>'\8119'</span><span class='layout'>)</span>
+<a name="line-918"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8126'</span><span class='layout'>,</span><span class='chr'>'\8126'</span><span class='layout'>)</span>
+<a name="line-919"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8130'</span><span class='layout'>,</span><span class='chr'>'\8132'</span><span class='layout'>)</span>
+<a name="line-920"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8134'</span><span class='layout'>,</span><span class='chr'>'\8135'</span><span class='layout'>)</span>
+<a name="line-921"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8144'</span><span class='layout'>,</span><span class='chr'>'\8147'</span><span class='layout'>)</span>
+<a name="line-922"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8150'</span><span class='layout'>,</span><span class='chr'>'\8151'</span><span class='layout'>)</span>
+<a name="line-923"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8160'</span><span class='layout'>,</span><span class='chr'>'\8167'</span><span class='layout'>)</span>
+<a name="line-924"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8178'</span><span class='layout'>,</span><span class='chr'>'\8180'</span><span class='layout'>)</span>
+<a name="line-925"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8182'</span><span class='layout'>,</span><span class='chr'>'\8183'</span><span class='layout'>)</span>
+<a name="line-926"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8305'</span><span class='layout'>,</span><span class='chr'>'\8305'</span><span class='layout'>)</span>
+<a name="line-927"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8319'</span><span class='layout'>,</span><span class='chr'>'\8319'</span><span class='layout'>)</span>
+<a name="line-928"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8458'</span><span class='layout'>,</span><span class='chr'>'\8458'</span><span class='layout'>)</span>
+<a name="line-929"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8462'</span><span class='layout'>,</span><span class='chr'>'\8463'</span><span class='layout'>)</span>
+<a name="line-930"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8467'</span><span class='layout'>,</span><span class='chr'>'\8467'</span><span class='layout'>)</span>
+<a name="line-931"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8495'</span><span class='layout'>,</span><span class='chr'>'\8495'</span><span class='layout'>)</span>
+<a name="line-932"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8500'</span><span class='layout'>,</span><span class='chr'>'\8500'</span><span class='layout'>)</span>
+<a name="line-933"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8505'</span><span class='layout'>,</span><span class='chr'>'\8505'</span><span class='layout'>)</span>
+<a name="line-934"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8508'</span><span class='layout'>,</span><span class='chr'>'\8509'</span><span class='layout'>)</span>
+<a name="line-935"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8518'</span><span class='layout'>,</span><span class='chr'>'\8521'</span><span class='layout'>)</span>
+<a name="line-936"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8526'</span><span class='layout'>,</span><span class='chr'>'\8526'</span><span class='layout'>)</span>
+<a name="line-937"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8580'</span><span class='layout'>,</span><span class='chr'>'\8580'</span><span class='layout'>)</span>
+<a name="line-938"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11312'</span><span class='layout'>,</span><span class='chr'>'\11358'</span><span class='layout'>)</span>
+<a name="line-939"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11361'</span><span class='layout'>,</span><span class='chr'>'\11361'</span><span class='layout'>)</span>
+<a name="line-940"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11365'</span><span class='layout'>,</span><span class='chr'>'\11366'</span><span class='layout'>)</span>
+<a name="line-941"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11368'</span><span class='layout'>,</span><span class='chr'>'\11368'</span><span class='layout'>)</span>
+<a name="line-942"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11370'</span><span class='layout'>,</span><span class='chr'>'\11370'</span><span class='layout'>)</span>
+<a name="line-943"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11372'</span><span class='layout'>,</span><span class='chr'>'\11372'</span><span class='layout'>)</span>
+<a name="line-944"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11380'</span><span class='layout'>,</span><span class='chr'>'\11380'</span><span class='layout'>)</span>
+<a name="line-945"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11382'</span><span class='layout'>,</span><span class='chr'>'\11383'</span><span class='layout'>)</span>
+<a name="line-946"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11393'</span><span class='layout'>,</span><span class='chr'>'\11393'</span><span class='layout'>)</span>
+<a name="line-947"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11395'</span><span class='layout'>,</span><span class='chr'>'\11395'</span><span class='layout'>)</span>
+<a name="line-948"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11397'</span><span class='layout'>,</span><span class='chr'>'\11397'</span><span class='layout'>)</span>
+<a name="line-949"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11399'</span><span class='layout'>,</span><span class='chr'>'\11399'</span><span class='layout'>)</span>
+<a name="line-950"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11401'</span><span class='layout'>,</span><span class='chr'>'\11401'</span><span class='layout'>)</span>
+<a name="line-951"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11403'</span><span class='layout'>,</span><span class='chr'>'\11403'</span><span class='layout'>)</span>
+<a name="line-952"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11405'</span><span class='layout'>,</span><span class='chr'>'\11405'</span><span class='layout'>)</span>
+<a name="line-953"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11407'</span><span class='layout'>,</span><span class='chr'>'\11407'</span><span class='layout'>)</span>
+<a name="line-954"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11409'</span><span class='layout'>,</span><span class='chr'>'\11409'</span><span class='layout'>)</span>
+<a name="line-955"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11411'</span><span class='layout'>,</span><span class='chr'>'\11411'</span><span class='layout'>)</span>
+<a name="line-956"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11413'</span><span class='layout'>,</span><span class='chr'>'\11413'</span><span class='layout'>)</span>
+<a name="line-957"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11415'</span><span class='layout'>,</span><span class='chr'>'\11415'</span><span class='layout'>)</span>
+<a name="line-958"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11417'</span><span class='layout'>,</span><span class='chr'>'\11417'</span><span class='layout'>)</span>
+<a name="line-959"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11419'</span><span class='layout'>,</span><span class='chr'>'\11419'</span><span class='layout'>)</span>
+<a name="line-960"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11421'</span><span class='layout'>,</span><span class='chr'>'\11421'</span><span class='layout'>)</span>
+<a name="line-961"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11423'</span><span class='layout'>,</span><span class='chr'>'\11423'</span><span class='layout'>)</span>
+<a name="line-962"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11425'</span><span class='layout'>,</span><span class='chr'>'\11425'</span><span class='layout'>)</span>
+<a name="line-963"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11427'</span><span class='layout'>,</span><span class='chr'>'\11427'</span><span class='layout'>)</span>
+<a name="line-964"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11429'</span><span class='layout'>,</span><span class='chr'>'\11429'</span><span class='layout'>)</span>
+<a name="line-965"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11431'</span><span class='layout'>,</span><span class='chr'>'\11431'</span><span class='layout'>)</span>
+<a name="line-966"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11433'</span><span class='layout'>,</span><span class='chr'>'\11433'</span><span class='layout'>)</span>
+<a name="line-967"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11435'</span><span class='layout'>,</span><span class='chr'>'\11435'</span><span class='layout'>)</span>
+<a name="line-968"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11437'</span><span class='layout'>,</span><span class='chr'>'\11437'</span><span class='layout'>)</span>
+<a name="line-969"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11439'</span><span class='layout'>,</span><span class='chr'>'\11439'</span><span class='layout'>)</span>
+<a name="line-970"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11441'</span><span class='layout'>,</span><span class='chr'>'\11441'</span><span class='layout'>)</span>
+<a name="line-971"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11443'</span><span class='layout'>,</span><span class='chr'>'\11443'</span><span class='layout'>)</span>
+<a name="line-972"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11445'</span><span class='layout'>,</span><span class='chr'>'\11445'</span><span class='layout'>)</span>
+<a name="line-973"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11447'</span><span class='layout'>,</span><span class='chr'>'\11447'</span><span class='layout'>)</span>
+<a name="line-974"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11449'</span><span class='layout'>,</span><span class='chr'>'\11449'</span><span class='layout'>)</span>
+<a name="line-975"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11451'</span><span class='layout'>,</span><span class='chr'>'\11451'</span><span class='layout'>)</span>
+<a name="line-976"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11453'</span><span class='layout'>,</span><span class='chr'>'\11453'</span><span class='layout'>)</span>
+<a name="line-977"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11455'</span><span class='layout'>,</span><span class='chr'>'\11455'</span><span class='layout'>)</span>
+<a name="line-978"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11457'</span><span class='layout'>,</span><span class='chr'>'\11457'</span><span class='layout'>)</span>
+<a name="line-979"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11459'</span><span class='layout'>,</span><span class='chr'>'\11459'</span><span class='layout'>)</span>
+<a name="line-980"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11461'</span><span class='layout'>,</span><span class='chr'>'\11461'</span><span class='layout'>)</span>
+<a name="line-981"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11463'</span><span class='layout'>,</span><span class='chr'>'\11463'</span><span class='layout'>)</span>
+<a name="line-982"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11465'</span><span class='layout'>,</span><span class='chr'>'\11465'</span><span class='layout'>)</span>
+<a name="line-983"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11467'</span><span class='layout'>,</span><span class='chr'>'\11467'</span><span class='layout'>)</span>
+<a name="line-984"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11469'</span><span class='layout'>,</span><span class='chr'>'\11469'</span><span class='layout'>)</span>
+<a name="line-985"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11471'</span><span class='layout'>,</span><span class='chr'>'\11471'</span><span class='layout'>)</span>
+<a name="line-986"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11473'</span><span class='layout'>,</span><span class='chr'>'\11473'</span><span class='layout'>)</span>
+<a name="line-987"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11475'</span><span class='layout'>,</span><span class='chr'>'\11475'</span><span class='layout'>)</span>
+<a name="line-988"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11477'</span><span class='layout'>,</span><span class='chr'>'\11477'</span><span class='layout'>)</span>
+<a name="line-989"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11479'</span><span class='layout'>,</span><span class='chr'>'\11479'</span><span class='layout'>)</span>
+<a name="line-990"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11481'</span><span class='layout'>,</span><span class='chr'>'\11481'</span><span class='layout'>)</span>
+<a name="line-991"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11483'</span><span class='layout'>,</span><span class='chr'>'\11483'</span><span class='layout'>)</span>
+<a name="line-992"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11485'</span><span class='layout'>,</span><span class='chr'>'\11485'</span><span class='layout'>)</span>
+<a name="line-993"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11487'</span><span class='layout'>,</span><span class='chr'>'\11487'</span><span class='layout'>)</span>
+<a name="line-994"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11489'</span><span class='layout'>,</span><span class='chr'>'\11489'</span><span class='layout'>)</span>
+<a name="line-995"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11491'</span><span class='layout'>,</span><span class='chr'>'\11492'</span><span class='layout'>)</span>
+<a name="line-996"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11520'</span><span class='layout'>,</span><span class='chr'>'\11557'</span><span class='layout'>)</span>
+<a name="line-997"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64256'</span><span class='layout'>,</span><span class='chr'>'\64262'</span><span class='layout'>)</span>
+<a name="line-998"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64275'</span><span class='layout'>,</span><span class='chr'>'\64279'</span><span class='layout'>)</span>
+<a name="line-999"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65345'</span><span class='layout'>,</span><span class='chr'>'\65370'</span><span class='layout'>)</span>
+<a name="line-1000"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66600'</span><span class='layout'>,</span><span class='chr'>'\66639'</span><span class='layout'>)</span>
+<a name="line-1001"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119834'</span><span class='layout'>,</span><span class='chr'>'\119859'</span><span class='layout'>)</span>
+<a name="line-1002"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119886'</span><span class='layout'>,</span><span class='chr'>'\119892'</span><span class='layout'>)</span>
+<a name="line-1003"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119894'</span><span class='layout'>,</span><span class='chr'>'\119911'</span><span class='layout'>)</span>
+<a name="line-1004"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119938'</span><span class='layout'>,</span><span class='chr'>'\119963'</span><span class='layout'>)</span>
+<a name="line-1005"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119990'</span><span class='layout'>,</span><span class='chr'>'\119993'</span><span class='layout'>)</span>
+<a name="line-1006"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119995'</span><span class='layout'>,</span><span class='chr'>'\119995'</span><span class='layout'>)</span>
+<a name="line-1007"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119997'</span><span class='layout'>,</span><span class='chr'>'\120003'</span><span class='layout'>)</span>
+<a name="line-1008"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120005'</span><span class='layout'>,</span><span class='chr'>'\120015'</span><span class='layout'>)</span>
+<a name="line-1009"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120042'</span><span class='layout'>,</span><span class='chr'>'\120067'</span><span class='layout'>)</span>
+<a name="line-1010"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120094'</span><span class='layout'>,</span><span class='chr'>'\120119'</span><span class='layout'>)</span>
+<a name="line-1011"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120146'</span><span class='layout'>,</span><span class='chr'>'\120171'</span><span class='layout'>)</span>
+<a name="line-1012"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120198'</span><span class='layout'>,</span><span class='chr'>'\120223'</span><span class='layout'>)</span>
+<a name="line-1013"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120250'</span><span class='layout'>,</span><span class='chr'>'\120275'</span><span class='layout'>)</span>
+<a name="line-1014"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120302'</span><span class='layout'>,</span><span class='chr'>'\120327'</span><span class='layout'>)</span>
+<a name="line-1015"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120354'</span><span class='layout'>,</span><span class='chr'>'\120379'</span><span class='layout'>)</span>
+<a name="line-1016"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120406'</span><span class='layout'>,</span><span class='chr'>'\120431'</span><span class='layout'>)</span>
+<a name="line-1017"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120458'</span><span class='layout'>,</span><span class='chr'>'\120485'</span><span class='layout'>)</span>
+<a name="line-1018"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120514'</span><span class='layout'>,</span><span class='chr'>'\120538'</span><span class='layout'>)</span>
+<a name="line-1019"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120540'</span><span class='layout'>,</span><span class='chr'>'\120545'</span><span class='layout'>)</span>
+<a name="line-1020"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120572'</span><span class='layout'>,</span><span class='chr'>'\120596'</span><span class='layout'>)</span>
+<a name="line-1021"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120598'</span><span class='layout'>,</span><span class='chr'>'\120603'</span><span class='layout'>)</span>
+<a name="line-1022"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120630'</span><span class='layout'>,</span><span class='chr'>'\120654'</span><span class='layout'>)</span>
+<a name="line-1023"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120656'</span><span class='layout'>,</span><span class='chr'>'\120661'</span><span class='layout'>)</span>
+<a name="line-1024"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120688'</span><span class='layout'>,</span><span class='chr'>'\120712'</span><span class='layout'>)</span>
+<a name="line-1025"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120714'</span><span class='layout'>,</span><span class='chr'>'\120719'</span><span class='layout'>)</span>
+<a name="line-1026"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120746'</span><span class='layout'>,</span><span class='chr'>'\120770'</span><span class='layout'>)</span>
+<a name="line-1027"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120772'</span><span class='layout'>,</span><span class='chr'>'\120777'</span><span class='layout'>)</span>
+<a name="line-1028"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120779'</span><span class='layout'>,</span><span class='chr'>'\120779'</span><span class='layout'>)</span>
+<a name="line-1029"></a>    <span class='keyglyph'>]</span>
+<a name="line-1030"></a>
+<a name="line-1031"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1032"></a>
+<a name="line-1033"></a><a name="isUnicodeLm"></a><span class='definition'>isUnicodeLm</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1034"></a><span class='definition'>isUnicodeLm</span> <span class='varid'>c</span>
+<a name="line-1035"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-1036"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\688'</span><span class='layout'>,</span><span class='chr'>'\705'</span><span class='layout'>)</span>
+<a name="line-1037"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\710'</span><span class='layout'>,</span><span class='chr'>'\721'</span><span class='layout'>)</span>
+<a name="line-1038"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\736'</span><span class='layout'>,</span><span class='chr'>'\740'</span><span class='layout'>)</span>
+<a name="line-1039"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\750'</span><span class='layout'>,</span><span class='chr'>'\750'</span><span class='layout'>)</span>
+<a name="line-1040"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\890'</span><span class='layout'>,</span><span class='chr'>'\890'</span><span class='layout'>)</span>
+<a name="line-1041"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1369'</span><span class='layout'>,</span><span class='chr'>'\1369'</span><span class='layout'>)</span>
+<a name="line-1042"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1600'</span><span class='layout'>,</span><span class='chr'>'\1600'</span><span class='layout'>)</span>
+<a name="line-1043"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1765'</span><span class='layout'>,</span><span class='chr'>'\1766'</span><span class='layout'>)</span>
+<a name="line-1044"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2036'</span><span class='layout'>,</span><span class='chr'>'\2037'</span><span class='layout'>)</span>
+<a name="line-1045"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2042'</span><span class='layout'>,</span><span class='chr'>'\2042'</span><span class='layout'>)</span>
+<a name="line-1046"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3654'</span><span class='layout'>,</span><span class='chr'>'\3654'</span><span class='layout'>)</span>
+<a name="line-1047"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3782'</span><span class='layout'>,</span><span class='chr'>'\3782'</span><span class='layout'>)</span>
+<a name="line-1048"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4348'</span><span class='layout'>,</span><span class='chr'>'\4348'</span><span class='layout'>)</span>
+<a name="line-1049"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6103'</span><span class='layout'>,</span><span class='chr'>'\6103'</span><span class='layout'>)</span>
+<a name="line-1050"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6211'</span><span class='layout'>,</span><span class='chr'>'\6211'</span><span class='layout'>)</span>
+<a name="line-1051"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7468'</span><span class='layout'>,</span><span class='chr'>'\7521'</span><span class='layout'>)</span>
+<a name="line-1052"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7544'</span><span class='layout'>,</span><span class='chr'>'\7544'</span><span class='layout'>)</span>
+<a name="line-1053"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7579'</span><span class='layout'>,</span><span class='chr'>'\7615'</span><span class='layout'>)</span>
+<a name="line-1054"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8336'</span><span class='layout'>,</span><span class='chr'>'\8340'</span><span class='layout'>)</span>
+<a name="line-1055"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11631'</span><span class='layout'>,</span><span class='chr'>'\11631'</span><span class='layout'>)</span>
+<a name="line-1056"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12293'</span><span class='layout'>,</span><span class='chr'>'\12293'</span><span class='layout'>)</span>
+<a name="line-1057"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12337'</span><span class='layout'>,</span><span class='chr'>'\12341'</span><span class='layout'>)</span>
+<a name="line-1058"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12347'</span><span class='layout'>,</span><span class='chr'>'\12347'</span><span class='layout'>)</span>
+<a name="line-1059"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12445'</span><span class='layout'>,</span><span class='chr'>'\12446'</span><span class='layout'>)</span>
+<a name="line-1060"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12540'</span><span class='layout'>,</span><span class='chr'>'\12542'</span><span class='layout'>)</span>
+<a name="line-1061"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40981'</span><span class='layout'>,</span><span class='chr'>'\40981'</span><span class='layout'>)</span>
+<a name="line-1062"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42775'</span><span class='layout'>,</span><span class='chr'>'\42778'</span><span class='layout'>)</span>
+<a name="line-1063"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65392'</span><span class='layout'>,</span><span class='chr'>'\65392'</span><span class='layout'>)</span>
+<a name="line-1064"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65438'</span><span class='layout'>,</span><span class='chr'>'\65439'</span><span class='layout'>)</span>
+<a name="line-1065"></a>    <span class='keyglyph'>]</span>
+<a name="line-1066"></a>
+<a name="line-1067"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1068"></a>
+<a name="line-1069"></a><a name="isUnicodeLo"></a><span class='definition'>isUnicodeLo</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1070"></a><span class='definition'>isUnicodeLo</span> <span class='varid'>c</span>
+<a name="line-1071"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-1072"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\443'</span><span class='layout'>,</span><span class='chr'>'\443'</span><span class='layout'>)</span>
+<a name="line-1073"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\448'</span><span class='layout'>,</span><span class='chr'>'\451'</span><span class='layout'>)</span>
+<a name="line-1074"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\660'</span><span class='layout'>,</span><span class='chr'>'\660'</span><span class='layout'>)</span>
+<a name="line-1075"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1488'</span><span class='layout'>,</span><span class='chr'>'\1514'</span><span class='layout'>)</span>
+<a name="line-1076"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1520'</span><span class='layout'>,</span><span class='chr'>'\1522'</span><span class='layout'>)</span>
+<a name="line-1077"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1569'</span><span class='layout'>,</span><span class='chr'>'\1594'</span><span class='layout'>)</span>
+<a name="line-1078"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1601'</span><span class='layout'>,</span><span class='chr'>'\1610'</span><span class='layout'>)</span>
+<a name="line-1079"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1646'</span><span class='layout'>,</span><span class='chr'>'\1647'</span><span class='layout'>)</span>
+<a name="line-1080"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1649'</span><span class='layout'>,</span><span class='chr'>'\1747'</span><span class='layout'>)</span>
+<a name="line-1081"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1749'</span><span class='layout'>,</span><span class='chr'>'\1749'</span><span class='layout'>)</span>
+<a name="line-1082"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1774'</span><span class='layout'>,</span><span class='chr'>'\1775'</span><span class='layout'>)</span>
+<a name="line-1083"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1786'</span><span class='layout'>,</span><span class='chr'>'\1788'</span><span class='layout'>)</span>
+<a name="line-1084"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1791'</span><span class='layout'>,</span><span class='chr'>'\1791'</span><span class='layout'>)</span>
+<a name="line-1085"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1808'</span><span class='layout'>,</span><span class='chr'>'\1808'</span><span class='layout'>)</span>
+<a name="line-1086"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1810'</span><span class='layout'>,</span><span class='chr'>'\1839'</span><span class='layout'>)</span>
+<a name="line-1087"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1869'</span><span class='layout'>,</span><span class='chr'>'\1901'</span><span class='layout'>)</span>
+<a name="line-1088"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1920'</span><span class='layout'>,</span><span class='chr'>'\1957'</span><span class='layout'>)</span>
+<a name="line-1089"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1969'</span><span class='layout'>,</span><span class='chr'>'\1969'</span><span class='layout'>)</span>
+<a name="line-1090"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1994'</span><span class='layout'>,</span><span class='chr'>'\2026'</span><span class='layout'>)</span>
+<a name="line-1091"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2308'</span><span class='layout'>,</span><span class='chr'>'\2361'</span><span class='layout'>)</span>
+<a name="line-1092"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2365'</span><span class='layout'>,</span><span class='chr'>'\2365'</span><span class='layout'>)</span>
+<a name="line-1093"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2384'</span><span class='layout'>,</span><span class='chr'>'\2384'</span><span class='layout'>)</span>
+<a name="line-1094"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2392'</span><span class='layout'>,</span><span class='chr'>'\2401'</span><span class='layout'>)</span>
+<a name="line-1095"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2427'</span><span class='layout'>,</span><span class='chr'>'\2431'</span><span class='layout'>)</span>
+<a name="line-1096"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2437'</span><span class='layout'>,</span><span class='chr'>'\2444'</span><span class='layout'>)</span>
+<a name="line-1097"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2447'</span><span class='layout'>,</span><span class='chr'>'\2448'</span><span class='layout'>)</span>
+<a name="line-1098"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2451'</span><span class='layout'>,</span><span class='chr'>'\2472'</span><span class='layout'>)</span>
+<a name="line-1099"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2474'</span><span class='layout'>,</span><span class='chr'>'\2480'</span><span class='layout'>)</span>
+<a name="line-1100"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2482'</span><span class='layout'>,</span><span class='chr'>'\2482'</span><span class='layout'>)</span>
+<a name="line-1101"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2486'</span><span class='layout'>,</span><span class='chr'>'\2489'</span><span class='layout'>)</span>
+<a name="line-1102"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2493'</span><span class='layout'>,</span><span class='chr'>'\2493'</span><span class='layout'>)</span>
+<a name="line-1103"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2510'</span><span class='layout'>,</span><span class='chr'>'\2510'</span><span class='layout'>)</span>
+<a name="line-1104"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2524'</span><span class='layout'>,</span><span class='chr'>'\2525'</span><span class='layout'>)</span>
+<a name="line-1105"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2527'</span><span class='layout'>,</span><span class='chr'>'\2529'</span><span class='layout'>)</span>
+<a name="line-1106"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2544'</span><span class='layout'>,</span><span class='chr'>'\2545'</span><span class='layout'>)</span>
+<a name="line-1107"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2565'</span><span class='layout'>,</span><span class='chr'>'\2570'</span><span class='layout'>)</span>
+<a name="line-1108"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2575'</span><span class='layout'>,</span><span class='chr'>'\2576'</span><span class='layout'>)</span>
+<a name="line-1109"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2579'</span><span class='layout'>,</span><span class='chr'>'\2600'</span><span class='layout'>)</span>
+<a name="line-1110"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2602'</span><span class='layout'>,</span><span class='chr'>'\2608'</span><span class='layout'>)</span>
+<a name="line-1111"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2610'</span><span class='layout'>,</span><span class='chr'>'\2611'</span><span class='layout'>)</span>
+<a name="line-1112"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2613'</span><span class='layout'>,</span><span class='chr'>'\2614'</span><span class='layout'>)</span>
+<a name="line-1113"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2616'</span><span class='layout'>,</span><span class='chr'>'\2617'</span><span class='layout'>)</span>
+<a name="line-1114"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2649'</span><span class='layout'>,</span><span class='chr'>'\2652'</span><span class='layout'>)</span>
+<a name="line-1115"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2654'</span><span class='layout'>,</span><span class='chr'>'\2654'</span><span class='layout'>)</span>
+<a name="line-1116"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2674'</span><span class='layout'>,</span><span class='chr'>'\2676'</span><span class='layout'>)</span>
+<a name="line-1117"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2693'</span><span class='layout'>,</span><span class='chr'>'\2701'</span><span class='layout'>)</span>
+<a name="line-1118"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2703'</span><span class='layout'>,</span><span class='chr'>'\2705'</span><span class='layout'>)</span>
+<a name="line-1119"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2707'</span><span class='layout'>,</span><span class='chr'>'\2728'</span><span class='layout'>)</span>
+<a name="line-1120"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2730'</span><span class='layout'>,</span><span class='chr'>'\2736'</span><span class='layout'>)</span>
+<a name="line-1121"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2738'</span><span class='layout'>,</span><span class='chr'>'\2739'</span><span class='layout'>)</span>
+<a name="line-1122"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2741'</span><span class='layout'>,</span><span class='chr'>'\2745'</span><span class='layout'>)</span>
+<a name="line-1123"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2749'</span><span class='layout'>,</span><span class='chr'>'\2749'</span><span class='layout'>)</span>
+<a name="line-1124"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2768'</span><span class='layout'>,</span><span class='chr'>'\2768'</span><span class='layout'>)</span>
+<a name="line-1125"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2784'</span><span class='layout'>,</span><span class='chr'>'\2785'</span><span class='layout'>)</span>
+<a name="line-1126"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2821'</span><span class='layout'>,</span><span class='chr'>'\2828'</span><span class='layout'>)</span>
+<a name="line-1127"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2831'</span><span class='layout'>,</span><span class='chr'>'\2832'</span><span class='layout'>)</span>
+<a name="line-1128"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2835'</span><span class='layout'>,</span><span class='chr'>'\2856'</span><span class='layout'>)</span>
+<a name="line-1129"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2858'</span><span class='layout'>,</span><span class='chr'>'\2864'</span><span class='layout'>)</span>
+<a name="line-1130"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2866'</span><span class='layout'>,</span><span class='chr'>'\2867'</span><span class='layout'>)</span>
+<a name="line-1131"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2869'</span><span class='layout'>,</span><span class='chr'>'\2873'</span><span class='layout'>)</span>
+<a name="line-1132"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2877'</span><span class='layout'>,</span><span class='chr'>'\2877'</span><span class='layout'>)</span>
+<a name="line-1133"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2908'</span><span class='layout'>,</span><span class='chr'>'\2909'</span><span class='layout'>)</span>
+<a name="line-1134"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2911'</span><span class='layout'>,</span><span class='chr'>'\2913'</span><span class='layout'>)</span>
+<a name="line-1135"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2929'</span><span class='layout'>,</span><span class='chr'>'\2929'</span><span class='layout'>)</span>
+<a name="line-1136"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2947'</span><span class='layout'>,</span><span class='chr'>'\2947'</span><span class='layout'>)</span>
+<a name="line-1137"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2949'</span><span class='layout'>,</span><span class='chr'>'\2954'</span><span class='layout'>)</span>
+<a name="line-1138"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2958'</span><span class='layout'>,</span><span class='chr'>'\2960'</span><span class='layout'>)</span>
+<a name="line-1139"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2962'</span><span class='layout'>,</span><span class='chr'>'\2965'</span><span class='layout'>)</span>
+<a name="line-1140"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2969'</span><span class='layout'>,</span><span class='chr'>'\2970'</span><span class='layout'>)</span>
+<a name="line-1141"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2972'</span><span class='layout'>,</span><span class='chr'>'\2972'</span><span class='layout'>)</span>
+<a name="line-1142"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2974'</span><span class='layout'>,</span><span class='chr'>'\2975'</span><span class='layout'>)</span>
+<a name="line-1143"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2979'</span><span class='layout'>,</span><span class='chr'>'\2980'</span><span class='layout'>)</span>
+<a name="line-1144"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2984'</span><span class='layout'>,</span><span class='chr'>'\2986'</span><span class='layout'>)</span>
+<a name="line-1145"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2990'</span><span class='layout'>,</span><span class='chr'>'\3001'</span><span class='layout'>)</span>
+<a name="line-1146"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3077'</span><span class='layout'>,</span><span class='chr'>'\3084'</span><span class='layout'>)</span>
+<a name="line-1147"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3086'</span><span class='layout'>,</span><span class='chr'>'\3088'</span><span class='layout'>)</span>
+<a name="line-1148"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3090'</span><span class='layout'>,</span><span class='chr'>'\3112'</span><span class='layout'>)</span>
+<a name="line-1149"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3114'</span><span class='layout'>,</span><span class='chr'>'\3123'</span><span class='layout'>)</span>
+<a name="line-1150"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3125'</span><span class='layout'>,</span><span class='chr'>'\3129'</span><span class='layout'>)</span>
+<a name="line-1151"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3168'</span><span class='layout'>,</span><span class='chr'>'\3169'</span><span class='layout'>)</span>
+<a name="line-1152"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3205'</span><span class='layout'>,</span><span class='chr'>'\3212'</span><span class='layout'>)</span>
+<a name="line-1153"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3214'</span><span class='layout'>,</span><span class='chr'>'\3216'</span><span class='layout'>)</span>
+<a name="line-1154"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3218'</span><span class='layout'>,</span><span class='chr'>'\3240'</span><span class='layout'>)</span>
+<a name="line-1155"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3242'</span><span class='layout'>,</span><span class='chr'>'\3251'</span><span class='layout'>)</span>
+<a name="line-1156"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3253'</span><span class='layout'>,</span><span class='chr'>'\3257'</span><span class='layout'>)</span>
+<a name="line-1157"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3261'</span><span class='layout'>,</span><span class='chr'>'\3261'</span><span class='layout'>)</span>
+<a name="line-1158"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3294'</span><span class='layout'>,</span><span class='chr'>'\3294'</span><span class='layout'>)</span>
+<a name="line-1159"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3296'</span><span class='layout'>,</span><span class='chr'>'\3297'</span><span class='layout'>)</span>
+<a name="line-1160"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3333'</span><span class='layout'>,</span><span class='chr'>'\3340'</span><span class='layout'>)</span>
+<a name="line-1161"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3342'</span><span class='layout'>,</span><span class='chr'>'\3344'</span><span class='layout'>)</span>
+<a name="line-1162"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3346'</span><span class='layout'>,</span><span class='chr'>'\3368'</span><span class='layout'>)</span>
+<a name="line-1163"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3370'</span><span class='layout'>,</span><span class='chr'>'\3385'</span><span class='layout'>)</span>
+<a name="line-1164"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3424'</span><span class='layout'>,</span><span class='chr'>'\3425'</span><span class='layout'>)</span>
+<a name="line-1165"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3461'</span><span class='layout'>,</span><span class='chr'>'\3478'</span><span class='layout'>)</span>
+<a name="line-1166"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3482'</span><span class='layout'>,</span><span class='chr'>'\3505'</span><span class='layout'>)</span>
+<a name="line-1167"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3507'</span><span class='layout'>,</span><span class='chr'>'\3515'</span><span class='layout'>)</span>
+<a name="line-1168"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3517'</span><span class='layout'>,</span><span class='chr'>'\3517'</span><span class='layout'>)</span>
+<a name="line-1169"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3520'</span><span class='layout'>,</span><span class='chr'>'\3526'</span><span class='layout'>)</span>
+<a name="line-1170"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3585'</span><span class='layout'>,</span><span class='chr'>'\3632'</span><span class='layout'>)</span>
+<a name="line-1171"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3634'</span><span class='layout'>,</span><span class='chr'>'\3635'</span><span class='layout'>)</span>
+<a name="line-1172"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3648'</span><span class='layout'>,</span><span class='chr'>'\3653'</span><span class='layout'>)</span>
+<a name="line-1173"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3713'</span><span class='layout'>,</span><span class='chr'>'\3714'</span><span class='layout'>)</span>
+<a name="line-1174"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3716'</span><span class='layout'>,</span><span class='chr'>'\3716'</span><span class='layout'>)</span>
+<a name="line-1175"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3719'</span><span class='layout'>,</span><span class='chr'>'\3720'</span><span class='layout'>)</span>
+<a name="line-1176"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3722'</span><span class='layout'>,</span><span class='chr'>'\3722'</span><span class='layout'>)</span>
+<a name="line-1177"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3725'</span><span class='layout'>,</span><span class='chr'>'\3725'</span><span class='layout'>)</span>
+<a name="line-1178"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3732'</span><span class='layout'>,</span><span class='chr'>'\3735'</span><span class='layout'>)</span>
+<a name="line-1179"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3737'</span><span class='layout'>,</span><span class='chr'>'\3743'</span><span class='layout'>)</span>
+<a name="line-1180"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3745'</span><span class='layout'>,</span><span class='chr'>'\3747'</span><span class='layout'>)</span>
+<a name="line-1181"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3749'</span><span class='layout'>,</span><span class='chr'>'\3749'</span><span class='layout'>)</span>
+<a name="line-1182"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3751'</span><span class='layout'>,</span><span class='chr'>'\3751'</span><span class='layout'>)</span>
+<a name="line-1183"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3754'</span><span class='layout'>,</span><span class='chr'>'\3755'</span><span class='layout'>)</span>
+<a name="line-1184"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3757'</span><span class='layout'>,</span><span class='chr'>'\3760'</span><span class='layout'>)</span>
+<a name="line-1185"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3762'</span><span class='layout'>,</span><span class='chr'>'\3763'</span><span class='layout'>)</span>
+<a name="line-1186"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3773'</span><span class='layout'>,</span><span class='chr'>'\3773'</span><span class='layout'>)</span>
+<a name="line-1187"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3776'</span><span class='layout'>,</span><span class='chr'>'\3780'</span><span class='layout'>)</span>
+<a name="line-1188"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3804'</span><span class='layout'>,</span><span class='chr'>'\3805'</span><span class='layout'>)</span>
+<a name="line-1189"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3840'</span><span class='layout'>,</span><span class='chr'>'\3840'</span><span class='layout'>)</span>
+<a name="line-1190"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3904'</span><span class='layout'>,</span><span class='chr'>'\3911'</span><span class='layout'>)</span>
+<a name="line-1191"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3913'</span><span class='layout'>,</span><span class='chr'>'\3946'</span><span class='layout'>)</span>
+<a name="line-1192"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3976'</span><span class='layout'>,</span><span class='chr'>'\3979'</span><span class='layout'>)</span>
+<a name="line-1193"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4096'</span><span class='layout'>,</span><span class='chr'>'\4129'</span><span class='layout'>)</span>
+<a name="line-1194"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4131'</span><span class='layout'>,</span><span class='chr'>'\4135'</span><span class='layout'>)</span>
+<a name="line-1195"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4137'</span><span class='layout'>,</span><span class='chr'>'\4138'</span><span class='layout'>)</span>
+<a name="line-1196"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4176'</span><span class='layout'>,</span><span class='chr'>'\4181'</span><span class='layout'>)</span>
+<a name="line-1197"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4304'</span><span class='layout'>,</span><span class='chr'>'\4346'</span><span class='layout'>)</span>
+<a name="line-1198"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4352'</span><span class='layout'>,</span><span class='chr'>'\4441'</span><span class='layout'>)</span>
+<a name="line-1199"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4447'</span><span class='layout'>,</span><span class='chr'>'\4514'</span><span class='layout'>)</span>
+<a name="line-1200"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4520'</span><span class='layout'>,</span><span class='chr'>'\4601'</span><span class='layout'>)</span>
+<a name="line-1201"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4608'</span><span class='layout'>,</span><span class='chr'>'\4680'</span><span class='layout'>)</span>
+<a name="line-1202"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4682'</span><span class='layout'>,</span><span class='chr'>'\4685'</span><span class='layout'>)</span>
+<a name="line-1203"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4688'</span><span class='layout'>,</span><span class='chr'>'\4694'</span><span class='layout'>)</span>
+<a name="line-1204"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4696'</span><span class='layout'>,</span><span class='chr'>'\4696'</span><span class='layout'>)</span>
+<a name="line-1205"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4698'</span><span class='layout'>,</span><span class='chr'>'\4701'</span><span class='layout'>)</span>
+<a name="line-1206"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4704'</span><span class='layout'>,</span><span class='chr'>'\4744'</span><span class='layout'>)</span>
+<a name="line-1207"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4746'</span><span class='layout'>,</span><span class='chr'>'\4749'</span><span class='layout'>)</span>
+<a name="line-1208"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4752'</span><span class='layout'>,</span><span class='chr'>'\4784'</span><span class='layout'>)</span>
+<a name="line-1209"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4786'</span><span class='layout'>,</span><span class='chr'>'\4789'</span><span class='layout'>)</span>
+<a name="line-1210"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4792'</span><span class='layout'>,</span><span class='chr'>'\4798'</span><span class='layout'>)</span>
+<a name="line-1211"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4800'</span><span class='layout'>,</span><span class='chr'>'\4800'</span><span class='layout'>)</span>
+<a name="line-1212"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4802'</span><span class='layout'>,</span><span class='chr'>'\4805'</span><span class='layout'>)</span>
+<a name="line-1213"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4808'</span><span class='layout'>,</span><span class='chr'>'\4822'</span><span class='layout'>)</span>
+<a name="line-1214"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4824'</span><span class='layout'>,</span><span class='chr'>'\4880'</span><span class='layout'>)</span>
+<a name="line-1215"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4882'</span><span class='layout'>,</span><span class='chr'>'\4885'</span><span class='layout'>)</span>
+<a name="line-1216"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4888'</span><span class='layout'>,</span><span class='chr'>'\4954'</span><span class='layout'>)</span>
+<a name="line-1217"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4992'</span><span class='layout'>,</span><span class='chr'>'\5007'</span><span class='layout'>)</span>
+<a name="line-1218"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5024'</span><span class='layout'>,</span><span class='chr'>'\5108'</span><span class='layout'>)</span>
+<a name="line-1219"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5121'</span><span class='layout'>,</span><span class='chr'>'\5740'</span><span class='layout'>)</span>
+<a name="line-1220"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5743'</span><span class='layout'>,</span><span class='chr'>'\5750'</span><span class='layout'>)</span>
+<a name="line-1221"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5761'</span><span class='layout'>,</span><span class='chr'>'\5786'</span><span class='layout'>)</span>
+<a name="line-1222"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5792'</span><span class='layout'>,</span><span class='chr'>'\5866'</span><span class='layout'>)</span>
+<a name="line-1223"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5888'</span><span class='layout'>,</span><span class='chr'>'\5900'</span><span class='layout'>)</span>
+<a name="line-1224"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5902'</span><span class='layout'>,</span><span class='chr'>'\5905'</span><span class='layout'>)</span>
+<a name="line-1225"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5920'</span><span class='layout'>,</span><span class='chr'>'\5937'</span><span class='layout'>)</span>
+<a name="line-1226"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5952'</span><span class='layout'>,</span><span class='chr'>'\5969'</span><span class='layout'>)</span>
+<a name="line-1227"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5984'</span><span class='layout'>,</span><span class='chr'>'\5996'</span><span class='layout'>)</span>
+<a name="line-1228"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5998'</span><span class='layout'>,</span><span class='chr'>'\6000'</span><span class='layout'>)</span>
+<a name="line-1229"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6016'</span><span class='layout'>,</span><span class='chr'>'\6067'</span><span class='layout'>)</span>
+<a name="line-1230"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6108'</span><span class='layout'>,</span><span class='chr'>'\6108'</span><span class='layout'>)</span>
+<a name="line-1231"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6176'</span><span class='layout'>,</span><span class='chr'>'\6210'</span><span class='layout'>)</span>
+<a name="line-1232"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6212'</span><span class='layout'>,</span><span class='chr'>'\6263'</span><span class='layout'>)</span>
+<a name="line-1233"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6272'</span><span class='layout'>,</span><span class='chr'>'\6312'</span><span class='layout'>)</span>
+<a name="line-1234"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6400'</span><span class='layout'>,</span><span class='chr'>'\6428'</span><span class='layout'>)</span>
+<a name="line-1235"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6480'</span><span class='layout'>,</span><span class='chr'>'\6509'</span><span class='layout'>)</span>
+<a name="line-1236"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6512'</span><span class='layout'>,</span><span class='chr'>'\6516'</span><span class='layout'>)</span>
+<a name="line-1237"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6528'</span><span class='layout'>,</span><span class='chr'>'\6569'</span><span class='layout'>)</span>
+<a name="line-1238"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6593'</span><span class='layout'>,</span><span class='chr'>'\6599'</span><span class='layout'>)</span>
+<a name="line-1239"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6656'</span><span class='layout'>,</span><span class='chr'>'\6678'</span><span class='layout'>)</span>
+<a name="line-1240"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6917'</span><span class='layout'>,</span><span class='chr'>'\6963'</span><span class='layout'>)</span>
+<a name="line-1241"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6981'</span><span class='layout'>,</span><span class='chr'>'\6987'</span><span class='layout'>)</span>
+<a name="line-1242"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8501'</span><span class='layout'>,</span><span class='chr'>'\8504'</span><span class='layout'>)</span>
+<a name="line-1243"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11568'</span><span class='layout'>,</span><span class='chr'>'\11621'</span><span class='layout'>)</span>
+<a name="line-1244"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11648'</span><span class='layout'>,</span><span class='chr'>'\11670'</span><span class='layout'>)</span>
+<a name="line-1245"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11680'</span><span class='layout'>,</span><span class='chr'>'\11686'</span><span class='layout'>)</span>
+<a name="line-1246"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11688'</span><span class='layout'>,</span><span class='chr'>'\11694'</span><span class='layout'>)</span>
+<a name="line-1247"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11696'</span><span class='layout'>,</span><span class='chr'>'\11702'</span><span class='layout'>)</span>
+<a name="line-1248"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11704'</span><span class='layout'>,</span><span class='chr'>'\11710'</span><span class='layout'>)</span>
+<a name="line-1249"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11712'</span><span class='layout'>,</span><span class='chr'>'\11718'</span><span class='layout'>)</span>
+<a name="line-1250"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11720'</span><span class='layout'>,</span><span class='chr'>'\11726'</span><span class='layout'>)</span>
+<a name="line-1251"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11728'</span><span class='layout'>,</span><span class='chr'>'\11734'</span><span class='layout'>)</span>
+<a name="line-1252"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11736'</span><span class='layout'>,</span><span class='chr'>'\11742'</span><span class='layout'>)</span>
+<a name="line-1253"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12294'</span><span class='layout'>,</span><span class='chr'>'\12294'</span><span class='layout'>)</span>
+<a name="line-1254"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12348'</span><span class='layout'>,</span><span class='chr'>'\12348'</span><span class='layout'>)</span>
+<a name="line-1255"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12353'</span><span class='layout'>,</span><span class='chr'>'\12438'</span><span class='layout'>)</span>
+<a name="line-1256"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12447'</span><span class='layout'>,</span><span class='chr'>'\12447'</span><span class='layout'>)</span>
+<a name="line-1257"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12449'</span><span class='layout'>,</span><span class='chr'>'\12538'</span><span class='layout'>)</span>
+<a name="line-1258"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12543'</span><span class='layout'>,</span><span class='chr'>'\12543'</span><span class='layout'>)</span>
+<a name="line-1259"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12549'</span><span class='layout'>,</span><span class='chr'>'\12588'</span><span class='layout'>)</span>
+<a name="line-1260"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12593'</span><span class='layout'>,</span><span class='chr'>'\12686'</span><span class='layout'>)</span>
+<a name="line-1261"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12704'</span><span class='layout'>,</span><span class='chr'>'\12727'</span><span class='layout'>)</span>
+<a name="line-1262"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12784'</span><span class='layout'>,</span><span class='chr'>'\12799'</span><span class='layout'>)</span>
+<a name="line-1263"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13312'</span><span class='layout'>,</span><span class='chr'>'\13312'</span><span class='layout'>)</span>
+<a name="line-1264"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19893'</span><span class='layout'>,</span><span class='chr'>'\19893'</span><span class='layout'>)</span>
+<a name="line-1265"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19968'</span><span class='layout'>,</span><span class='chr'>'\19968'</span><span class='layout'>)</span>
+<a name="line-1266"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40891'</span><span class='layout'>,</span><span class='chr'>'\40891'</span><span class='layout'>)</span>
+<a name="line-1267"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40960'</span><span class='layout'>,</span><span class='chr'>'\40980'</span><span class='layout'>)</span>
+<a name="line-1268"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40982'</span><span class='layout'>,</span><span class='chr'>'\42124'</span><span class='layout'>)</span>
+<a name="line-1269"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43008'</span><span class='layout'>,</span><span class='chr'>'\43009'</span><span class='layout'>)</span>
+<a name="line-1270"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43011'</span><span class='layout'>,</span><span class='chr'>'\43013'</span><span class='layout'>)</span>
+<a name="line-1271"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43015'</span><span class='layout'>,</span><span class='chr'>'\43018'</span><span class='layout'>)</span>
+<a name="line-1272"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43020'</span><span class='layout'>,</span><span class='chr'>'\43042'</span><span class='layout'>)</span>
+<a name="line-1273"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43072'</span><span class='layout'>,</span><span class='chr'>'\43123'</span><span class='layout'>)</span>
+<a name="line-1274"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\44032'</span><span class='layout'>,</span><span class='chr'>'\44032'</span><span class='layout'>)</span>
+<a name="line-1275"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\55203'</span><span class='layout'>,</span><span class='chr'>'\55203'</span><span class='layout'>)</span>
+<a name="line-1276"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63744'</span><span class='layout'>,</span><span class='chr'>'\64045'</span><span class='layout'>)</span>
+<a name="line-1277"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64048'</span><span class='layout'>,</span><span class='chr'>'\64106'</span><span class='layout'>)</span>
+<a name="line-1278"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64112'</span><span class='layout'>,</span><span class='chr'>'\64217'</span><span class='layout'>)</span>
+<a name="line-1279"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64285'</span><span class='layout'>,</span><span class='chr'>'\64285'</span><span class='layout'>)</span>
+<a name="line-1280"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64287'</span><span class='layout'>,</span><span class='chr'>'\64296'</span><span class='layout'>)</span>
+<a name="line-1281"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64298'</span><span class='layout'>,</span><span class='chr'>'\64310'</span><span class='layout'>)</span>
+<a name="line-1282"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64312'</span><span class='layout'>,</span><span class='chr'>'\64316'</span><span class='layout'>)</span>
+<a name="line-1283"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64318'</span><span class='layout'>,</span><span class='chr'>'\64318'</span><span class='layout'>)</span>
+<a name="line-1284"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64320'</span><span class='layout'>,</span><span class='chr'>'\64321'</span><span class='layout'>)</span>
+<a name="line-1285"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64323'</span><span class='layout'>,</span><span class='chr'>'\64324'</span><span class='layout'>)</span>
+<a name="line-1286"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64326'</span><span class='layout'>,</span><span class='chr'>'\64433'</span><span class='layout'>)</span>
+<a name="line-1287"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64467'</span><span class='layout'>,</span><span class='chr'>'\64829'</span><span class='layout'>)</span>
+<a name="line-1288"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64848'</span><span class='layout'>,</span><span class='chr'>'\64911'</span><span class='layout'>)</span>
+<a name="line-1289"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64914'</span><span class='layout'>,</span><span class='chr'>'\64967'</span><span class='layout'>)</span>
+<a name="line-1290"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65008'</span><span class='layout'>,</span><span class='chr'>'\65019'</span><span class='layout'>)</span>
+<a name="line-1291"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65136'</span><span class='layout'>,</span><span class='chr'>'\65140'</span><span class='layout'>)</span>
+<a name="line-1292"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65142'</span><span class='layout'>,</span><span class='chr'>'\65276'</span><span class='layout'>)</span>
+<a name="line-1293"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65382'</span><span class='layout'>,</span><span class='chr'>'\65391'</span><span class='layout'>)</span>
+<a name="line-1294"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65393'</span><span class='layout'>,</span><span class='chr'>'\65437'</span><span class='layout'>)</span>
+<a name="line-1295"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65440'</span><span class='layout'>,</span><span class='chr'>'\65470'</span><span class='layout'>)</span>
+<a name="line-1296"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65474'</span><span class='layout'>,</span><span class='chr'>'\65479'</span><span class='layout'>)</span>
+<a name="line-1297"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65482'</span><span class='layout'>,</span><span class='chr'>'\65487'</span><span class='layout'>)</span>
+<a name="line-1298"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65490'</span><span class='layout'>,</span><span class='chr'>'\65495'</span><span class='layout'>)</span>
+<a name="line-1299"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65498'</span><span class='layout'>,</span><span class='chr'>'\65500'</span><span class='layout'>)</span>
+<a name="line-1300"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65536'</span><span class='layout'>,</span><span class='chr'>'\65547'</span><span class='layout'>)</span>
+<a name="line-1301"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65549'</span><span class='layout'>,</span><span class='chr'>'\65574'</span><span class='layout'>)</span>
+<a name="line-1302"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65576'</span><span class='layout'>,</span><span class='chr'>'\65594'</span><span class='layout'>)</span>
+<a name="line-1303"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65596'</span><span class='layout'>,</span><span class='chr'>'\65597'</span><span class='layout'>)</span>
+<a name="line-1304"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65599'</span><span class='layout'>,</span><span class='chr'>'\65613'</span><span class='layout'>)</span>
+<a name="line-1305"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65616'</span><span class='layout'>,</span><span class='chr'>'\65629'</span><span class='layout'>)</span>
+<a name="line-1306"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65664'</span><span class='layout'>,</span><span class='chr'>'\65786'</span><span class='layout'>)</span>
+<a name="line-1307"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66304'</span><span class='layout'>,</span><span class='chr'>'\66334'</span><span class='layout'>)</span>
+<a name="line-1308"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66352'</span><span class='layout'>,</span><span class='chr'>'\66368'</span><span class='layout'>)</span>
+<a name="line-1309"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66370'</span><span class='layout'>,</span><span class='chr'>'\66377'</span><span class='layout'>)</span>
+<a name="line-1310"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66432'</span><span class='layout'>,</span><span class='chr'>'\66461'</span><span class='layout'>)</span>
+<a name="line-1311"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66464'</span><span class='layout'>,</span><span class='chr'>'\66499'</span><span class='layout'>)</span>
+<a name="line-1312"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66504'</span><span class='layout'>,</span><span class='chr'>'\66511'</span><span class='layout'>)</span>
+<a name="line-1313"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66640'</span><span class='layout'>,</span><span class='chr'>'\66717'</span><span class='layout'>)</span>
+<a name="line-1314"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67584'</span><span class='layout'>,</span><span class='chr'>'\67589'</span><span class='layout'>)</span>
+<a name="line-1315"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67592'</span><span class='layout'>,</span><span class='chr'>'\67592'</span><span class='layout'>)</span>
+<a name="line-1316"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67594'</span><span class='layout'>,</span><span class='chr'>'\67637'</span><span class='layout'>)</span>
+<a name="line-1317"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67639'</span><span class='layout'>,</span><span class='chr'>'\67640'</span><span class='layout'>)</span>
+<a name="line-1318"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67644'</span><span class='layout'>,</span><span class='chr'>'\67644'</span><span class='layout'>)</span>
+<a name="line-1319"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67647'</span><span class='layout'>,</span><span class='chr'>'\67647'</span><span class='layout'>)</span>
+<a name="line-1320"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67840'</span><span class='layout'>,</span><span class='chr'>'\67861'</span><span class='layout'>)</span>
+<a name="line-1321"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68096'</span><span class='layout'>,</span><span class='chr'>'\68096'</span><span class='layout'>)</span>
+<a name="line-1322"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68112'</span><span class='layout'>,</span><span class='chr'>'\68115'</span><span class='layout'>)</span>
+<a name="line-1323"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68117'</span><span class='layout'>,</span><span class='chr'>'\68119'</span><span class='layout'>)</span>
+<a name="line-1324"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68121'</span><span class='layout'>,</span><span class='chr'>'\68147'</span><span class='layout'>)</span>
+<a name="line-1325"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\73728'</span><span class='layout'>,</span><span class='chr'>'\74606'</span><span class='layout'>)</span>
+<a name="line-1326"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\131072'</span><span class='layout'>,</span><span class='chr'>'\131072'</span><span class='layout'>)</span>
+<a name="line-1327"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173782'</span><span class='layout'>,</span><span class='chr'>'\173782'</span><span class='layout'>)</span>
+<a name="line-1328"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194560'</span><span class='layout'>,</span><span class='chr'>'\195101'</span><span class='layout'>)</span>
+<a name="line-1329"></a>    <span class='keyglyph'>]</span>
+<a name="line-1330"></a>
+<a name="line-1331"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1332"></a>
+<a name="line-1333"></a><a name="isUnicodeLt"></a><span class='definition'>isUnicodeLt</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1334"></a><span class='definition'>isUnicodeLt</span> <span class='varid'>c</span>
+<a name="line-1335"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-1336"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\453'</span><span class='layout'>,</span><span class='chr'>'\453'</span><span class='layout'>)</span>
+<a name="line-1337"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\456'</span><span class='layout'>,</span><span class='chr'>'\456'</span><span class='layout'>)</span>
+<a name="line-1338"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\459'</span><span class='layout'>,</span><span class='chr'>'\459'</span><span class='layout'>)</span>
+<a name="line-1339"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\498'</span><span class='layout'>,</span><span class='chr'>'\498'</span><span class='layout'>)</span>
+<a name="line-1340"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8072'</span><span class='layout'>,</span><span class='chr'>'\8079'</span><span class='layout'>)</span>
+<a name="line-1341"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8088'</span><span class='layout'>,</span><span class='chr'>'\8095'</span><span class='layout'>)</span>
+<a name="line-1342"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8104'</span><span class='layout'>,</span><span class='chr'>'\8111'</span><span class='layout'>)</span>
+<a name="line-1343"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8124'</span><span class='layout'>,</span><span class='chr'>'\8124'</span><span class='layout'>)</span>
+<a name="line-1344"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8140'</span><span class='layout'>,</span><span class='chr'>'\8140'</span><span class='layout'>)</span>
+<a name="line-1345"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8188'</span><span class='layout'>,</span><span class='chr'>'\8188'</span><span class='layout'>)</span>
+<a name="line-1346"></a>    <span class='keyglyph'>]</span>
+<a name="line-1347"></a>
+<a name="line-1348"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1349"></a>
+<a name="line-1350"></a><a name="isUnicodeLu"></a><span class='definition'>isUnicodeLu</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1351"></a><span class='definition'>isUnicodeLu</span> <span class='varid'>c</span>
+<a name="line-1352"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-1353"></a>    <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-1354"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span><span class='chr'>'\214'</span><span class='layout'>)</span>
+<a name="line-1355"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span><span class='chr'>'\222'</span><span class='layout'>)</span>
+<a name="line-1356"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\256'</span><span class='layout'>,</span><span class='chr'>'\256'</span><span class='layout'>)</span>
+<a name="line-1357"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\258'</span><span class='layout'>,</span><span class='chr'>'\258'</span><span class='layout'>)</span>
+<a name="line-1358"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\260'</span><span class='layout'>,</span><span class='chr'>'\260'</span><span class='layout'>)</span>
+<a name="line-1359"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\262'</span><span class='layout'>,</span><span class='chr'>'\262'</span><span class='layout'>)</span>
+<a name="line-1360"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\264'</span><span class='layout'>,</span><span class='chr'>'\264'</span><span class='layout'>)</span>
+<a name="line-1361"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\266'</span><span class='layout'>,</span><span class='chr'>'\266'</span><span class='layout'>)</span>
+<a name="line-1362"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\268'</span><span class='layout'>,</span><span class='chr'>'\268'</span><span class='layout'>)</span>
+<a name="line-1363"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\270'</span><span class='layout'>,</span><span class='chr'>'\270'</span><span class='layout'>)</span>
+<a name="line-1364"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\272'</span><span class='layout'>,</span><span class='chr'>'\272'</span><span class='layout'>)</span>
+<a name="line-1365"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\274'</span><span class='layout'>,</span><span class='chr'>'\274'</span><span class='layout'>)</span>
+<a name="line-1366"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\276'</span><span class='layout'>,</span><span class='chr'>'\276'</span><span class='layout'>)</span>
+<a name="line-1367"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\278'</span><span class='layout'>,</span><span class='chr'>'\278'</span><span class='layout'>)</span>
+<a name="line-1368"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\280'</span><span class='layout'>,</span><span class='chr'>'\280'</span><span class='layout'>)</span>
+<a name="line-1369"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\282'</span><span class='layout'>,</span><span class='chr'>'\282'</span><span class='layout'>)</span>
+<a name="line-1370"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\284'</span><span class='layout'>,</span><span class='chr'>'\284'</span><span class='layout'>)</span>
+<a name="line-1371"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\286'</span><span class='layout'>,</span><span class='chr'>'\286'</span><span class='layout'>)</span>
+<a name="line-1372"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\288'</span><span class='layout'>,</span><span class='chr'>'\288'</span><span class='layout'>)</span>
+<a name="line-1373"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\290'</span><span class='layout'>,</span><span class='chr'>'\290'</span><span class='layout'>)</span>
+<a name="line-1374"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\292'</span><span class='layout'>,</span><span class='chr'>'\292'</span><span class='layout'>)</span>
+<a name="line-1375"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\294'</span><span class='layout'>,</span><span class='chr'>'\294'</span><span class='layout'>)</span>
+<a name="line-1376"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\296'</span><span class='layout'>,</span><span class='chr'>'\296'</span><span class='layout'>)</span>
+<a name="line-1377"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\298'</span><span class='layout'>,</span><span class='chr'>'\298'</span><span class='layout'>)</span>
+<a name="line-1378"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\300'</span><span class='layout'>,</span><span class='chr'>'\300'</span><span class='layout'>)</span>
+<a name="line-1379"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\302'</span><span class='layout'>,</span><span class='chr'>'\302'</span><span class='layout'>)</span>
+<a name="line-1380"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\304'</span><span class='layout'>,</span><span class='chr'>'\304'</span><span class='layout'>)</span>
+<a name="line-1381"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\306'</span><span class='layout'>,</span><span class='chr'>'\306'</span><span class='layout'>)</span>
+<a name="line-1382"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\308'</span><span class='layout'>,</span><span class='chr'>'\308'</span><span class='layout'>)</span>
+<a name="line-1383"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\310'</span><span class='layout'>,</span><span class='chr'>'\310'</span><span class='layout'>)</span>
+<a name="line-1384"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\313'</span><span class='layout'>,</span><span class='chr'>'\313'</span><span class='layout'>)</span>
+<a name="line-1385"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\315'</span><span class='layout'>,</span><span class='chr'>'\315'</span><span class='layout'>)</span>
+<a name="line-1386"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\317'</span><span class='layout'>,</span><span class='chr'>'\317'</span><span class='layout'>)</span>
+<a name="line-1387"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\319'</span><span class='layout'>,</span><span class='chr'>'\319'</span><span class='layout'>)</span>
+<a name="line-1388"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\321'</span><span class='layout'>,</span><span class='chr'>'\321'</span><span class='layout'>)</span>
+<a name="line-1389"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\323'</span><span class='layout'>,</span><span class='chr'>'\323'</span><span class='layout'>)</span>
+<a name="line-1390"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\325'</span><span class='layout'>,</span><span class='chr'>'\325'</span><span class='layout'>)</span>
+<a name="line-1391"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\327'</span><span class='layout'>,</span><span class='chr'>'\327'</span><span class='layout'>)</span>
+<a name="line-1392"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\330'</span><span class='layout'>,</span><span class='chr'>'\330'</span><span class='layout'>)</span>
+<a name="line-1393"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\332'</span><span class='layout'>,</span><span class='chr'>'\332'</span><span class='layout'>)</span>
+<a name="line-1394"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\334'</span><span class='layout'>,</span><span class='chr'>'\334'</span><span class='layout'>)</span>
+<a name="line-1395"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\336'</span><span class='layout'>,</span><span class='chr'>'\336'</span><span class='layout'>)</span>
+<a name="line-1396"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\338'</span><span class='layout'>,</span><span class='chr'>'\338'</span><span class='layout'>)</span>
+<a name="line-1397"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\340'</span><span class='layout'>,</span><span class='chr'>'\340'</span><span class='layout'>)</span>
+<a name="line-1398"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\342'</span><span class='layout'>,</span><span class='chr'>'\342'</span><span class='layout'>)</span>
+<a name="line-1399"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\344'</span><span class='layout'>,</span><span class='chr'>'\344'</span><span class='layout'>)</span>
+<a name="line-1400"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\346'</span><span class='layout'>,</span><span class='chr'>'\346'</span><span class='layout'>)</span>
+<a name="line-1401"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\348'</span><span class='layout'>,</span><span class='chr'>'\348'</span><span class='layout'>)</span>
+<a name="line-1402"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\350'</span><span class='layout'>,</span><span class='chr'>'\350'</span><span class='layout'>)</span>
+<a name="line-1403"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\352'</span><span class='layout'>,</span><span class='chr'>'\352'</span><span class='layout'>)</span>
+<a name="line-1404"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\354'</span><span class='layout'>,</span><span class='chr'>'\354'</span><span class='layout'>)</span>
+<a name="line-1405"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\356'</span><span class='layout'>,</span><span class='chr'>'\356'</span><span class='layout'>)</span>
+<a name="line-1406"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\358'</span><span class='layout'>,</span><span class='chr'>'\358'</span><span class='layout'>)</span>
+<a name="line-1407"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\360'</span><span class='layout'>,</span><span class='chr'>'\360'</span><span class='layout'>)</span>
+<a name="line-1408"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\362'</span><span class='layout'>,</span><span class='chr'>'\362'</span><span class='layout'>)</span>
+<a name="line-1409"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\364'</span><span class='layout'>,</span><span class='chr'>'\364'</span><span class='layout'>)</span>
+<a name="line-1410"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\366'</span><span class='layout'>,</span><span class='chr'>'\366'</span><span class='layout'>)</span>
+<a name="line-1411"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\368'</span><span class='layout'>,</span><span class='chr'>'\368'</span><span class='layout'>)</span>
+<a name="line-1412"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\370'</span><span class='layout'>,</span><span class='chr'>'\370'</span><span class='layout'>)</span>
+<a name="line-1413"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\372'</span><span class='layout'>,</span><span class='chr'>'\372'</span><span class='layout'>)</span>
+<a name="line-1414"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\374'</span><span class='layout'>,</span><span class='chr'>'\374'</span><span class='layout'>)</span>
+<a name="line-1415"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\376'</span><span class='layout'>,</span><span class='chr'>'\377'</span><span class='layout'>)</span>
+<a name="line-1416"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\379'</span><span class='layout'>,</span><span class='chr'>'\379'</span><span class='layout'>)</span>
+<a name="line-1417"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\381'</span><span class='layout'>,</span><span class='chr'>'\381'</span><span class='layout'>)</span>
+<a name="line-1418"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\385'</span><span class='layout'>,</span><span class='chr'>'\386'</span><span class='layout'>)</span>
+<a name="line-1419"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\388'</span><span class='layout'>,</span><span class='chr'>'\388'</span><span class='layout'>)</span>
+<a name="line-1420"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\390'</span><span class='layout'>,</span><span class='chr'>'\391'</span><span class='layout'>)</span>
+<a name="line-1421"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\393'</span><span class='layout'>,</span><span class='chr'>'\395'</span><span class='layout'>)</span>
+<a name="line-1422"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\398'</span><span class='layout'>,</span><span class='chr'>'\401'</span><span class='layout'>)</span>
+<a name="line-1423"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\403'</span><span class='layout'>,</span><span class='chr'>'\404'</span><span class='layout'>)</span>
+<a name="line-1424"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\406'</span><span class='layout'>,</span><span class='chr'>'\408'</span><span class='layout'>)</span>
+<a name="line-1425"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\412'</span><span class='layout'>,</span><span class='chr'>'\413'</span><span class='layout'>)</span>
+<a name="line-1426"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\415'</span><span class='layout'>,</span><span class='chr'>'\416'</span><span class='layout'>)</span>
+<a name="line-1427"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\418'</span><span class='layout'>,</span><span class='chr'>'\418'</span><span class='layout'>)</span>
+<a name="line-1428"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\420'</span><span class='layout'>,</span><span class='chr'>'\420'</span><span class='layout'>)</span>
+<a name="line-1429"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\422'</span><span class='layout'>,</span><span class='chr'>'\423'</span><span class='layout'>)</span>
+<a name="line-1430"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\425'</span><span class='layout'>,</span><span class='chr'>'\425'</span><span class='layout'>)</span>
+<a name="line-1431"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\428'</span><span class='layout'>,</span><span class='chr'>'\428'</span><span class='layout'>)</span>
+<a name="line-1432"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\430'</span><span class='layout'>,</span><span class='chr'>'\431'</span><span class='layout'>)</span>
+<a name="line-1433"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\433'</span><span class='layout'>,</span><span class='chr'>'\435'</span><span class='layout'>)</span>
+<a name="line-1434"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\437'</span><span class='layout'>,</span><span class='chr'>'\437'</span><span class='layout'>)</span>
+<a name="line-1435"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\439'</span><span class='layout'>,</span><span class='chr'>'\440'</span><span class='layout'>)</span>
+<a name="line-1436"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\444'</span><span class='layout'>,</span><span class='chr'>'\444'</span><span class='layout'>)</span>
+<a name="line-1437"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\452'</span><span class='layout'>,</span><span class='chr'>'\452'</span><span class='layout'>)</span>
+<a name="line-1438"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\455'</span><span class='layout'>,</span><span class='chr'>'\455'</span><span class='layout'>)</span>
+<a name="line-1439"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\458'</span><span class='layout'>,</span><span class='chr'>'\458'</span><span class='layout'>)</span>
+<a name="line-1440"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\461'</span><span class='layout'>,</span><span class='chr'>'\461'</span><span class='layout'>)</span>
+<a name="line-1441"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\463'</span><span class='layout'>,</span><span class='chr'>'\463'</span><span class='layout'>)</span>
+<a name="line-1442"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\465'</span><span class='layout'>,</span><span class='chr'>'\465'</span><span class='layout'>)</span>
+<a name="line-1443"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\467'</span><span class='layout'>,</span><span class='chr'>'\467'</span><span class='layout'>)</span>
+<a name="line-1444"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\469'</span><span class='layout'>,</span><span class='chr'>'\469'</span><span class='layout'>)</span>
+<a name="line-1445"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\471'</span><span class='layout'>,</span><span class='chr'>'\471'</span><span class='layout'>)</span>
+<a name="line-1446"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\473'</span><span class='layout'>,</span><span class='chr'>'\473'</span><span class='layout'>)</span>
+<a name="line-1447"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\475'</span><span class='layout'>,</span><span class='chr'>'\475'</span><span class='layout'>)</span>
+<a name="line-1448"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\478'</span><span class='layout'>,</span><span class='chr'>'\478'</span><span class='layout'>)</span>
+<a name="line-1449"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\480'</span><span class='layout'>,</span><span class='chr'>'\480'</span><span class='layout'>)</span>
+<a name="line-1450"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\482'</span><span class='layout'>,</span><span class='chr'>'\482'</span><span class='layout'>)</span>
+<a name="line-1451"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\484'</span><span class='layout'>,</span><span class='chr'>'\484'</span><span class='layout'>)</span>
+<a name="line-1452"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\486'</span><span class='layout'>,</span><span class='chr'>'\486'</span><span class='layout'>)</span>
+<a name="line-1453"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\488'</span><span class='layout'>,</span><span class='chr'>'\488'</span><span class='layout'>)</span>
+<a name="line-1454"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\490'</span><span class='layout'>,</span><span class='chr'>'\490'</span><span class='layout'>)</span>
+<a name="line-1455"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\492'</span><span class='layout'>,</span><span class='chr'>'\492'</span><span class='layout'>)</span>
+<a name="line-1456"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\494'</span><span class='layout'>,</span><span class='chr'>'\494'</span><span class='layout'>)</span>
+<a name="line-1457"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\497'</span><span class='layout'>,</span><span class='chr'>'\497'</span><span class='layout'>)</span>
+<a name="line-1458"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\500'</span><span class='layout'>,</span><span class='chr'>'\500'</span><span class='layout'>)</span>
+<a name="line-1459"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\502'</span><span class='layout'>,</span><span class='chr'>'\504'</span><span class='layout'>)</span>
+<a name="line-1460"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\506'</span><span class='layout'>,</span><span class='chr'>'\506'</span><span class='layout'>)</span>
+<a name="line-1461"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\508'</span><span class='layout'>,</span><span class='chr'>'\508'</span><span class='layout'>)</span>
+<a name="line-1462"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\510'</span><span class='layout'>,</span><span class='chr'>'\510'</span><span class='layout'>)</span>
+<a name="line-1463"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\512'</span><span class='layout'>,</span><span class='chr'>'\512'</span><span class='layout'>)</span>
+<a name="line-1464"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\514'</span><span class='layout'>,</span><span class='chr'>'\514'</span><span class='layout'>)</span>
+<a name="line-1465"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\516'</span><span class='layout'>,</span><span class='chr'>'\516'</span><span class='layout'>)</span>
+<a name="line-1466"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\518'</span><span class='layout'>,</span><span class='chr'>'\518'</span><span class='layout'>)</span>
+<a name="line-1467"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\520'</span><span class='layout'>,</span><span class='chr'>'\520'</span><span class='layout'>)</span>
+<a name="line-1468"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\522'</span><span class='layout'>,</span><span class='chr'>'\522'</span><span class='layout'>)</span>
+<a name="line-1469"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\524'</span><span class='layout'>,</span><span class='chr'>'\524'</span><span class='layout'>)</span>
+<a name="line-1470"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\526'</span><span class='layout'>,</span><span class='chr'>'\526'</span><span class='layout'>)</span>
+<a name="line-1471"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\528'</span><span class='layout'>,</span><span class='chr'>'\528'</span><span class='layout'>)</span>
+<a name="line-1472"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\530'</span><span class='layout'>,</span><span class='chr'>'\530'</span><span class='layout'>)</span>
+<a name="line-1473"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\532'</span><span class='layout'>,</span><span class='chr'>'\532'</span><span class='layout'>)</span>
+<a name="line-1474"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\534'</span><span class='layout'>,</span><span class='chr'>'\534'</span><span class='layout'>)</span>
+<a name="line-1475"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\536'</span><span class='layout'>,</span><span class='chr'>'\536'</span><span class='layout'>)</span>
+<a name="line-1476"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\538'</span><span class='layout'>,</span><span class='chr'>'\538'</span><span class='layout'>)</span>
+<a name="line-1477"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\540'</span><span class='layout'>,</span><span class='chr'>'\540'</span><span class='layout'>)</span>
+<a name="line-1478"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\542'</span><span class='layout'>,</span><span class='chr'>'\542'</span><span class='layout'>)</span>
+<a name="line-1479"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\544'</span><span class='layout'>,</span><span class='chr'>'\544'</span><span class='layout'>)</span>
+<a name="line-1480"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\546'</span><span class='layout'>,</span><span class='chr'>'\546'</span><span class='layout'>)</span>
+<a name="line-1481"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\548'</span><span class='layout'>,</span><span class='chr'>'\548'</span><span class='layout'>)</span>
+<a name="line-1482"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\550'</span><span class='layout'>,</span><span class='chr'>'\550'</span><span class='layout'>)</span>
+<a name="line-1483"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\552'</span><span class='layout'>,</span><span class='chr'>'\552'</span><span class='layout'>)</span>
+<a name="line-1484"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\554'</span><span class='layout'>,</span><span class='chr'>'\554'</span><span class='layout'>)</span>
+<a name="line-1485"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\556'</span><span class='layout'>,</span><span class='chr'>'\556'</span><span class='layout'>)</span>
+<a name="line-1486"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\558'</span><span class='layout'>,</span><span class='chr'>'\558'</span><span class='layout'>)</span>
+<a name="line-1487"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\560'</span><span class='layout'>,</span><span class='chr'>'\560'</span><span class='layout'>)</span>
+<a name="line-1488"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\562'</span><span class='layout'>,</span><span class='chr'>'\562'</span><span class='layout'>)</span>
+<a name="line-1489"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\570'</span><span class='layout'>,</span><span class='chr'>'\571'</span><span class='layout'>)</span>
+<a name="line-1490"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\573'</span><span class='layout'>,</span><span class='chr'>'\574'</span><span class='layout'>)</span>
+<a name="line-1491"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\577'</span><span class='layout'>,</span><span class='chr'>'\577'</span><span class='layout'>)</span>
+<a name="line-1492"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\579'</span><span class='layout'>,</span><span class='chr'>'\582'</span><span class='layout'>)</span>
+<a name="line-1493"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\584'</span><span class='layout'>,</span><span class='chr'>'\584'</span><span class='layout'>)</span>
+<a name="line-1494"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\586'</span><span class='layout'>,</span><span class='chr'>'\586'</span><span class='layout'>)</span>
+<a name="line-1495"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\588'</span><span class='layout'>,</span><span class='chr'>'\588'</span><span class='layout'>)</span>
+<a name="line-1496"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\590'</span><span class='layout'>,</span><span class='chr'>'\590'</span><span class='layout'>)</span>
+<a name="line-1497"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\902'</span><span class='layout'>,</span><span class='chr'>'\902'</span><span class='layout'>)</span>
+<a name="line-1498"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\904'</span><span class='layout'>,</span><span class='chr'>'\906'</span><span class='layout'>)</span>
+<a name="line-1499"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\908'</span><span class='layout'>,</span><span class='chr'>'\908'</span><span class='layout'>)</span>
+<a name="line-1500"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\910'</span><span class='layout'>,</span><span class='chr'>'\911'</span><span class='layout'>)</span>
+<a name="line-1501"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\913'</span><span class='layout'>,</span><span class='chr'>'\929'</span><span class='layout'>)</span>
+<a name="line-1502"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\931'</span><span class='layout'>,</span><span class='chr'>'\939'</span><span class='layout'>)</span>
+<a name="line-1503"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\978'</span><span class='layout'>,</span><span class='chr'>'\980'</span><span class='layout'>)</span>
+<a name="line-1504"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\984'</span><span class='layout'>,</span><span class='chr'>'\984'</span><span class='layout'>)</span>
+<a name="line-1505"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\986'</span><span class='layout'>,</span><span class='chr'>'\986'</span><span class='layout'>)</span>
+<a name="line-1506"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\988'</span><span class='layout'>,</span><span class='chr'>'\988'</span><span class='layout'>)</span>
+<a name="line-1507"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\990'</span><span class='layout'>,</span><span class='chr'>'\990'</span><span class='layout'>)</span>
+<a name="line-1508"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\992'</span><span class='layout'>,</span><span class='chr'>'\992'</span><span class='layout'>)</span>
+<a name="line-1509"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\994'</span><span class='layout'>,</span><span class='chr'>'\994'</span><span class='layout'>)</span>
+<a name="line-1510"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\996'</span><span class='layout'>,</span><span class='chr'>'\996'</span><span class='layout'>)</span>
+<a name="line-1511"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\998'</span><span class='layout'>,</span><span class='chr'>'\998'</span><span class='layout'>)</span>
+<a name="line-1512"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1000'</span><span class='layout'>,</span><span class='chr'>'\1000'</span><span class='layout'>)</span>
+<a name="line-1513"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1002'</span><span class='layout'>,</span><span class='chr'>'\1002'</span><span class='layout'>)</span>
+<a name="line-1514"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1004'</span><span class='layout'>,</span><span class='chr'>'\1004'</span><span class='layout'>)</span>
+<a name="line-1515"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1006'</span><span class='layout'>,</span><span class='chr'>'\1006'</span><span class='layout'>)</span>
+<a name="line-1516"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1012'</span><span class='layout'>,</span><span class='chr'>'\1012'</span><span class='layout'>)</span>
+<a name="line-1517"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1015'</span><span class='layout'>,</span><span class='chr'>'\1015'</span><span class='layout'>)</span>
+<a name="line-1518"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1017'</span><span class='layout'>,</span><span class='chr'>'\1018'</span><span class='layout'>)</span>
+<a name="line-1519"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1021'</span><span class='layout'>,</span><span class='chr'>'\1071'</span><span class='layout'>)</span>
+<a name="line-1520"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1120'</span><span class='layout'>,</span><span class='chr'>'\1120'</span><span class='layout'>)</span>
+<a name="line-1521"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1122'</span><span class='layout'>,</span><span class='chr'>'\1122'</span><span class='layout'>)</span>
+<a name="line-1522"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1124'</span><span class='layout'>,</span><span class='chr'>'\1124'</span><span class='layout'>)</span>
+<a name="line-1523"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1126'</span><span class='layout'>,</span><span class='chr'>'\1126'</span><span class='layout'>)</span>
+<a name="line-1524"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1128'</span><span class='layout'>,</span><span class='chr'>'\1128'</span><span class='layout'>)</span>
+<a name="line-1525"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1130'</span><span class='layout'>,</span><span class='chr'>'\1130'</span><span class='layout'>)</span>
+<a name="line-1526"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1132'</span><span class='layout'>,</span><span class='chr'>'\1132'</span><span class='layout'>)</span>
+<a name="line-1527"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1134'</span><span class='layout'>,</span><span class='chr'>'\1134'</span><span class='layout'>)</span>
+<a name="line-1528"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1136'</span><span class='layout'>,</span><span class='chr'>'\1136'</span><span class='layout'>)</span>
+<a name="line-1529"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1138'</span><span class='layout'>,</span><span class='chr'>'\1138'</span><span class='layout'>)</span>
+<a name="line-1530"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1140'</span><span class='layout'>,</span><span class='chr'>'\1140'</span><span class='layout'>)</span>
+<a name="line-1531"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1142'</span><span class='layout'>,</span><span class='chr'>'\1142'</span><span class='layout'>)</span>
+<a name="line-1532"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1144'</span><span class='layout'>,</span><span class='chr'>'\1144'</span><span class='layout'>)</span>
+<a name="line-1533"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1146'</span><span class='layout'>,</span><span class='chr'>'\1146'</span><span class='layout'>)</span>
+<a name="line-1534"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1148'</span><span class='layout'>,</span><span class='chr'>'\1148'</span><span class='layout'>)</span>
+<a name="line-1535"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1150'</span><span class='layout'>,</span><span class='chr'>'\1150'</span><span class='layout'>)</span>
+<a name="line-1536"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1152'</span><span class='layout'>,</span><span class='chr'>'\1152'</span><span class='layout'>)</span>
+<a name="line-1537"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1162'</span><span class='layout'>,</span><span class='chr'>'\1162'</span><span class='layout'>)</span>
+<a name="line-1538"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1164'</span><span class='layout'>,</span><span class='chr'>'\1164'</span><span class='layout'>)</span>
+<a name="line-1539"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1166'</span><span class='layout'>,</span><span class='chr'>'\1166'</span><span class='layout'>)</span>
+<a name="line-1540"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1168'</span><span class='layout'>,</span><span class='chr'>'\1168'</span><span class='layout'>)</span>
+<a name="line-1541"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1170'</span><span class='layout'>,</span><span class='chr'>'\1170'</span><span class='layout'>)</span>
+<a name="line-1542"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1172'</span><span class='layout'>,</span><span class='chr'>'\1172'</span><span class='layout'>)</span>
+<a name="line-1543"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1174'</span><span class='layout'>,</span><span class='chr'>'\1174'</span><span class='layout'>)</span>
+<a name="line-1544"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1176'</span><span class='layout'>,</span><span class='chr'>'\1176'</span><span class='layout'>)</span>
+<a name="line-1545"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1178'</span><span class='layout'>,</span><span class='chr'>'\1178'</span><span class='layout'>)</span>
+<a name="line-1546"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1180'</span><span class='layout'>,</span><span class='chr'>'\1180'</span><span class='layout'>)</span>
+<a name="line-1547"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1182'</span><span class='layout'>,</span><span class='chr'>'\1182'</span><span class='layout'>)</span>
+<a name="line-1548"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1184'</span><span class='layout'>,</span><span class='chr'>'\1184'</span><span class='layout'>)</span>
+<a name="line-1549"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1186'</span><span class='layout'>,</span><span class='chr'>'\1186'</span><span class='layout'>)</span>
+<a name="line-1550"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1188'</span><span class='layout'>,</span><span class='chr'>'\1188'</span><span class='layout'>)</span>
+<a name="line-1551"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1190'</span><span class='layout'>,</span><span class='chr'>'\1190'</span><span class='layout'>)</span>
+<a name="line-1552"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1192'</span><span class='layout'>,</span><span class='chr'>'\1192'</span><span class='layout'>)</span>
+<a name="line-1553"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1194'</span><span class='layout'>,</span><span class='chr'>'\1194'</span><span class='layout'>)</span>
+<a name="line-1554"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1196'</span><span class='layout'>,</span><span class='chr'>'\1196'</span><span class='layout'>)</span>
+<a name="line-1555"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1198'</span><span class='layout'>,</span><span class='chr'>'\1198'</span><span class='layout'>)</span>
+<a name="line-1556"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1200'</span><span class='layout'>,</span><span class='chr'>'\1200'</span><span class='layout'>)</span>
+<a name="line-1557"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1202'</span><span class='layout'>,</span><span class='chr'>'\1202'</span><span class='layout'>)</span>
+<a name="line-1558"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1204'</span><span class='layout'>,</span><span class='chr'>'\1204'</span><span class='layout'>)</span>
+<a name="line-1559"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1206'</span><span class='layout'>,</span><span class='chr'>'\1206'</span><span class='layout'>)</span>
+<a name="line-1560"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1208'</span><span class='layout'>,</span><span class='chr'>'\1208'</span><span class='layout'>)</span>
+<a name="line-1561"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1210'</span><span class='layout'>,</span><span class='chr'>'\1210'</span><span class='layout'>)</span>
+<a name="line-1562"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1212'</span><span class='layout'>,</span><span class='chr'>'\1212'</span><span class='layout'>)</span>
+<a name="line-1563"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1214'</span><span class='layout'>,</span><span class='chr'>'\1214'</span><span class='layout'>)</span>
+<a name="line-1564"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1216'</span><span class='layout'>,</span><span class='chr'>'\1217'</span><span class='layout'>)</span>
+<a name="line-1565"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1219'</span><span class='layout'>,</span><span class='chr'>'\1219'</span><span class='layout'>)</span>
+<a name="line-1566"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1221'</span><span class='layout'>,</span><span class='chr'>'\1221'</span><span class='layout'>)</span>
+<a name="line-1567"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1223'</span><span class='layout'>,</span><span class='chr'>'\1223'</span><span class='layout'>)</span>
+<a name="line-1568"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1225'</span><span class='layout'>,</span><span class='chr'>'\1225'</span><span class='layout'>)</span>
+<a name="line-1569"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1227'</span><span class='layout'>,</span><span class='chr'>'\1227'</span><span class='layout'>)</span>
+<a name="line-1570"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1229'</span><span class='layout'>,</span><span class='chr'>'\1229'</span><span class='layout'>)</span>
+<a name="line-1571"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1232'</span><span class='layout'>,</span><span class='chr'>'\1232'</span><span class='layout'>)</span>
+<a name="line-1572"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1234'</span><span class='layout'>,</span><span class='chr'>'\1234'</span><span class='layout'>)</span>
+<a name="line-1573"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1236'</span><span class='layout'>,</span><span class='chr'>'\1236'</span><span class='layout'>)</span>
+<a name="line-1574"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1238'</span><span class='layout'>,</span><span class='chr'>'\1238'</span><span class='layout'>)</span>
+<a name="line-1575"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1240'</span><span class='layout'>,</span><span class='chr'>'\1240'</span><span class='layout'>)</span>
+<a name="line-1576"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1242'</span><span class='layout'>,</span><span class='chr'>'\1242'</span><span class='layout'>)</span>
+<a name="line-1577"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1244'</span><span class='layout'>,</span><span class='chr'>'\1244'</span><span class='layout'>)</span>
+<a name="line-1578"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1246'</span><span class='layout'>,</span><span class='chr'>'\1246'</span><span class='layout'>)</span>
+<a name="line-1579"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1248'</span><span class='layout'>,</span><span class='chr'>'\1248'</span><span class='layout'>)</span>
+<a name="line-1580"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1250'</span><span class='layout'>,</span><span class='chr'>'\1250'</span><span class='layout'>)</span>
+<a name="line-1581"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1252'</span><span class='layout'>,</span><span class='chr'>'\1252'</span><span class='layout'>)</span>
+<a name="line-1582"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1254'</span><span class='layout'>,</span><span class='chr'>'\1254'</span><span class='layout'>)</span>
+<a name="line-1583"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1256'</span><span class='layout'>,</span><span class='chr'>'\1256'</span><span class='layout'>)</span>
+<a name="line-1584"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1258'</span><span class='layout'>,</span><span class='chr'>'\1258'</span><span class='layout'>)</span>
+<a name="line-1585"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1260'</span><span class='layout'>,</span><span class='chr'>'\1260'</span><span class='layout'>)</span>
+<a name="line-1586"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1262'</span><span class='layout'>,</span><span class='chr'>'\1262'</span><span class='layout'>)</span>
+<a name="line-1587"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1264'</span><span class='layout'>,</span><span class='chr'>'\1264'</span><span class='layout'>)</span>
+<a name="line-1588"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1266'</span><span class='layout'>,</span><span class='chr'>'\1266'</span><span class='layout'>)</span>
+<a name="line-1589"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1268'</span><span class='layout'>,</span><span class='chr'>'\1268'</span><span class='layout'>)</span>
+<a name="line-1590"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1270'</span><span class='layout'>,</span><span class='chr'>'\1270'</span><span class='layout'>)</span>
+<a name="line-1591"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1272'</span><span class='layout'>,</span><span class='chr'>'\1272'</span><span class='layout'>)</span>
+<a name="line-1592"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1274'</span><span class='layout'>,</span><span class='chr'>'\1274'</span><span class='layout'>)</span>
+<a name="line-1593"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1276'</span><span class='layout'>,</span><span class='chr'>'\1276'</span><span class='layout'>)</span>
+<a name="line-1594"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1278'</span><span class='layout'>,</span><span class='chr'>'\1278'</span><span class='layout'>)</span>
+<a name="line-1595"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1280'</span><span class='layout'>,</span><span class='chr'>'\1280'</span><span class='layout'>)</span>
+<a name="line-1596"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1282'</span><span class='layout'>,</span><span class='chr'>'\1282'</span><span class='layout'>)</span>
+<a name="line-1597"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1284'</span><span class='layout'>,</span><span class='chr'>'\1284'</span><span class='layout'>)</span>
+<a name="line-1598"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1286'</span><span class='layout'>,</span><span class='chr'>'\1286'</span><span class='layout'>)</span>
+<a name="line-1599"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1288'</span><span class='layout'>,</span><span class='chr'>'\1288'</span><span class='layout'>)</span>
+<a name="line-1600"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1290'</span><span class='layout'>,</span><span class='chr'>'\1290'</span><span class='layout'>)</span>
+<a name="line-1601"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1292'</span><span class='layout'>,</span><span class='chr'>'\1292'</span><span class='layout'>)</span>
+<a name="line-1602"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1294'</span><span class='layout'>,</span><span class='chr'>'\1294'</span><span class='layout'>)</span>
+<a name="line-1603"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1296'</span><span class='layout'>,</span><span class='chr'>'\1296'</span><span class='layout'>)</span>
+<a name="line-1604"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1298'</span><span class='layout'>,</span><span class='chr'>'\1298'</span><span class='layout'>)</span>
+<a name="line-1605"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1329'</span><span class='layout'>,</span><span class='chr'>'\1366'</span><span class='layout'>)</span>
+<a name="line-1606"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4256'</span><span class='layout'>,</span><span class='chr'>'\4293'</span><span class='layout'>)</span>
+<a name="line-1607"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7680'</span><span class='layout'>,</span><span class='chr'>'\7680'</span><span class='layout'>)</span>
+<a name="line-1608"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7682'</span><span class='layout'>,</span><span class='chr'>'\7682'</span><span class='layout'>)</span>
+<a name="line-1609"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7684'</span><span class='layout'>,</span><span class='chr'>'\7684'</span><span class='layout'>)</span>
+<a name="line-1610"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7686'</span><span class='layout'>,</span><span class='chr'>'\7686'</span><span class='layout'>)</span>
+<a name="line-1611"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7688'</span><span class='layout'>,</span><span class='chr'>'\7688'</span><span class='layout'>)</span>
+<a name="line-1612"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7690'</span><span class='layout'>,</span><span class='chr'>'\7690'</span><span class='layout'>)</span>
+<a name="line-1613"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7692'</span><span class='layout'>,</span><span class='chr'>'\7692'</span><span class='layout'>)</span>
+<a name="line-1614"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7694'</span><span class='layout'>,</span><span class='chr'>'\7694'</span><span class='layout'>)</span>
+<a name="line-1615"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7696'</span><span class='layout'>,</span><span class='chr'>'\7696'</span><span class='layout'>)</span>
+<a name="line-1616"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7698'</span><span class='layout'>,</span><span class='chr'>'\7698'</span><span class='layout'>)</span>
+<a name="line-1617"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7700'</span><span class='layout'>,</span><span class='chr'>'\7700'</span><span class='layout'>)</span>
+<a name="line-1618"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7702'</span><span class='layout'>,</span><span class='chr'>'\7702'</span><span class='layout'>)</span>
+<a name="line-1619"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7704'</span><span class='layout'>,</span><span class='chr'>'\7704'</span><span class='layout'>)</span>
+<a name="line-1620"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7706'</span><span class='layout'>,</span><span class='chr'>'\7706'</span><span class='layout'>)</span>
+<a name="line-1621"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7708'</span><span class='layout'>,</span><span class='chr'>'\7708'</span><span class='layout'>)</span>
+<a name="line-1622"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7710'</span><span class='layout'>,</span><span class='chr'>'\7710'</span><span class='layout'>)</span>
+<a name="line-1623"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7712'</span><span class='layout'>,</span><span class='chr'>'\7712'</span><span class='layout'>)</span>
+<a name="line-1624"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7714'</span><span class='layout'>,</span><span class='chr'>'\7714'</span><span class='layout'>)</span>
+<a name="line-1625"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7716'</span><span class='layout'>,</span><span class='chr'>'\7716'</span><span class='layout'>)</span>
+<a name="line-1626"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7718'</span><span class='layout'>,</span><span class='chr'>'\7718'</span><span class='layout'>)</span>
+<a name="line-1627"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7720'</span><span class='layout'>,</span><span class='chr'>'\7720'</span><span class='layout'>)</span>
+<a name="line-1628"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7722'</span><span class='layout'>,</span><span class='chr'>'\7722'</span><span class='layout'>)</span>
+<a name="line-1629"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7724'</span><span class='layout'>,</span><span class='chr'>'\7724'</span><span class='layout'>)</span>
+<a name="line-1630"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7726'</span><span class='layout'>,</span><span class='chr'>'\7726'</span><span class='layout'>)</span>
+<a name="line-1631"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7728'</span><span class='layout'>,</span><span class='chr'>'\7728'</span><span class='layout'>)</span>
+<a name="line-1632"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7730'</span><span class='layout'>,</span><span class='chr'>'\7730'</span><span class='layout'>)</span>
+<a name="line-1633"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7732'</span><span class='layout'>,</span><span class='chr'>'\7732'</span><span class='layout'>)</span>
+<a name="line-1634"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7734'</span><span class='layout'>,</span><span class='chr'>'\7734'</span><span class='layout'>)</span>
+<a name="line-1635"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7736'</span><span class='layout'>,</span><span class='chr'>'\7736'</span><span class='layout'>)</span>
+<a name="line-1636"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7738'</span><span class='layout'>,</span><span class='chr'>'\7738'</span><span class='layout'>)</span>
+<a name="line-1637"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7740'</span><span class='layout'>,</span><span class='chr'>'\7740'</span><span class='layout'>)</span>
+<a name="line-1638"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7742'</span><span class='layout'>,</span><span class='chr'>'\7742'</span><span class='layout'>)</span>
+<a name="line-1639"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7744'</span><span class='layout'>,</span><span class='chr'>'\7744'</span><span class='layout'>)</span>
+<a name="line-1640"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7746'</span><span class='layout'>,</span><span class='chr'>'\7746'</span><span class='layout'>)</span>
+<a name="line-1641"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7748'</span><span class='layout'>,</span><span class='chr'>'\7748'</span><span class='layout'>)</span>
+<a name="line-1642"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7750'</span><span class='layout'>,</span><span class='chr'>'\7750'</span><span class='layout'>)</span>
+<a name="line-1643"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7752'</span><span class='layout'>,</span><span class='chr'>'\7752'</span><span class='layout'>)</span>
+<a name="line-1644"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7754'</span><span class='layout'>,</span><span class='chr'>'\7754'</span><span class='layout'>)</span>
+<a name="line-1645"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7756'</span><span class='layout'>,</span><span class='chr'>'\7756'</span><span class='layout'>)</span>
+<a name="line-1646"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7758'</span><span class='layout'>,</span><span class='chr'>'\7758'</span><span class='layout'>)</span>
+<a name="line-1647"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7760'</span><span class='layout'>,</span><span class='chr'>'\7760'</span><span class='layout'>)</span>
+<a name="line-1648"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7762'</span><span class='layout'>,</span><span class='chr'>'\7762'</span><span class='layout'>)</span>
+<a name="line-1649"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7764'</span><span class='layout'>,</span><span class='chr'>'\7764'</span><span class='layout'>)</span>
+<a name="line-1650"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7766'</span><span class='layout'>,</span><span class='chr'>'\7766'</span><span class='layout'>)</span>
+<a name="line-1651"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7768'</span><span class='layout'>,</span><span class='chr'>'\7768'</span><span class='layout'>)</span>
+<a name="line-1652"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7770'</span><span class='layout'>,</span><span class='chr'>'\7770'</span><span class='layout'>)</span>
+<a name="line-1653"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7772'</span><span class='layout'>,</span><span class='chr'>'\7772'</span><span class='layout'>)</span>
+<a name="line-1654"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7774'</span><span class='layout'>,</span><span class='chr'>'\7774'</span><span class='layout'>)</span>
+<a name="line-1655"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7776'</span><span class='layout'>,</span><span class='chr'>'\7776'</span><span class='layout'>)</span>
+<a name="line-1656"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7778'</span><span class='layout'>,</span><span class='chr'>'\7778'</span><span class='layout'>)</span>
+<a name="line-1657"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7780'</span><span class='layout'>,</span><span class='chr'>'\7780'</span><span class='layout'>)</span>
+<a name="line-1658"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7782'</span><span class='layout'>,</span><span class='chr'>'\7782'</span><span class='layout'>)</span>
+<a name="line-1659"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7784'</span><span class='layout'>,</span><span class='chr'>'\7784'</span><span class='layout'>)</span>
+<a name="line-1660"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7786'</span><span class='layout'>,</span><span class='chr'>'\7786'</span><span class='layout'>)</span>
+<a name="line-1661"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7788'</span><span class='layout'>,</span><span class='chr'>'\7788'</span><span class='layout'>)</span>
+<a name="line-1662"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7790'</span><span class='layout'>,</span><span class='chr'>'\7790'</span><span class='layout'>)</span>
+<a name="line-1663"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7792'</span><span class='layout'>,</span><span class='chr'>'\7792'</span><span class='layout'>)</span>
+<a name="line-1664"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7794'</span><span class='layout'>,</span><span class='chr'>'\7794'</span><span class='layout'>)</span>
+<a name="line-1665"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7796'</span><span class='layout'>,</span><span class='chr'>'\7796'</span><span class='layout'>)</span>
+<a name="line-1666"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7798'</span><span class='layout'>,</span><span class='chr'>'\7798'</span><span class='layout'>)</span>
+<a name="line-1667"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7800'</span><span class='layout'>,</span><span class='chr'>'\7800'</span><span class='layout'>)</span>
+<a name="line-1668"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7802'</span><span class='layout'>,</span><span class='chr'>'\7802'</span><span class='layout'>)</span>
+<a name="line-1669"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7804'</span><span class='layout'>,</span><span class='chr'>'\7804'</span><span class='layout'>)</span>
+<a name="line-1670"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7806'</span><span class='layout'>,</span><span class='chr'>'\7806'</span><span class='layout'>)</span>
+<a name="line-1671"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7808'</span><span class='layout'>,</span><span class='chr'>'\7808'</span><span class='layout'>)</span>
+<a name="line-1672"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7810'</span><span class='layout'>,</span><span class='chr'>'\7810'</span><span class='layout'>)</span>
+<a name="line-1673"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7812'</span><span class='layout'>,</span><span class='chr'>'\7812'</span><span class='layout'>)</span>
+<a name="line-1674"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7814'</span><span class='layout'>,</span><span class='chr'>'\7814'</span><span class='layout'>)</span>
+<a name="line-1675"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7816'</span><span class='layout'>,</span><span class='chr'>'\7816'</span><span class='layout'>)</span>
+<a name="line-1676"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7818'</span><span class='layout'>,</span><span class='chr'>'\7818'</span><span class='layout'>)</span>
+<a name="line-1677"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7820'</span><span class='layout'>,</span><span class='chr'>'\7820'</span><span class='layout'>)</span>
+<a name="line-1678"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7822'</span><span class='layout'>,</span><span class='chr'>'\7822'</span><span class='layout'>)</span>
+<a name="line-1679"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7824'</span><span class='layout'>,</span><span class='chr'>'\7824'</span><span class='layout'>)</span>
+<a name="line-1680"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7826'</span><span class='layout'>,</span><span class='chr'>'\7826'</span><span class='layout'>)</span>
+<a name="line-1681"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7828'</span><span class='layout'>,</span><span class='chr'>'\7828'</span><span class='layout'>)</span>
+<a name="line-1682"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7840'</span><span class='layout'>,</span><span class='chr'>'\7840'</span><span class='layout'>)</span>
+<a name="line-1683"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7842'</span><span class='layout'>,</span><span class='chr'>'\7842'</span><span class='layout'>)</span>
+<a name="line-1684"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7844'</span><span class='layout'>,</span><span class='chr'>'\7844'</span><span class='layout'>)</span>
+<a name="line-1685"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7846'</span><span class='layout'>,</span><span class='chr'>'\7846'</span><span class='layout'>)</span>
+<a name="line-1686"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7848'</span><span class='layout'>,</span><span class='chr'>'\7848'</span><span class='layout'>)</span>
+<a name="line-1687"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7850'</span><span class='layout'>,</span><span class='chr'>'\7850'</span><span class='layout'>)</span>
+<a name="line-1688"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7852'</span><span class='layout'>,</span><span class='chr'>'\7852'</span><span class='layout'>)</span>
+<a name="line-1689"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7854'</span><span class='layout'>,</span><span class='chr'>'\7854'</span><span class='layout'>)</span>
+<a name="line-1690"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7856'</span><span class='layout'>,</span><span class='chr'>'\7856'</span><span class='layout'>)</span>
+<a name="line-1691"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7858'</span><span class='layout'>,</span><span class='chr'>'\7858'</span><span class='layout'>)</span>
+<a name="line-1692"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7860'</span><span class='layout'>,</span><span class='chr'>'\7860'</span><span class='layout'>)</span>
+<a name="line-1693"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7862'</span><span class='layout'>,</span><span class='chr'>'\7862'</span><span class='layout'>)</span>
+<a name="line-1694"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7864'</span><span class='layout'>,</span><span class='chr'>'\7864'</span><span class='layout'>)</span>
+<a name="line-1695"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7866'</span><span class='layout'>,</span><span class='chr'>'\7866'</span><span class='layout'>)</span>
+<a name="line-1696"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7868'</span><span class='layout'>,</span><span class='chr'>'\7868'</span><span class='layout'>)</span>
+<a name="line-1697"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7870'</span><span class='layout'>,</span><span class='chr'>'\7870'</span><span class='layout'>)</span>
+<a name="line-1698"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7872'</span><span class='layout'>,</span><span class='chr'>'\7872'</span><span class='layout'>)</span>
+<a name="line-1699"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7874'</span><span class='layout'>,</span><span class='chr'>'\7874'</span><span class='layout'>)</span>
+<a name="line-1700"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7876'</span><span class='layout'>,</span><span class='chr'>'\7876'</span><span class='layout'>)</span>
+<a name="line-1701"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7878'</span><span class='layout'>,</span><span class='chr'>'\7878'</span><span class='layout'>)</span>
+<a name="line-1702"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7880'</span><span class='layout'>,</span><span class='chr'>'\7880'</span><span class='layout'>)</span>
+<a name="line-1703"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7882'</span><span class='layout'>,</span><span class='chr'>'\7882'</span><span class='layout'>)</span>
+<a name="line-1704"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7884'</span><span class='layout'>,</span><span class='chr'>'\7884'</span><span class='layout'>)</span>
+<a name="line-1705"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7886'</span><span class='layout'>,</span><span class='chr'>'\7886'</span><span class='layout'>)</span>
+<a name="line-1706"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7888'</span><span class='layout'>,</span><span class='chr'>'\7888'</span><span class='layout'>)</span>
+<a name="line-1707"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7890'</span><span class='layout'>,</span><span class='chr'>'\7890'</span><span class='layout'>)</span>
+<a name="line-1708"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7892'</span><span class='layout'>,</span><span class='chr'>'\7892'</span><span class='layout'>)</span>
+<a name="line-1709"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7894'</span><span class='layout'>,</span><span class='chr'>'\7894'</span><span class='layout'>)</span>
+<a name="line-1710"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7896'</span><span class='layout'>,</span><span class='chr'>'\7896'</span><span class='layout'>)</span>
+<a name="line-1711"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7898'</span><span class='layout'>,</span><span class='chr'>'\7898'</span><span class='layout'>)</span>
+<a name="line-1712"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7900'</span><span class='layout'>,</span><span class='chr'>'\7900'</span><span class='layout'>)</span>
+<a name="line-1713"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7902'</span><span class='layout'>,</span><span class='chr'>'\7902'</span><span class='layout'>)</span>
+<a name="line-1714"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7904'</span><span class='layout'>,</span><span class='chr'>'\7904'</span><span class='layout'>)</span>
+<a name="line-1715"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7906'</span><span class='layout'>,</span><span class='chr'>'\7906'</span><span class='layout'>)</span>
+<a name="line-1716"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7908'</span><span class='layout'>,</span><span class='chr'>'\7908'</span><span class='layout'>)</span>
+<a name="line-1717"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7910'</span><span class='layout'>,</span><span class='chr'>'\7910'</span><span class='layout'>)</span>
+<a name="line-1718"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7912'</span><span class='layout'>,</span><span class='chr'>'\7912'</span><span class='layout'>)</span>
+<a name="line-1719"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7914'</span><span class='layout'>,</span><span class='chr'>'\7914'</span><span class='layout'>)</span>
+<a name="line-1720"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7916'</span><span class='layout'>,</span><span class='chr'>'\7916'</span><span class='layout'>)</span>
+<a name="line-1721"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7918'</span><span class='layout'>,</span><span class='chr'>'\7918'</span><span class='layout'>)</span>
+<a name="line-1722"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7920'</span><span class='layout'>,</span><span class='chr'>'\7920'</span><span class='layout'>)</span>
+<a name="line-1723"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7922'</span><span class='layout'>,</span><span class='chr'>'\7922'</span><span class='layout'>)</span>
+<a name="line-1724"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7924'</span><span class='layout'>,</span><span class='chr'>'\7924'</span><span class='layout'>)</span>
+<a name="line-1725"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7926'</span><span class='layout'>,</span><span class='chr'>'\7926'</span><span class='layout'>)</span>
+<a name="line-1726"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7928'</span><span class='layout'>,</span><span class='chr'>'\7928'</span><span class='layout'>)</span>
+<a name="line-1727"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7944'</span><span class='layout'>,</span><span class='chr'>'\7951'</span><span class='layout'>)</span>
+<a name="line-1728"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7960'</span><span class='layout'>,</span><span class='chr'>'\7965'</span><span class='layout'>)</span>
+<a name="line-1729"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7976'</span><span class='layout'>,</span><span class='chr'>'\7983'</span><span class='layout'>)</span>
+<a name="line-1730"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7992'</span><span class='layout'>,</span><span class='chr'>'\7999'</span><span class='layout'>)</span>
+<a name="line-1731"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8008'</span><span class='layout'>,</span><span class='chr'>'\8013'</span><span class='layout'>)</span>
+<a name="line-1732"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8025'</span><span class='layout'>,</span><span class='chr'>'\8025'</span><span class='layout'>)</span>
+<a name="line-1733"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8027'</span><span class='layout'>,</span><span class='chr'>'\8027'</span><span class='layout'>)</span>
+<a name="line-1734"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8029'</span><span class='layout'>,</span><span class='chr'>'\8029'</span><span class='layout'>)</span>
+<a name="line-1735"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8031'</span><span class='layout'>,</span><span class='chr'>'\8031'</span><span class='layout'>)</span>
+<a name="line-1736"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8040'</span><span class='layout'>,</span><span class='chr'>'\8047'</span><span class='layout'>)</span>
+<a name="line-1737"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8120'</span><span class='layout'>,</span><span class='chr'>'\8123'</span><span class='layout'>)</span>
+<a name="line-1738"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8136'</span><span class='layout'>,</span><span class='chr'>'\8139'</span><span class='layout'>)</span>
+<a name="line-1739"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8152'</span><span class='layout'>,</span><span class='chr'>'\8155'</span><span class='layout'>)</span>
+<a name="line-1740"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8168'</span><span class='layout'>,</span><span class='chr'>'\8172'</span><span class='layout'>)</span>
+<a name="line-1741"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8184'</span><span class='layout'>,</span><span class='chr'>'\8187'</span><span class='layout'>)</span>
+<a name="line-1742"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8450'</span><span class='layout'>,</span><span class='chr'>'\8450'</span><span class='layout'>)</span>
+<a name="line-1743"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8455'</span><span class='layout'>,</span><span class='chr'>'\8455'</span><span class='layout'>)</span>
+<a name="line-1744"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8459'</span><span class='layout'>,</span><span class='chr'>'\8461'</span><span class='layout'>)</span>
+<a name="line-1745"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8464'</span><span class='layout'>,</span><span class='chr'>'\8466'</span><span class='layout'>)</span>
+<a name="line-1746"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8469'</span><span class='layout'>,</span><span class='chr'>'\8469'</span><span class='layout'>)</span>
+<a name="line-1747"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8473'</span><span class='layout'>,</span><span class='chr'>'\8477'</span><span class='layout'>)</span>
+<a name="line-1748"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8484'</span><span class='layout'>,</span><span class='chr'>'\8484'</span><span class='layout'>)</span>
+<a name="line-1749"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8486'</span><span class='layout'>,</span><span class='chr'>'\8486'</span><span class='layout'>)</span>
+<a name="line-1750"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8488'</span><span class='layout'>,</span><span class='chr'>'\8488'</span><span class='layout'>)</span>
+<a name="line-1751"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8490'</span><span class='layout'>,</span><span class='chr'>'\8493'</span><span class='layout'>)</span>
+<a name="line-1752"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8496'</span><span class='layout'>,</span><span class='chr'>'\8499'</span><span class='layout'>)</span>
+<a name="line-1753"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8510'</span><span class='layout'>,</span><span class='chr'>'\8511'</span><span class='layout'>)</span>
+<a name="line-1754"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8517'</span><span class='layout'>,</span><span class='chr'>'\8517'</span><span class='layout'>)</span>
+<a name="line-1755"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8579'</span><span class='layout'>,</span><span class='chr'>'\8579'</span><span class='layout'>)</span>
+<a name="line-1756"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11264'</span><span class='layout'>,</span><span class='chr'>'\11310'</span><span class='layout'>)</span>
+<a name="line-1757"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11360'</span><span class='layout'>,</span><span class='chr'>'\11360'</span><span class='layout'>)</span>
+<a name="line-1758"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11362'</span><span class='layout'>,</span><span class='chr'>'\11364'</span><span class='layout'>)</span>
+<a name="line-1759"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11367'</span><span class='layout'>,</span><span class='chr'>'\11367'</span><span class='layout'>)</span>
+<a name="line-1760"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11369'</span><span class='layout'>,</span><span class='chr'>'\11369'</span><span class='layout'>)</span>
+<a name="line-1761"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11371'</span><span class='layout'>,</span><span class='chr'>'\11371'</span><span class='layout'>)</span>
+<a name="line-1762"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11381'</span><span class='layout'>,</span><span class='chr'>'\11381'</span><span class='layout'>)</span>
+<a name="line-1763"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11392'</span><span class='layout'>,</span><span class='chr'>'\11392'</span><span class='layout'>)</span>
+<a name="line-1764"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11394'</span><span class='layout'>,</span><span class='chr'>'\11394'</span><span class='layout'>)</span>
+<a name="line-1765"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11396'</span><span class='layout'>,</span><span class='chr'>'\11396'</span><span class='layout'>)</span>
+<a name="line-1766"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11398'</span><span class='layout'>,</span><span class='chr'>'\11398'</span><span class='layout'>)</span>
+<a name="line-1767"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11400'</span><span class='layout'>,</span><span class='chr'>'\11400'</span><span class='layout'>)</span>
+<a name="line-1768"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11402'</span><span class='layout'>,</span><span class='chr'>'\11402'</span><span class='layout'>)</span>
+<a name="line-1769"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11404'</span><span class='layout'>,</span><span class='chr'>'\11404'</span><span class='layout'>)</span>
+<a name="line-1770"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11406'</span><span class='layout'>,</span><span class='chr'>'\11406'</span><span class='layout'>)</span>
+<a name="line-1771"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11408'</span><span class='layout'>,</span><span class='chr'>'\11408'</span><span class='layout'>)</span>
+<a name="line-1772"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11410'</span><span class='layout'>,</span><span class='chr'>'\11410'</span><span class='layout'>)</span>
+<a name="line-1773"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11412'</span><span class='layout'>,</span><span class='chr'>'\11412'</span><span class='layout'>)</span>
+<a name="line-1774"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11414'</span><span class='layout'>,</span><span class='chr'>'\11414'</span><span class='layout'>)</span>
+<a name="line-1775"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11416'</span><span class='layout'>,</span><span class='chr'>'\11416'</span><span class='layout'>)</span>
+<a name="line-1776"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11418'</span><span class='layout'>,</span><span class='chr'>'\11418'</span><span class='layout'>)</span>
+<a name="line-1777"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11420'</span><span class='layout'>,</span><span class='chr'>'\11420'</span><span class='layout'>)</span>
+<a name="line-1778"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11422'</span><span class='layout'>,</span><span class='chr'>'\11422'</span><span class='layout'>)</span>
+<a name="line-1779"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11424'</span><span class='layout'>,</span><span class='chr'>'\11424'</span><span class='layout'>)</span>
+<a name="line-1780"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11426'</span><span class='layout'>,</span><span class='chr'>'\11426'</span><span class='layout'>)</span>
+<a name="line-1781"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11428'</span><span class='layout'>,</span><span class='chr'>'\11428'</span><span class='layout'>)</span>
+<a name="line-1782"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11430'</span><span class='layout'>,</span><span class='chr'>'\11430'</span><span class='layout'>)</span>
+<a name="line-1783"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11432'</span><span class='layout'>,</span><span class='chr'>'\11432'</span><span class='layout'>)</span>
+<a name="line-1784"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11434'</span><span class='layout'>,</span><span class='chr'>'\11434'</span><span class='layout'>)</span>
+<a name="line-1785"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11436'</span><span class='layout'>,</span><span class='chr'>'\11436'</span><span class='layout'>)</span>
+<a name="line-1786"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11438'</span><span class='layout'>,</span><span class='chr'>'\11438'</span><span class='layout'>)</span>
+<a name="line-1787"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11440'</span><span class='layout'>,</span><span class='chr'>'\11440'</span><span class='layout'>)</span>
+<a name="line-1788"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11442'</span><span class='layout'>,</span><span class='chr'>'\11442'</span><span class='layout'>)</span>
+<a name="line-1789"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11444'</span><span class='layout'>,</span><span class='chr'>'\11444'</span><span class='layout'>)</span>
+<a name="line-1790"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11446'</span><span class='layout'>,</span><span class='chr'>'\11446'</span><span class='layout'>)</span>
+<a name="line-1791"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11448'</span><span class='layout'>,</span><span class='chr'>'\11448'</span><span class='layout'>)</span>
+<a name="line-1792"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11450'</span><span class='layout'>,</span><span class='chr'>'\11450'</span><span class='layout'>)</span>
+<a name="line-1793"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11452'</span><span class='layout'>,</span><span class='chr'>'\11452'</span><span class='layout'>)</span>
+<a name="line-1794"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11454'</span><span class='layout'>,</span><span class='chr'>'\11454'</span><span class='layout'>)</span>
+<a name="line-1795"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11456'</span><span class='layout'>,</span><span class='chr'>'\11456'</span><span class='layout'>)</span>
+<a name="line-1796"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11458'</span><span class='layout'>,</span><span class='chr'>'\11458'</span><span class='layout'>)</span>
+<a name="line-1797"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11460'</span><span class='layout'>,</span><span class='chr'>'\11460'</span><span class='layout'>)</span>
+<a name="line-1798"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11462'</span><span class='layout'>,</span><span class='chr'>'\11462'</span><span class='layout'>)</span>
+<a name="line-1799"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11464'</span><span class='layout'>,</span><span class='chr'>'\11464'</span><span class='layout'>)</span>
+<a name="line-1800"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11466'</span><span class='layout'>,</span><span class='chr'>'\11466'</span><span class='layout'>)</span>
+<a name="line-1801"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11468'</span><span class='layout'>,</span><span class='chr'>'\11468'</span><span class='layout'>)</span>
+<a name="line-1802"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11470'</span><span class='layout'>,</span><span class='chr'>'\11470'</span><span class='layout'>)</span>
+<a name="line-1803"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11472'</span><span class='layout'>,</span><span class='chr'>'\11472'</span><span class='layout'>)</span>
+<a name="line-1804"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11474'</span><span class='layout'>,</span><span class='chr'>'\11474'</span><span class='layout'>)</span>
+<a name="line-1805"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11476'</span><span class='layout'>,</span><span class='chr'>'\11476'</span><span class='layout'>)</span>
+<a name="line-1806"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11478'</span><span class='layout'>,</span><span class='chr'>'\11478'</span><span class='layout'>)</span>
+<a name="line-1807"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11480'</span><span class='layout'>,</span><span class='chr'>'\11480'</span><span class='layout'>)</span>
+<a name="line-1808"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11482'</span><span class='layout'>,</span><span class='chr'>'\11482'</span><span class='layout'>)</span>
+<a name="line-1809"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11484'</span><span class='layout'>,</span><span class='chr'>'\11484'</span><span class='layout'>)</span>
+<a name="line-1810"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11486'</span><span class='layout'>,</span><span class='chr'>'\11486'</span><span class='layout'>)</span>
+<a name="line-1811"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11488'</span><span class='layout'>,</span><span class='chr'>'\11488'</span><span class='layout'>)</span>
+<a name="line-1812"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11490'</span><span class='layout'>,</span><span class='chr'>'\11490'</span><span class='layout'>)</span>
+<a name="line-1813"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65313'</span><span class='layout'>,</span><span class='chr'>'\65338'</span><span class='layout'>)</span>
+<a name="line-1814"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66560'</span><span class='layout'>,</span><span class='chr'>'\66599'</span><span class='layout'>)</span>
+<a name="line-1815"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119808'</span><span class='layout'>,</span><span class='chr'>'\119833'</span><span class='layout'>)</span>
+<a name="line-1816"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119860'</span><span class='layout'>,</span><span class='chr'>'\119885'</span><span class='layout'>)</span>
+<a name="line-1817"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119912'</span><span class='layout'>,</span><span class='chr'>'\119937'</span><span class='layout'>)</span>
+<a name="line-1818"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119964'</span><span class='layout'>,</span><span class='chr'>'\119964'</span><span class='layout'>)</span>
+<a name="line-1819"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119966'</span><span class='layout'>,</span><span class='chr'>'\119967'</span><span class='layout'>)</span>
+<a name="line-1820"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119970'</span><span class='layout'>,</span><span class='chr'>'\119970'</span><span class='layout'>)</span>
+<a name="line-1821"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119973'</span><span class='layout'>,</span><span class='chr'>'\119974'</span><span class='layout'>)</span>
+<a name="line-1822"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119977'</span><span class='layout'>,</span><span class='chr'>'\119980'</span><span class='layout'>)</span>
+<a name="line-1823"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119982'</span><span class='layout'>,</span><span class='chr'>'\119989'</span><span class='layout'>)</span>
+<a name="line-1824"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120016'</span><span class='layout'>,</span><span class='chr'>'\120041'</span><span class='layout'>)</span>
+<a name="line-1825"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120068'</span><span class='layout'>,</span><span class='chr'>'\120069'</span><span class='layout'>)</span>
+<a name="line-1826"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120071'</span><span class='layout'>,</span><span class='chr'>'\120074'</span><span class='layout'>)</span>
+<a name="line-1827"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120077'</span><span class='layout'>,</span><span class='chr'>'\120084'</span><span class='layout'>)</span>
+<a name="line-1828"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120086'</span><span class='layout'>,</span><span class='chr'>'\120092'</span><span class='layout'>)</span>
+<a name="line-1829"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120120'</span><span class='layout'>,</span><span class='chr'>'\120121'</span><span class='layout'>)</span>
+<a name="line-1830"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120123'</span><span class='layout'>,</span><span class='chr'>'\120126'</span><span class='layout'>)</span>
+<a name="line-1831"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120128'</span><span class='layout'>,</span><span class='chr'>'\120132'</span><span class='layout'>)</span>
+<a name="line-1832"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120134'</span><span class='layout'>,</span><span class='chr'>'\120134'</span><span class='layout'>)</span>
+<a name="line-1833"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120138'</span><span class='layout'>,</span><span class='chr'>'\120144'</span><span class='layout'>)</span>
+<a name="line-1834"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120172'</span><span class='layout'>,</span><span class='chr'>'\120197'</span><span class='layout'>)</span>
+<a name="line-1835"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120224'</span><span class='layout'>,</span><span class='chr'>'\120249'</span><span class='layout'>)</span>
+<a name="line-1836"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120276'</span><span class='layout'>,</span><span class='chr'>'\120301'</span><span class='layout'>)</span>
+<a name="line-1837"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120328'</span><span class='layout'>,</span><span class='chr'>'\120353'</span><span class='layout'>)</span>
+<a name="line-1838"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120380'</span><span class='layout'>,</span><span class='chr'>'\120405'</span><span class='layout'>)</span>
+<a name="line-1839"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120432'</span><span class='layout'>,</span><span class='chr'>'\120457'</span><span class='layout'>)</span>
+<a name="line-1840"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120488'</span><span class='layout'>,</span><span class='chr'>'\120512'</span><span class='layout'>)</span>
+<a name="line-1841"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120546'</span><span class='layout'>,</span><span class='chr'>'\120570'</span><span class='layout'>)</span>
+<a name="line-1842"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120604'</span><span class='layout'>,</span><span class='chr'>'\120628'</span><span class='layout'>)</span>
+<a name="line-1843"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120662'</span><span class='layout'>,</span><span class='chr'>'\120686'</span><span class='layout'>)</span>
+<a name="line-1844"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120720'</span><span class='layout'>,</span><span class='chr'>'\120744'</span><span class='layout'>)</span>
+<a name="line-1845"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120778'</span><span class='layout'>,</span><span class='chr'>'\120778'</span><span class='layout'>)</span>
+<a name="line-1846"></a>    <span class='keyglyph'>]</span>
+<a name="line-1847"></a>
+<a name="line-1848"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1849"></a>
+<a name="line-1850"></a><a name="isUnicodeM"></a><span class='definition'>isUnicodeM</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1851"></a><span class='definition'>isUnicodeM</span> <span class='varid'>c</span>
+<a name="line-1852"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-1853"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\768'</span><span class='layout'>,</span><span class='chr'>'\879'</span><span class='layout'>)</span>
+<a name="line-1854"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1155'</span><span class='layout'>,</span><span class='chr'>'\1158'</span><span class='layout'>)</span>
+<a name="line-1855"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1160'</span><span class='layout'>,</span><span class='chr'>'\1161'</span><span class='layout'>)</span>
+<a name="line-1856"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1425'</span><span class='layout'>,</span><span class='chr'>'\1469'</span><span class='layout'>)</span>
+<a name="line-1857"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1471'</span><span class='layout'>,</span><span class='chr'>'\1471'</span><span class='layout'>)</span>
+<a name="line-1858"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1473'</span><span class='layout'>,</span><span class='chr'>'\1474'</span><span class='layout'>)</span>
+<a name="line-1859"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1476'</span><span class='layout'>,</span><span class='chr'>'\1477'</span><span class='layout'>)</span>
+<a name="line-1860"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1479'</span><span class='layout'>,</span><span class='chr'>'\1479'</span><span class='layout'>)</span>
+<a name="line-1861"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1552'</span><span class='layout'>,</span><span class='chr'>'\1557'</span><span class='layout'>)</span>
+<a name="line-1862"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1611'</span><span class='layout'>,</span><span class='chr'>'\1630'</span><span class='layout'>)</span>
+<a name="line-1863"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1648'</span><span class='layout'>,</span><span class='chr'>'\1648'</span><span class='layout'>)</span>
+<a name="line-1864"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1750'</span><span class='layout'>,</span><span class='chr'>'\1756'</span><span class='layout'>)</span>
+<a name="line-1865"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1758'</span><span class='layout'>,</span><span class='chr'>'\1764'</span><span class='layout'>)</span>
+<a name="line-1866"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1767'</span><span class='layout'>,</span><span class='chr'>'\1768'</span><span class='layout'>)</span>
+<a name="line-1867"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1770'</span><span class='layout'>,</span><span class='chr'>'\1773'</span><span class='layout'>)</span>
+<a name="line-1868"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1809'</span><span class='layout'>,</span><span class='chr'>'\1809'</span><span class='layout'>)</span>
+<a name="line-1869"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1840'</span><span class='layout'>,</span><span class='chr'>'\1866'</span><span class='layout'>)</span>
+<a name="line-1870"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1958'</span><span class='layout'>,</span><span class='chr'>'\1968'</span><span class='layout'>)</span>
+<a name="line-1871"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2027'</span><span class='layout'>,</span><span class='chr'>'\2035'</span><span class='layout'>)</span>
+<a name="line-1872"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2305'</span><span class='layout'>,</span><span class='chr'>'\2307'</span><span class='layout'>)</span>
+<a name="line-1873"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2364'</span><span class='layout'>,</span><span class='chr'>'\2364'</span><span class='layout'>)</span>
+<a name="line-1874"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2366'</span><span class='layout'>,</span><span class='chr'>'\2381'</span><span class='layout'>)</span>
+<a name="line-1875"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2385'</span><span class='layout'>,</span><span class='chr'>'\2388'</span><span class='layout'>)</span>
+<a name="line-1876"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2402'</span><span class='layout'>,</span><span class='chr'>'\2403'</span><span class='layout'>)</span>
+<a name="line-1877"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2433'</span><span class='layout'>,</span><span class='chr'>'\2435'</span><span class='layout'>)</span>
+<a name="line-1878"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2492'</span><span class='layout'>,</span><span class='chr'>'\2492'</span><span class='layout'>)</span>
+<a name="line-1879"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2494'</span><span class='layout'>,</span><span class='chr'>'\2500'</span><span class='layout'>)</span>
+<a name="line-1880"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2503'</span><span class='layout'>,</span><span class='chr'>'\2504'</span><span class='layout'>)</span>
+<a name="line-1881"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2507'</span><span class='layout'>,</span><span class='chr'>'\2509'</span><span class='layout'>)</span>
+<a name="line-1882"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2519'</span><span class='layout'>,</span><span class='chr'>'\2519'</span><span class='layout'>)</span>
+<a name="line-1883"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2530'</span><span class='layout'>,</span><span class='chr'>'\2531'</span><span class='layout'>)</span>
+<a name="line-1884"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2561'</span><span class='layout'>,</span><span class='chr'>'\2563'</span><span class='layout'>)</span>
+<a name="line-1885"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2620'</span><span class='layout'>,</span><span class='chr'>'\2620'</span><span class='layout'>)</span>
+<a name="line-1886"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2622'</span><span class='layout'>,</span><span class='chr'>'\2626'</span><span class='layout'>)</span>
+<a name="line-1887"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2631'</span><span class='layout'>,</span><span class='chr'>'\2632'</span><span class='layout'>)</span>
+<a name="line-1888"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2635'</span><span class='layout'>,</span><span class='chr'>'\2637'</span><span class='layout'>)</span>
+<a name="line-1889"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2672'</span><span class='layout'>,</span><span class='chr'>'\2673'</span><span class='layout'>)</span>
+<a name="line-1890"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2689'</span><span class='layout'>,</span><span class='chr'>'\2691'</span><span class='layout'>)</span>
+<a name="line-1891"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2748'</span><span class='layout'>,</span><span class='chr'>'\2748'</span><span class='layout'>)</span>
+<a name="line-1892"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2750'</span><span class='layout'>,</span><span class='chr'>'\2757'</span><span class='layout'>)</span>
+<a name="line-1893"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2759'</span><span class='layout'>,</span><span class='chr'>'\2761'</span><span class='layout'>)</span>
+<a name="line-1894"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2763'</span><span class='layout'>,</span><span class='chr'>'\2765'</span><span class='layout'>)</span>
+<a name="line-1895"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2786'</span><span class='layout'>,</span><span class='chr'>'\2787'</span><span class='layout'>)</span>
+<a name="line-1896"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2817'</span><span class='layout'>,</span><span class='chr'>'\2819'</span><span class='layout'>)</span>
+<a name="line-1897"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2876'</span><span class='layout'>,</span><span class='chr'>'\2876'</span><span class='layout'>)</span>
+<a name="line-1898"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2878'</span><span class='layout'>,</span><span class='chr'>'\2883'</span><span class='layout'>)</span>
+<a name="line-1899"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2887'</span><span class='layout'>,</span><span class='chr'>'\2888'</span><span class='layout'>)</span>
+<a name="line-1900"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2891'</span><span class='layout'>,</span><span class='chr'>'\2893'</span><span class='layout'>)</span>
+<a name="line-1901"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2902'</span><span class='layout'>,</span><span class='chr'>'\2903'</span><span class='layout'>)</span>
+<a name="line-1902"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2946'</span><span class='layout'>,</span><span class='chr'>'\2946'</span><span class='layout'>)</span>
+<a name="line-1903"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3006'</span><span class='layout'>,</span><span class='chr'>'\3010'</span><span class='layout'>)</span>
+<a name="line-1904"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3014'</span><span class='layout'>,</span><span class='chr'>'\3016'</span><span class='layout'>)</span>
+<a name="line-1905"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3018'</span><span class='layout'>,</span><span class='chr'>'\3021'</span><span class='layout'>)</span>
+<a name="line-1906"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3031'</span><span class='layout'>,</span><span class='chr'>'\3031'</span><span class='layout'>)</span>
+<a name="line-1907"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3073'</span><span class='layout'>,</span><span class='chr'>'\3075'</span><span class='layout'>)</span>
+<a name="line-1908"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3134'</span><span class='layout'>,</span><span class='chr'>'\3140'</span><span class='layout'>)</span>
+<a name="line-1909"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3142'</span><span class='layout'>,</span><span class='chr'>'\3144'</span><span class='layout'>)</span>
+<a name="line-1910"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3146'</span><span class='layout'>,</span><span class='chr'>'\3149'</span><span class='layout'>)</span>
+<a name="line-1911"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3157'</span><span class='layout'>,</span><span class='chr'>'\3158'</span><span class='layout'>)</span>
+<a name="line-1912"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3202'</span><span class='layout'>,</span><span class='chr'>'\3203'</span><span class='layout'>)</span>
+<a name="line-1913"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3260'</span><span class='layout'>,</span><span class='chr'>'\3260'</span><span class='layout'>)</span>
+<a name="line-1914"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3262'</span><span class='layout'>,</span><span class='chr'>'\3268'</span><span class='layout'>)</span>
+<a name="line-1915"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3270'</span><span class='layout'>,</span><span class='chr'>'\3272'</span><span class='layout'>)</span>
+<a name="line-1916"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3274'</span><span class='layout'>,</span><span class='chr'>'\3277'</span><span class='layout'>)</span>
+<a name="line-1917"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3285'</span><span class='layout'>,</span><span class='chr'>'\3286'</span><span class='layout'>)</span>
+<a name="line-1918"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3298'</span><span class='layout'>,</span><span class='chr'>'\3299'</span><span class='layout'>)</span>
+<a name="line-1919"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3330'</span><span class='layout'>,</span><span class='chr'>'\3331'</span><span class='layout'>)</span>
+<a name="line-1920"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3390'</span><span class='layout'>,</span><span class='chr'>'\3395'</span><span class='layout'>)</span>
+<a name="line-1921"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3398'</span><span class='layout'>,</span><span class='chr'>'\3400'</span><span class='layout'>)</span>
+<a name="line-1922"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3402'</span><span class='layout'>,</span><span class='chr'>'\3405'</span><span class='layout'>)</span>
+<a name="line-1923"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3415'</span><span class='layout'>,</span><span class='chr'>'\3415'</span><span class='layout'>)</span>
+<a name="line-1924"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3458'</span><span class='layout'>,</span><span class='chr'>'\3459'</span><span class='layout'>)</span>
+<a name="line-1925"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3530'</span><span class='layout'>,</span><span class='chr'>'\3530'</span><span class='layout'>)</span>
+<a name="line-1926"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3535'</span><span class='layout'>,</span><span class='chr'>'\3540'</span><span class='layout'>)</span>
+<a name="line-1927"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3542'</span><span class='layout'>,</span><span class='chr'>'\3542'</span><span class='layout'>)</span>
+<a name="line-1928"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3544'</span><span class='layout'>,</span><span class='chr'>'\3551'</span><span class='layout'>)</span>
+<a name="line-1929"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3570'</span><span class='layout'>,</span><span class='chr'>'\3571'</span><span class='layout'>)</span>
+<a name="line-1930"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3633'</span><span class='layout'>,</span><span class='chr'>'\3633'</span><span class='layout'>)</span>
+<a name="line-1931"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3636'</span><span class='layout'>,</span><span class='chr'>'\3642'</span><span class='layout'>)</span>
+<a name="line-1932"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3655'</span><span class='layout'>,</span><span class='chr'>'\3662'</span><span class='layout'>)</span>
+<a name="line-1933"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3761'</span><span class='layout'>,</span><span class='chr'>'\3761'</span><span class='layout'>)</span>
+<a name="line-1934"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3764'</span><span class='layout'>,</span><span class='chr'>'\3769'</span><span class='layout'>)</span>
+<a name="line-1935"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3771'</span><span class='layout'>,</span><span class='chr'>'\3772'</span><span class='layout'>)</span>
+<a name="line-1936"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3784'</span><span class='layout'>,</span><span class='chr'>'\3789'</span><span class='layout'>)</span>
+<a name="line-1937"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3864'</span><span class='layout'>,</span><span class='chr'>'\3865'</span><span class='layout'>)</span>
+<a name="line-1938"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3893'</span><span class='layout'>,</span><span class='chr'>'\3893'</span><span class='layout'>)</span>
+<a name="line-1939"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3895'</span><span class='layout'>,</span><span class='chr'>'\3895'</span><span class='layout'>)</span>
+<a name="line-1940"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3897'</span><span class='layout'>,</span><span class='chr'>'\3897'</span><span class='layout'>)</span>
+<a name="line-1941"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3902'</span><span class='layout'>,</span><span class='chr'>'\3903'</span><span class='layout'>)</span>
+<a name="line-1942"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3953'</span><span class='layout'>,</span><span class='chr'>'\3972'</span><span class='layout'>)</span>
+<a name="line-1943"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3974'</span><span class='layout'>,</span><span class='chr'>'\3975'</span><span class='layout'>)</span>
+<a name="line-1944"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3984'</span><span class='layout'>,</span><span class='chr'>'\3991'</span><span class='layout'>)</span>
+<a name="line-1945"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3993'</span><span class='layout'>,</span><span class='chr'>'\4028'</span><span class='layout'>)</span>
+<a name="line-1946"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4038'</span><span class='layout'>,</span><span class='chr'>'\4038'</span><span class='layout'>)</span>
+<a name="line-1947"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4140'</span><span class='layout'>,</span><span class='chr'>'\4146'</span><span class='layout'>)</span>
+<a name="line-1948"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4150'</span><span class='layout'>,</span><span class='chr'>'\4153'</span><span class='layout'>)</span>
+<a name="line-1949"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4182'</span><span class='layout'>,</span><span class='chr'>'\4185'</span><span class='layout'>)</span>
+<a name="line-1950"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4959'</span><span class='layout'>,</span><span class='chr'>'\4959'</span><span class='layout'>)</span>
+<a name="line-1951"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5906'</span><span class='layout'>,</span><span class='chr'>'\5908'</span><span class='layout'>)</span>
+<a name="line-1952"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5938'</span><span class='layout'>,</span><span class='chr'>'\5940'</span><span class='layout'>)</span>
+<a name="line-1953"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5970'</span><span class='layout'>,</span><span class='chr'>'\5971'</span><span class='layout'>)</span>
+<a name="line-1954"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6002'</span><span class='layout'>,</span><span class='chr'>'\6003'</span><span class='layout'>)</span>
+<a name="line-1955"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6070'</span><span class='layout'>,</span><span class='chr'>'\6099'</span><span class='layout'>)</span>
+<a name="line-1956"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6109'</span><span class='layout'>,</span><span class='chr'>'\6109'</span><span class='layout'>)</span>
+<a name="line-1957"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6155'</span><span class='layout'>,</span><span class='chr'>'\6157'</span><span class='layout'>)</span>
+<a name="line-1958"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6313'</span><span class='layout'>,</span><span class='chr'>'\6313'</span><span class='layout'>)</span>
+<a name="line-1959"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6432'</span><span class='layout'>,</span><span class='chr'>'\6443'</span><span class='layout'>)</span>
+<a name="line-1960"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6448'</span><span class='layout'>,</span><span class='chr'>'\6459'</span><span class='layout'>)</span>
+<a name="line-1961"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6576'</span><span class='layout'>,</span><span class='chr'>'\6592'</span><span class='layout'>)</span>
+<a name="line-1962"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6600'</span><span class='layout'>,</span><span class='chr'>'\6601'</span><span class='layout'>)</span>
+<a name="line-1963"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6679'</span><span class='layout'>,</span><span class='chr'>'\6683'</span><span class='layout'>)</span>
+<a name="line-1964"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6912'</span><span class='layout'>,</span><span class='chr'>'\6916'</span><span class='layout'>)</span>
+<a name="line-1965"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6964'</span><span class='layout'>,</span><span class='chr'>'\6980'</span><span class='layout'>)</span>
+<a name="line-1966"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7019'</span><span class='layout'>,</span><span class='chr'>'\7027'</span><span class='layout'>)</span>
+<a name="line-1967"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7616'</span><span class='layout'>,</span><span class='chr'>'\7626'</span><span class='layout'>)</span>
+<a name="line-1968"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7678'</span><span class='layout'>,</span><span class='chr'>'\7679'</span><span class='layout'>)</span>
+<a name="line-1969"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8400'</span><span class='layout'>,</span><span class='chr'>'\8431'</span><span class='layout'>)</span>
+<a name="line-1970"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12330'</span><span class='layout'>,</span><span class='chr'>'\12335'</span><span class='layout'>)</span>
+<a name="line-1971"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12441'</span><span class='layout'>,</span><span class='chr'>'\12442'</span><span class='layout'>)</span>
+<a name="line-1972"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43010'</span><span class='layout'>,</span><span class='chr'>'\43010'</span><span class='layout'>)</span>
+<a name="line-1973"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43014'</span><span class='layout'>,</span><span class='chr'>'\43014'</span><span class='layout'>)</span>
+<a name="line-1974"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43019'</span><span class='layout'>,</span><span class='chr'>'\43019'</span><span class='layout'>)</span>
+<a name="line-1975"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43043'</span><span class='layout'>,</span><span class='chr'>'\43047'</span><span class='layout'>)</span>
+<a name="line-1976"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64286'</span><span class='layout'>,</span><span class='chr'>'\64286'</span><span class='layout'>)</span>
+<a name="line-1977"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65024'</span><span class='layout'>,</span><span class='chr'>'\65039'</span><span class='layout'>)</span>
+<a name="line-1978"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65056'</span><span class='layout'>,</span><span class='chr'>'\65059'</span><span class='layout'>)</span>
+<a name="line-1979"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68097'</span><span class='layout'>,</span><span class='chr'>'\68099'</span><span class='layout'>)</span>
+<a name="line-1980"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68101'</span><span class='layout'>,</span><span class='chr'>'\68102'</span><span class='layout'>)</span>
+<a name="line-1981"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68108'</span><span class='layout'>,</span><span class='chr'>'\68111'</span><span class='layout'>)</span>
+<a name="line-1982"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68152'</span><span class='layout'>,</span><span class='chr'>'\68154'</span><span class='layout'>)</span>
+<a name="line-1983"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68159'</span><span class='layout'>,</span><span class='chr'>'\68159'</span><span class='layout'>)</span>
+<a name="line-1984"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119141'</span><span class='layout'>,</span><span class='chr'>'\119145'</span><span class='layout'>)</span>
+<a name="line-1985"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119149'</span><span class='layout'>,</span><span class='chr'>'\119154'</span><span class='layout'>)</span>
+<a name="line-1986"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119163'</span><span class='layout'>,</span><span class='chr'>'\119170'</span><span class='layout'>)</span>
+<a name="line-1987"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119173'</span><span class='layout'>,</span><span class='chr'>'\119179'</span><span class='layout'>)</span>
+<a name="line-1988"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119210'</span><span class='layout'>,</span><span class='chr'>'\119213'</span><span class='layout'>)</span>
+<a name="line-1989"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119362'</span><span class='layout'>,</span><span class='chr'>'\119364'</span><span class='layout'>)</span>
+<a name="line-1990"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917760'</span><span class='layout'>,</span><span class='chr'>'\917999'</span><span class='layout'>)</span>
+<a name="line-1991"></a>    <span class='keyglyph'>]</span>
+<a name="line-1992"></a>
+<a name="line-1993"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-1994"></a>
+<a name="line-1995"></a><a name="isUnicodeMc"></a><span class='definition'>isUnicodeMc</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-1996"></a><span class='definition'>isUnicodeMc</span> <span class='varid'>c</span>
+<a name="line-1997"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-1998"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\2307'</span><span class='layout'>,</span><span class='chr'>'\2307'</span><span class='layout'>)</span>
+<a name="line-1999"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2366'</span><span class='layout'>,</span><span class='chr'>'\2368'</span><span class='layout'>)</span>
+<a name="line-2000"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2377'</span><span class='layout'>,</span><span class='chr'>'\2380'</span><span class='layout'>)</span>
+<a name="line-2001"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2434'</span><span class='layout'>,</span><span class='chr'>'\2435'</span><span class='layout'>)</span>
+<a name="line-2002"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2494'</span><span class='layout'>,</span><span class='chr'>'\2496'</span><span class='layout'>)</span>
+<a name="line-2003"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2503'</span><span class='layout'>,</span><span class='chr'>'\2504'</span><span class='layout'>)</span>
+<a name="line-2004"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2507'</span><span class='layout'>,</span><span class='chr'>'\2508'</span><span class='layout'>)</span>
+<a name="line-2005"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2519'</span><span class='layout'>,</span><span class='chr'>'\2519'</span><span class='layout'>)</span>
+<a name="line-2006"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2563'</span><span class='layout'>,</span><span class='chr'>'\2563'</span><span class='layout'>)</span>
+<a name="line-2007"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2622'</span><span class='layout'>,</span><span class='chr'>'\2624'</span><span class='layout'>)</span>
+<a name="line-2008"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2691'</span><span class='layout'>,</span><span class='chr'>'\2691'</span><span class='layout'>)</span>
+<a name="line-2009"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2750'</span><span class='layout'>,</span><span class='chr'>'\2752'</span><span class='layout'>)</span>
+<a name="line-2010"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2761'</span><span class='layout'>,</span><span class='chr'>'\2761'</span><span class='layout'>)</span>
+<a name="line-2011"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2763'</span><span class='layout'>,</span><span class='chr'>'\2764'</span><span class='layout'>)</span>
+<a name="line-2012"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2818'</span><span class='layout'>,</span><span class='chr'>'\2819'</span><span class='layout'>)</span>
+<a name="line-2013"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2878'</span><span class='layout'>,</span><span class='chr'>'\2878'</span><span class='layout'>)</span>
+<a name="line-2014"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2880'</span><span class='layout'>,</span><span class='chr'>'\2880'</span><span class='layout'>)</span>
+<a name="line-2015"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2887'</span><span class='layout'>,</span><span class='chr'>'\2888'</span><span class='layout'>)</span>
+<a name="line-2016"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2891'</span><span class='layout'>,</span><span class='chr'>'\2892'</span><span class='layout'>)</span>
+<a name="line-2017"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2903'</span><span class='layout'>,</span><span class='chr'>'\2903'</span><span class='layout'>)</span>
+<a name="line-2018"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3006'</span><span class='layout'>,</span><span class='chr'>'\3007'</span><span class='layout'>)</span>
+<a name="line-2019"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3009'</span><span class='layout'>,</span><span class='chr'>'\3010'</span><span class='layout'>)</span>
+<a name="line-2020"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3014'</span><span class='layout'>,</span><span class='chr'>'\3016'</span><span class='layout'>)</span>
+<a name="line-2021"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3018'</span><span class='layout'>,</span><span class='chr'>'\3020'</span><span class='layout'>)</span>
+<a name="line-2022"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3031'</span><span class='layout'>,</span><span class='chr'>'\3031'</span><span class='layout'>)</span>
+<a name="line-2023"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3073'</span><span class='layout'>,</span><span class='chr'>'\3075'</span><span class='layout'>)</span>
+<a name="line-2024"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3137'</span><span class='layout'>,</span><span class='chr'>'\3140'</span><span class='layout'>)</span>
+<a name="line-2025"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3202'</span><span class='layout'>,</span><span class='chr'>'\3203'</span><span class='layout'>)</span>
+<a name="line-2026"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3262'</span><span class='layout'>,</span><span class='chr'>'\3262'</span><span class='layout'>)</span>
+<a name="line-2027"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3264'</span><span class='layout'>,</span><span class='chr'>'\3268'</span><span class='layout'>)</span>
+<a name="line-2028"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3271'</span><span class='layout'>,</span><span class='chr'>'\3272'</span><span class='layout'>)</span>
+<a name="line-2029"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3274'</span><span class='layout'>,</span><span class='chr'>'\3275'</span><span class='layout'>)</span>
+<a name="line-2030"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3285'</span><span class='layout'>,</span><span class='chr'>'\3286'</span><span class='layout'>)</span>
+<a name="line-2031"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3330'</span><span class='layout'>,</span><span class='chr'>'\3331'</span><span class='layout'>)</span>
+<a name="line-2032"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3390'</span><span class='layout'>,</span><span class='chr'>'\3392'</span><span class='layout'>)</span>
+<a name="line-2033"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3398'</span><span class='layout'>,</span><span class='chr'>'\3400'</span><span class='layout'>)</span>
+<a name="line-2034"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3402'</span><span class='layout'>,</span><span class='chr'>'\3404'</span><span class='layout'>)</span>
+<a name="line-2035"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3415'</span><span class='layout'>,</span><span class='chr'>'\3415'</span><span class='layout'>)</span>
+<a name="line-2036"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3458'</span><span class='layout'>,</span><span class='chr'>'\3459'</span><span class='layout'>)</span>
+<a name="line-2037"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3535'</span><span class='layout'>,</span><span class='chr'>'\3537'</span><span class='layout'>)</span>
+<a name="line-2038"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3544'</span><span class='layout'>,</span><span class='chr'>'\3551'</span><span class='layout'>)</span>
+<a name="line-2039"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3570'</span><span class='layout'>,</span><span class='chr'>'\3571'</span><span class='layout'>)</span>
+<a name="line-2040"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3902'</span><span class='layout'>,</span><span class='chr'>'\3903'</span><span class='layout'>)</span>
+<a name="line-2041"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3967'</span><span class='layout'>,</span><span class='chr'>'\3967'</span><span class='layout'>)</span>
+<a name="line-2042"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4140'</span><span class='layout'>,</span><span class='chr'>'\4140'</span><span class='layout'>)</span>
+<a name="line-2043"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4145'</span><span class='layout'>,</span><span class='chr'>'\4145'</span><span class='layout'>)</span>
+<a name="line-2044"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4152'</span><span class='layout'>,</span><span class='chr'>'\4152'</span><span class='layout'>)</span>
+<a name="line-2045"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4182'</span><span class='layout'>,</span><span class='chr'>'\4183'</span><span class='layout'>)</span>
+<a name="line-2046"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6070'</span><span class='layout'>,</span><span class='chr'>'\6070'</span><span class='layout'>)</span>
+<a name="line-2047"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6078'</span><span class='layout'>,</span><span class='chr'>'\6085'</span><span class='layout'>)</span>
+<a name="line-2048"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6087'</span><span class='layout'>,</span><span class='chr'>'\6088'</span><span class='layout'>)</span>
+<a name="line-2049"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6435'</span><span class='layout'>,</span><span class='chr'>'\6438'</span><span class='layout'>)</span>
+<a name="line-2050"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6441'</span><span class='layout'>,</span><span class='chr'>'\6443'</span><span class='layout'>)</span>
+<a name="line-2051"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6448'</span><span class='layout'>,</span><span class='chr'>'\6449'</span><span class='layout'>)</span>
+<a name="line-2052"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6451'</span><span class='layout'>,</span><span class='chr'>'\6456'</span><span class='layout'>)</span>
+<a name="line-2053"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6576'</span><span class='layout'>,</span><span class='chr'>'\6592'</span><span class='layout'>)</span>
+<a name="line-2054"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6600'</span><span class='layout'>,</span><span class='chr'>'\6601'</span><span class='layout'>)</span>
+<a name="line-2055"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6681'</span><span class='layout'>,</span><span class='chr'>'\6683'</span><span class='layout'>)</span>
+<a name="line-2056"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6916'</span><span class='layout'>,</span><span class='chr'>'\6916'</span><span class='layout'>)</span>
+<a name="line-2057"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6965'</span><span class='layout'>,</span><span class='chr'>'\6965'</span><span class='layout'>)</span>
+<a name="line-2058"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6971'</span><span class='layout'>,</span><span class='chr'>'\6971'</span><span class='layout'>)</span>
+<a name="line-2059"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6973'</span><span class='layout'>,</span><span class='chr'>'\6977'</span><span class='layout'>)</span>
+<a name="line-2060"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6979'</span><span class='layout'>,</span><span class='chr'>'\6980'</span><span class='layout'>)</span>
+<a name="line-2061"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43010'</span><span class='layout'>,</span><span class='chr'>'\43010'</span><span class='layout'>)</span>
+<a name="line-2062"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43043'</span><span class='layout'>,</span><span class='chr'>'\43044'</span><span class='layout'>)</span>
+<a name="line-2063"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43047'</span><span class='layout'>,</span><span class='chr'>'\43047'</span><span class='layout'>)</span>
+<a name="line-2064"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119141'</span><span class='layout'>,</span><span class='chr'>'\119142'</span><span class='layout'>)</span>
+<a name="line-2065"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119149'</span><span class='layout'>,</span><span class='chr'>'\119154'</span><span class='layout'>)</span>
+<a name="line-2066"></a>    <span class='keyglyph'>]</span>
+<a name="line-2067"></a>
+<a name="line-2068"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2069"></a>
+<a name="line-2070"></a><a name="isUnicodeMe"></a><span class='definition'>isUnicodeMe</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2071"></a><span class='definition'>isUnicodeMe</span> <span class='varid'>c</span>
+<a name="line-2072"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2073"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\1160'</span><span class='layout'>,</span><span class='chr'>'\1161'</span><span class='layout'>)</span>
+<a name="line-2074"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1758'</span><span class='layout'>,</span><span class='chr'>'\1758'</span><span class='layout'>)</span>
+<a name="line-2075"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8413'</span><span class='layout'>,</span><span class='chr'>'\8416'</span><span class='layout'>)</span>
+<a name="line-2076"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8418'</span><span class='layout'>,</span><span class='chr'>'\8420'</span><span class='layout'>)</span>
+<a name="line-2077"></a>    <span class='keyglyph'>]</span>
+<a name="line-2078"></a>
+<a name="line-2079"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2080"></a>
+<a name="line-2081"></a><a name="isUnicodeMn"></a><span class='definition'>isUnicodeMn</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2082"></a><span class='definition'>isUnicodeMn</span> <span class='varid'>c</span>
+<a name="line-2083"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2084"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\768'</span><span class='layout'>,</span><span class='chr'>'\879'</span><span class='layout'>)</span>
+<a name="line-2085"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1155'</span><span class='layout'>,</span><span class='chr'>'\1158'</span><span class='layout'>)</span>
+<a name="line-2086"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1425'</span><span class='layout'>,</span><span class='chr'>'\1469'</span><span class='layout'>)</span>
+<a name="line-2087"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1471'</span><span class='layout'>,</span><span class='chr'>'\1471'</span><span class='layout'>)</span>
+<a name="line-2088"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1473'</span><span class='layout'>,</span><span class='chr'>'\1474'</span><span class='layout'>)</span>
+<a name="line-2089"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1476'</span><span class='layout'>,</span><span class='chr'>'\1477'</span><span class='layout'>)</span>
+<a name="line-2090"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1479'</span><span class='layout'>,</span><span class='chr'>'\1479'</span><span class='layout'>)</span>
+<a name="line-2091"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1552'</span><span class='layout'>,</span><span class='chr'>'\1557'</span><span class='layout'>)</span>
+<a name="line-2092"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1611'</span><span class='layout'>,</span><span class='chr'>'\1630'</span><span class='layout'>)</span>
+<a name="line-2093"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1648'</span><span class='layout'>,</span><span class='chr'>'\1648'</span><span class='layout'>)</span>
+<a name="line-2094"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1750'</span><span class='layout'>,</span><span class='chr'>'\1756'</span><span class='layout'>)</span>
+<a name="line-2095"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1759'</span><span class='layout'>,</span><span class='chr'>'\1764'</span><span class='layout'>)</span>
+<a name="line-2096"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1767'</span><span class='layout'>,</span><span class='chr'>'\1768'</span><span class='layout'>)</span>
+<a name="line-2097"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1770'</span><span class='layout'>,</span><span class='chr'>'\1773'</span><span class='layout'>)</span>
+<a name="line-2098"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1809'</span><span class='layout'>,</span><span class='chr'>'\1809'</span><span class='layout'>)</span>
+<a name="line-2099"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1840'</span><span class='layout'>,</span><span class='chr'>'\1866'</span><span class='layout'>)</span>
+<a name="line-2100"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1958'</span><span class='layout'>,</span><span class='chr'>'\1968'</span><span class='layout'>)</span>
+<a name="line-2101"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2027'</span><span class='layout'>,</span><span class='chr'>'\2035'</span><span class='layout'>)</span>
+<a name="line-2102"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2305'</span><span class='layout'>,</span><span class='chr'>'\2306'</span><span class='layout'>)</span>
+<a name="line-2103"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2364'</span><span class='layout'>,</span><span class='chr'>'\2364'</span><span class='layout'>)</span>
+<a name="line-2104"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2369'</span><span class='layout'>,</span><span class='chr'>'\2376'</span><span class='layout'>)</span>
+<a name="line-2105"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2381'</span><span class='layout'>,</span><span class='chr'>'\2381'</span><span class='layout'>)</span>
+<a name="line-2106"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2385'</span><span class='layout'>,</span><span class='chr'>'\2388'</span><span class='layout'>)</span>
+<a name="line-2107"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2402'</span><span class='layout'>,</span><span class='chr'>'\2403'</span><span class='layout'>)</span>
+<a name="line-2108"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2433'</span><span class='layout'>,</span><span class='chr'>'\2433'</span><span class='layout'>)</span>
+<a name="line-2109"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2492'</span><span class='layout'>,</span><span class='chr'>'\2492'</span><span class='layout'>)</span>
+<a name="line-2110"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2497'</span><span class='layout'>,</span><span class='chr'>'\2500'</span><span class='layout'>)</span>
+<a name="line-2111"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2509'</span><span class='layout'>,</span><span class='chr'>'\2509'</span><span class='layout'>)</span>
+<a name="line-2112"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2530'</span><span class='layout'>,</span><span class='chr'>'\2531'</span><span class='layout'>)</span>
+<a name="line-2113"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2561'</span><span class='layout'>,</span><span class='chr'>'\2562'</span><span class='layout'>)</span>
+<a name="line-2114"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2620'</span><span class='layout'>,</span><span class='chr'>'\2620'</span><span class='layout'>)</span>
+<a name="line-2115"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2625'</span><span class='layout'>,</span><span class='chr'>'\2626'</span><span class='layout'>)</span>
+<a name="line-2116"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2631'</span><span class='layout'>,</span><span class='chr'>'\2632'</span><span class='layout'>)</span>
+<a name="line-2117"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2635'</span><span class='layout'>,</span><span class='chr'>'\2637'</span><span class='layout'>)</span>
+<a name="line-2118"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2672'</span><span class='layout'>,</span><span class='chr'>'\2673'</span><span class='layout'>)</span>
+<a name="line-2119"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2689'</span><span class='layout'>,</span><span class='chr'>'\2690'</span><span class='layout'>)</span>
+<a name="line-2120"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2748'</span><span class='layout'>,</span><span class='chr'>'\2748'</span><span class='layout'>)</span>
+<a name="line-2121"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2753'</span><span class='layout'>,</span><span class='chr'>'\2757'</span><span class='layout'>)</span>
+<a name="line-2122"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2759'</span><span class='layout'>,</span><span class='chr'>'\2760'</span><span class='layout'>)</span>
+<a name="line-2123"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2765'</span><span class='layout'>,</span><span class='chr'>'\2765'</span><span class='layout'>)</span>
+<a name="line-2124"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2786'</span><span class='layout'>,</span><span class='chr'>'\2787'</span><span class='layout'>)</span>
+<a name="line-2125"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2817'</span><span class='layout'>,</span><span class='chr'>'\2817'</span><span class='layout'>)</span>
+<a name="line-2126"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2876'</span><span class='layout'>,</span><span class='chr'>'\2876'</span><span class='layout'>)</span>
+<a name="line-2127"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2879'</span><span class='layout'>,</span><span class='chr'>'\2879'</span><span class='layout'>)</span>
+<a name="line-2128"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2881'</span><span class='layout'>,</span><span class='chr'>'\2883'</span><span class='layout'>)</span>
+<a name="line-2129"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2893'</span><span class='layout'>,</span><span class='chr'>'\2893'</span><span class='layout'>)</span>
+<a name="line-2130"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2902'</span><span class='layout'>,</span><span class='chr'>'\2902'</span><span class='layout'>)</span>
+<a name="line-2131"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2946'</span><span class='layout'>,</span><span class='chr'>'\2946'</span><span class='layout'>)</span>
+<a name="line-2132"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3008'</span><span class='layout'>,</span><span class='chr'>'\3008'</span><span class='layout'>)</span>
+<a name="line-2133"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3021'</span><span class='layout'>,</span><span class='chr'>'\3021'</span><span class='layout'>)</span>
+<a name="line-2134"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3134'</span><span class='layout'>,</span><span class='chr'>'\3136'</span><span class='layout'>)</span>
+<a name="line-2135"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3142'</span><span class='layout'>,</span><span class='chr'>'\3144'</span><span class='layout'>)</span>
+<a name="line-2136"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3146'</span><span class='layout'>,</span><span class='chr'>'\3149'</span><span class='layout'>)</span>
+<a name="line-2137"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3157'</span><span class='layout'>,</span><span class='chr'>'\3158'</span><span class='layout'>)</span>
+<a name="line-2138"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3260'</span><span class='layout'>,</span><span class='chr'>'\3260'</span><span class='layout'>)</span>
+<a name="line-2139"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3263'</span><span class='layout'>,</span><span class='chr'>'\3263'</span><span class='layout'>)</span>
+<a name="line-2140"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3270'</span><span class='layout'>,</span><span class='chr'>'\3270'</span><span class='layout'>)</span>
+<a name="line-2141"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3276'</span><span class='layout'>,</span><span class='chr'>'\3277'</span><span class='layout'>)</span>
+<a name="line-2142"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3298'</span><span class='layout'>,</span><span class='chr'>'\3299'</span><span class='layout'>)</span>
+<a name="line-2143"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3393'</span><span class='layout'>,</span><span class='chr'>'\3395'</span><span class='layout'>)</span>
+<a name="line-2144"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3405'</span><span class='layout'>,</span><span class='chr'>'\3405'</span><span class='layout'>)</span>
+<a name="line-2145"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3530'</span><span class='layout'>,</span><span class='chr'>'\3530'</span><span class='layout'>)</span>
+<a name="line-2146"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3538'</span><span class='layout'>,</span><span class='chr'>'\3540'</span><span class='layout'>)</span>
+<a name="line-2147"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3542'</span><span class='layout'>,</span><span class='chr'>'\3542'</span><span class='layout'>)</span>
+<a name="line-2148"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3633'</span><span class='layout'>,</span><span class='chr'>'\3633'</span><span class='layout'>)</span>
+<a name="line-2149"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3636'</span><span class='layout'>,</span><span class='chr'>'\3642'</span><span class='layout'>)</span>
+<a name="line-2150"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3655'</span><span class='layout'>,</span><span class='chr'>'\3662'</span><span class='layout'>)</span>
+<a name="line-2151"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3761'</span><span class='layout'>,</span><span class='chr'>'\3761'</span><span class='layout'>)</span>
+<a name="line-2152"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3764'</span><span class='layout'>,</span><span class='chr'>'\3769'</span><span class='layout'>)</span>
+<a name="line-2153"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3771'</span><span class='layout'>,</span><span class='chr'>'\3772'</span><span class='layout'>)</span>
+<a name="line-2154"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3784'</span><span class='layout'>,</span><span class='chr'>'\3789'</span><span class='layout'>)</span>
+<a name="line-2155"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3864'</span><span class='layout'>,</span><span class='chr'>'\3865'</span><span class='layout'>)</span>
+<a name="line-2156"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3893'</span><span class='layout'>,</span><span class='chr'>'\3893'</span><span class='layout'>)</span>
+<a name="line-2157"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3895'</span><span class='layout'>,</span><span class='chr'>'\3895'</span><span class='layout'>)</span>
+<a name="line-2158"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3897'</span><span class='layout'>,</span><span class='chr'>'\3897'</span><span class='layout'>)</span>
+<a name="line-2159"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3953'</span><span class='layout'>,</span><span class='chr'>'\3966'</span><span class='layout'>)</span>
+<a name="line-2160"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3968'</span><span class='layout'>,</span><span class='chr'>'\3972'</span><span class='layout'>)</span>
+<a name="line-2161"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3974'</span><span class='layout'>,</span><span class='chr'>'\3975'</span><span class='layout'>)</span>
+<a name="line-2162"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3984'</span><span class='layout'>,</span><span class='chr'>'\3991'</span><span class='layout'>)</span>
+<a name="line-2163"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3993'</span><span class='layout'>,</span><span class='chr'>'\4028'</span><span class='layout'>)</span>
+<a name="line-2164"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4038'</span><span class='layout'>,</span><span class='chr'>'\4038'</span><span class='layout'>)</span>
+<a name="line-2165"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4141'</span><span class='layout'>,</span><span class='chr'>'\4144'</span><span class='layout'>)</span>
+<a name="line-2166"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4146'</span><span class='layout'>,</span><span class='chr'>'\4146'</span><span class='layout'>)</span>
+<a name="line-2167"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4150'</span><span class='layout'>,</span><span class='chr'>'\4151'</span><span class='layout'>)</span>
+<a name="line-2168"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4153'</span><span class='layout'>,</span><span class='chr'>'\4153'</span><span class='layout'>)</span>
+<a name="line-2169"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4184'</span><span class='layout'>,</span><span class='chr'>'\4185'</span><span class='layout'>)</span>
+<a name="line-2170"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4959'</span><span class='layout'>,</span><span class='chr'>'\4959'</span><span class='layout'>)</span>
+<a name="line-2171"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5906'</span><span class='layout'>,</span><span class='chr'>'\5908'</span><span class='layout'>)</span>
+<a name="line-2172"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5938'</span><span class='layout'>,</span><span class='chr'>'\5940'</span><span class='layout'>)</span>
+<a name="line-2173"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5970'</span><span class='layout'>,</span><span class='chr'>'\5971'</span><span class='layout'>)</span>
+<a name="line-2174"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6002'</span><span class='layout'>,</span><span class='chr'>'\6003'</span><span class='layout'>)</span>
+<a name="line-2175"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6071'</span><span class='layout'>,</span><span class='chr'>'\6077'</span><span class='layout'>)</span>
+<a name="line-2176"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6086'</span><span class='layout'>,</span><span class='chr'>'\6086'</span><span class='layout'>)</span>
+<a name="line-2177"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6089'</span><span class='layout'>,</span><span class='chr'>'\6099'</span><span class='layout'>)</span>
+<a name="line-2178"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6109'</span><span class='layout'>,</span><span class='chr'>'\6109'</span><span class='layout'>)</span>
+<a name="line-2179"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6155'</span><span class='layout'>,</span><span class='chr'>'\6157'</span><span class='layout'>)</span>
+<a name="line-2180"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6313'</span><span class='layout'>,</span><span class='chr'>'\6313'</span><span class='layout'>)</span>
+<a name="line-2181"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6432'</span><span class='layout'>,</span><span class='chr'>'\6434'</span><span class='layout'>)</span>
+<a name="line-2182"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6439'</span><span class='layout'>,</span><span class='chr'>'\6440'</span><span class='layout'>)</span>
+<a name="line-2183"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6450'</span><span class='layout'>,</span><span class='chr'>'\6450'</span><span class='layout'>)</span>
+<a name="line-2184"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6457'</span><span class='layout'>,</span><span class='chr'>'\6459'</span><span class='layout'>)</span>
+<a name="line-2185"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6679'</span><span class='layout'>,</span><span class='chr'>'\6680'</span><span class='layout'>)</span>
+<a name="line-2186"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6912'</span><span class='layout'>,</span><span class='chr'>'\6915'</span><span class='layout'>)</span>
+<a name="line-2187"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6964'</span><span class='layout'>,</span><span class='chr'>'\6964'</span><span class='layout'>)</span>
+<a name="line-2188"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6966'</span><span class='layout'>,</span><span class='chr'>'\6970'</span><span class='layout'>)</span>
+<a name="line-2189"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6972'</span><span class='layout'>,</span><span class='chr'>'\6972'</span><span class='layout'>)</span>
+<a name="line-2190"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6978'</span><span class='layout'>,</span><span class='chr'>'\6978'</span><span class='layout'>)</span>
+<a name="line-2191"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7019'</span><span class='layout'>,</span><span class='chr'>'\7027'</span><span class='layout'>)</span>
+<a name="line-2192"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7616'</span><span class='layout'>,</span><span class='chr'>'\7626'</span><span class='layout'>)</span>
+<a name="line-2193"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7678'</span><span class='layout'>,</span><span class='chr'>'\7679'</span><span class='layout'>)</span>
+<a name="line-2194"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8400'</span><span class='layout'>,</span><span class='chr'>'\8412'</span><span class='layout'>)</span>
+<a name="line-2195"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8417'</span><span class='layout'>,</span><span class='chr'>'\8417'</span><span class='layout'>)</span>
+<a name="line-2196"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8421'</span><span class='layout'>,</span><span class='chr'>'\8431'</span><span class='layout'>)</span>
+<a name="line-2197"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12330'</span><span class='layout'>,</span><span class='chr'>'\12335'</span><span class='layout'>)</span>
+<a name="line-2198"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12441'</span><span class='layout'>,</span><span class='chr'>'\12442'</span><span class='layout'>)</span>
+<a name="line-2199"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43014'</span><span class='layout'>,</span><span class='chr'>'\43014'</span><span class='layout'>)</span>
+<a name="line-2200"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43019'</span><span class='layout'>,</span><span class='chr'>'\43019'</span><span class='layout'>)</span>
+<a name="line-2201"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43045'</span><span class='layout'>,</span><span class='chr'>'\43046'</span><span class='layout'>)</span>
+<a name="line-2202"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64286'</span><span class='layout'>,</span><span class='chr'>'\64286'</span><span class='layout'>)</span>
+<a name="line-2203"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65024'</span><span class='layout'>,</span><span class='chr'>'\65039'</span><span class='layout'>)</span>
+<a name="line-2204"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65056'</span><span class='layout'>,</span><span class='chr'>'\65059'</span><span class='layout'>)</span>
+<a name="line-2205"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68097'</span><span class='layout'>,</span><span class='chr'>'\68099'</span><span class='layout'>)</span>
+<a name="line-2206"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68101'</span><span class='layout'>,</span><span class='chr'>'\68102'</span><span class='layout'>)</span>
+<a name="line-2207"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68108'</span><span class='layout'>,</span><span class='chr'>'\68111'</span><span class='layout'>)</span>
+<a name="line-2208"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68152'</span><span class='layout'>,</span><span class='chr'>'\68154'</span><span class='layout'>)</span>
+<a name="line-2209"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68159'</span><span class='layout'>,</span><span class='chr'>'\68159'</span><span class='layout'>)</span>
+<a name="line-2210"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119143'</span><span class='layout'>,</span><span class='chr'>'\119145'</span><span class='layout'>)</span>
+<a name="line-2211"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119163'</span><span class='layout'>,</span><span class='chr'>'\119170'</span><span class='layout'>)</span>
+<a name="line-2212"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119173'</span><span class='layout'>,</span><span class='chr'>'\119179'</span><span class='layout'>)</span>
+<a name="line-2213"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119210'</span><span class='layout'>,</span><span class='chr'>'\119213'</span><span class='layout'>)</span>
+<a name="line-2214"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119362'</span><span class='layout'>,</span><span class='chr'>'\119364'</span><span class='layout'>)</span>
+<a name="line-2215"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917760'</span><span class='layout'>,</span><span class='chr'>'\917999'</span><span class='layout'>)</span>
+<a name="line-2216"></a>    <span class='keyglyph'>]</span>
+<a name="line-2217"></a>
+<a name="line-2218"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2219"></a>
+<a name="line-2220"></a><a name="isUnicodeN"></a><span class='definition'>isUnicodeN</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2221"></a><span class='definition'>isUnicodeN</span> <span class='varid'>c</span>
+<a name="line-2222"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2223"></a>    <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-2224"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span><span class='chr'>'\179'</span><span class='layout'>)</span>
+<a name="line-2225"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span><span class='chr'>'\185'</span><span class='layout'>)</span>
+<a name="line-2226"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span><span class='chr'>'\190'</span><span class='layout'>)</span>
+<a name="line-2227"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1632'</span><span class='layout'>,</span><span class='chr'>'\1641'</span><span class='layout'>)</span>
+<a name="line-2228"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1776'</span><span class='layout'>,</span><span class='chr'>'\1785'</span><span class='layout'>)</span>
+<a name="line-2229"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1984'</span><span class='layout'>,</span><span class='chr'>'\1993'</span><span class='layout'>)</span>
+<a name="line-2230"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2406'</span><span class='layout'>,</span><span class='chr'>'\2415'</span><span class='layout'>)</span>
+<a name="line-2231"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2534'</span><span class='layout'>,</span><span class='chr'>'\2543'</span><span class='layout'>)</span>
+<a name="line-2232"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2548'</span><span class='layout'>,</span><span class='chr'>'\2553'</span><span class='layout'>)</span>
+<a name="line-2233"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2662'</span><span class='layout'>,</span><span class='chr'>'\2671'</span><span class='layout'>)</span>
+<a name="line-2234"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2790'</span><span class='layout'>,</span><span class='chr'>'\2799'</span><span class='layout'>)</span>
+<a name="line-2235"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2918'</span><span class='layout'>,</span><span class='chr'>'\2927'</span><span class='layout'>)</span>
+<a name="line-2236"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3046'</span><span class='layout'>,</span><span class='chr'>'\3058'</span><span class='layout'>)</span>
+<a name="line-2237"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3174'</span><span class='layout'>,</span><span class='chr'>'\3183'</span><span class='layout'>)</span>
+<a name="line-2238"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3302'</span><span class='layout'>,</span><span class='chr'>'\3311'</span><span class='layout'>)</span>
+<a name="line-2239"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3430'</span><span class='layout'>,</span><span class='chr'>'\3439'</span><span class='layout'>)</span>
+<a name="line-2240"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3664'</span><span class='layout'>,</span><span class='chr'>'\3673'</span><span class='layout'>)</span>
+<a name="line-2241"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3792'</span><span class='layout'>,</span><span class='chr'>'\3801'</span><span class='layout'>)</span>
+<a name="line-2242"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3872'</span><span class='layout'>,</span><span class='chr'>'\3891'</span><span class='layout'>)</span>
+<a name="line-2243"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4160'</span><span class='layout'>,</span><span class='chr'>'\4169'</span><span class='layout'>)</span>
+<a name="line-2244"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4969'</span><span class='layout'>,</span><span class='chr'>'\4988'</span><span class='layout'>)</span>
+<a name="line-2245"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5870'</span><span class='layout'>,</span><span class='chr'>'\5872'</span><span class='layout'>)</span>
+<a name="line-2246"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6112'</span><span class='layout'>,</span><span class='chr'>'\6121'</span><span class='layout'>)</span>
+<a name="line-2247"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6128'</span><span class='layout'>,</span><span class='chr'>'\6137'</span><span class='layout'>)</span>
+<a name="line-2248"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6160'</span><span class='layout'>,</span><span class='chr'>'\6169'</span><span class='layout'>)</span>
+<a name="line-2249"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6470'</span><span class='layout'>,</span><span class='chr'>'\6479'</span><span class='layout'>)</span>
+<a name="line-2250"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6608'</span><span class='layout'>,</span><span class='chr'>'\6617'</span><span class='layout'>)</span>
+<a name="line-2251"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6992'</span><span class='layout'>,</span><span class='chr'>'\7001'</span><span class='layout'>)</span>
+<a name="line-2252"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8304'</span><span class='layout'>,</span><span class='chr'>'\8304'</span><span class='layout'>)</span>
+<a name="line-2253"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8308'</span><span class='layout'>,</span><span class='chr'>'\8313'</span><span class='layout'>)</span>
+<a name="line-2254"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8320'</span><span class='layout'>,</span><span class='chr'>'\8329'</span><span class='layout'>)</span>
+<a name="line-2255"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8531'</span><span class='layout'>,</span><span class='chr'>'\8578'</span><span class='layout'>)</span>
+<a name="line-2256"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9312'</span><span class='layout'>,</span><span class='chr'>'\9371'</span><span class='layout'>)</span>
+<a name="line-2257"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9450'</span><span class='layout'>,</span><span class='chr'>'\9471'</span><span class='layout'>)</span>
+<a name="line-2258"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10102'</span><span class='layout'>,</span><span class='chr'>'\10131'</span><span class='layout'>)</span>
+<a name="line-2259"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11517'</span><span class='layout'>,</span><span class='chr'>'\11517'</span><span class='layout'>)</span>
+<a name="line-2260"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12295'</span><span class='layout'>,</span><span class='chr'>'\12295'</span><span class='layout'>)</span>
+<a name="line-2261"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12321'</span><span class='layout'>,</span><span class='chr'>'\12329'</span><span class='layout'>)</span>
+<a name="line-2262"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12344'</span><span class='layout'>,</span><span class='chr'>'\12346'</span><span class='layout'>)</span>
+<a name="line-2263"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12690'</span><span class='layout'>,</span><span class='chr'>'\12693'</span><span class='layout'>)</span>
+<a name="line-2264"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12832'</span><span class='layout'>,</span><span class='chr'>'\12841'</span><span class='layout'>)</span>
+<a name="line-2265"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12881'</span><span class='layout'>,</span><span class='chr'>'\12895'</span><span class='layout'>)</span>
+<a name="line-2266"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12928'</span><span class='layout'>,</span><span class='chr'>'\12937'</span><span class='layout'>)</span>
+<a name="line-2267"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12977'</span><span class='layout'>,</span><span class='chr'>'\12991'</span><span class='layout'>)</span>
+<a name="line-2268"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65296'</span><span class='layout'>,</span><span class='chr'>'\65305'</span><span class='layout'>)</span>
+<a name="line-2269"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65799'</span><span class='layout'>,</span><span class='chr'>'\65843'</span><span class='layout'>)</span>
+<a name="line-2270"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65856'</span><span class='layout'>,</span><span class='chr'>'\65912'</span><span class='layout'>)</span>
+<a name="line-2271"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65930'</span><span class='layout'>,</span><span class='chr'>'\65930'</span><span class='layout'>)</span>
+<a name="line-2272"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66336'</span><span class='layout'>,</span><span class='chr'>'\66339'</span><span class='layout'>)</span>
+<a name="line-2273"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66369'</span><span class='layout'>,</span><span class='chr'>'\66369'</span><span class='layout'>)</span>
+<a name="line-2274"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66378'</span><span class='layout'>,</span><span class='chr'>'\66378'</span><span class='layout'>)</span>
+<a name="line-2275"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66513'</span><span class='layout'>,</span><span class='chr'>'\66517'</span><span class='layout'>)</span>
+<a name="line-2276"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66720'</span><span class='layout'>,</span><span class='chr'>'\66729'</span><span class='layout'>)</span>
+<a name="line-2277"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67862'</span><span class='layout'>,</span><span class='chr'>'\67865'</span><span class='layout'>)</span>
+<a name="line-2278"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68160'</span><span class='layout'>,</span><span class='chr'>'\68167'</span><span class='layout'>)</span>
+<a name="line-2279"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74752'</span><span class='layout'>,</span><span class='chr'>'\74850'</span><span class='layout'>)</span>
+<a name="line-2280"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119648'</span><span class='layout'>,</span><span class='chr'>'\119665'</span><span class='layout'>)</span>
+<a name="line-2281"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120782'</span><span class='layout'>,</span><span class='chr'>'\120831'</span><span class='layout'>)</span>
+<a name="line-2282"></a>    <span class='keyglyph'>]</span>
+<a name="line-2283"></a>
+<a name="line-2284"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2285"></a>
+<a name="line-2286"></a><a name="isUnicodeNd"></a><span class='definition'>isUnicodeNd</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2287"></a><span class='definition'>isUnicodeNd</span> <span class='varid'>c</span>
+<a name="line-2288"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2289"></a>    <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-2290"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1632'</span><span class='layout'>,</span><span class='chr'>'\1641'</span><span class='layout'>)</span>
+<a name="line-2291"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1776'</span><span class='layout'>,</span><span class='chr'>'\1785'</span><span class='layout'>)</span>
+<a name="line-2292"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1984'</span><span class='layout'>,</span><span class='chr'>'\1993'</span><span class='layout'>)</span>
+<a name="line-2293"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2406'</span><span class='layout'>,</span><span class='chr'>'\2415'</span><span class='layout'>)</span>
+<a name="line-2294"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2534'</span><span class='layout'>,</span><span class='chr'>'\2543'</span><span class='layout'>)</span>
+<a name="line-2295"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2662'</span><span class='layout'>,</span><span class='chr'>'\2671'</span><span class='layout'>)</span>
+<a name="line-2296"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2790'</span><span class='layout'>,</span><span class='chr'>'\2799'</span><span class='layout'>)</span>
+<a name="line-2297"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2918'</span><span class='layout'>,</span><span class='chr'>'\2927'</span><span class='layout'>)</span>
+<a name="line-2298"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3046'</span><span class='layout'>,</span><span class='chr'>'\3055'</span><span class='layout'>)</span>
+<a name="line-2299"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3174'</span><span class='layout'>,</span><span class='chr'>'\3183'</span><span class='layout'>)</span>
+<a name="line-2300"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3302'</span><span class='layout'>,</span><span class='chr'>'\3311'</span><span class='layout'>)</span>
+<a name="line-2301"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3430'</span><span class='layout'>,</span><span class='chr'>'\3439'</span><span class='layout'>)</span>
+<a name="line-2302"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3664'</span><span class='layout'>,</span><span class='chr'>'\3673'</span><span class='layout'>)</span>
+<a name="line-2303"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3792'</span><span class='layout'>,</span><span class='chr'>'\3801'</span><span class='layout'>)</span>
+<a name="line-2304"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3872'</span><span class='layout'>,</span><span class='chr'>'\3881'</span><span class='layout'>)</span>
+<a name="line-2305"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4160'</span><span class='layout'>,</span><span class='chr'>'\4169'</span><span class='layout'>)</span>
+<a name="line-2306"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6112'</span><span class='layout'>,</span><span class='chr'>'\6121'</span><span class='layout'>)</span>
+<a name="line-2307"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6160'</span><span class='layout'>,</span><span class='chr'>'\6169'</span><span class='layout'>)</span>
+<a name="line-2308"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6470'</span><span class='layout'>,</span><span class='chr'>'\6479'</span><span class='layout'>)</span>
+<a name="line-2309"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6608'</span><span class='layout'>,</span><span class='chr'>'\6617'</span><span class='layout'>)</span>
+<a name="line-2310"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6992'</span><span class='layout'>,</span><span class='chr'>'\7001'</span><span class='layout'>)</span>
+<a name="line-2311"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65296'</span><span class='layout'>,</span><span class='chr'>'\65305'</span><span class='layout'>)</span>
+<a name="line-2312"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66720'</span><span class='layout'>,</span><span class='chr'>'\66729'</span><span class='layout'>)</span>
+<a name="line-2313"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120782'</span><span class='layout'>,</span><span class='chr'>'\120831'</span><span class='layout'>)</span>
+<a name="line-2314"></a>    <span class='keyglyph'>]</span>
+<a name="line-2315"></a>
+<a name="line-2316"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2317"></a>
+<a name="line-2318"></a><a name="isUnicodeNl"></a><span class='definition'>isUnicodeNl</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2319"></a><span class='definition'>isUnicodeNl</span> <span class='varid'>c</span>
+<a name="line-2320"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2321"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\5870'</span><span class='layout'>,</span><span class='chr'>'\5872'</span><span class='layout'>)</span>
+<a name="line-2322"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8544'</span><span class='layout'>,</span><span class='chr'>'\8578'</span><span class='layout'>)</span>
+<a name="line-2323"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12295'</span><span class='layout'>,</span><span class='chr'>'\12295'</span><span class='layout'>)</span>
+<a name="line-2324"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12321'</span><span class='layout'>,</span><span class='chr'>'\12329'</span><span class='layout'>)</span>
+<a name="line-2325"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12344'</span><span class='layout'>,</span><span class='chr'>'\12346'</span><span class='layout'>)</span>
+<a name="line-2326"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65856'</span><span class='layout'>,</span><span class='chr'>'\65908'</span><span class='layout'>)</span>
+<a name="line-2327"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66369'</span><span class='layout'>,</span><span class='chr'>'\66369'</span><span class='layout'>)</span>
+<a name="line-2328"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66378'</span><span class='layout'>,</span><span class='chr'>'\66378'</span><span class='layout'>)</span>
+<a name="line-2329"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66513'</span><span class='layout'>,</span><span class='chr'>'\66517'</span><span class='layout'>)</span>
+<a name="line-2330"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74752'</span><span class='layout'>,</span><span class='chr'>'\74850'</span><span class='layout'>)</span>
+<a name="line-2331"></a>    <span class='keyglyph'>]</span>
+<a name="line-2332"></a>
+<a name="line-2333"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2334"></a>
+<a name="line-2335"></a><a name="isUnicodeNo"></a><span class='definition'>isUnicodeNo</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2336"></a><span class='definition'>isUnicodeNo</span> <span class='varid'>c</span>
+<a name="line-2337"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2338"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span><span class='chr'>'\179'</span><span class='layout'>)</span>
+<a name="line-2339"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span><span class='chr'>'\185'</span><span class='layout'>)</span>
+<a name="line-2340"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span><span class='chr'>'\190'</span><span class='layout'>)</span>
+<a name="line-2341"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2548'</span><span class='layout'>,</span><span class='chr'>'\2553'</span><span class='layout'>)</span>
+<a name="line-2342"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3056'</span><span class='layout'>,</span><span class='chr'>'\3058'</span><span class='layout'>)</span>
+<a name="line-2343"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3882'</span><span class='layout'>,</span><span class='chr'>'\3891'</span><span class='layout'>)</span>
+<a name="line-2344"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4969'</span><span class='layout'>,</span><span class='chr'>'\4988'</span><span class='layout'>)</span>
+<a name="line-2345"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6128'</span><span class='layout'>,</span><span class='chr'>'\6137'</span><span class='layout'>)</span>
+<a name="line-2346"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8304'</span><span class='layout'>,</span><span class='chr'>'\8304'</span><span class='layout'>)</span>
+<a name="line-2347"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8308'</span><span class='layout'>,</span><span class='chr'>'\8313'</span><span class='layout'>)</span>
+<a name="line-2348"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8320'</span><span class='layout'>,</span><span class='chr'>'\8329'</span><span class='layout'>)</span>
+<a name="line-2349"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8531'</span><span class='layout'>,</span><span class='chr'>'\8543'</span><span class='layout'>)</span>
+<a name="line-2350"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9312'</span><span class='layout'>,</span><span class='chr'>'\9371'</span><span class='layout'>)</span>
+<a name="line-2351"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9450'</span><span class='layout'>,</span><span class='chr'>'\9471'</span><span class='layout'>)</span>
+<a name="line-2352"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10102'</span><span class='layout'>,</span><span class='chr'>'\10131'</span><span class='layout'>)</span>
+<a name="line-2353"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11517'</span><span class='layout'>,</span><span class='chr'>'\11517'</span><span class='layout'>)</span>
+<a name="line-2354"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12690'</span><span class='layout'>,</span><span class='chr'>'\12693'</span><span class='layout'>)</span>
+<a name="line-2355"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12832'</span><span class='layout'>,</span><span class='chr'>'\12841'</span><span class='layout'>)</span>
+<a name="line-2356"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12881'</span><span class='layout'>,</span><span class='chr'>'\12895'</span><span class='layout'>)</span>
+<a name="line-2357"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12928'</span><span class='layout'>,</span><span class='chr'>'\12937'</span><span class='layout'>)</span>
+<a name="line-2358"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12977'</span><span class='layout'>,</span><span class='chr'>'\12991'</span><span class='layout'>)</span>
+<a name="line-2359"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65799'</span><span class='layout'>,</span><span class='chr'>'\65843'</span><span class='layout'>)</span>
+<a name="line-2360"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65909'</span><span class='layout'>,</span><span class='chr'>'\65912'</span><span class='layout'>)</span>
+<a name="line-2361"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65930'</span><span class='layout'>,</span><span class='chr'>'\65930'</span><span class='layout'>)</span>
+<a name="line-2362"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66336'</span><span class='layout'>,</span><span class='chr'>'\66339'</span><span class='layout'>)</span>
+<a name="line-2363"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67862'</span><span class='layout'>,</span><span class='chr'>'\67865'</span><span class='layout'>)</span>
+<a name="line-2364"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68160'</span><span class='layout'>,</span><span class='chr'>'\68167'</span><span class='layout'>)</span>
+<a name="line-2365"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119648'</span><span class='layout'>,</span><span class='chr'>'\119665'</span><span class='layout'>)</span>
+<a name="line-2366"></a>    <span class='keyglyph'>]</span>
+<a name="line-2367"></a>
+<a name="line-2368"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2369"></a>
+<a name="line-2370"></a><a name="isUnicodeP"></a><span class='definition'>isUnicodeP</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2371"></a><span class='definition'>isUnicodeP</span> <span class='varid'>c</span>
+<a name="line-2372"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2373"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='layout'>,</span><span class='chr'>'#'</span><span class='layout'>)</span>
+<a name="line-2374"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'%'</span><span class='layout'>,</span><span class='chr'>'*'</span><span class='layout'>)</span>
+<a name="line-2375"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>','</span><span class='layout'>,</span><span class='chr'>'/'</span><span class='layout'>)</span>
+<a name="line-2376"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>':'</span><span class='layout'>,</span><span class='chr'>';'</span><span class='layout'>)</span>
+<a name="line-2377"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='layout'>,</span><span class='chr'>'@'</span><span class='layout'>)</span>
+<a name="line-2378"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'['</span><span class='layout'>,</span><span class='chr'>']'</span><span class='layout'>)</span>
+<a name="line-2379"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'_'</span><span class='layout'>,</span><span class='chr'>'_'</span><span class='layout'>)</span>
+<a name="line-2380"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='layout'>,</span><span class='chr'>'{'</span><span class='layout'>)</span>
+<a name="line-2381"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='layout'>,</span><span class='chr'>'}'</span><span class='layout'>)</span>
+<a name="line-2382"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span><span class='chr'>'\161'</span><span class='layout'>)</span>
+<a name="line-2383"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span><span class='chr'>'\171'</span><span class='layout'>)</span>
+<a name="line-2384"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span><span class='chr'>'\183'</span><span class='layout'>)</span>
+<a name="line-2385"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span><span class='chr'>'\187'</span><span class='layout'>)</span>
+<a name="line-2386"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span><span class='chr'>'\191'</span><span class='layout'>)</span>
+<a name="line-2387"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\894'</span><span class='layout'>,</span><span class='chr'>'\894'</span><span class='layout'>)</span>
+<a name="line-2388"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\903'</span><span class='layout'>,</span><span class='chr'>'\903'</span><span class='layout'>)</span>
+<a name="line-2389"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1370'</span><span class='layout'>,</span><span class='chr'>'\1375'</span><span class='layout'>)</span>
+<a name="line-2390"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1417'</span><span class='layout'>,</span><span class='chr'>'\1418'</span><span class='layout'>)</span>
+<a name="line-2391"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1470'</span><span class='layout'>,</span><span class='chr'>'\1470'</span><span class='layout'>)</span>
+<a name="line-2392"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1472'</span><span class='layout'>,</span><span class='chr'>'\1472'</span><span class='layout'>)</span>
+<a name="line-2393"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1475'</span><span class='layout'>,</span><span class='chr'>'\1475'</span><span class='layout'>)</span>
+<a name="line-2394"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1478'</span><span class='layout'>,</span><span class='chr'>'\1478'</span><span class='layout'>)</span>
+<a name="line-2395"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1523'</span><span class='layout'>,</span><span class='chr'>'\1524'</span><span class='layout'>)</span>
+<a name="line-2396"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1548'</span><span class='layout'>,</span><span class='chr'>'\1549'</span><span class='layout'>)</span>
+<a name="line-2397"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1563'</span><span class='layout'>,</span><span class='chr'>'\1563'</span><span class='layout'>)</span>
+<a name="line-2398"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1566'</span><span class='layout'>,</span><span class='chr'>'\1567'</span><span class='layout'>)</span>
+<a name="line-2399"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1642'</span><span class='layout'>,</span><span class='chr'>'\1645'</span><span class='layout'>)</span>
+<a name="line-2400"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1748'</span><span class='layout'>,</span><span class='chr'>'\1748'</span><span class='layout'>)</span>
+<a name="line-2401"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1792'</span><span class='layout'>,</span><span class='chr'>'\1805'</span><span class='layout'>)</span>
+<a name="line-2402"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2039'</span><span class='layout'>,</span><span class='chr'>'\2041'</span><span class='layout'>)</span>
+<a name="line-2403"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2404'</span><span class='layout'>,</span><span class='chr'>'\2405'</span><span class='layout'>)</span>
+<a name="line-2404"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2416'</span><span class='layout'>,</span><span class='chr'>'\2416'</span><span class='layout'>)</span>
+<a name="line-2405"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3572'</span><span class='layout'>,</span><span class='chr'>'\3572'</span><span class='layout'>)</span>
+<a name="line-2406"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3663'</span><span class='layout'>,</span><span class='chr'>'\3663'</span><span class='layout'>)</span>
+<a name="line-2407"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3674'</span><span class='layout'>,</span><span class='chr'>'\3675'</span><span class='layout'>)</span>
+<a name="line-2408"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3844'</span><span class='layout'>,</span><span class='chr'>'\3858'</span><span class='layout'>)</span>
+<a name="line-2409"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3898'</span><span class='layout'>,</span><span class='chr'>'\3901'</span><span class='layout'>)</span>
+<a name="line-2410"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3973'</span><span class='layout'>,</span><span class='chr'>'\3973'</span><span class='layout'>)</span>
+<a name="line-2411"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4048'</span><span class='layout'>,</span><span class='chr'>'\4049'</span><span class='layout'>)</span>
+<a name="line-2412"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4170'</span><span class='layout'>,</span><span class='chr'>'\4175'</span><span class='layout'>)</span>
+<a name="line-2413"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4347'</span><span class='layout'>,</span><span class='chr'>'\4347'</span><span class='layout'>)</span>
+<a name="line-2414"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4961'</span><span class='layout'>,</span><span class='chr'>'\4968'</span><span class='layout'>)</span>
+<a name="line-2415"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5741'</span><span class='layout'>,</span><span class='chr'>'\5742'</span><span class='layout'>)</span>
+<a name="line-2416"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5787'</span><span class='layout'>,</span><span class='chr'>'\5788'</span><span class='layout'>)</span>
+<a name="line-2417"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5867'</span><span class='layout'>,</span><span class='chr'>'\5869'</span><span class='layout'>)</span>
+<a name="line-2418"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5941'</span><span class='layout'>,</span><span class='chr'>'\5942'</span><span class='layout'>)</span>
+<a name="line-2419"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6100'</span><span class='layout'>,</span><span class='chr'>'\6102'</span><span class='layout'>)</span>
+<a name="line-2420"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6104'</span><span class='layout'>,</span><span class='chr'>'\6106'</span><span class='layout'>)</span>
+<a name="line-2421"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6144'</span><span class='layout'>,</span><span class='chr'>'\6154'</span><span class='layout'>)</span>
+<a name="line-2422"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6468'</span><span class='layout'>,</span><span class='chr'>'\6469'</span><span class='layout'>)</span>
+<a name="line-2423"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6622'</span><span class='layout'>,</span><span class='chr'>'\6623'</span><span class='layout'>)</span>
+<a name="line-2424"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6686'</span><span class='layout'>,</span><span class='chr'>'\6687'</span><span class='layout'>)</span>
+<a name="line-2425"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7002'</span><span class='layout'>,</span><span class='chr'>'\7008'</span><span class='layout'>)</span>
+<a name="line-2426"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8208'</span><span class='layout'>,</span><span class='chr'>'\8231'</span><span class='layout'>)</span>
+<a name="line-2427"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8240'</span><span class='layout'>,</span><span class='chr'>'\8259'</span><span class='layout'>)</span>
+<a name="line-2428"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8261'</span><span class='layout'>,</span><span class='chr'>'\8273'</span><span class='layout'>)</span>
+<a name="line-2429"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8275'</span><span class='layout'>,</span><span class='chr'>'\8286'</span><span class='layout'>)</span>
+<a name="line-2430"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8317'</span><span class='layout'>,</span><span class='chr'>'\8318'</span><span class='layout'>)</span>
+<a name="line-2431"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8333'</span><span class='layout'>,</span><span class='chr'>'\8334'</span><span class='layout'>)</span>
+<a name="line-2432"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9001'</span><span class='layout'>,</span><span class='chr'>'\9002'</span><span class='layout'>)</span>
+<a name="line-2433"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10088'</span><span class='layout'>,</span><span class='chr'>'\10101'</span><span class='layout'>)</span>
+<a name="line-2434"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10181'</span><span class='layout'>,</span><span class='chr'>'\10182'</span><span class='layout'>)</span>
+<a name="line-2435"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10214'</span><span class='layout'>,</span><span class='chr'>'\10219'</span><span class='layout'>)</span>
+<a name="line-2436"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10627'</span><span class='layout'>,</span><span class='chr'>'\10648'</span><span class='layout'>)</span>
+<a name="line-2437"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10712'</span><span class='layout'>,</span><span class='chr'>'\10715'</span><span class='layout'>)</span>
+<a name="line-2438"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10748'</span><span class='layout'>,</span><span class='chr'>'\10749'</span><span class='layout'>)</span>
+<a name="line-2439"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11513'</span><span class='layout'>,</span><span class='chr'>'\11516'</span><span class='layout'>)</span>
+<a name="line-2440"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11518'</span><span class='layout'>,</span><span class='chr'>'\11519'</span><span class='layout'>)</span>
+<a name="line-2441"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11776'</span><span class='layout'>,</span><span class='chr'>'\11799'</span><span class='layout'>)</span>
+<a name="line-2442"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11804'</span><span class='layout'>,</span><span class='chr'>'\11805'</span><span class='layout'>)</span>
+<a name="line-2443"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12289'</span><span class='layout'>,</span><span class='chr'>'\12291'</span><span class='layout'>)</span>
+<a name="line-2444"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12296'</span><span class='layout'>,</span><span class='chr'>'\12305'</span><span class='layout'>)</span>
+<a name="line-2445"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12308'</span><span class='layout'>,</span><span class='chr'>'\12319'</span><span class='layout'>)</span>
+<a name="line-2446"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12336'</span><span class='layout'>,</span><span class='chr'>'\12336'</span><span class='layout'>)</span>
+<a name="line-2447"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12349'</span><span class='layout'>,</span><span class='chr'>'\12349'</span><span class='layout'>)</span>
+<a name="line-2448"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12448'</span><span class='layout'>,</span><span class='chr'>'\12448'</span><span class='layout'>)</span>
+<a name="line-2449"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12539'</span><span class='layout'>,</span><span class='chr'>'\12539'</span><span class='layout'>)</span>
+<a name="line-2450"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43124'</span><span class='layout'>,</span><span class='chr'>'\43127'</span><span class='layout'>)</span>
+<a name="line-2451"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64830'</span><span class='layout'>,</span><span class='chr'>'\64831'</span><span class='layout'>)</span>
+<a name="line-2452"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65040'</span><span class='layout'>,</span><span class='chr'>'\65049'</span><span class='layout'>)</span>
+<a name="line-2453"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65072'</span><span class='layout'>,</span><span class='chr'>'\65106'</span><span class='layout'>)</span>
+<a name="line-2454"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65108'</span><span class='layout'>,</span><span class='chr'>'\65121'</span><span class='layout'>)</span>
+<a name="line-2455"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65123'</span><span class='layout'>,</span><span class='chr'>'\65123'</span><span class='layout'>)</span>
+<a name="line-2456"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65128'</span><span class='layout'>,</span><span class='chr'>'\65128'</span><span class='layout'>)</span>
+<a name="line-2457"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65130'</span><span class='layout'>,</span><span class='chr'>'\65131'</span><span class='layout'>)</span>
+<a name="line-2458"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65281'</span><span class='layout'>,</span><span class='chr'>'\65283'</span><span class='layout'>)</span>
+<a name="line-2459"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65285'</span><span class='layout'>,</span><span class='chr'>'\65290'</span><span class='layout'>)</span>
+<a name="line-2460"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65292'</span><span class='layout'>,</span><span class='chr'>'\65295'</span><span class='layout'>)</span>
+<a name="line-2461"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65306'</span><span class='layout'>,</span><span class='chr'>'\65307'</span><span class='layout'>)</span>
+<a name="line-2462"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65311'</span><span class='layout'>,</span><span class='chr'>'\65312'</span><span class='layout'>)</span>
+<a name="line-2463"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65339'</span><span class='layout'>,</span><span class='chr'>'\65341'</span><span class='layout'>)</span>
+<a name="line-2464"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65343'</span><span class='layout'>,</span><span class='chr'>'\65343'</span><span class='layout'>)</span>
+<a name="line-2465"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65371'</span><span class='layout'>,</span><span class='chr'>'\65371'</span><span class='layout'>)</span>
+<a name="line-2466"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65373'</span><span class='layout'>,</span><span class='chr'>'\65373'</span><span class='layout'>)</span>
+<a name="line-2467"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65375'</span><span class='layout'>,</span><span class='chr'>'\65381'</span><span class='layout'>)</span>
+<a name="line-2468"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65792'</span><span class='layout'>,</span><span class='chr'>'\65793'</span><span class='layout'>)</span>
+<a name="line-2469"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66463'</span><span class='layout'>,</span><span class='chr'>'\66463'</span><span class='layout'>)</span>
+<a name="line-2470"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66512'</span><span class='layout'>,</span><span class='chr'>'\66512'</span><span class='layout'>)</span>
+<a name="line-2471"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67871'</span><span class='layout'>,</span><span class='chr'>'\67871'</span><span class='layout'>)</span>
+<a name="line-2472"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68176'</span><span class='layout'>,</span><span class='chr'>'\68184'</span><span class='layout'>)</span>
+<a name="line-2473"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74864'</span><span class='layout'>,</span><span class='chr'>'\74867'</span><span class='layout'>)</span>
+<a name="line-2474"></a>    <span class='keyglyph'>]</span>
+<a name="line-2475"></a>
+<a name="line-2476"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2477"></a>
+<a name="line-2478"></a><a name="isUnicodePc"></a><span class='definition'>isUnicodePc</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2479"></a><span class='definition'>isUnicodePc</span> <span class='varid'>c</span>
+<a name="line-2480"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2481"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'_'</span><span class='layout'>,</span><span class='chr'>'_'</span><span class='layout'>)</span>
+<a name="line-2482"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8255'</span><span class='layout'>,</span><span class='chr'>'\8256'</span><span class='layout'>)</span>
+<a name="line-2483"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8276'</span><span class='layout'>,</span><span class='chr'>'\8276'</span><span class='layout'>)</span>
+<a name="line-2484"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65075'</span><span class='layout'>,</span><span class='chr'>'\65076'</span><span class='layout'>)</span>
+<a name="line-2485"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65101'</span><span class='layout'>,</span><span class='chr'>'\65103'</span><span class='layout'>)</span>
+<a name="line-2486"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65343'</span><span class='layout'>,</span><span class='chr'>'\65343'</span><span class='layout'>)</span>
+<a name="line-2487"></a>    <span class='keyglyph'>]</span>
+<a name="line-2488"></a>
+<a name="line-2489"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2490"></a>
+<a name="line-2491"></a><a name="isUnicodePd"></a><span class='definition'>isUnicodePd</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2492"></a><span class='definition'>isUnicodePd</span> <span class='varid'>c</span>
+<a name="line-2493"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2494"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='layout'>,</span><span class='chr'>'-'</span><span class='layout'>)</span>
+<a name="line-2495"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1418'</span><span class='layout'>,</span><span class='chr'>'\1418'</span><span class='layout'>)</span>
+<a name="line-2496"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6150'</span><span class='layout'>,</span><span class='chr'>'\6150'</span><span class='layout'>)</span>
+<a name="line-2497"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8208'</span><span class='layout'>,</span><span class='chr'>'\8213'</span><span class='layout'>)</span>
+<a name="line-2498"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11799'</span><span class='layout'>,</span><span class='chr'>'\11799'</span><span class='layout'>)</span>
+<a name="line-2499"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12316'</span><span class='layout'>,</span><span class='chr'>'\12316'</span><span class='layout'>)</span>
+<a name="line-2500"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12336'</span><span class='layout'>,</span><span class='chr'>'\12336'</span><span class='layout'>)</span>
+<a name="line-2501"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12448'</span><span class='layout'>,</span><span class='chr'>'\12448'</span><span class='layout'>)</span>
+<a name="line-2502"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65073'</span><span class='layout'>,</span><span class='chr'>'\65074'</span><span class='layout'>)</span>
+<a name="line-2503"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65112'</span><span class='layout'>,</span><span class='chr'>'\65112'</span><span class='layout'>)</span>
+<a name="line-2504"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65123'</span><span class='layout'>,</span><span class='chr'>'\65123'</span><span class='layout'>)</span>
+<a name="line-2505"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65293'</span><span class='layout'>,</span><span class='chr'>'\65293'</span><span class='layout'>)</span>
+<a name="line-2506"></a>    <span class='keyglyph'>]</span>
+<a name="line-2507"></a>
+<a name="line-2508"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2509"></a>
+<a name="line-2510"></a><a name="isUnicodePe"></a><span class='definition'>isUnicodePe</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2511"></a><span class='definition'>isUnicodePe</span> <span class='varid'>c</span>
+<a name="line-2512"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2513"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>')'</span><span class='layout'>,</span><span class='chr'>')'</span><span class='layout'>)</span>
+<a name="line-2514"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>']'</span><span class='layout'>,</span><span class='chr'>']'</span><span class='layout'>)</span>
+<a name="line-2515"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='layout'>,</span><span class='chr'>'}'</span><span class='layout'>)</span>
+<a name="line-2516"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3899'</span><span class='layout'>,</span><span class='chr'>'\3899'</span><span class='layout'>)</span>
+<a name="line-2517"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3901'</span><span class='layout'>,</span><span class='chr'>'\3901'</span><span class='layout'>)</span>
+<a name="line-2518"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5788'</span><span class='layout'>,</span><span class='chr'>'\5788'</span><span class='layout'>)</span>
+<a name="line-2519"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8262'</span><span class='layout'>,</span><span class='chr'>'\8262'</span><span class='layout'>)</span>
+<a name="line-2520"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8318'</span><span class='layout'>,</span><span class='chr'>'\8318'</span><span class='layout'>)</span>
+<a name="line-2521"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8334'</span><span class='layout'>,</span><span class='chr'>'\8334'</span><span class='layout'>)</span>
+<a name="line-2522"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9002'</span><span class='layout'>,</span><span class='chr'>'\9002'</span><span class='layout'>)</span>
+<a name="line-2523"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10089'</span><span class='layout'>,</span><span class='chr'>'\10089'</span><span class='layout'>)</span>
+<a name="line-2524"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10091'</span><span class='layout'>,</span><span class='chr'>'\10091'</span><span class='layout'>)</span>
+<a name="line-2525"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10093'</span><span class='layout'>,</span><span class='chr'>'\10093'</span><span class='layout'>)</span>
+<a name="line-2526"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10095'</span><span class='layout'>,</span><span class='chr'>'\10095'</span><span class='layout'>)</span>
+<a name="line-2527"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10097'</span><span class='layout'>,</span><span class='chr'>'\10097'</span><span class='layout'>)</span>
+<a name="line-2528"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10099'</span><span class='layout'>,</span><span class='chr'>'\10099'</span><span class='layout'>)</span>
+<a name="line-2529"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10101'</span><span class='layout'>,</span><span class='chr'>'\10101'</span><span class='layout'>)</span>
+<a name="line-2530"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10182'</span><span class='layout'>,</span><span class='chr'>'\10182'</span><span class='layout'>)</span>
+<a name="line-2531"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10215'</span><span class='layout'>,</span><span class='chr'>'\10215'</span><span class='layout'>)</span>
+<a name="line-2532"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10217'</span><span class='layout'>,</span><span class='chr'>'\10217'</span><span class='layout'>)</span>
+<a name="line-2533"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10219'</span><span class='layout'>,</span><span class='chr'>'\10219'</span><span class='layout'>)</span>
+<a name="line-2534"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10628'</span><span class='layout'>,</span><span class='chr'>'\10628'</span><span class='layout'>)</span>
+<a name="line-2535"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10630'</span><span class='layout'>,</span><span class='chr'>'\10630'</span><span class='layout'>)</span>
+<a name="line-2536"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10632'</span><span class='layout'>,</span><span class='chr'>'\10632'</span><span class='layout'>)</span>
+<a name="line-2537"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10634'</span><span class='layout'>,</span><span class='chr'>'\10634'</span><span class='layout'>)</span>
+<a name="line-2538"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10636'</span><span class='layout'>,</span><span class='chr'>'\10636'</span><span class='layout'>)</span>
+<a name="line-2539"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10638'</span><span class='layout'>,</span><span class='chr'>'\10638'</span><span class='layout'>)</span>
+<a name="line-2540"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10640'</span><span class='layout'>,</span><span class='chr'>'\10640'</span><span class='layout'>)</span>
+<a name="line-2541"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10642'</span><span class='layout'>,</span><span class='chr'>'\10642'</span><span class='layout'>)</span>
+<a name="line-2542"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10644'</span><span class='layout'>,</span><span class='chr'>'\10644'</span><span class='layout'>)</span>
+<a name="line-2543"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10646'</span><span class='layout'>,</span><span class='chr'>'\10646'</span><span class='layout'>)</span>
+<a name="line-2544"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10648'</span><span class='layout'>,</span><span class='chr'>'\10648'</span><span class='layout'>)</span>
+<a name="line-2545"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10713'</span><span class='layout'>,</span><span class='chr'>'\10713'</span><span class='layout'>)</span>
+<a name="line-2546"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10715'</span><span class='layout'>,</span><span class='chr'>'\10715'</span><span class='layout'>)</span>
+<a name="line-2547"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10749'</span><span class='layout'>,</span><span class='chr'>'\10749'</span><span class='layout'>)</span>
+<a name="line-2548"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12297'</span><span class='layout'>,</span><span class='chr'>'\12297'</span><span class='layout'>)</span>
+<a name="line-2549"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12299'</span><span class='layout'>,</span><span class='chr'>'\12299'</span><span class='layout'>)</span>
+<a name="line-2550"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12301'</span><span class='layout'>,</span><span class='chr'>'\12301'</span><span class='layout'>)</span>
+<a name="line-2551"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12303'</span><span class='layout'>,</span><span class='chr'>'\12303'</span><span class='layout'>)</span>
+<a name="line-2552"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12305'</span><span class='layout'>,</span><span class='chr'>'\12305'</span><span class='layout'>)</span>
+<a name="line-2553"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12309'</span><span class='layout'>,</span><span class='chr'>'\12309'</span><span class='layout'>)</span>
+<a name="line-2554"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12311'</span><span class='layout'>,</span><span class='chr'>'\12311'</span><span class='layout'>)</span>
+<a name="line-2555"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12313'</span><span class='layout'>,</span><span class='chr'>'\12313'</span><span class='layout'>)</span>
+<a name="line-2556"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12315'</span><span class='layout'>,</span><span class='chr'>'\12315'</span><span class='layout'>)</span>
+<a name="line-2557"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12318'</span><span class='layout'>,</span><span class='chr'>'\12319'</span><span class='layout'>)</span>
+<a name="line-2558"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64831'</span><span class='layout'>,</span><span class='chr'>'\64831'</span><span class='layout'>)</span>
+<a name="line-2559"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65048'</span><span class='layout'>,</span><span class='chr'>'\65048'</span><span class='layout'>)</span>
+<a name="line-2560"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65078'</span><span class='layout'>,</span><span class='chr'>'\65078'</span><span class='layout'>)</span>
+<a name="line-2561"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65080'</span><span class='layout'>,</span><span class='chr'>'\65080'</span><span class='layout'>)</span>
+<a name="line-2562"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65082'</span><span class='layout'>,</span><span class='chr'>'\65082'</span><span class='layout'>)</span>
+<a name="line-2563"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65084'</span><span class='layout'>,</span><span class='chr'>'\65084'</span><span class='layout'>)</span>
+<a name="line-2564"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65086'</span><span class='layout'>,</span><span class='chr'>'\65086'</span><span class='layout'>)</span>
+<a name="line-2565"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65088'</span><span class='layout'>,</span><span class='chr'>'\65088'</span><span class='layout'>)</span>
+<a name="line-2566"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65090'</span><span class='layout'>,</span><span class='chr'>'\65090'</span><span class='layout'>)</span>
+<a name="line-2567"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65092'</span><span class='layout'>,</span><span class='chr'>'\65092'</span><span class='layout'>)</span>
+<a name="line-2568"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65096'</span><span class='layout'>,</span><span class='chr'>'\65096'</span><span class='layout'>)</span>
+<a name="line-2569"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65114'</span><span class='layout'>,</span><span class='chr'>'\65114'</span><span class='layout'>)</span>
+<a name="line-2570"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65116'</span><span class='layout'>,</span><span class='chr'>'\65116'</span><span class='layout'>)</span>
+<a name="line-2571"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65118'</span><span class='layout'>,</span><span class='chr'>'\65118'</span><span class='layout'>)</span>
+<a name="line-2572"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65289'</span><span class='layout'>,</span><span class='chr'>'\65289'</span><span class='layout'>)</span>
+<a name="line-2573"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65341'</span><span class='layout'>,</span><span class='chr'>'\65341'</span><span class='layout'>)</span>
+<a name="line-2574"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65373'</span><span class='layout'>,</span><span class='chr'>'\65373'</span><span class='layout'>)</span>
+<a name="line-2575"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65376'</span><span class='layout'>,</span><span class='chr'>'\65376'</span><span class='layout'>)</span>
+<a name="line-2576"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65379'</span><span class='layout'>,</span><span class='chr'>'\65379'</span><span class='layout'>)</span>
+<a name="line-2577"></a>    <span class='keyglyph'>]</span>
+<a name="line-2578"></a>
+<a name="line-2579"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2580"></a>
+<a name="line-2581"></a><a name="isUnicodePf"></a><span class='definition'>isUnicodePf</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2582"></a><span class='definition'>isUnicodePf</span> <span class='varid'>c</span>
+<a name="line-2583"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2584"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span><span class='chr'>'\187'</span><span class='layout'>)</span>
+<a name="line-2585"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8217'</span><span class='layout'>,</span><span class='chr'>'\8217'</span><span class='layout'>)</span>
+<a name="line-2586"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8221'</span><span class='layout'>,</span><span class='chr'>'\8221'</span><span class='layout'>)</span>
+<a name="line-2587"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8250'</span><span class='layout'>,</span><span class='chr'>'\8250'</span><span class='layout'>)</span>
+<a name="line-2588"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11779'</span><span class='layout'>,</span><span class='chr'>'\11779'</span><span class='layout'>)</span>
+<a name="line-2589"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11781'</span><span class='layout'>,</span><span class='chr'>'\11781'</span><span class='layout'>)</span>
+<a name="line-2590"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11786'</span><span class='layout'>,</span><span class='chr'>'\11786'</span><span class='layout'>)</span>
+<a name="line-2591"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11789'</span><span class='layout'>,</span><span class='chr'>'\11789'</span><span class='layout'>)</span>
+<a name="line-2592"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11805'</span><span class='layout'>,</span><span class='chr'>'\11805'</span><span class='layout'>)</span>
+<a name="line-2593"></a>    <span class='keyglyph'>]</span>
+<a name="line-2594"></a>
+<a name="line-2595"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2596"></a>
+<a name="line-2597"></a><a name="isUnicodePi"></a><span class='definition'>isUnicodePi</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2598"></a><span class='definition'>isUnicodePi</span> <span class='varid'>c</span>
+<a name="line-2599"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2600"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span><span class='chr'>'\171'</span><span class='layout'>)</span>
+<a name="line-2601"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8216'</span><span class='layout'>,</span><span class='chr'>'\8216'</span><span class='layout'>)</span>
+<a name="line-2602"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8219'</span><span class='layout'>,</span><span class='chr'>'\8220'</span><span class='layout'>)</span>
+<a name="line-2603"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8223'</span><span class='layout'>,</span><span class='chr'>'\8223'</span><span class='layout'>)</span>
+<a name="line-2604"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8249'</span><span class='layout'>,</span><span class='chr'>'\8249'</span><span class='layout'>)</span>
+<a name="line-2605"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11778'</span><span class='layout'>,</span><span class='chr'>'\11778'</span><span class='layout'>)</span>
+<a name="line-2606"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11780'</span><span class='layout'>,</span><span class='chr'>'\11780'</span><span class='layout'>)</span>
+<a name="line-2607"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11785'</span><span class='layout'>,</span><span class='chr'>'\11785'</span><span class='layout'>)</span>
+<a name="line-2608"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11788'</span><span class='layout'>,</span><span class='chr'>'\11788'</span><span class='layout'>)</span>
+<a name="line-2609"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11804'</span><span class='layout'>,</span><span class='chr'>'\11804'</span><span class='layout'>)</span>
+<a name="line-2610"></a>    <span class='keyglyph'>]</span>
+<a name="line-2611"></a>
+<a name="line-2612"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2613"></a>
+<a name="line-2614"></a><a name="isUnicodePo"></a><span class='definition'>isUnicodePo</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2615"></a><span class='definition'>isUnicodePo</span> <span class='varid'>c</span>
+<a name="line-2616"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2617"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='layout'>,</span><span class='chr'>'#'</span><span class='layout'>)</span>
+<a name="line-2618"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'%'</span><span class='layout'>,</span><span class='chr'>'\''</span><span class='layout'>)</span>
+<a name="line-2619"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'*'</span><span class='layout'>,</span><span class='chr'>'*'</span><span class='layout'>)</span>
+<a name="line-2620"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>','</span><span class='layout'>,</span><span class='chr'>','</span><span class='layout'>)</span>
+<a name="line-2621"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'.'</span><span class='layout'>,</span><span class='chr'>'/'</span><span class='layout'>)</span>
+<a name="line-2622"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>':'</span><span class='layout'>,</span><span class='chr'>';'</span><span class='layout'>)</span>
+<a name="line-2623"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='layout'>,</span><span class='chr'>'@'</span><span class='layout'>)</span>
+<a name="line-2624"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\\'</span><span class='layout'>,</span><span class='chr'>'\\'</span><span class='layout'>)</span>
+<a name="line-2625"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span><span class='chr'>'\161'</span><span class='layout'>)</span>
+<a name="line-2626"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span><span class='chr'>'\183'</span><span class='layout'>)</span>
+<a name="line-2627"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span><span class='chr'>'\191'</span><span class='layout'>)</span>
+<a name="line-2628"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\894'</span><span class='layout'>,</span><span class='chr'>'\894'</span><span class='layout'>)</span>
+<a name="line-2629"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\903'</span><span class='layout'>,</span><span class='chr'>'\903'</span><span class='layout'>)</span>
+<a name="line-2630"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1370'</span><span class='layout'>,</span><span class='chr'>'\1375'</span><span class='layout'>)</span>
+<a name="line-2631"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1417'</span><span class='layout'>,</span><span class='chr'>'\1417'</span><span class='layout'>)</span>
+<a name="line-2632"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1470'</span><span class='layout'>,</span><span class='chr'>'\1470'</span><span class='layout'>)</span>
+<a name="line-2633"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1472'</span><span class='layout'>,</span><span class='chr'>'\1472'</span><span class='layout'>)</span>
+<a name="line-2634"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1475'</span><span class='layout'>,</span><span class='chr'>'\1475'</span><span class='layout'>)</span>
+<a name="line-2635"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1478'</span><span class='layout'>,</span><span class='chr'>'\1478'</span><span class='layout'>)</span>
+<a name="line-2636"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1523'</span><span class='layout'>,</span><span class='chr'>'\1524'</span><span class='layout'>)</span>
+<a name="line-2637"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1548'</span><span class='layout'>,</span><span class='chr'>'\1549'</span><span class='layout'>)</span>
+<a name="line-2638"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1563'</span><span class='layout'>,</span><span class='chr'>'\1563'</span><span class='layout'>)</span>
+<a name="line-2639"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1566'</span><span class='layout'>,</span><span class='chr'>'\1567'</span><span class='layout'>)</span>
+<a name="line-2640"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1642'</span><span class='layout'>,</span><span class='chr'>'\1645'</span><span class='layout'>)</span>
+<a name="line-2641"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1748'</span><span class='layout'>,</span><span class='chr'>'\1748'</span><span class='layout'>)</span>
+<a name="line-2642"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1792'</span><span class='layout'>,</span><span class='chr'>'\1805'</span><span class='layout'>)</span>
+<a name="line-2643"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2039'</span><span class='layout'>,</span><span class='chr'>'\2041'</span><span class='layout'>)</span>
+<a name="line-2644"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2404'</span><span class='layout'>,</span><span class='chr'>'\2405'</span><span class='layout'>)</span>
+<a name="line-2645"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2416'</span><span class='layout'>,</span><span class='chr'>'\2416'</span><span class='layout'>)</span>
+<a name="line-2646"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3572'</span><span class='layout'>,</span><span class='chr'>'\3572'</span><span class='layout'>)</span>
+<a name="line-2647"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3663'</span><span class='layout'>,</span><span class='chr'>'\3663'</span><span class='layout'>)</span>
+<a name="line-2648"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3674'</span><span class='layout'>,</span><span class='chr'>'\3675'</span><span class='layout'>)</span>
+<a name="line-2649"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3844'</span><span class='layout'>,</span><span class='chr'>'\3858'</span><span class='layout'>)</span>
+<a name="line-2650"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3973'</span><span class='layout'>,</span><span class='chr'>'\3973'</span><span class='layout'>)</span>
+<a name="line-2651"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4048'</span><span class='layout'>,</span><span class='chr'>'\4049'</span><span class='layout'>)</span>
+<a name="line-2652"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4170'</span><span class='layout'>,</span><span class='chr'>'\4175'</span><span class='layout'>)</span>
+<a name="line-2653"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4347'</span><span class='layout'>,</span><span class='chr'>'\4347'</span><span class='layout'>)</span>
+<a name="line-2654"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4961'</span><span class='layout'>,</span><span class='chr'>'\4968'</span><span class='layout'>)</span>
+<a name="line-2655"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5741'</span><span class='layout'>,</span><span class='chr'>'\5742'</span><span class='layout'>)</span>
+<a name="line-2656"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5867'</span><span class='layout'>,</span><span class='chr'>'\5869'</span><span class='layout'>)</span>
+<a name="line-2657"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5941'</span><span class='layout'>,</span><span class='chr'>'\5942'</span><span class='layout'>)</span>
+<a name="line-2658"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6100'</span><span class='layout'>,</span><span class='chr'>'\6102'</span><span class='layout'>)</span>
+<a name="line-2659"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6104'</span><span class='layout'>,</span><span class='chr'>'\6106'</span><span class='layout'>)</span>
+<a name="line-2660"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6144'</span><span class='layout'>,</span><span class='chr'>'\6149'</span><span class='layout'>)</span>
+<a name="line-2661"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6151'</span><span class='layout'>,</span><span class='chr'>'\6154'</span><span class='layout'>)</span>
+<a name="line-2662"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6468'</span><span class='layout'>,</span><span class='chr'>'\6469'</span><span class='layout'>)</span>
+<a name="line-2663"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6622'</span><span class='layout'>,</span><span class='chr'>'\6623'</span><span class='layout'>)</span>
+<a name="line-2664"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6686'</span><span class='layout'>,</span><span class='chr'>'\6687'</span><span class='layout'>)</span>
+<a name="line-2665"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7002'</span><span class='layout'>,</span><span class='chr'>'\7008'</span><span class='layout'>)</span>
+<a name="line-2666"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8214'</span><span class='layout'>,</span><span class='chr'>'\8215'</span><span class='layout'>)</span>
+<a name="line-2667"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8224'</span><span class='layout'>,</span><span class='chr'>'\8231'</span><span class='layout'>)</span>
+<a name="line-2668"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8240'</span><span class='layout'>,</span><span class='chr'>'\8248'</span><span class='layout'>)</span>
+<a name="line-2669"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8251'</span><span class='layout'>,</span><span class='chr'>'\8254'</span><span class='layout'>)</span>
+<a name="line-2670"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8257'</span><span class='layout'>,</span><span class='chr'>'\8259'</span><span class='layout'>)</span>
+<a name="line-2671"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8263'</span><span class='layout'>,</span><span class='chr'>'\8273'</span><span class='layout'>)</span>
+<a name="line-2672"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8275'</span><span class='layout'>,</span><span class='chr'>'\8275'</span><span class='layout'>)</span>
+<a name="line-2673"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8277'</span><span class='layout'>,</span><span class='chr'>'\8286'</span><span class='layout'>)</span>
+<a name="line-2674"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11513'</span><span class='layout'>,</span><span class='chr'>'\11516'</span><span class='layout'>)</span>
+<a name="line-2675"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11518'</span><span class='layout'>,</span><span class='chr'>'\11519'</span><span class='layout'>)</span>
+<a name="line-2676"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11776'</span><span class='layout'>,</span><span class='chr'>'\11777'</span><span class='layout'>)</span>
+<a name="line-2677"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11782'</span><span class='layout'>,</span><span class='chr'>'\11784'</span><span class='layout'>)</span>
+<a name="line-2678"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11787'</span><span class='layout'>,</span><span class='chr'>'\11787'</span><span class='layout'>)</span>
+<a name="line-2679"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11790'</span><span class='layout'>,</span><span class='chr'>'\11798'</span><span class='layout'>)</span>
+<a name="line-2680"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12289'</span><span class='layout'>,</span><span class='chr'>'\12291'</span><span class='layout'>)</span>
+<a name="line-2681"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12349'</span><span class='layout'>,</span><span class='chr'>'\12349'</span><span class='layout'>)</span>
+<a name="line-2682"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12539'</span><span class='layout'>,</span><span class='chr'>'\12539'</span><span class='layout'>)</span>
+<a name="line-2683"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43124'</span><span class='layout'>,</span><span class='chr'>'\43127'</span><span class='layout'>)</span>
+<a name="line-2684"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65040'</span><span class='layout'>,</span><span class='chr'>'\65046'</span><span class='layout'>)</span>
+<a name="line-2685"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65049'</span><span class='layout'>,</span><span class='chr'>'\65049'</span><span class='layout'>)</span>
+<a name="line-2686"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65072'</span><span class='layout'>,</span><span class='chr'>'\65072'</span><span class='layout'>)</span>
+<a name="line-2687"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65093'</span><span class='layout'>,</span><span class='chr'>'\65094'</span><span class='layout'>)</span>
+<a name="line-2688"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65097'</span><span class='layout'>,</span><span class='chr'>'\65100'</span><span class='layout'>)</span>
+<a name="line-2689"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65104'</span><span class='layout'>,</span><span class='chr'>'\65106'</span><span class='layout'>)</span>
+<a name="line-2690"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65108'</span><span class='layout'>,</span><span class='chr'>'\65111'</span><span class='layout'>)</span>
+<a name="line-2691"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65119'</span><span class='layout'>,</span><span class='chr'>'\65121'</span><span class='layout'>)</span>
+<a name="line-2692"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65128'</span><span class='layout'>,</span><span class='chr'>'\65128'</span><span class='layout'>)</span>
+<a name="line-2693"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65130'</span><span class='layout'>,</span><span class='chr'>'\65131'</span><span class='layout'>)</span>
+<a name="line-2694"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65281'</span><span class='layout'>,</span><span class='chr'>'\65283'</span><span class='layout'>)</span>
+<a name="line-2695"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65285'</span><span class='layout'>,</span><span class='chr'>'\65287'</span><span class='layout'>)</span>
+<a name="line-2696"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65290'</span><span class='layout'>,</span><span class='chr'>'\65290'</span><span class='layout'>)</span>
+<a name="line-2697"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65292'</span><span class='layout'>,</span><span class='chr'>'\65292'</span><span class='layout'>)</span>
+<a name="line-2698"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65294'</span><span class='layout'>,</span><span class='chr'>'\65295'</span><span class='layout'>)</span>
+<a name="line-2699"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65306'</span><span class='layout'>,</span><span class='chr'>'\65307'</span><span class='layout'>)</span>
+<a name="line-2700"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65311'</span><span class='layout'>,</span><span class='chr'>'\65312'</span><span class='layout'>)</span>
+<a name="line-2701"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65340'</span><span class='layout'>,</span><span class='chr'>'\65340'</span><span class='layout'>)</span>
+<a name="line-2702"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65377'</span><span class='layout'>,</span><span class='chr'>'\65377'</span><span class='layout'>)</span>
+<a name="line-2703"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65380'</span><span class='layout'>,</span><span class='chr'>'\65381'</span><span class='layout'>)</span>
+<a name="line-2704"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65792'</span><span class='layout'>,</span><span class='chr'>'\65793'</span><span class='layout'>)</span>
+<a name="line-2705"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66463'</span><span class='layout'>,</span><span class='chr'>'\66463'</span><span class='layout'>)</span>
+<a name="line-2706"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66512'</span><span class='layout'>,</span><span class='chr'>'\66512'</span><span class='layout'>)</span>
+<a name="line-2707"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67871'</span><span class='layout'>,</span><span class='chr'>'\67871'</span><span class='layout'>)</span>
+<a name="line-2708"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68176'</span><span class='layout'>,</span><span class='chr'>'\68184'</span><span class='layout'>)</span>
+<a name="line-2709"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74864'</span><span class='layout'>,</span><span class='chr'>'\74867'</span><span class='layout'>)</span>
+<a name="line-2710"></a>    <span class='keyglyph'>]</span>
+<a name="line-2711"></a>
+<a name="line-2712"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2713"></a>
+<a name="line-2714"></a><a name="isUnicodePs"></a><span class='definition'>isUnicodePs</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2715"></a><span class='definition'>isUnicodePs</span> <span class='varid'>c</span>
+<a name="line-2716"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2717"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'('</span><span class='layout'>,</span><span class='chr'>'('</span><span class='layout'>)</span>
+<a name="line-2718"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'['</span><span class='layout'>,</span><span class='chr'>'['</span><span class='layout'>)</span>
+<a name="line-2719"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='layout'>,</span><span class='chr'>'{'</span><span class='layout'>)</span>
+<a name="line-2720"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3898'</span><span class='layout'>,</span><span class='chr'>'\3898'</span><span class='layout'>)</span>
+<a name="line-2721"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3900'</span><span class='layout'>,</span><span class='chr'>'\3900'</span><span class='layout'>)</span>
+<a name="line-2722"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5787'</span><span class='layout'>,</span><span class='chr'>'\5787'</span><span class='layout'>)</span>
+<a name="line-2723"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8218'</span><span class='layout'>,</span><span class='chr'>'\8218'</span><span class='layout'>)</span>
+<a name="line-2724"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8222'</span><span class='layout'>,</span><span class='chr'>'\8222'</span><span class='layout'>)</span>
+<a name="line-2725"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8261'</span><span class='layout'>,</span><span class='chr'>'\8261'</span><span class='layout'>)</span>
+<a name="line-2726"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8317'</span><span class='layout'>,</span><span class='chr'>'\8317'</span><span class='layout'>)</span>
+<a name="line-2727"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8333'</span><span class='layout'>,</span><span class='chr'>'\8333'</span><span class='layout'>)</span>
+<a name="line-2728"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9001'</span><span class='layout'>,</span><span class='chr'>'\9001'</span><span class='layout'>)</span>
+<a name="line-2729"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10088'</span><span class='layout'>,</span><span class='chr'>'\10088'</span><span class='layout'>)</span>
+<a name="line-2730"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10090'</span><span class='layout'>,</span><span class='chr'>'\10090'</span><span class='layout'>)</span>
+<a name="line-2731"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10092'</span><span class='layout'>,</span><span class='chr'>'\10092'</span><span class='layout'>)</span>
+<a name="line-2732"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10094'</span><span class='layout'>,</span><span class='chr'>'\10094'</span><span class='layout'>)</span>
+<a name="line-2733"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10096'</span><span class='layout'>,</span><span class='chr'>'\10096'</span><span class='layout'>)</span>
+<a name="line-2734"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10098'</span><span class='layout'>,</span><span class='chr'>'\10098'</span><span class='layout'>)</span>
+<a name="line-2735"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10100'</span><span class='layout'>,</span><span class='chr'>'\10100'</span><span class='layout'>)</span>
+<a name="line-2736"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10181'</span><span class='layout'>,</span><span class='chr'>'\10181'</span><span class='layout'>)</span>
+<a name="line-2737"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10214'</span><span class='layout'>,</span><span class='chr'>'\10214'</span><span class='layout'>)</span>
+<a name="line-2738"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10216'</span><span class='layout'>,</span><span class='chr'>'\10216'</span><span class='layout'>)</span>
+<a name="line-2739"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10218'</span><span class='layout'>,</span><span class='chr'>'\10218'</span><span class='layout'>)</span>
+<a name="line-2740"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10627'</span><span class='layout'>,</span><span class='chr'>'\10627'</span><span class='layout'>)</span>
+<a name="line-2741"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10629'</span><span class='layout'>,</span><span class='chr'>'\10629'</span><span class='layout'>)</span>
+<a name="line-2742"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10631'</span><span class='layout'>,</span><span class='chr'>'\10631'</span><span class='layout'>)</span>
+<a name="line-2743"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10633'</span><span class='layout'>,</span><span class='chr'>'\10633'</span><span class='layout'>)</span>
+<a name="line-2744"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10635'</span><span class='layout'>,</span><span class='chr'>'\10635'</span><span class='layout'>)</span>
+<a name="line-2745"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10637'</span><span class='layout'>,</span><span class='chr'>'\10637'</span><span class='layout'>)</span>
+<a name="line-2746"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10639'</span><span class='layout'>,</span><span class='chr'>'\10639'</span><span class='layout'>)</span>
+<a name="line-2747"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10641'</span><span class='layout'>,</span><span class='chr'>'\10641'</span><span class='layout'>)</span>
+<a name="line-2748"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10643'</span><span class='layout'>,</span><span class='chr'>'\10643'</span><span class='layout'>)</span>
+<a name="line-2749"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10645'</span><span class='layout'>,</span><span class='chr'>'\10645'</span><span class='layout'>)</span>
+<a name="line-2750"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10647'</span><span class='layout'>,</span><span class='chr'>'\10647'</span><span class='layout'>)</span>
+<a name="line-2751"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10712'</span><span class='layout'>,</span><span class='chr'>'\10712'</span><span class='layout'>)</span>
+<a name="line-2752"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10714'</span><span class='layout'>,</span><span class='chr'>'\10714'</span><span class='layout'>)</span>
+<a name="line-2753"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10748'</span><span class='layout'>,</span><span class='chr'>'\10748'</span><span class='layout'>)</span>
+<a name="line-2754"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12296'</span><span class='layout'>,</span><span class='chr'>'\12296'</span><span class='layout'>)</span>
+<a name="line-2755"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12298'</span><span class='layout'>,</span><span class='chr'>'\12298'</span><span class='layout'>)</span>
+<a name="line-2756"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12300'</span><span class='layout'>,</span><span class='chr'>'\12300'</span><span class='layout'>)</span>
+<a name="line-2757"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12302'</span><span class='layout'>,</span><span class='chr'>'\12302'</span><span class='layout'>)</span>
+<a name="line-2758"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12304'</span><span class='layout'>,</span><span class='chr'>'\12304'</span><span class='layout'>)</span>
+<a name="line-2759"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12308'</span><span class='layout'>,</span><span class='chr'>'\12308'</span><span class='layout'>)</span>
+<a name="line-2760"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12310'</span><span class='layout'>,</span><span class='chr'>'\12310'</span><span class='layout'>)</span>
+<a name="line-2761"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12312'</span><span class='layout'>,</span><span class='chr'>'\12312'</span><span class='layout'>)</span>
+<a name="line-2762"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12314'</span><span class='layout'>,</span><span class='chr'>'\12314'</span><span class='layout'>)</span>
+<a name="line-2763"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12317'</span><span class='layout'>,</span><span class='chr'>'\12317'</span><span class='layout'>)</span>
+<a name="line-2764"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64830'</span><span class='layout'>,</span><span class='chr'>'\64830'</span><span class='layout'>)</span>
+<a name="line-2765"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65047'</span><span class='layout'>,</span><span class='chr'>'\65047'</span><span class='layout'>)</span>
+<a name="line-2766"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65077'</span><span class='layout'>,</span><span class='chr'>'\65077'</span><span class='layout'>)</span>
+<a name="line-2767"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65079'</span><span class='layout'>,</span><span class='chr'>'\65079'</span><span class='layout'>)</span>
+<a name="line-2768"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65081'</span><span class='layout'>,</span><span class='chr'>'\65081'</span><span class='layout'>)</span>
+<a name="line-2769"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65083'</span><span class='layout'>,</span><span class='chr'>'\65083'</span><span class='layout'>)</span>
+<a name="line-2770"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65085'</span><span class='layout'>,</span><span class='chr'>'\65085'</span><span class='layout'>)</span>
+<a name="line-2771"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65087'</span><span class='layout'>,</span><span class='chr'>'\65087'</span><span class='layout'>)</span>
+<a name="line-2772"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65089'</span><span class='layout'>,</span><span class='chr'>'\65089'</span><span class='layout'>)</span>
+<a name="line-2773"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65091'</span><span class='layout'>,</span><span class='chr'>'\65091'</span><span class='layout'>)</span>
+<a name="line-2774"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65095'</span><span class='layout'>,</span><span class='chr'>'\65095'</span><span class='layout'>)</span>
+<a name="line-2775"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65113'</span><span class='layout'>,</span><span class='chr'>'\65113'</span><span class='layout'>)</span>
+<a name="line-2776"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65115'</span><span class='layout'>,</span><span class='chr'>'\65115'</span><span class='layout'>)</span>
+<a name="line-2777"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65117'</span><span class='layout'>,</span><span class='chr'>'\65117'</span><span class='layout'>)</span>
+<a name="line-2778"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65288'</span><span class='layout'>,</span><span class='chr'>'\65288'</span><span class='layout'>)</span>
+<a name="line-2779"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65339'</span><span class='layout'>,</span><span class='chr'>'\65339'</span><span class='layout'>)</span>
+<a name="line-2780"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65371'</span><span class='layout'>,</span><span class='chr'>'\65371'</span><span class='layout'>)</span>
+<a name="line-2781"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65375'</span><span class='layout'>,</span><span class='chr'>'\65375'</span><span class='layout'>)</span>
+<a name="line-2782"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65378'</span><span class='layout'>,</span><span class='chr'>'\65378'</span><span class='layout'>)</span>
+<a name="line-2783"></a>    <span class='keyglyph'>]</span>
+<a name="line-2784"></a>
+<a name="line-2785"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2786"></a>
+<a name="line-2787"></a><a name="isUnicodeS"></a><span class='definition'>isUnicodeS</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2788"></a><span class='definition'>isUnicodeS</span> <span class='varid'>c</span>
+<a name="line-2789"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2790"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'$'</span><span class='layout'>,</span><span class='chr'>'$'</span><span class='layout'>)</span>
+<a name="line-2791"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='layout'>,</span><span class='chr'>'+'</span><span class='layout'>)</span>
+<a name="line-2792"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'&lt;'</span><span class='layout'>,</span><span class='chr'>'&gt;'</span><span class='layout'>)</span>
+<a name="line-2793"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'^'</span><span class='layout'>,</span><span class='chr'>'^'</span><span class='layout'>)</span>
+<a name="line-2794"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'`'</span><span class='layout'>,</span><span class='chr'>'`'</span><span class='layout'>)</span>
+<a name="line-2795"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'|'</span><span class='layout'>,</span><span class='chr'>'|'</span><span class='layout'>)</span>
+<a name="line-2796"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'~'</span><span class='layout'>,</span><span class='chr'>'~'</span><span class='layout'>)</span>
+<a name="line-2797"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span><span class='chr'>'\169'</span><span class='layout'>)</span>
+<a name="line-2798"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span><span class='chr'>'\172'</span><span class='layout'>)</span>
+<a name="line-2799"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span><span class='chr'>'\177'</span><span class='layout'>)</span>
+<a name="line-2800"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span><span class='chr'>'\180'</span><span class='layout'>)</span>
+<a name="line-2801"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span><span class='chr'>'\182'</span><span class='layout'>)</span>
+<a name="line-2802"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span><span class='chr'>'\184'</span><span class='layout'>)</span>
+<a name="line-2803"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span><span class='chr'>'\215'</span><span class='layout'>)</span>
+<a name="line-2804"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span><span class='chr'>'\247'</span><span class='layout'>)</span>
+<a name="line-2805"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\706'</span><span class='layout'>,</span><span class='chr'>'\709'</span><span class='layout'>)</span>
+<a name="line-2806"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\722'</span><span class='layout'>,</span><span class='chr'>'\735'</span><span class='layout'>)</span>
+<a name="line-2807"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\741'</span><span class='layout'>,</span><span class='chr'>'\749'</span><span class='layout'>)</span>
+<a name="line-2808"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\751'</span><span class='layout'>,</span><span class='chr'>'\767'</span><span class='layout'>)</span>
+<a name="line-2809"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\884'</span><span class='layout'>,</span><span class='chr'>'\885'</span><span class='layout'>)</span>
+<a name="line-2810"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\900'</span><span class='layout'>,</span><span class='chr'>'\901'</span><span class='layout'>)</span>
+<a name="line-2811"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1014'</span><span class='layout'>,</span><span class='chr'>'\1014'</span><span class='layout'>)</span>
+<a name="line-2812"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1154'</span><span class='layout'>,</span><span class='chr'>'\1154'</span><span class='layout'>)</span>
+<a name="line-2813"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1547'</span><span class='layout'>,</span><span class='chr'>'\1547'</span><span class='layout'>)</span>
+<a name="line-2814"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1550'</span><span class='layout'>,</span><span class='chr'>'\1551'</span><span class='layout'>)</span>
+<a name="line-2815"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1769'</span><span class='layout'>,</span><span class='chr'>'\1769'</span><span class='layout'>)</span>
+<a name="line-2816"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1789'</span><span class='layout'>,</span><span class='chr'>'\1790'</span><span class='layout'>)</span>
+<a name="line-2817"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2038'</span><span class='layout'>,</span><span class='chr'>'\2038'</span><span class='layout'>)</span>
+<a name="line-2818"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2546'</span><span class='layout'>,</span><span class='chr'>'\2547'</span><span class='layout'>)</span>
+<a name="line-2819"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2554'</span><span class='layout'>,</span><span class='chr'>'\2554'</span><span class='layout'>)</span>
+<a name="line-2820"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2801'</span><span class='layout'>,</span><span class='chr'>'\2801'</span><span class='layout'>)</span>
+<a name="line-2821"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2928'</span><span class='layout'>,</span><span class='chr'>'\2928'</span><span class='layout'>)</span>
+<a name="line-2822"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3059'</span><span class='layout'>,</span><span class='chr'>'\3066'</span><span class='layout'>)</span>
+<a name="line-2823"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3313'</span><span class='layout'>,</span><span class='chr'>'\3314'</span><span class='layout'>)</span>
+<a name="line-2824"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3647'</span><span class='layout'>,</span><span class='chr'>'\3647'</span><span class='layout'>)</span>
+<a name="line-2825"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3841'</span><span class='layout'>,</span><span class='chr'>'\3843'</span><span class='layout'>)</span>
+<a name="line-2826"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3859'</span><span class='layout'>,</span><span class='chr'>'\3863'</span><span class='layout'>)</span>
+<a name="line-2827"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3866'</span><span class='layout'>,</span><span class='chr'>'\3871'</span><span class='layout'>)</span>
+<a name="line-2828"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3892'</span><span class='layout'>,</span><span class='chr'>'\3892'</span><span class='layout'>)</span>
+<a name="line-2829"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3894'</span><span class='layout'>,</span><span class='chr'>'\3894'</span><span class='layout'>)</span>
+<a name="line-2830"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3896'</span><span class='layout'>,</span><span class='chr'>'\3896'</span><span class='layout'>)</span>
+<a name="line-2831"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4030'</span><span class='layout'>,</span><span class='chr'>'\4037'</span><span class='layout'>)</span>
+<a name="line-2832"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4039'</span><span class='layout'>,</span><span class='chr'>'\4044'</span><span class='layout'>)</span>
+<a name="line-2833"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4047'</span><span class='layout'>,</span><span class='chr'>'\4047'</span><span class='layout'>)</span>
+<a name="line-2834"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4960'</span><span class='layout'>,</span><span class='chr'>'\4960'</span><span class='layout'>)</span>
+<a name="line-2835"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5008'</span><span class='layout'>,</span><span class='chr'>'\5017'</span><span class='layout'>)</span>
+<a name="line-2836"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6107'</span><span class='layout'>,</span><span class='chr'>'\6107'</span><span class='layout'>)</span>
+<a name="line-2837"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6464'</span><span class='layout'>,</span><span class='chr'>'\6464'</span><span class='layout'>)</span>
+<a name="line-2838"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6624'</span><span class='layout'>,</span><span class='chr'>'\6655'</span><span class='layout'>)</span>
+<a name="line-2839"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7009'</span><span class='layout'>,</span><span class='chr'>'\7018'</span><span class='layout'>)</span>
+<a name="line-2840"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7028'</span><span class='layout'>,</span><span class='chr'>'\7036'</span><span class='layout'>)</span>
+<a name="line-2841"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8125'</span><span class='layout'>,</span><span class='chr'>'\8125'</span><span class='layout'>)</span>
+<a name="line-2842"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8127'</span><span class='layout'>,</span><span class='chr'>'\8129'</span><span class='layout'>)</span>
+<a name="line-2843"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8141'</span><span class='layout'>,</span><span class='chr'>'\8143'</span><span class='layout'>)</span>
+<a name="line-2844"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8157'</span><span class='layout'>,</span><span class='chr'>'\8159'</span><span class='layout'>)</span>
+<a name="line-2845"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8173'</span><span class='layout'>,</span><span class='chr'>'\8175'</span><span class='layout'>)</span>
+<a name="line-2846"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8189'</span><span class='layout'>,</span><span class='chr'>'\8190'</span><span class='layout'>)</span>
+<a name="line-2847"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8260'</span><span class='layout'>,</span><span class='chr'>'\8260'</span><span class='layout'>)</span>
+<a name="line-2848"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8274'</span><span class='layout'>,</span><span class='chr'>'\8274'</span><span class='layout'>)</span>
+<a name="line-2849"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8314'</span><span class='layout'>,</span><span class='chr'>'\8316'</span><span class='layout'>)</span>
+<a name="line-2850"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8330'</span><span class='layout'>,</span><span class='chr'>'\8332'</span><span class='layout'>)</span>
+<a name="line-2851"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8352'</span><span class='layout'>,</span><span class='chr'>'\8373'</span><span class='layout'>)</span>
+<a name="line-2852"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8448'</span><span class='layout'>,</span><span class='chr'>'\8449'</span><span class='layout'>)</span>
+<a name="line-2853"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8451'</span><span class='layout'>,</span><span class='chr'>'\8454'</span><span class='layout'>)</span>
+<a name="line-2854"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8456'</span><span class='layout'>,</span><span class='chr'>'\8457'</span><span class='layout'>)</span>
+<a name="line-2855"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8468'</span><span class='layout'>,</span><span class='chr'>'\8468'</span><span class='layout'>)</span>
+<a name="line-2856"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8470'</span><span class='layout'>,</span><span class='chr'>'\8472'</span><span class='layout'>)</span>
+<a name="line-2857"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8478'</span><span class='layout'>,</span><span class='chr'>'\8483'</span><span class='layout'>)</span>
+<a name="line-2858"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8485'</span><span class='layout'>,</span><span class='chr'>'\8485'</span><span class='layout'>)</span>
+<a name="line-2859"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8487'</span><span class='layout'>,</span><span class='chr'>'\8487'</span><span class='layout'>)</span>
+<a name="line-2860"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8489'</span><span class='layout'>,</span><span class='chr'>'\8489'</span><span class='layout'>)</span>
+<a name="line-2861"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8494'</span><span class='layout'>,</span><span class='chr'>'\8494'</span><span class='layout'>)</span>
+<a name="line-2862"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8506'</span><span class='layout'>,</span><span class='chr'>'\8507'</span><span class='layout'>)</span>
+<a name="line-2863"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8512'</span><span class='layout'>,</span><span class='chr'>'\8516'</span><span class='layout'>)</span>
+<a name="line-2864"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8522'</span><span class='layout'>,</span><span class='chr'>'\8525'</span><span class='layout'>)</span>
+<a name="line-2865"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8592'</span><span class='layout'>,</span><span class='chr'>'\9000'</span><span class='layout'>)</span>
+<a name="line-2866"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9003'</span><span class='layout'>,</span><span class='chr'>'\9191'</span><span class='layout'>)</span>
+<a name="line-2867"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9216'</span><span class='layout'>,</span><span class='chr'>'\9254'</span><span class='layout'>)</span>
+<a name="line-2868"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9280'</span><span class='layout'>,</span><span class='chr'>'\9290'</span><span class='layout'>)</span>
+<a name="line-2869"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9372'</span><span class='layout'>,</span><span class='chr'>'\9449'</span><span class='layout'>)</span>
+<a name="line-2870"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9472'</span><span class='layout'>,</span><span class='chr'>'\9884'</span><span class='layout'>)</span>
+<a name="line-2871"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9888'</span><span class='layout'>,</span><span class='chr'>'\9906'</span><span class='layout'>)</span>
+<a name="line-2872"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9985'</span><span class='layout'>,</span><span class='chr'>'\9988'</span><span class='layout'>)</span>
+<a name="line-2873"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9990'</span><span class='layout'>,</span><span class='chr'>'\9993'</span><span class='layout'>)</span>
+<a name="line-2874"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9996'</span><span class='layout'>,</span><span class='chr'>'\10023'</span><span class='layout'>)</span>
+<a name="line-2875"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10025'</span><span class='layout'>,</span><span class='chr'>'\10059'</span><span class='layout'>)</span>
+<a name="line-2876"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10061'</span><span class='layout'>,</span><span class='chr'>'\10061'</span><span class='layout'>)</span>
+<a name="line-2877"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10063'</span><span class='layout'>,</span><span class='chr'>'\10066'</span><span class='layout'>)</span>
+<a name="line-2878"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10070'</span><span class='layout'>,</span><span class='chr'>'\10070'</span><span class='layout'>)</span>
+<a name="line-2879"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10072'</span><span class='layout'>,</span><span class='chr'>'\10078'</span><span class='layout'>)</span>
+<a name="line-2880"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10081'</span><span class='layout'>,</span><span class='chr'>'\10087'</span><span class='layout'>)</span>
+<a name="line-2881"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10132'</span><span class='layout'>,</span><span class='chr'>'\10132'</span><span class='layout'>)</span>
+<a name="line-2882"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10136'</span><span class='layout'>,</span><span class='chr'>'\10159'</span><span class='layout'>)</span>
+<a name="line-2883"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10161'</span><span class='layout'>,</span><span class='chr'>'\10174'</span><span class='layout'>)</span>
+<a name="line-2884"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10176'</span><span class='layout'>,</span><span class='chr'>'\10180'</span><span class='layout'>)</span>
+<a name="line-2885"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10183'</span><span class='layout'>,</span><span class='chr'>'\10186'</span><span class='layout'>)</span>
+<a name="line-2886"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10192'</span><span class='layout'>,</span><span class='chr'>'\10213'</span><span class='layout'>)</span>
+<a name="line-2887"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10224'</span><span class='layout'>,</span><span class='chr'>'\10626'</span><span class='layout'>)</span>
+<a name="line-2888"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10649'</span><span class='layout'>,</span><span class='chr'>'\10711'</span><span class='layout'>)</span>
+<a name="line-2889"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10716'</span><span class='layout'>,</span><span class='chr'>'\10747'</span><span class='layout'>)</span>
+<a name="line-2890"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10750'</span><span class='layout'>,</span><span class='chr'>'\11034'</span><span class='layout'>)</span>
+<a name="line-2891"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11040'</span><span class='layout'>,</span><span class='chr'>'\11043'</span><span class='layout'>)</span>
+<a name="line-2892"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11493'</span><span class='layout'>,</span><span class='chr'>'\11498'</span><span class='layout'>)</span>
+<a name="line-2893"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11904'</span><span class='layout'>,</span><span class='chr'>'\11929'</span><span class='layout'>)</span>
+<a name="line-2894"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11931'</span><span class='layout'>,</span><span class='chr'>'\12019'</span><span class='layout'>)</span>
+<a name="line-2895"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12032'</span><span class='layout'>,</span><span class='chr'>'\12245'</span><span class='layout'>)</span>
+<a name="line-2896"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12272'</span><span class='layout'>,</span><span class='chr'>'\12283'</span><span class='layout'>)</span>
+<a name="line-2897"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12292'</span><span class='layout'>,</span><span class='chr'>'\12292'</span><span class='layout'>)</span>
+<a name="line-2898"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12306'</span><span class='layout'>,</span><span class='chr'>'\12307'</span><span class='layout'>)</span>
+<a name="line-2899"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12320'</span><span class='layout'>,</span><span class='chr'>'\12320'</span><span class='layout'>)</span>
+<a name="line-2900"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12342'</span><span class='layout'>,</span><span class='chr'>'\12343'</span><span class='layout'>)</span>
+<a name="line-2901"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12350'</span><span class='layout'>,</span><span class='chr'>'\12351'</span><span class='layout'>)</span>
+<a name="line-2902"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12443'</span><span class='layout'>,</span><span class='chr'>'\12444'</span><span class='layout'>)</span>
+<a name="line-2903"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12688'</span><span class='layout'>,</span><span class='chr'>'\12689'</span><span class='layout'>)</span>
+<a name="line-2904"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12694'</span><span class='layout'>,</span><span class='chr'>'\12703'</span><span class='layout'>)</span>
+<a name="line-2905"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12736'</span><span class='layout'>,</span><span class='chr'>'\12751'</span><span class='layout'>)</span>
+<a name="line-2906"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12800'</span><span class='layout'>,</span><span class='chr'>'\12830'</span><span class='layout'>)</span>
+<a name="line-2907"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12842'</span><span class='layout'>,</span><span class='chr'>'\12867'</span><span class='layout'>)</span>
+<a name="line-2908"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12880'</span><span class='layout'>,</span><span class='chr'>'\12880'</span><span class='layout'>)</span>
+<a name="line-2909"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12896'</span><span class='layout'>,</span><span class='chr'>'\12927'</span><span class='layout'>)</span>
+<a name="line-2910"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12938'</span><span class='layout'>,</span><span class='chr'>'\12976'</span><span class='layout'>)</span>
+<a name="line-2911"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12992'</span><span class='layout'>,</span><span class='chr'>'\13054'</span><span class='layout'>)</span>
+<a name="line-2912"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13056'</span><span class='layout'>,</span><span class='chr'>'\13311'</span><span class='layout'>)</span>
+<a name="line-2913"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19904'</span><span class='layout'>,</span><span class='chr'>'\19967'</span><span class='layout'>)</span>
+<a name="line-2914"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42128'</span><span class='layout'>,</span><span class='chr'>'\42182'</span><span class='layout'>)</span>
+<a name="line-2915"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42752'</span><span class='layout'>,</span><span class='chr'>'\42774'</span><span class='layout'>)</span>
+<a name="line-2916"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42784'</span><span class='layout'>,</span><span class='chr'>'\42785'</span><span class='layout'>)</span>
+<a name="line-2917"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43048'</span><span class='layout'>,</span><span class='chr'>'\43051'</span><span class='layout'>)</span>
+<a name="line-2918"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64297'</span><span class='layout'>,</span><span class='chr'>'\64297'</span><span class='layout'>)</span>
+<a name="line-2919"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65020'</span><span class='layout'>,</span><span class='chr'>'\65021'</span><span class='layout'>)</span>
+<a name="line-2920"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65122'</span><span class='layout'>,</span><span class='chr'>'\65122'</span><span class='layout'>)</span>
+<a name="line-2921"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65124'</span><span class='layout'>,</span><span class='chr'>'\65126'</span><span class='layout'>)</span>
+<a name="line-2922"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65129'</span><span class='layout'>,</span><span class='chr'>'\65129'</span><span class='layout'>)</span>
+<a name="line-2923"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65284'</span><span class='layout'>,</span><span class='chr'>'\65284'</span><span class='layout'>)</span>
+<a name="line-2924"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65291'</span><span class='layout'>,</span><span class='chr'>'\65291'</span><span class='layout'>)</span>
+<a name="line-2925"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65308'</span><span class='layout'>,</span><span class='chr'>'\65310'</span><span class='layout'>)</span>
+<a name="line-2926"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65342'</span><span class='layout'>,</span><span class='chr'>'\65342'</span><span class='layout'>)</span>
+<a name="line-2927"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65344'</span><span class='layout'>,</span><span class='chr'>'\65344'</span><span class='layout'>)</span>
+<a name="line-2928"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65372'</span><span class='layout'>,</span><span class='chr'>'\65372'</span><span class='layout'>)</span>
+<a name="line-2929"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65374'</span><span class='layout'>,</span><span class='chr'>'\65374'</span><span class='layout'>)</span>
+<a name="line-2930"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65504'</span><span class='layout'>,</span><span class='chr'>'\65510'</span><span class='layout'>)</span>
+<a name="line-2931"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65512'</span><span class='layout'>,</span><span class='chr'>'\65518'</span><span class='layout'>)</span>
+<a name="line-2932"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65532'</span><span class='layout'>,</span><span class='chr'>'\65533'</span><span class='layout'>)</span>
+<a name="line-2933"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65794'</span><span class='layout'>,</span><span class='chr'>'\65794'</span><span class='layout'>)</span>
+<a name="line-2934"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65847'</span><span class='layout'>,</span><span class='chr'>'\65855'</span><span class='layout'>)</span>
+<a name="line-2935"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65913'</span><span class='layout'>,</span><span class='chr'>'\65929'</span><span class='layout'>)</span>
+<a name="line-2936"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\118784'</span><span class='layout'>,</span><span class='chr'>'\119029'</span><span class='layout'>)</span>
+<a name="line-2937"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119040'</span><span class='layout'>,</span><span class='chr'>'\119078'</span><span class='layout'>)</span>
+<a name="line-2938"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119082'</span><span class='layout'>,</span><span class='chr'>'\119140'</span><span class='layout'>)</span>
+<a name="line-2939"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119146'</span><span class='layout'>,</span><span class='chr'>'\119148'</span><span class='layout'>)</span>
+<a name="line-2940"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119171'</span><span class='layout'>,</span><span class='chr'>'\119172'</span><span class='layout'>)</span>
+<a name="line-2941"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119180'</span><span class='layout'>,</span><span class='chr'>'\119209'</span><span class='layout'>)</span>
+<a name="line-2942"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119214'</span><span class='layout'>,</span><span class='chr'>'\119261'</span><span class='layout'>)</span>
+<a name="line-2943"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119296'</span><span class='layout'>,</span><span class='chr'>'\119361'</span><span class='layout'>)</span>
+<a name="line-2944"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119365'</span><span class='layout'>,</span><span class='chr'>'\119365'</span><span class='layout'>)</span>
+<a name="line-2945"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119552'</span><span class='layout'>,</span><span class='chr'>'\119638'</span><span class='layout'>)</span>
+<a name="line-2946"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120513'</span><span class='layout'>,</span><span class='chr'>'\120513'</span><span class='layout'>)</span>
+<a name="line-2947"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120539'</span><span class='layout'>,</span><span class='chr'>'\120539'</span><span class='layout'>)</span>
+<a name="line-2948"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120571'</span><span class='layout'>,</span><span class='chr'>'\120571'</span><span class='layout'>)</span>
+<a name="line-2949"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120597'</span><span class='layout'>,</span><span class='chr'>'\120597'</span><span class='layout'>)</span>
+<a name="line-2950"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120629'</span><span class='layout'>,</span><span class='chr'>'\120629'</span><span class='layout'>)</span>
+<a name="line-2951"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120655'</span><span class='layout'>,</span><span class='chr'>'\120655'</span><span class='layout'>)</span>
+<a name="line-2952"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120687'</span><span class='layout'>,</span><span class='chr'>'\120687'</span><span class='layout'>)</span>
+<a name="line-2953"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120713'</span><span class='layout'>,</span><span class='chr'>'\120713'</span><span class='layout'>)</span>
+<a name="line-2954"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120745'</span><span class='layout'>,</span><span class='chr'>'\120745'</span><span class='layout'>)</span>
+<a name="line-2955"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120771'</span><span class='layout'>,</span><span class='chr'>'\120771'</span><span class='layout'>)</span>
+<a name="line-2956"></a>    <span class='keyglyph'>]</span>
+<a name="line-2957"></a>
+<a name="line-2958"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2959"></a>
+<a name="line-2960"></a><a name="isUnicodeSc"></a><span class='definition'>isUnicodeSc</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2961"></a><span class='definition'>isUnicodeSc</span> <span class='varid'>c</span>
+<a name="line-2962"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2963"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'$'</span><span class='layout'>,</span><span class='chr'>'$'</span><span class='layout'>)</span>
+<a name="line-2964"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span><span class='chr'>'\165'</span><span class='layout'>)</span>
+<a name="line-2965"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1547'</span><span class='layout'>,</span><span class='chr'>'\1547'</span><span class='layout'>)</span>
+<a name="line-2966"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2546'</span><span class='layout'>,</span><span class='chr'>'\2547'</span><span class='layout'>)</span>
+<a name="line-2967"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2801'</span><span class='layout'>,</span><span class='chr'>'\2801'</span><span class='layout'>)</span>
+<a name="line-2968"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3065'</span><span class='layout'>,</span><span class='chr'>'\3065'</span><span class='layout'>)</span>
+<a name="line-2969"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3647'</span><span class='layout'>,</span><span class='chr'>'\3647'</span><span class='layout'>)</span>
+<a name="line-2970"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6107'</span><span class='layout'>,</span><span class='chr'>'\6107'</span><span class='layout'>)</span>
+<a name="line-2971"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8352'</span><span class='layout'>,</span><span class='chr'>'\8373'</span><span class='layout'>)</span>
+<a name="line-2972"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65020'</span><span class='layout'>,</span><span class='chr'>'\65020'</span><span class='layout'>)</span>
+<a name="line-2973"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65129'</span><span class='layout'>,</span><span class='chr'>'\65129'</span><span class='layout'>)</span>
+<a name="line-2974"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65284'</span><span class='layout'>,</span><span class='chr'>'\65284'</span><span class='layout'>)</span>
+<a name="line-2975"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65504'</span><span class='layout'>,</span><span class='chr'>'\65505'</span><span class='layout'>)</span>
+<a name="line-2976"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65509'</span><span class='layout'>,</span><span class='chr'>'\65510'</span><span class='layout'>)</span>
+<a name="line-2977"></a>    <span class='keyglyph'>]</span>
+<a name="line-2978"></a>
+<a name="line-2979"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-2980"></a>
+<a name="line-2981"></a><a name="isUnicodeSk"></a><span class='definition'>isUnicodeSk</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-2982"></a><span class='definition'>isUnicodeSk</span> <span class='varid'>c</span>
+<a name="line-2983"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-2984"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'^'</span><span class='layout'>,</span><span class='chr'>'^'</span><span class='layout'>)</span>
+<a name="line-2985"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'`'</span><span class='layout'>,</span><span class='chr'>'`'</span><span class='layout'>)</span>
+<a name="line-2986"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span><span class='chr'>'\168'</span><span class='layout'>)</span>
+<a name="line-2987"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span><span class='chr'>'\175'</span><span class='layout'>)</span>
+<a name="line-2988"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span><span class='chr'>'\180'</span><span class='layout'>)</span>
+<a name="line-2989"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span><span class='chr'>'\184'</span><span class='layout'>)</span>
+<a name="line-2990"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\706'</span><span class='layout'>,</span><span class='chr'>'\709'</span><span class='layout'>)</span>
+<a name="line-2991"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\722'</span><span class='layout'>,</span><span class='chr'>'\735'</span><span class='layout'>)</span>
+<a name="line-2992"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\741'</span><span class='layout'>,</span><span class='chr'>'\749'</span><span class='layout'>)</span>
+<a name="line-2993"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\751'</span><span class='layout'>,</span><span class='chr'>'\767'</span><span class='layout'>)</span>
+<a name="line-2994"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\884'</span><span class='layout'>,</span><span class='chr'>'\885'</span><span class='layout'>)</span>
+<a name="line-2995"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\900'</span><span class='layout'>,</span><span class='chr'>'\901'</span><span class='layout'>)</span>
+<a name="line-2996"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8125'</span><span class='layout'>,</span><span class='chr'>'\8125'</span><span class='layout'>)</span>
+<a name="line-2997"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8127'</span><span class='layout'>,</span><span class='chr'>'\8129'</span><span class='layout'>)</span>
+<a name="line-2998"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8141'</span><span class='layout'>,</span><span class='chr'>'\8143'</span><span class='layout'>)</span>
+<a name="line-2999"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8157'</span><span class='layout'>,</span><span class='chr'>'\8159'</span><span class='layout'>)</span>
+<a name="line-3000"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8173'</span><span class='layout'>,</span><span class='chr'>'\8175'</span><span class='layout'>)</span>
+<a name="line-3001"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8189'</span><span class='layout'>,</span><span class='chr'>'\8190'</span><span class='layout'>)</span>
+<a name="line-3002"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12443'</span><span class='layout'>,</span><span class='chr'>'\12444'</span><span class='layout'>)</span>
+<a name="line-3003"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42752'</span><span class='layout'>,</span><span class='chr'>'\42774'</span><span class='layout'>)</span>
+<a name="line-3004"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42784'</span><span class='layout'>,</span><span class='chr'>'\42785'</span><span class='layout'>)</span>
+<a name="line-3005"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65342'</span><span class='layout'>,</span><span class='chr'>'\65342'</span><span class='layout'>)</span>
+<a name="line-3006"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65344'</span><span class='layout'>,</span><span class='chr'>'\65344'</span><span class='layout'>)</span>
+<a name="line-3007"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65507'</span><span class='layout'>,</span><span class='chr'>'\65507'</span><span class='layout'>)</span>
+<a name="line-3008"></a>    <span class='keyglyph'>]</span>
+<a name="line-3009"></a>
+<a name="line-3010"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3011"></a>
+<a name="line-3012"></a><a name="isUnicodeSm"></a><span class='definition'>isUnicodeSm</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-3013"></a><span class='definition'>isUnicodeSm</span> <span class='varid'>c</span>
+<a name="line-3014"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-3015"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='layout'>,</span><span class='chr'>'+'</span><span class='layout'>)</span>
+<a name="line-3016"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'&lt;'</span><span class='layout'>,</span><span class='chr'>'&gt;'</span><span class='layout'>)</span>
+<a name="line-3017"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'|'</span><span class='layout'>,</span><span class='chr'>'|'</span><span class='layout'>)</span>
+<a name="line-3018"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'~'</span><span class='layout'>,</span><span class='chr'>'~'</span><span class='layout'>)</span>
+<a name="line-3019"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span><span class='chr'>'\172'</span><span class='layout'>)</span>
+<a name="line-3020"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span><span class='chr'>'\177'</span><span class='layout'>)</span>
+<a name="line-3021"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span><span class='chr'>'\215'</span><span class='layout'>)</span>
+<a name="line-3022"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span><span class='chr'>'\247'</span><span class='layout'>)</span>
+<a name="line-3023"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1014'</span><span class='layout'>,</span><span class='chr'>'\1014'</span><span class='layout'>)</span>
+<a name="line-3024"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8260'</span><span class='layout'>,</span><span class='chr'>'\8260'</span><span class='layout'>)</span>
+<a name="line-3025"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8274'</span><span class='layout'>,</span><span class='chr'>'\8274'</span><span class='layout'>)</span>
+<a name="line-3026"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8314'</span><span class='layout'>,</span><span class='chr'>'\8316'</span><span class='layout'>)</span>
+<a name="line-3027"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8330'</span><span class='layout'>,</span><span class='chr'>'\8332'</span><span class='layout'>)</span>
+<a name="line-3028"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8512'</span><span class='layout'>,</span><span class='chr'>'\8516'</span><span class='layout'>)</span>
+<a name="line-3029"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8523'</span><span class='layout'>,</span><span class='chr'>'\8523'</span><span class='layout'>)</span>
+<a name="line-3030"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8592'</span><span class='layout'>,</span><span class='chr'>'\8596'</span><span class='layout'>)</span>
+<a name="line-3031"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8602'</span><span class='layout'>,</span><span class='chr'>'\8603'</span><span class='layout'>)</span>
+<a name="line-3032"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8608'</span><span class='layout'>,</span><span class='chr'>'\8608'</span><span class='layout'>)</span>
+<a name="line-3033"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8611'</span><span class='layout'>,</span><span class='chr'>'\8611'</span><span class='layout'>)</span>
+<a name="line-3034"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8614'</span><span class='layout'>,</span><span class='chr'>'\8614'</span><span class='layout'>)</span>
+<a name="line-3035"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8622'</span><span class='layout'>,</span><span class='chr'>'\8622'</span><span class='layout'>)</span>
+<a name="line-3036"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8654'</span><span class='layout'>,</span><span class='chr'>'\8655'</span><span class='layout'>)</span>
+<a name="line-3037"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8658'</span><span class='layout'>,</span><span class='chr'>'\8658'</span><span class='layout'>)</span>
+<a name="line-3038"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8660'</span><span class='layout'>,</span><span class='chr'>'\8660'</span><span class='layout'>)</span>
+<a name="line-3039"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8692'</span><span class='layout'>,</span><span class='chr'>'\8959'</span><span class='layout'>)</span>
+<a name="line-3040"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8968'</span><span class='layout'>,</span><span class='chr'>'\8971'</span><span class='layout'>)</span>
+<a name="line-3041"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8992'</span><span class='layout'>,</span><span class='chr'>'\8993'</span><span class='layout'>)</span>
+<a name="line-3042"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9084'</span><span class='layout'>,</span><span class='chr'>'\9084'</span><span class='layout'>)</span>
+<a name="line-3043"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9115'</span><span class='layout'>,</span><span class='chr'>'\9139'</span><span class='layout'>)</span>
+<a name="line-3044"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9180'</span><span class='layout'>,</span><span class='chr'>'\9185'</span><span class='layout'>)</span>
+<a name="line-3045"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9655'</span><span class='layout'>,</span><span class='chr'>'\9655'</span><span class='layout'>)</span>
+<a name="line-3046"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9665'</span><span class='layout'>,</span><span class='chr'>'\9665'</span><span class='layout'>)</span>
+<a name="line-3047"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9720'</span><span class='layout'>,</span><span class='chr'>'\9727'</span><span class='layout'>)</span>
+<a name="line-3048"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9839'</span><span class='layout'>,</span><span class='chr'>'\9839'</span><span class='layout'>)</span>
+<a name="line-3049"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10176'</span><span class='layout'>,</span><span class='chr'>'\10180'</span><span class='layout'>)</span>
+<a name="line-3050"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10183'</span><span class='layout'>,</span><span class='chr'>'\10186'</span><span class='layout'>)</span>
+<a name="line-3051"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10192'</span><span class='layout'>,</span><span class='chr'>'\10213'</span><span class='layout'>)</span>
+<a name="line-3052"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10224'</span><span class='layout'>,</span><span class='chr'>'\10239'</span><span class='layout'>)</span>
+<a name="line-3053"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10496'</span><span class='layout'>,</span><span class='chr'>'\10626'</span><span class='layout'>)</span>
+<a name="line-3054"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10649'</span><span class='layout'>,</span><span class='chr'>'\10711'</span><span class='layout'>)</span>
+<a name="line-3055"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10716'</span><span class='layout'>,</span><span class='chr'>'\10747'</span><span class='layout'>)</span>
+<a name="line-3056"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10750'</span><span class='layout'>,</span><span class='chr'>'\11007'</span><span class='layout'>)</span>
+<a name="line-3057"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64297'</span><span class='layout'>,</span><span class='chr'>'\64297'</span><span class='layout'>)</span>
+<a name="line-3058"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65122'</span><span class='layout'>,</span><span class='chr'>'\65122'</span><span class='layout'>)</span>
+<a name="line-3059"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65124'</span><span class='layout'>,</span><span class='chr'>'\65126'</span><span class='layout'>)</span>
+<a name="line-3060"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65291'</span><span class='layout'>,</span><span class='chr'>'\65291'</span><span class='layout'>)</span>
+<a name="line-3061"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65308'</span><span class='layout'>,</span><span class='chr'>'\65310'</span><span class='layout'>)</span>
+<a name="line-3062"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65372'</span><span class='layout'>,</span><span class='chr'>'\65372'</span><span class='layout'>)</span>
+<a name="line-3063"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65374'</span><span class='layout'>,</span><span class='chr'>'\65374'</span><span class='layout'>)</span>
+<a name="line-3064"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65506'</span><span class='layout'>,</span><span class='chr'>'\65506'</span><span class='layout'>)</span>
+<a name="line-3065"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65513'</span><span class='layout'>,</span><span class='chr'>'\65516'</span><span class='layout'>)</span>
+<a name="line-3066"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120513'</span><span class='layout'>,</span><span class='chr'>'\120513'</span><span class='layout'>)</span>
+<a name="line-3067"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120539'</span><span class='layout'>,</span><span class='chr'>'\120539'</span><span class='layout'>)</span>
+<a name="line-3068"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120571'</span><span class='layout'>,</span><span class='chr'>'\120571'</span><span class='layout'>)</span>
+<a name="line-3069"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120597'</span><span class='layout'>,</span><span class='chr'>'\120597'</span><span class='layout'>)</span>
+<a name="line-3070"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120629'</span><span class='layout'>,</span><span class='chr'>'\120629'</span><span class='layout'>)</span>
+<a name="line-3071"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120655'</span><span class='layout'>,</span><span class='chr'>'\120655'</span><span class='layout'>)</span>
+<a name="line-3072"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120687'</span><span class='layout'>,</span><span class='chr'>'\120687'</span><span class='layout'>)</span>
+<a name="line-3073"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120713'</span><span class='layout'>,</span><span class='chr'>'\120713'</span><span class='layout'>)</span>
+<a name="line-3074"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120745'</span><span class='layout'>,</span><span class='chr'>'\120745'</span><span class='layout'>)</span>
+<a name="line-3075"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120771'</span><span class='layout'>,</span><span class='chr'>'\120771'</span><span class='layout'>)</span>
+<a name="line-3076"></a>    <span class='keyglyph'>]</span>
+<a name="line-3077"></a>
+<a name="line-3078"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3079"></a>
+<a name="line-3080"></a><a name="isUnicodeSo"></a><span class='definition'>isUnicodeSo</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-3081"></a><span class='definition'>isUnicodeSo</span> <span class='varid'>c</span>
+<a name="line-3082"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-3083"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span><span class='chr'>'\167'</span><span class='layout'>)</span>
+<a name="line-3084"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span><span class='chr'>'\169'</span><span class='layout'>)</span>
+<a name="line-3085"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span><span class='chr'>'\174'</span><span class='layout'>)</span>
+<a name="line-3086"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span><span class='chr'>'\176'</span><span class='layout'>)</span>
+<a name="line-3087"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span><span class='chr'>'\182'</span><span class='layout'>)</span>
+<a name="line-3088"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1154'</span><span class='layout'>,</span><span class='chr'>'\1154'</span><span class='layout'>)</span>
+<a name="line-3089"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1550'</span><span class='layout'>,</span><span class='chr'>'\1551'</span><span class='layout'>)</span>
+<a name="line-3090"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1769'</span><span class='layout'>,</span><span class='chr'>'\1769'</span><span class='layout'>)</span>
+<a name="line-3091"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1789'</span><span class='layout'>,</span><span class='chr'>'\1790'</span><span class='layout'>)</span>
+<a name="line-3092"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2038'</span><span class='layout'>,</span><span class='chr'>'\2038'</span><span class='layout'>)</span>
+<a name="line-3093"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2554'</span><span class='layout'>,</span><span class='chr'>'\2554'</span><span class='layout'>)</span>
+<a name="line-3094"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2928'</span><span class='layout'>,</span><span class='chr'>'\2928'</span><span class='layout'>)</span>
+<a name="line-3095"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3059'</span><span class='layout'>,</span><span class='chr'>'\3064'</span><span class='layout'>)</span>
+<a name="line-3096"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3066'</span><span class='layout'>,</span><span class='chr'>'\3066'</span><span class='layout'>)</span>
+<a name="line-3097"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3313'</span><span class='layout'>,</span><span class='chr'>'\3314'</span><span class='layout'>)</span>
+<a name="line-3098"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3841'</span><span class='layout'>,</span><span class='chr'>'\3843'</span><span class='layout'>)</span>
+<a name="line-3099"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3859'</span><span class='layout'>,</span><span class='chr'>'\3863'</span><span class='layout'>)</span>
+<a name="line-3100"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3866'</span><span class='layout'>,</span><span class='chr'>'\3871'</span><span class='layout'>)</span>
+<a name="line-3101"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3892'</span><span class='layout'>,</span><span class='chr'>'\3892'</span><span class='layout'>)</span>
+<a name="line-3102"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3894'</span><span class='layout'>,</span><span class='chr'>'\3894'</span><span class='layout'>)</span>
+<a name="line-3103"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3896'</span><span class='layout'>,</span><span class='chr'>'\3896'</span><span class='layout'>)</span>
+<a name="line-3104"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4030'</span><span class='layout'>,</span><span class='chr'>'\4037'</span><span class='layout'>)</span>
+<a name="line-3105"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4039'</span><span class='layout'>,</span><span class='chr'>'\4044'</span><span class='layout'>)</span>
+<a name="line-3106"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4047'</span><span class='layout'>,</span><span class='chr'>'\4047'</span><span class='layout'>)</span>
+<a name="line-3107"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4960'</span><span class='layout'>,</span><span class='chr'>'\4960'</span><span class='layout'>)</span>
+<a name="line-3108"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5008'</span><span class='layout'>,</span><span class='chr'>'\5017'</span><span class='layout'>)</span>
+<a name="line-3109"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6464'</span><span class='layout'>,</span><span class='chr'>'\6464'</span><span class='layout'>)</span>
+<a name="line-3110"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6624'</span><span class='layout'>,</span><span class='chr'>'\6655'</span><span class='layout'>)</span>
+<a name="line-3111"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7009'</span><span class='layout'>,</span><span class='chr'>'\7018'</span><span class='layout'>)</span>
+<a name="line-3112"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7028'</span><span class='layout'>,</span><span class='chr'>'\7036'</span><span class='layout'>)</span>
+<a name="line-3113"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8448'</span><span class='layout'>,</span><span class='chr'>'\8449'</span><span class='layout'>)</span>
+<a name="line-3114"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8451'</span><span class='layout'>,</span><span class='chr'>'\8454'</span><span class='layout'>)</span>
+<a name="line-3115"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8456'</span><span class='layout'>,</span><span class='chr'>'\8457'</span><span class='layout'>)</span>
+<a name="line-3116"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8468'</span><span class='layout'>,</span><span class='chr'>'\8468'</span><span class='layout'>)</span>
+<a name="line-3117"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8470'</span><span class='layout'>,</span><span class='chr'>'\8472'</span><span class='layout'>)</span>
+<a name="line-3118"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8478'</span><span class='layout'>,</span><span class='chr'>'\8483'</span><span class='layout'>)</span>
+<a name="line-3119"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8485'</span><span class='layout'>,</span><span class='chr'>'\8485'</span><span class='layout'>)</span>
+<a name="line-3120"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8487'</span><span class='layout'>,</span><span class='chr'>'\8487'</span><span class='layout'>)</span>
+<a name="line-3121"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8489'</span><span class='layout'>,</span><span class='chr'>'\8489'</span><span class='layout'>)</span>
+<a name="line-3122"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8494'</span><span class='layout'>,</span><span class='chr'>'\8494'</span><span class='layout'>)</span>
+<a name="line-3123"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8506'</span><span class='layout'>,</span><span class='chr'>'\8507'</span><span class='layout'>)</span>
+<a name="line-3124"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8522'</span><span class='layout'>,</span><span class='chr'>'\8522'</span><span class='layout'>)</span>
+<a name="line-3125"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8524'</span><span class='layout'>,</span><span class='chr'>'\8525'</span><span class='layout'>)</span>
+<a name="line-3126"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8597'</span><span class='layout'>,</span><span class='chr'>'\8601'</span><span class='layout'>)</span>
+<a name="line-3127"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8604'</span><span class='layout'>,</span><span class='chr'>'\8607'</span><span class='layout'>)</span>
+<a name="line-3128"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8609'</span><span class='layout'>,</span><span class='chr'>'\8610'</span><span class='layout'>)</span>
+<a name="line-3129"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8612'</span><span class='layout'>,</span><span class='chr'>'\8613'</span><span class='layout'>)</span>
+<a name="line-3130"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8615'</span><span class='layout'>,</span><span class='chr'>'\8621'</span><span class='layout'>)</span>
+<a name="line-3131"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8623'</span><span class='layout'>,</span><span class='chr'>'\8653'</span><span class='layout'>)</span>
+<a name="line-3132"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8656'</span><span class='layout'>,</span><span class='chr'>'\8657'</span><span class='layout'>)</span>
+<a name="line-3133"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8659'</span><span class='layout'>,</span><span class='chr'>'\8659'</span><span class='layout'>)</span>
+<a name="line-3134"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8661'</span><span class='layout'>,</span><span class='chr'>'\8691'</span><span class='layout'>)</span>
+<a name="line-3135"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8960'</span><span class='layout'>,</span><span class='chr'>'\8967'</span><span class='layout'>)</span>
+<a name="line-3136"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8972'</span><span class='layout'>,</span><span class='chr'>'\8991'</span><span class='layout'>)</span>
+<a name="line-3137"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8994'</span><span class='layout'>,</span><span class='chr'>'\9000'</span><span class='layout'>)</span>
+<a name="line-3138"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9003'</span><span class='layout'>,</span><span class='chr'>'\9083'</span><span class='layout'>)</span>
+<a name="line-3139"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9085'</span><span class='layout'>,</span><span class='chr'>'\9114'</span><span class='layout'>)</span>
+<a name="line-3140"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9140'</span><span class='layout'>,</span><span class='chr'>'\9179'</span><span class='layout'>)</span>
+<a name="line-3141"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9186'</span><span class='layout'>,</span><span class='chr'>'\9191'</span><span class='layout'>)</span>
+<a name="line-3142"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9216'</span><span class='layout'>,</span><span class='chr'>'\9254'</span><span class='layout'>)</span>
+<a name="line-3143"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9280'</span><span class='layout'>,</span><span class='chr'>'\9290'</span><span class='layout'>)</span>
+<a name="line-3144"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9372'</span><span class='layout'>,</span><span class='chr'>'\9449'</span><span class='layout'>)</span>
+<a name="line-3145"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9472'</span><span class='layout'>,</span><span class='chr'>'\9654'</span><span class='layout'>)</span>
+<a name="line-3146"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9656'</span><span class='layout'>,</span><span class='chr'>'\9664'</span><span class='layout'>)</span>
+<a name="line-3147"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9666'</span><span class='layout'>,</span><span class='chr'>'\9719'</span><span class='layout'>)</span>
+<a name="line-3148"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9728'</span><span class='layout'>,</span><span class='chr'>'\9838'</span><span class='layout'>)</span>
+<a name="line-3149"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9840'</span><span class='layout'>,</span><span class='chr'>'\9884'</span><span class='layout'>)</span>
+<a name="line-3150"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9888'</span><span class='layout'>,</span><span class='chr'>'\9906'</span><span class='layout'>)</span>
+<a name="line-3151"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9985'</span><span class='layout'>,</span><span class='chr'>'\9988'</span><span class='layout'>)</span>
+<a name="line-3152"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9990'</span><span class='layout'>,</span><span class='chr'>'\9993'</span><span class='layout'>)</span>
+<a name="line-3153"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9996'</span><span class='layout'>,</span><span class='chr'>'\10023'</span><span class='layout'>)</span>
+<a name="line-3154"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10025'</span><span class='layout'>,</span><span class='chr'>'\10059'</span><span class='layout'>)</span>
+<a name="line-3155"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10061'</span><span class='layout'>,</span><span class='chr'>'\10061'</span><span class='layout'>)</span>
+<a name="line-3156"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10063'</span><span class='layout'>,</span><span class='chr'>'\10066'</span><span class='layout'>)</span>
+<a name="line-3157"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10070'</span><span class='layout'>,</span><span class='chr'>'\10070'</span><span class='layout'>)</span>
+<a name="line-3158"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10072'</span><span class='layout'>,</span><span class='chr'>'\10078'</span><span class='layout'>)</span>
+<a name="line-3159"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10081'</span><span class='layout'>,</span><span class='chr'>'\10087'</span><span class='layout'>)</span>
+<a name="line-3160"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10132'</span><span class='layout'>,</span><span class='chr'>'\10132'</span><span class='layout'>)</span>
+<a name="line-3161"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10136'</span><span class='layout'>,</span><span class='chr'>'\10159'</span><span class='layout'>)</span>
+<a name="line-3162"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10161'</span><span class='layout'>,</span><span class='chr'>'\10174'</span><span class='layout'>)</span>
+<a name="line-3163"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10240'</span><span class='layout'>,</span><span class='chr'>'\10495'</span><span class='layout'>)</span>
+<a name="line-3164"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11008'</span><span class='layout'>,</span><span class='chr'>'\11034'</span><span class='layout'>)</span>
+<a name="line-3165"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11040'</span><span class='layout'>,</span><span class='chr'>'\11043'</span><span class='layout'>)</span>
+<a name="line-3166"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11493'</span><span class='layout'>,</span><span class='chr'>'\11498'</span><span class='layout'>)</span>
+<a name="line-3167"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11904'</span><span class='layout'>,</span><span class='chr'>'\11929'</span><span class='layout'>)</span>
+<a name="line-3168"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11931'</span><span class='layout'>,</span><span class='chr'>'\12019'</span><span class='layout'>)</span>
+<a name="line-3169"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12032'</span><span class='layout'>,</span><span class='chr'>'\12245'</span><span class='layout'>)</span>
+<a name="line-3170"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12272'</span><span class='layout'>,</span><span class='chr'>'\12283'</span><span class='layout'>)</span>
+<a name="line-3171"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12292'</span><span class='layout'>,</span><span class='chr'>'\12292'</span><span class='layout'>)</span>
+<a name="line-3172"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12306'</span><span class='layout'>,</span><span class='chr'>'\12307'</span><span class='layout'>)</span>
+<a name="line-3173"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12320'</span><span class='layout'>,</span><span class='chr'>'\12320'</span><span class='layout'>)</span>
+<a name="line-3174"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12342'</span><span class='layout'>,</span><span class='chr'>'\12343'</span><span class='layout'>)</span>
+<a name="line-3175"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12350'</span><span class='layout'>,</span><span class='chr'>'\12351'</span><span class='layout'>)</span>
+<a name="line-3176"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12688'</span><span class='layout'>,</span><span class='chr'>'\12689'</span><span class='layout'>)</span>
+<a name="line-3177"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12694'</span><span class='layout'>,</span><span class='chr'>'\12703'</span><span class='layout'>)</span>
+<a name="line-3178"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12736'</span><span class='layout'>,</span><span class='chr'>'\12751'</span><span class='layout'>)</span>
+<a name="line-3179"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12800'</span><span class='layout'>,</span><span class='chr'>'\12830'</span><span class='layout'>)</span>
+<a name="line-3180"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12842'</span><span class='layout'>,</span><span class='chr'>'\12867'</span><span class='layout'>)</span>
+<a name="line-3181"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12880'</span><span class='layout'>,</span><span class='chr'>'\12880'</span><span class='layout'>)</span>
+<a name="line-3182"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12896'</span><span class='layout'>,</span><span class='chr'>'\12927'</span><span class='layout'>)</span>
+<a name="line-3183"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12938'</span><span class='layout'>,</span><span class='chr'>'\12976'</span><span class='layout'>)</span>
+<a name="line-3184"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12992'</span><span class='layout'>,</span><span class='chr'>'\13054'</span><span class='layout'>)</span>
+<a name="line-3185"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13056'</span><span class='layout'>,</span><span class='chr'>'\13311'</span><span class='layout'>)</span>
+<a name="line-3186"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19904'</span><span class='layout'>,</span><span class='chr'>'\19967'</span><span class='layout'>)</span>
+<a name="line-3187"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42128'</span><span class='layout'>,</span><span class='chr'>'\42182'</span><span class='layout'>)</span>
+<a name="line-3188"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43048'</span><span class='layout'>,</span><span class='chr'>'\43051'</span><span class='layout'>)</span>
+<a name="line-3189"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65021'</span><span class='layout'>,</span><span class='chr'>'\65021'</span><span class='layout'>)</span>
+<a name="line-3190"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65508'</span><span class='layout'>,</span><span class='chr'>'\65508'</span><span class='layout'>)</span>
+<a name="line-3191"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65512'</span><span class='layout'>,</span><span class='chr'>'\65512'</span><span class='layout'>)</span>
+<a name="line-3192"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65517'</span><span class='layout'>,</span><span class='chr'>'\65518'</span><span class='layout'>)</span>
+<a name="line-3193"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65532'</span><span class='layout'>,</span><span class='chr'>'\65533'</span><span class='layout'>)</span>
+<a name="line-3194"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65794'</span><span class='layout'>,</span><span class='chr'>'\65794'</span><span class='layout'>)</span>
+<a name="line-3195"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65847'</span><span class='layout'>,</span><span class='chr'>'\65855'</span><span class='layout'>)</span>
+<a name="line-3196"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65913'</span><span class='layout'>,</span><span class='chr'>'\65929'</span><span class='layout'>)</span>
+<a name="line-3197"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\118784'</span><span class='layout'>,</span><span class='chr'>'\119029'</span><span class='layout'>)</span>
+<a name="line-3198"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119040'</span><span class='layout'>,</span><span class='chr'>'\119078'</span><span class='layout'>)</span>
+<a name="line-3199"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119082'</span><span class='layout'>,</span><span class='chr'>'\119140'</span><span class='layout'>)</span>
+<a name="line-3200"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119146'</span><span class='layout'>,</span><span class='chr'>'\119148'</span><span class='layout'>)</span>
+<a name="line-3201"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119171'</span><span class='layout'>,</span><span class='chr'>'\119172'</span><span class='layout'>)</span>
+<a name="line-3202"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119180'</span><span class='layout'>,</span><span class='chr'>'\119209'</span><span class='layout'>)</span>
+<a name="line-3203"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119214'</span><span class='layout'>,</span><span class='chr'>'\119261'</span><span class='layout'>)</span>
+<a name="line-3204"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119296'</span><span class='layout'>,</span><span class='chr'>'\119361'</span><span class='layout'>)</span>
+<a name="line-3205"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119365'</span><span class='layout'>,</span><span class='chr'>'\119365'</span><span class='layout'>)</span>
+<a name="line-3206"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119552'</span><span class='layout'>,</span><span class='chr'>'\119638'</span><span class='layout'>)</span>
+<a name="line-3207"></a>    <span class='keyglyph'>]</span>
+<a name="line-3208"></a>
+<a name="line-3209"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3210"></a>
+<a name="line-3211"></a><a name="isUnicodeZ"></a><span class='definition'>isUnicodeZ</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-3212"></a><span class='definition'>isUnicodeZ</span> <span class='varid'>c</span>
+<a name="line-3213"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-3214"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>' '</span><span class='layout'>,</span><span class='chr'>' '</span><span class='layout'>)</span>
+<a name="line-3215"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\160'</span><span class='layout'>,</span><span class='chr'>'\160'</span><span class='layout'>)</span>
+<a name="line-3216"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5760'</span><span class='layout'>,</span><span class='chr'>'\5760'</span><span class='layout'>)</span>
+<a name="line-3217"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6158'</span><span class='layout'>,</span><span class='chr'>'\6158'</span><span class='layout'>)</span>
+<a name="line-3218"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8192'</span><span class='layout'>,</span><span class='chr'>'\8202'</span><span class='layout'>)</span>
+<a name="line-3219"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8232'</span><span class='layout'>,</span><span class='chr'>'\8233'</span><span class='layout'>)</span>
+<a name="line-3220"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8239'</span><span class='layout'>,</span><span class='chr'>'\8239'</span><span class='layout'>)</span>
+<a name="line-3221"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8287'</span><span class='layout'>,</span><span class='chr'>'\8287'</span><span class='layout'>)</span>
+<a name="line-3222"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12288'</span><span class='layout'>,</span><span class='chr'>'\12288'</span><span class='layout'>)</span>
+<a name="line-3223"></a>    <span class='keyglyph'>]</span>
+<a name="line-3224"></a>
+<a name="line-3225"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3226"></a>
+<a name="line-3227"></a><a name="isUnicodeZl"></a><span class='definition'>isUnicodeZl</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-3228"></a><span class='definition'>isUnicodeZl</span> <span class='varid'>c</span>
+<a name="line-3229"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-3230"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\8232'</span><span class='layout'>,</span><span class='chr'>'\8232'</span><span class='layout'>)</span>
+<a name="line-3231"></a>    <span class='keyglyph'>]</span>
+<a name="line-3232"></a>
+<a name="line-3233"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3234"></a>
+<a name="line-3235"></a><a name="isUnicodeZp"></a><span class='definition'>isUnicodeZp</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-3236"></a><span class='definition'>isUnicodeZp</span> <span class='varid'>c</span>
+<a name="line-3237"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-3238"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\8233'</span><span class='layout'>,</span><span class='chr'>'\8233'</span><span class='layout'>)</span>
+<a name="line-3239"></a>    <span class='keyglyph'>]</span>
+<a name="line-3240"></a>
+<a name="line-3241"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3242"></a>
+<a name="line-3243"></a><a name="isUnicodeZs"></a><span class='definition'>isUnicodeZs</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-3244"></a><span class='definition'>isUnicodeZs</span> <span class='varid'>c</span>
+<a name="line-3245"></a>  <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>
+<a name="line-3246"></a>    <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>' '</span><span class='layout'>,</span><span class='chr'>' '</span><span class='layout'>)</span>
+<a name="line-3247"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\160'</span><span class='layout'>,</span><span class='chr'>'\160'</span><span class='layout'>)</span>
+<a name="line-3248"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5760'</span><span class='layout'>,</span><span class='chr'>'\5760'</span><span class='layout'>)</span>
+<a name="line-3249"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6158'</span><span class='layout'>,</span><span class='chr'>'\6158'</span><span class='layout'>)</span>
+<a name="line-3250"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8192'</span><span class='layout'>,</span><span class='chr'>'\8202'</span><span class='layout'>)</span>
+<a name="line-3251"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8239'</span><span class='layout'>,</span><span class='chr'>'\8239'</span><span class='layout'>)</span>
+<a name="line-3252"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8287'</span><span class='layout'>,</span><span class='chr'>'\8287'</span><span class='layout'>)</span>
+<a name="line-3253"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12288'</span><span class='layout'>,</span><span class='chr'>'\12288'</span><span class='layout'>)</span>
+<a name="line-3254"></a>    <span class='keyglyph'>]</span>
+<a name="line-3255"></a>
+<a name="line-3256"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-3257"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Utils.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Utils.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Utils.html
@@ -0,0 +1,171 @@
+<!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     : Text.XML.HXT.RelaxNG.Utils
+<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>   Helper functions for RelaxNG validation
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>isRelaxAnyURI</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>compareURI</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>normalizeURI</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>isNumber</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>isNmtoken</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>isName</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>formatStringList</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>formatStringListPatt</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>formatStringListId</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>formatStringListQuot</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>formatStringListPairs</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>formatStringListArr</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'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</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'>nmtoken</span>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>name</span>
+<a name="line-40"></a>    <span class='layout'>)</span>
+<a name="line-41"></a>
+<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>
+<a name="line-43"></a>    <span class='layout'>(</span> <span class='varid'>isURI</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isRelativeReference</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>parseURI</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='conid'>URI</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</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'>Maybe</span>
+<a name="line-50"></a>    <span class='layout'>(</span> <span class='varid'>fromMaybe</span>
+<a name="line-51"></a>    <span class='layout'>)</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-54"></a>    <span class='layout'>(</span> <span class='varid'>toLower</span>
+<a name="line-55"></a>    <span class='layout'>)</span>
+<a name="line-56"></a>
+<a name="line-57"></a>
+<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-59"></a>
+<a name="line-60"></a>
+<a name="line-61"></a><span class='comment'>-- | Tests whether a URI matches the Relax NG anyURI symbol</span>
+<a name="line-62"></a>
+<a name="line-63"></a><a name="isRelaxAnyURI"></a><span class='definition'>isRelaxAnyURI</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'>isRelaxAnyURI</span> <span class='varid'>s</span> 
+<a name="line-65"></a>    <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>||</span>
+<a name="line-66"></a>      <span class='layout'>(</span> <span class='varid'>isURI</span> <span class='varid'>s</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isRelativeReference</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span>
+<a name="line-67"></a>	<span class='layout'>(</span> <span class='keyword'>let</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>path</span> <span class='keyword'>_</span> <span class='varid'>frag</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='str'>""</span> <span class='conid'>Nothing</span> <span class='str'>""</span> <span class='str'>""</span> <span class='str'>""</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseURI</span> <span class='varid'>s</span>
+<a name="line-68"></a>          <span class='keyword'>in</span> <span class='layout'>(</span><span class='varid'>frag</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>path</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-69"></a>	<span class='layout'>)</span>
+<a name="line-70"></a>      <span class='layout'>)</span>
+<a name="line-71"></a>
+<a name="line-72"></a>
+<a name="line-73"></a><span class='comment'>-- | Tests whether two URIs are equal after 'normalizeURI' is performed</span>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="compareURI"></a><span class='definition'>compareURI</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-76"></a><span class='definition'>compareURI</span> <span class='varid'>uri1</span> <span class='varid'>uri2</span>
+<a name="line-77"></a>    <span class='keyglyph'>=</span> <span class='varid'>normalizeURI</span> <span class='varid'>uri1</span> <span class='varop'>==</span> <span class='varid'>normalizeURI</span> <span class='varid'>uri2</span>
+<a name="line-78"></a>
+<a name="line-79"></a>
+<a name="line-80"></a><span class='comment'>-- |  Converts all letters to the corresponding lower-case letter </span>
+<a name="line-81"></a><span class='comment'>-- and removes a trailing \"\/\" </span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="normalizeURI"></a><span class='definition'>normalizeURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-84"></a><span class='definition'>normalizeURI</span> <span class='str'>""</span>
+<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-86"></a><span class='definition'>normalizeURI</span> <span class='varid'>uri</span>
+<a name="line-87"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>last</span> <span class='varid'>uri</span> <span class='varop'>==</span> <span class='chr'>'/'</span>
+<a name="line-88"></a>		    <span class='keyword'>then</span> <span class='varid'>init</span> <span class='varid'>uri</span>
+<a name="line-89"></a>		    <span class='keyword'>else</span> <span class='varid'>uri</span>
+<a name="line-90"></a>		  <span class='layout'>)</span>
+<a name="line-91"></a>
+<a name="line-92"></a><a name="checkByParsing"></a><span class='definition'>checkByParsing</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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-93"></a><span class='definition'>checkByParsing</span> <span class='varid'>p</span> <span class='varid'>s</span>
+<a name="line-94"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>parse</span> <span class='varid'>p'</span> <span class='str'>""</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-95"></a>      <span class='keyword'>where</span>
+<a name="line-96"></a>      <span class='varid'>p'</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-97"></a>	   <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>p</span>
+<a name="line-98"></a>	   <span class='varid'>eof</span>
+<a name="line-99"></a>	   <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-100"></a>
+<a name="line-101"></a><a name="isNumber"></a><span class='comment'>-- | Tests whether a string matches a number [-](0-9)*</span>
+<a name="line-102"></a><span class='definition'>isNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-103"></a><span class='definition'>isNumber</span>
+<a name="line-104"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkByParsing</span> <span class='varid'>parseNumber'</span>
+<a name="line-105"></a>    <span class='keyword'>where</span>
+<a name="line-106"></a>    <span class='varid'>parseNumber'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-107"></a>    <span class='varid'>parseNumber'</span>
+<a name="line-108"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-109"></a>	  <span class='varid'>skipS0</span>
+<a name="line-110"></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-111"></a>	  <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-112"></a>	  <span class='varid'>skipS0</span>
+<a name="line-113"></a>	  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>n</span>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="isNmtoken"></a><span class='definition'>isNmtoken</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-116"></a><span class='definition'>isNmtoken</span>    <span class='keyglyph'>=</span> <span class='varid'>checkByParsing</span> <span class='varid'>nmtoken</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="isName"></a><span class='definition'>isName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-119"></a><span class='definition'>isName</span>	<span class='keyglyph'>=</span> <span class='varid'>checkByParsing</span> <span class='varid'>name</span>
+<a name="line-120"></a>
+<a name="line-121"></a><span class='comment'>{- | 
+<a name="line-122"></a>
+<a name="line-123"></a>Formats a list of strings into a single string.
+<a name="line-124"></a>The first parameter formats the elements, the 2. is inserted
+<a name="line-125"></a>between two elements.
+<a name="line-126"></a>
+<a name="line-127"></a>example:
+<a name="line-128"></a>
+<a name="line-129"></a>&gt; formatStringList show ", " ["foo", "bar", "baz"] -&gt; "foo", "bar", "baz"
+<a name="line-130"></a>
+<a name="line-131"></a>-}</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="formatStringListPatt"></a><span class='definition'>formatStringListPatt</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='conid'>String</span>
+<a name="line-134"></a><span class='definition'>formatStringListPatt</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"-"</span><span class='layout'>)</span> <span class='str'>", "</span>
+<a name="line-136"></a>
+<a name="line-137"></a><a name="formatStringListPairs"></a><span class='definition'>formatStringListPairs</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>
+<a name="line-138"></a><span class='definition'>formatStringListPairs</span>
+<a name="line-139"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>id</span> <span class='str'>", "</span>
+<a name="line-140"></a>      <span class='varop'>.</span> <span class='varid'>map</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='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="formatStringListQuot"></a><span class='definition'>formatStringListQuot</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='conid'>String</span>
+<a name="line-143"></a><span class='definition'>formatStringListQuot</span>
+<a name="line-144"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>show</span> <span class='str'>", "</span>
+<a name="line-145"></a>
+<a name="line-146"></a><a name="formatStringListId"></a><span class='definition'>formatStringListId</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='conid'>String</span>
+<a name="line-147"></a><span class='definition'>formatStringListId</span>
+<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>id</span> <span class='str'>", "</span>
+<a name="line-149"></a>
+<a name="line-150"></a><a name="formatStringListArr"></a><span class='definition'>formatStringListArr</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='conid'>String</span>
+<a name="line-151"></a><span class='definition'>formatStringListArr</span>
+<a name="line-152"></a>    <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>show</span> <span class='str'>" -&gt; "</span>
+<a name="line-153"></a>
+<a name="line-154"></a><a name="formatStringList"></a><span class='definition'>formatStringList</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='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-155"></a><span class='definition'>formatStringList</span> <span class='sel'>_sf</span> <span class='sel'>_sp</span> <span class='conid'>[]</span>
+<a name="line-156"></a>    <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-157"></a><span class='definition'>formatStringList</span> <span class='varid'>sf</span> <span class='varid'>spacer</span> <span class='varid'>l</span>
+<a name="line-158"></a>    <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>spacer</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varop'>$</span> 
+<a name="line-159"></a>      <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>e</span> <span class='varop'>/=</span> <span class='str'>""</span> <span class='keyword'>then</span> <span class='varid'>sf</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='varid'>spacer</span> <span class='keyword'>else</span> <span class='str'>""</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span> <span class='varid'>l</span>
+<a name="line-160"></a>
+<a name="line-161"></a><span class='comment'>-- ----------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Validation.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Validation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Validation.html
@@ -0,0 +1,627 @@
+<!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     : Text.XML.HXT.RelaxNG.Validation
+<a name="line-5"></a>   Copyright  : Copyright (C) 2008 Torben Kuseler, 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>   Validation of a XML document with respect to a valid Relax NG schema in simple form.
+<a name="line-13"></a>   Copied and modified from \"An algorithm for RELAX NG validation\" by James Clark
+<a name="line-14"></a>   (&lt;<a href="http://www.thaiopensource.com/relaxng/derivative.html">http://www.thaiopensource.com/relaxng/derivative.html</a>&gt;).
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='varid'>validateWithRelaxAndHandleErrors</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>validateDocWithRelax</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>validateRelax</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>validateXMLDoc</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>readForRelax</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>normalizeForRelaxValidation</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>contains</span>
+<a name="line-28"></a>    <span class='layout'>)</span>
+<a name="line-29"></a><span class='keyword'>where</span>
+<a name="line-30"></a>
+<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'>ListArrows</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'>Interface</span>
+<a name="line-34"></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-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'>Unicode</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>
+<a name="line-37"></a>    <span class='layout'>)</span>
+<a name="line-38"></a>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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'>XmlIOStateArrow</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'>Edit</span>
+<a name="line-44"></a>    <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>collapseAllXText</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'>Arrow</span><span class='varop'>.</span><span class='conid'>ProcessDocument</span>
+<a name="line-49"></a>    <span class='layout'>(</span> <span class='varid'>propagateAndValidateNamespaces</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>getDocumentContents</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>parseXmlDocument</span>
+<a name="line-52"></a>    <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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>
+<a name="line-56"></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'>PatternToString</span>
+<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'>DataTypeLibraries</span>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>
+<a name="line-59"></a>    <span class='layout'>(</span> <span class='varid'>formatStringListQuot</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>compareURI</span>
+<a name="line-61"></a>    <span class='layout'>)</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-64"></a>    <span class='layout'>(</span> <span class='varid'>fromJust</span>
+<a name="line-65"></a>    <span class='layout'>)</span>
+<a name="line-66"></a>
+<a name="line-67"></a><span class='comment'>{-
+<a name="line-68"></a>import qualified Debug.Trace as T
+<a name="line-69"></a>-}</span>
+<a name="line-70"></a>
+<a name="line-71"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-72"></a>
+<a name="line-73"></a><a name="validateWithRelaxAndHandleErrors"></a><span class='definition'>validateWithRelaxAndHandleErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-74"></a><span class='definition'>validateWithRelaxAndHandleErrors</span> <span class='varid'>theSchema</span>
+<a name="line-75"></a>    <span class='keyglyph'>=</span> <span class='varid'>validateWithRelax</span> <span class='varid'>theSchema</span>
+<a name="line-76"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-77"></a>      <span class='varid'>handleErrors</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="validateWithRelax"></a><span class='definition'>validateWithRelax</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-80"></a><span class='definition'>validateWithRelax</span> <span class='varid'>theSchema</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"validate with Relax NG schema"</span>
+<a name="line-82"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-83"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>normalizeForRelaxValidation</span>		<span class='comment'>-- prepare the document for validation</span>
+<a name="line-84"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-85"></a>	  <span class='varid'>getChildren</span>
+<a name="line-86"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-87"></a>	  <span class='varid'>isElem</span>				<span class='comment'>-- and select the root element</span>
+<a name="line-88"></a>	<span class='layout'>)</span>
+<a name="line-89"></a>	<span class='varop'>&amp;&amp;&amp;</span>
+<a name="line-90"></a>	<span class='varid'>theSchema</span>
+<a name="line-91"></a>      <span class='layout'>)</span>
+<a name="line-92"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-93"></a>      <span class='varid'>arr2A</span> <span class='varid'>validateRelax</span>			<span class='comment'>-- compute vaidation errors as a document</span>
+<a name="line-94"></a>
+<a name="line-95"></a><a name="handleErrors"></a><span class='definition'>handleErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-96"></a><span class='definition'>handleErrors</span>
+<a name="line-97"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceDoc</span> <span class='str'>"error found when validating with Relax NG schema"</span>
+<a name="line-98"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-99"></a>      <span class='layout'>(</span> <span class='varid'>getChildren</span>				<span class='comment'>-- prepare error format</span>
+<a name="line-100"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-101"></a>	<span class='varid'>getText</span>
+<a name="line-102"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-103"></a>	<span class='varid'>arr</span> <span class='layout'>(</span><span class='str'>"Relax NG validation: "</span> <span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-104"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-105"></a>	<span class='varid'>mkError</span> <span class='varid'>c_err</span>
+<a name="line-106"></a>      <span class='layout'>)</span>
+<a name="line-107"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-108"></a>      <span class='varid'>filterErrorMsg</span>				<span class='comment'>-- issue errors and set system status</span>
+<a name="line-109"></a>
+<a name="line-110"></a>
+<a name="line-111"></a><span class='comment'>{- |
+<a name="line-112"></a>   normalize a document for validation with Relax NG: remove all namespace declaration attributes,
+<a name="line-113"></a>   remove all processing instructions and merge all sequences of text nodes into a single text node
+<a name="line-114"></a>-}</span>
+<a name="line-115"></a>
+<a name="line-116"></a><a name="normalizeForRelaxValidation"></a><span class='definition'>normalizeForRelaxValidation</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'>normalizeForRelaxValidation</span>
+<a name="line-118"></a>  <span class='keyglyph'>=</span> <span class='varid'>processTopDownWithAttrl</span>
+<a name="line-119"></a>    <span class='layout'>(</span>
+<a name="line-120"></a>     <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span>			<span class='comment'>-- remove all namespace attributes</span>
+<a name="line-121"></a>       <span class='layout'>(</span> <span class='varid'>isAttr</span>
+<a name="line-122"></a>         <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-123"></a>         <span class='varid'>getNamespaceUri</span>
+<a name="line-124"></a>         <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-125"></a>         <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>compareURI</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>
+<a name="line-126"></a>       <span class='layout'>)</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='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isPi</span><span class='layout'>)</span>			<span class='comment'>-- processing instructions</span>
+<a name="line-130"></a>    <span class='layout'>)</span>
+<a name="line-131"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>    <span class='varid'>collapseAllXText</span>			<span class='comment'>-- all text node sequences are merged into a single text node</span>
+<a name="line-133"></a>
+<a name="line-134"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>{- | Validates a xml document with respect to a Relax NG schema
+<a name="line-137"></a>
+<a name="line-138"></a>   * 1.parameter  :  the arrow for computing the Relax NG schema
+<a name="line-139"></a>
+<a name="line-140"></a>   - 2.parameter  :  list of options for reading and validating
+<a name="line-141"></a>   
+<a name="line-142"></a>   - 3.parameter  :  XML document URI
+<a name="line-143"></a>
+<a name="line-144"></a>   - arrow-input  :  ignored
+<a name="line-145"></a>   
+<a name="line-146"></a>   - arrow-output :  list of errors or 'none'
+<a name="line-147"></a>-}</span>  
+<a name="line-148"></a>
+<a name="line-149"></a><a name="validateDocWithRelax"></a><span class='definition'>validateDocWithRelax</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</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='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-150"></a><span class='definition'>validateDocWithRelax</span> <span class='varid'>theSchema</span> <span class='varid'>al</span> <span class='varid'>doc</span>
+<a name="line-151"></a>  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>doc</span>
+<a name="line-152"></a>      <span class='keyword'>then</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-153"></a>      <span class='keyword'>else</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>doc</span>
+<a name="line-154"></a>    <span class='layout'>)</span>
+<a name="line-155"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-156"></a>    <span class='varid'>validateWithRelax</span> <span class='varid'>theSchema</span>
+<a name="line-157"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-158"></a>    <span class='varid'>perform</span> <span class='varid'>handleErrors</span>
+<a name="line-159"></a>
+<a name="line-160"></a>
+<a name="line-161"></a><span class='comment'>{- | Validates a xml document with respect to a Relax NG schema
+<a name="line-162"></a>
+<a name="line-163"></a>   * 1.parameter  :  XML document
+<a name="line-164"></a>
+<a name="line-165"></a>   - arrow-input  :  Relax NG schema
+<a name="line-166"></a>   
+<a name="line-167"></a>   - arrow-output :  list of errors or 'none'
+<a name="line-168"></a>-}</span>
+<a name="line-169"></a>
+<a name="line-170"></a><a name="validateRelax"></a><span class='definition'>validateRelax</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-171"></a><span class='definition'>validateRelax</span> <span class='varid'>xmlDoc</span>
+<a name="line-172"></a>  <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>
+<a name="line-173"></a>    <span class='layout'>(</span> <span class='varid'>createPatternFromXmlTree</span>
+<a name="line-174"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-175"></a>      <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>p</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>childDeriv</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>p</span> <span class='varid'>xmlDoc</span><span class='layout'>)</span>
+<a name="line-176"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-177"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>nullable</span><span class='layout'>)</span>
+<a name="line-178"></a>        <span class='varop'>`guardsP`</span>
+<a name="line-179"></a>        <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1024</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>mkText</span> <span class='keyglyph'>]</span>	<span class='comment'>-- pattern may be recursive, so the string representation</span>
+<a name="line-180"></a>	                                                <span class='comment'>-- is truncated to 1024 chars to assure termination</span>
+<a name="line-181"></a>      <span class='layout'>)</span>
+<a name="line-182"></a>    <span class='layout'>)</span>
+<a name="line-183"></a>
+<a name="line-184"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-185"></a>
+<a name="line-186"></a><a name="readForRelax"></a><span class='definition'>readForRelax</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'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>
+<a name="line-187"></a><span class='definition'>readForRelax</span> <span class='varid'>options</span> <span class='varid'>schema</span>
+<a name="line-188"></a>    <span class='keyglyph'>=</span> <span class='varid'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>schema</span>
+<a name="line-189"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-190"></a>      <span class='varid'>parseXmlDocument</span> <span class='conid'>False</span>
+<a name="line-191"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-192"></a>      <span class='varid'>canonicalizeAllNodes</span>
+<a name="line-193"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-194"></a>      <span class='varid'>propagateAndValidateNamespaces</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'>{- old stuff -}</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="validateXMLDoc"></a><span class='definition'>validateXMLDoc</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-201"></a><span class='definition'>validateXMLDoc</span> <span class='varid'>al</span> <span class='varid'>xmlDoc</span>
+<a name="line-202"></a>  <span class='keyglyph'>=</span> <span class='varid'>validateRelax</span>
+<a name="line-203"></a>    <span class='varop'>$&lt;</span>
+<a name="line-204"></a>    <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>xmlDoc</span>
+<a name="line-205"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-206"></a>      <span class='varid'>normalizeForRelaxValidation</span>
+<a name="line-207"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-208"></a>      <span class='varid'>getChildren</span>
+<a name="line-209"></a>    <span class='layout'>)</span>
+<a name="line-210"></a>
+<a name="line-211"></a>
+<a name="line-212"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-213"></a><span class='comment'>--</span>
+<a name="line-214"></a><span class='comment'>-- | tests whether a 'NameClass' contains a particular 'QName'</span>
+<a name="line-215"></a>
+<a name="line-216"></a><a name="contains"></a><span class='definition'>contains</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-217"></a><span class='definition'>contains</span> <span class='conid'>AnyName</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-218"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nc</span><span class='layout'>)</span>    <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-219"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>ns1</span><span class='layout'>)</span>          <span class='varid'>qn</span>	<span class='keyglyph'>=</span> <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span>
+<a name="line-220"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>ns1</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='varid'>qn</span>	<span class='keyglyph'>=</span> <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-221"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>ns1</span> <span class='varid'>ln1</span><span class='layout'>)</span>        <span class='varid'>qn</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>ln1</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-222"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span> <span class='varid'>n</span> 	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc1</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc2</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-223"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NCError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> 			<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-224"></a>
+<a name="line-225"></a>
+<a name="line-226"></a><a name="nullable"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-227"></a><span class='comment'>--  </span>
+<a name="line-228"></a><span class='comment'>-- | tests whether a pattern matches the empty sequence</span>
+<a name="line-229"></a><span class='definition'>nullable</span><span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-230"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>nullable</span> <span class='varid'>p2</span>
+<a name="line-231"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>nullable</span> <span class='varid'>p2</span>
+<a name="line-232"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> <span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>p2</span>
+<a name="line-233"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p</span>
+<a name="line-234"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-235"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-236"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>List</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='layout'>(</span><span class='conid'>Value</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-238"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-239"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</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'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-241"></a><span class='definition'>nullable</span> <span class='conid'>Empty</span>			<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-242"></a><span class='definition'>nullable</span> <span class='conid'>Text</span>			<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-243"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-244"></a>
+<a name="line-245"></a>
+<a name="line-246"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-247"></a><span class='comment'>--  </span>
+<a name="line-248"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a XML-Child and a 'Context'</span>
+<a name="line-249"></a>
+<a name="line-250"></a><a name="childDeriv"></a><span class='definition'>childDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-251"></a>
+<a name="line-252"></a><span class='definition'>childDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>t</span>
+<a name="line-253"></a>    <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t</span>	<span class='keyglyph'>=</span> <span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varop'>.</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'>t</span>
+<a name="line-254"></a>    <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>t</span>	<span class='keyglyph'>=</span> <span class='varid'>endTagDeriv</span> <span class='varid'>p4</span>
+<a name="line-255"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to childDeriv with wrong arguments"</span>
+<a name="line-256"></a>    <span class='keyword'>where</span>
+<a name="line-257"></a>    <span class='varid'>children</span>	<span class='keyglyph'>=</span>            <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-258"></a>    <span class='varid'>qn</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'>getElemName</span> <span class='varop'>$</span> <span class='varid'>t</span> 
+<a name="line-259"></a>    <span class='varid'>atts</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-260"></a>    <span class='varid'>cx1</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-261"></a>    <span class='varid'>p1</span>		<span class='keyglyph'>=</span> <span class='varid'>startTagOpenDeriv</span> <span class='varid'>p</span> <span class='varid'>qn</span>
+<a name="line-262"></a>    <span class='varid'>p2</span>		<span class='keyglyph'>=</span> <span class='varid'>attsDeriv</span> <span class='varid'>cx1</span> <span class='varid'>p1</span> <span class='varid'>atts</span>
+<a name="line-263"></a>    <span class='varid'>p3</span>		<span class='keyglyph'>=</span> <span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span>
+<a name="line-264"></a>    <span class='varid'>p4</span>		<span class='keyglyph'>=</span> <span class='varid'>childrenDeriv</span> <span class='varid'>cx1</span> <span class='varid'>p3</span> <span class='varid'>children</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'>-- | computes the derivative of a pattern with respect to a text node</span>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="textDeriv"></a><span class='definition'>textDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-271"></a>
+<a name="line-272"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-273"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-274"></a>
+<a name="line-275"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-276"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span>
+<a name="line-277"></a>      <span class='layout'>(</span><span class='varid'>interleave</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-278"></a>      <span class='layout'>(</span><span class='varid'>interleave</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-279"></a>
+<a name="line-280"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-282"></a>      <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>p2</span>
+<a name="line-283"></a>      <span class='keyword'>in</span>
+<a name="line-284"></a>      <span class='keyword'>if</span> <span class='varid'>nullable</span> <span class='varid'>p1</span>
+<a name="line-285"></a>      <span class='keyword'>then</span> <span class='varid'>choice</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-286"></a>      <span class='keyword'>else</span> <span class='varid'>p</span>
+<a name="line-287"></a>
+<a name="line-288"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-289"></a>    <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>p2</span>
+<a name="line-290"></a>
+<a name="line-291"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-292"></a>    <span class='keyglyph'>=</span> <span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>choice</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conid'>Empty</span><span class='layout'>)</span>
+<a name="line-293"></a>
+<a name="line-294"></a><span class='definition'>textDeriv</span> <span class='keyword'>_</span> <span class='conid'>Text</span> <span class='keyword'>_</span>
+<a name="line-295"></a>    <span class='keyglyph'>=</span> <span class='conid'>Text</span>
+<a name="line-296"></a>
+<a name="line-297"></a><span class='definition'>textDeriv</span> <span class='varid'>cx1</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>value</span> <span class='varid'>cx2</span><span class='layout'>)</span> <span class='varid'>s1</span>
+<a name="line-298"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>datatypeEqual</span> <span class='varid'>uri</span> <span class='varid'>s</span> <span class='varid'>value</span> <span class='varid'>cx2</span> <span class='varid'>s1</span> <span class='varid'>cx1</span>
+<a name="line-299"></a>      <span class='keyword'>of</span>
+<a name="line-300"></a>      <span class='conid'>Nothing</span>     <span class='keyglyph'>-&gt;</span> <span class='conid'>Empty</span> 
+<a name="line-301"></a>      <span class='conid'>Just</span> <span class='varid'>errStr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>notAllowed</span> <span class='varid'>errStr</span>
+<a name="line-302"></a>
+<a name="line-303"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>params</span><span class='layout'>)</span> <span class='varid'>s1</span>
+<a name="line-304"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>datatypeAllows</span> <span class='varid'>uri</span> <span class='varid'>s</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>cx</span>
+<a name="line-305"></a>      <span class='keyword'>of</span>
+<a name="line-306"></a>      <span class='conid'>Nothing</span>     <span class='keyglyph'>-&gt;</span> <span class='conid'>Empty</span> 
+<a name="line-307"></a>      <span class='conid'>Just</span> <span class='varid'>errStr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>notAllowed2</span> <span class='varid'>errStr</span>
+<a name="line-308"></a>
+<a name="line-309"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>params</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>s1</span>
+<a name="line-310"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>datatypeAllows</span> <span class='varid'>uri</span> <span class='varid'>s</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>cx</span><span class='layout'>)</span>
+<a name="line-311"></a>      <span class='keyword'>of</span>
+<a name="line-312"></a>      <span class='conid'>Nothing</span>     <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>nullable</span> <span class='varop'>$</span> <span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>s1</span> 
+<a name="line-313"></a>                     <span class='keyword'>then</span> <span class='conid'>Empty</span> 
+<a name="line-314"></a>		     <span class='keyword'>else</span> <span class='varid'>notAllowed</span>
+<a name="line-315"></a>			      <span class='layout'>(</span> <span class='str'>"Any value except "</span> <span class='varop'>++</span>
+<a name="line-316"></a>				<span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span> 
+<a name="line-317"></a>				<span class='str'>" expected, but value "</span> <span class='varop'>++</span>
+<a name="line-318"></a>				<span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-319"></a>				<span class='str'>" found"</span>
+<a name="line-320"></a>			      <span class='layout'>)</span>
+<a name="line-321"></a>      <span class='conid'>Just</span> <span class='varid'>errStr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>notAllowed</span> <span class='varid'>errStr</span>
+<a name="line-322"></a>
+<a name="line-323"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>s</span>
+<a name="line-324"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>nullable</span> <span class='layout'>(</span><span class='varid'>listDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-325"></a>      <span class='keyword'>then</span> <span class='conid'>Empty</span>
+<a name="line-326"></a>      <span class='keyword'>else</span> <span class='varid'>notAllowed</span>
+<a name="line-327"></a>	       <span class='layout'>(</span> <span class='str'>"List with value(s) "</span> <span class='varop'>++</span>
+<a name="line-328"></a>		 <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> 
+<a name="line-329"></a>		 <span class='str'>" expected, but value(s) "</span> <span class='varop'>++</span> 
+<a name="line-330"></a>		 <span class='varid'>formatStringListQuot</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-331"></a>		 <span class='str'>" found"</span>
+<a name="line-332"></a>	       <span class='layout'>)</span>
+<a name="line-333"></a>
+<a name="line-334"></a><span class='definition'>textDeriv</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-335"></a>    <span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-336"></a>
+<a name="line-337"></a><span class='definition'>textDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='varid'>s</span>
+<a name="line-338"></a>    <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span>
+<a name="line-339"></a>      <span class='layout'>(</span> <span class='str'>"Pattern "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getPatternName</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-340"></a>	<span class='str'>" expected, but text "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>" found"</span>
+<a name="line-341"></a>      <span class='layout'>)</span>
+<a name="line-342"></a>
+<a name="line-343"></a>
+<a name="line-344"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-345"></a><span class='comment'>--  </span>
+<a name="line-346"></a><span class='comment'>-- | To compute the derivative of a pattern with respect to a list of strings, </span>
+<a name="line-347"></a><span class='comment'>-- simply compute the derivative with respect to each member of the list in turn.</span>
+<a name="line-348"></a>
+<a name="line-349"></a><a name="listDeriv"></a><span class='definition'>listDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</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'>Pattern</span>
+<a name="line-350"></a>
+<a name="line-351"></a><span class='definition'>listDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='conid'>[]</span>
+<a name="line-352"></a>    <span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-353"></a>
+<a name="line-354"></a><span class='definition'>listDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-355"></a>    <span class='keyglyph'>=</span> <span class='varid'>listDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>xs</span>
+<a name="line-356"></a>    
+<a name="line-357"></a>
+<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-359"></a><span class='comment'>--  </span>
+<a name="line-360"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a start tag open</span>
+<a name="line-361"></a>
+<a name="line-362"></a><a name="startTagOpenDeriv"></a><span class='definition'>startTagOpenDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-363"></a>
+<a name="line-364"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-365"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p2</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-366"></a>
+<a name="line-367"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-368"></a>    <span class='keyglyph'>|</span> <span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>qn</span>
+<a name="line-369"></a>	<span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='varid'>p</span> <span class='conid'>Empty</span>
+<a name="line-370"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-371"></a>	<span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span>
+<a name="line-372"></a>	  <span class='str'>"Element with name "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span> <span class='varop'>++</span> 
+<a name="line-373"></a>	    <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>universalName</span> <span class='varid'>qn</span> <span class='varop'>++</span> <span class='str'>" found"</span>
+<a name="line-374"></a>
+<a name="line-375"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-376"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span>
+<a name="line-377"></a>      <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>interleave</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-378"></a>      <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>interleave</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p2</span> <span class='varid'>qn</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-379"></a>
+<a name="line-380"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-381"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyAfter</span>
+<a name="line-382"></a>      <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>choice</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conid'>Empty</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-383"></a>      <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-384"></a>
+<a name="line-385"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-386"></a>    <span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-387"></a>      <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>group</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-388"></a>      <span class='keyword'>in</span>
+<a name="line-389"></a>      <span class='keyword'>if</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> 
+<a name="line-390"></a>      <span class='keyword'>then</span> <span class='varid'>choice</span> <span class='varid'>x</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p2</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-391"></a>      <span class='keyword'>else</span> <span class='varid'>x</span>
+<a name="line-392"></a>
+<a name="line-393"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>
+<a name="line-394"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>after</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-395"></a>
+<a name="line-396"></a><span class='definition'>startTagOpenDeriv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-397"></a>    <span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-398"></a>
+<a name="line-399"></a><span class='definition'>startTagOpenDeriv</span> <span class='varid'>p</span> <span class='varid'>qn</span>
+<a name="line-400"></a>    <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='layout'>(</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" expected, but Element "</span> <span class='varop'>++</span> <span class='varid'>universalName</span> <span class='varid'>qn</span> <span class='varop'>++</span> <span class='str'>" found"</span> <span class='layout'>)</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><span class='comment'>-- auxiliary functions for tracing</span>
+<a name="line-405"></a><span class='comment'>{-
+<a name="line-406"></a>attsDeriv' cx p ts
+<a name="line-407"></a>    = T.trace ("attsDeriv: p=" ++ (take 1000 . show) p ++ ", t=" ++ showXts ts) $
+<a name="line-408"></a>      T.trace ("res= " ++ (take 1000 . show) res) res
+<a name="line-409"></a>    where
+<a name="line-410"></a>    res = attsDeriv cx p ts
+<a name="line-411"></a>
+<a name="line-412"></a>attDeriv' cx p t
+<a name="line-413"></a>    = T.trace ("attDeriv: p=" ++ (take 1000 . show) p ++ ", t=" ++ showXts [t]) $
+<a name="line-414"></a>      T.trace ("res= " ++ (take 1000 . show) res) res
+<a name="line-415"></a>    where
+<a name="line-416"></a>    res = attDeriv cx p t
+<a name="line-417"></a>-}</span>
+<a name="line-418"></a>
+<a name="line-419"></a><span class='comment'>-- | To compute the derivative of a pattern with respect to a sequence of attributes, </span>
+<a name="line-420"></a><span class='comment'>-- simply compute the derivative with respect to each attribute in turn.</span>
+<a name="line-421"></a>
+<a name="line-422"></a><a name="attsDeriv"></a><span class='definition'>attsDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-423"></a>
+<a name="line-424"></a><span class='definition'>attsDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='conid'>[]</span>
+<a name="line-425"></a>    <span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-426"></a><span class='definition'>attsDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</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-427"></a>    <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span> <span class='varid'>t</span>
+<a name="line-428"></a>	<span class='keyglyph'>=</span> <span class='varid'>attsDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>ts</span>
+<a name="line-429"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-430"></a>	<span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to attsDeriv with wrong arguments"</span>
+<a name="line-431"></a>
+<a name="line-432"></a><a name="attDeriv"></a><span class='definition'>attDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-433"></a>
+<a name="line-434"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-435"></a>    <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>p2</span>
+<a name="line-436"></a>
+<a name="line-437"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-438"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>att</span><span class='layout'>)</span>
+<a name="line-439"></a>
+<a name="line-440"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-441"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span>
+<a name="line-442"></a>      <span class='layout'>(</span><span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-443"></a>      <span class='layout'>(</span><span class='varid'>group</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>att</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-444"></a>
+<a name="line-445"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-446"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span>
+<a name="line-447"></a>      <span class='layout'>(</span><span class='varid'>interleave</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-448"></a>      <span class='layout'>(</span><span class='varid'>interleave</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>att</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-449"></a>
+<a name="line-450"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-451"></a>    <span class='keyglyph'>=</span> <span class='varid'>group</span>
+<a name="line-452"></a>      <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>att</span><span class='layout'>)</span>
+<a name="line-453"></a>      <span class='layout'>(</span><span class='varid'>choice</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conid'>Empty</span><span class='layout'>)</span>
+<a name="line-454"></a>
+<a name="line-455"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-456"></a>    <span class='keyglyph'>|</span> <span class='varid'>isa</span>
+<a name="line-457"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-458"></a>      <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-459"></a>	<span class='keyglyph'>=</span> <span class='varid'>notAllowed1</span> <span class='varop'>$</span>
+<a name="line-460"></a>	  <span class='str'>"Attribute with name "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span>
+<a name="line-461"></a>          <span class='varop'>++</span> <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>universalName</span> <span class='varid'>qn</span> <span class='varop'>++</span> <span class='str'>" found"</span>
+<a name="line-462"></a>    <span class='keyglyph'>|</span> <span class='varid'>isa</span>
+<a name="line-463"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-464"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>nullable</span> <span class='varid'>p</span>
+<a name="line-465"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-466"></a>	  <span class='varid'>whitespace</span> <span class='varid'>val</span>
+<a name="line-467"></a>	<span class='layout'>)</span>
+<a name="line-468"></a>	<span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>p'</span>
+<a name="line-469"></a>      <span class='layout'>)</span>
+<a name="line-470"></a>	<span class='keyglyph'>=</span> <span class='conid'>Empty</span>
+<a name="line-471"></a>    <span class='keyglyph'>|</span> <span class='varid'>isa</span>
+<a name="line-472"></a>	<span class='keyglyph'>=</span> <span class='varid'>err'</span> <span class='varid'>p'</span>
+<a name="line-473"></a>    <span class='keyword'>where</span>
+<a name="line-474"></a>    <span class='varid'>isa</span> <span class='keyglyph'>=</span>            <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span>      <span class='varop'>$</span> <span class='varid'>att</span>
+<a name="line-475"></a>    <span class='varid'>qn</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'>getAttrName</span> <span class='varop'>$</span> <span class='varid'>att</span>
+<a name="line-476"></a>    <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='varop'>$</span> <span class='varid'>att</span>
+<a name="line-477"></a>    <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='varid'>showXts</span> <span class='varid'>av</span>
+<a name="line-478"></a>    <span class='varid'>p'</span>  <span class='keyglyph'>=</span> <span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>val</span>
+<a name="line-479"></a>
+<a name="line-480"></a>    <span class='varid'>err'</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='sel'>_l</span> <span class='varid'>es</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-481"></a>	<span class='keyglyph'>=</span> <span class='varid'>err''</span> <span class='layout'>(</span><span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>head</span> <span class='varid'>es</span><span class='layout'>)</span>
+<a name="line-482"></a>    <span class='varid'>err'</span> <span class='keyword'>_</span>
+<a name="line-483"></a>	<span class='keyglyph'>=</span> <span class='varid'>err''</span> <span class='str'>""</span>
+<a name="line-484"></a>    <span class='varid'>err''</span> <span class='varid'>e</span>
+<a name="line-485"></a>	<span class='keyglyph'>=</span> <span class='varid'>notAllowed2</span> <span class='varop'>$</span>
+<a name="line-486"></a>	  <span class='str'>"Attribute value \""</span> <span class='varop'>++</span> <span class='varid'>val</span> <span class='varop'>++</span>
+<a name="line-487"></a>	  <span class='str'>"\" does not match datatype spec "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='varid'>e</span>
+<a name="line-488"></a>
+<a name="line-489"></a><span class='definition'>attDeriv</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-490"></a>    <span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-491"></a>
+<a name="line-492"></a><span class='definition'>attDeriv</span> <span class='keyword'>_</span> <span class='sel'>_p</span> <span class='varid'>att</span>
+<a name="line-493"></a>    <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span>
+<a name="line-494"></a>      <span class='str'>"No matching pattern for attribute '"</span> <span class='varop'>++</span>  <span class='varid'>showXts</span> <span class='keyglyph'>[</span><span class='varid'>att</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='str'>"' found"</span>
+<a name="line-495"></a>
+<a name="line-496"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-497"></a><span class='comment'>--  </span>
+<a name="line-498"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a start tag close</span>
+<a name="line-499"></a>
+<a name="line-500"></a><a name="startTagCloseDeriv"></a><span class='definition'>startTagCloseDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-501"></a>
+<a name="line-502"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-503"></a>    <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='varid'>p2</span>
+<a name="line-504"></a>
+<a name="line-505"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-506"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span>
+<a name="line-507"></a>      <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span>
+<a name="line-508"></a>      <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-509"></a>
+<a name="line-510"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-511"></a>    <span class='keyglyph'>=</span> <span class='varid'>group</span>
+<a name="line-512"></a>      <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span>
+<a name="line-513"></a>      <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-514"></a>
+<a name="line-515"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-516"></a>    <span class='keyglyph'>=</span> <span class='varid'>interleave</span>
+<a name="line-517"></a>      <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span>
+<a name="line-518"></a>      <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-519"></a>
+<a name="line-520"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-521"></a>    <span class='keyglyph'>=</span> <span class='varid'>oneOrMore</span> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p</span><span class='layout'>)</span>
+<a name="line-522"></a>
+<a name="line-523"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-524"></a>    <span class='keyglyph'>=</span> <span class='varid'>notAllowed1</span> <span class='varop'>$</span>
+<a name="line-525"></a>      <span class='str'>"Attribut with name, "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span> <span class='varop'>++</span> 
+<a name="line-526"></a>      <span class='str'>" expected, but no more attributes found"</span>
+<a name="line-527"></a>
+<a name="line-528"></a><span class='definition'>startTagCloseDeriv</span> <span class='varid'>p</span>
+<a name="line-529"></a>    <span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-530"></a>
+<a name="line-531"></a>
+<a name="line-532"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-533"></a><span class='comment'>--  </span>
+<a name="line-534"></a><span class='comment'>-- | Computing the derivative of a pattern with respect to a list of children involves </span>
+<a name="line-535"></a><span class='comment'>-- computing the derivative with respect to each pattern in turn, except</span>
+<a name="line-536"></a><span class='comment'>-- that whitespace requires special treatment.</span>
+<a name="line-537"></a>
+<a name="line-538"></a><a name="childrenDeriv"></a><span class='definition'>childrenDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-539"></a><span class='definition'>childrenDeriv</span> <span class='sel'>_cx</span> <span class='varid'>p</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-540"></a>    <span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-541"></a>
+<a name="line-542"></a><span class='definition'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='conid'>[]</span>
+<a name="line-543"></a>    <span class='keyglyph'>=</span> <span class='varid'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='str'>""</span><span class='keyglyph'>]</span>
+<a name="line-544"></a>
+<a name="line-545"></a><span class='definition'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='keyglyph'>[</span><span class='varid'>tt</span><span class='keyglyph'>]</span>
+<a name="line-546"></a>    <span class='keyglyph'>|</span> <span class='varid'>ist</span>
+<a name="line-547"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-548"></a>      <span class='varid'>whitespace</span> <span class='varid'>s</span>
+<a name="line-549"></a>	<span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='varid'>p</span> <span class='varid'>p1</span>
+<a name="line-550"></a>    <span class='keyglyph'>|</span> <span class='varid'>ist</span>
+<a name="line-551"></a>	<span class='keyglyph'>=</span> <span class='varid'>p1</span>
+<a name="line-552"></a>    <span class='keyword'>where</span>
+<a name="line-553"></a>    <span class='varid'>ist</span> <span class='keyglyph'>=</span>            <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span>    <span class='varid'>tt</span>
+<a name="line-554"></a>    <span class='varid'>s</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'>tt</span>
+<a name="line-555"></a>    <span class='varid'>p1</span>  <span class='keyglyph'>=</span> <span class='varid'>childDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>tt</span>
+<a name="line-556"></a>
+<a name="line-557"></a><span class='definition'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>children</span>
+<a name="line-558"></a>    <span class='keyglyph'>=</span> <span class='varid'>stripChildrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>children</span>    
+<a name="line-559"></a>
+<a name="line-560"></a><a name="stripChildrenDeriv"></a><span class='definition'>stripChildrenDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-561"></a><span class='definition'>stripChildrenDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='conid'>[]</span>
+<a name="line-562"></a>    <span class='keyglyph'>=</span> <span class='varid'>p</span>
+<a name="line-563"></a>
+<a name="line-564"></a><span class='definition'>stripChildrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>h</span><span class='conop'>:</span><span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-565"></a>    <span class='keyglyph'>=</span> <span class='varid'>stripChildrenDeriv</span> <span class='varid'>cx</span>
+<a name="line-566"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>strip</span> <span class='varid'>h</span>
+<a name="line-567"></a>	<span class='keyword'>then</span> <span class='varid'>p</span>
+<a name="line-568"></a>	<span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>childDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>h</span><span class='layout'>)</span>
+<a name="line-569"></a>      <span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-570"></a>
+<a name="line-571"></a>
+<a name="line-572"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-573"></a><span class='comment'>--  </span>
+<a name="line-574"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a end tag</span>
+<a name="line-575"></a>
+<a name="line-576"></a><a name="endTagDeriv"></a><span class='definition'>endTagDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-577"></a><span class='definition'>endTagDeriv</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-578"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>endTagDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>endTagDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-579"></a>
+<a name="line-580"></a><span class='definition'>endTagDeriv</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-581"></a>    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> 
+<a name="line-582"></a>	<span class='keyglyph'>=</span> <span class='varid'>p2</span> 
+<a name="line-583"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-584"></a>	<span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span>
+<a name="line-585"></a>	  <span class='varid'>show</span> <span class='varid'>p1</span> <span class='varop'>++</span> <span class='str'>" expected"</span>
+<a name="line-586"></a>
+<a name="line-587"></a><span class='definition'>endTagDeriv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-588"></a>    <span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-589"></a>
+<a name="line-590"></a><span class='definition'>endTagDeriv</span> <span class='keyword'>_</span>
+<a name="line-591"></a>    <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to endTagDeriv with wrong arguments"</span>
+<a name="line-592"></a>
+<a name="line-593"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-594"></a><span class='comment'>--  </span>
+<a name="line-595"></a><span class='comment'>-- | applies a function (first parameter) to the second part of a after pattern</span>
+<a name="line-596"></a>
+<a name="line-597"></a><a name="applyAfter"></a><span class='definition'>applyAfter</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Pattern</span>
+<a name="line-598"></a>
+<a name="line-599"></a><span class='definition'>applyAfter</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-600"></a><span class='definition'>applyAfter</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='varid'>f</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='varid'>f</span> <span class='varid'>p2</span><span class='layout'>)</span>
+<a name="line-601"></a><span class='definition'>applyAfter</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-602"></a><span class='definition'>applyAfter</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to applyAfter with wrong arguments"</span>
+<a name="line-603"></a>
+<a name="line-604"></a><span class='comment'>-- --------------------</span>
+<a name="line-605"></a>
+<a name="line-606"></a><span class='comment'>-- mothers little helpers</span>
+<a name="line-607"></a>
+<a name="line-608"></a><a name="strip"></a><span class='definition'>strip</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-609"></a><span class='definition'>strip</span>		<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='varid'>whitespace</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span>
+<a name="line-610"></a>
+<a name="line-611"></a><a name="whitespace"></a><span class='definition'>whitespace</span> 	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-612"></a><span class='definition'>whitespace</span>	<span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span>
+<a name="line-613"></a>
+<a name="line-614"></a><a name="showXts"></a><span class='definition'>showXts</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-615"></a><span class='definition'>showXts</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'>xshow</span> <span class='varop'>$</span> <span class='varid'>arrL</span> <span class='varid'>id</span><span class='layout'>)</span>
+<a name="line-616"></a>
+<a name="line-617"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-Validator.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Validator.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-Validator.html
@@ -0,0 +1,318 @@
+<!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'>-- This module exports the core functions from the basic validation und simplification libraries.</span>
+<a name="line-3"></a><span class='comment'>-- It also exports some helper functions for easier access to the validation functionality.</span>
+<a name="line-4"></a>
+<a name="line-5"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>
+<a name="line-6"></a>  <span class='layout'>(</span> <span class='varid'>validateDocumentWithRelaxSchema</span>
+<a name="line-7"></a>  <span class='layout'>,</span> <span class='varid'>validateDocumentWithRelax</span>
+<a name="line-8"></a>
+<a name="line-9"></a>  <span class='layout'>,</span> <span class='varid'>validate</span>
+<a name="line-10"></a>  <span class='layout'>,</span> <span class='varid'>validateSchema</span>
+<a name="line-11"></a>  <span class='layout'>,</span> <span class='varid'>validateWithSpezification</span>
+<a name="line-12"></a>  <span class='layout'>,</span> <span class='varid'>validateSchemaWithSpezification</span>
+<a name="line-13"></a>  <span class='layout'>,</span> <span class='varid'>validateWithoutSpezification</span>
+<a name="line-14"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</span>
+<a name="line-15"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Simplification</span>
+<a name="line-16"></a>  <span class='layout'>)</span>
+<a name="line-17"></a><span class='keyword'>where</span>
+<a name="line-18"></a>
+<a name="line-19"></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-20"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<a name="line-22"></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-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'>XmlIOStateArrow</span>
+<a name="line-24"></a>
+<a name="line-25"></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'>Validation</span>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Simplification</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Schema</span>        <span class='keyword'>as</span> <span class='conid'>S</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='comment'>{- |
+<a name="line-32"></a>   validate a document with a Relax NG schema
+<a name="line-33"></a>
+<a name="line-34"></a>   * 1.parameter  : the option list for validation
+<a name="line-35"></a>
+<a name="line-36"></a>   - 2.parameter  : the URI of the Relax NG Schema
+<a name="line-37"></a>
+<a name="line-38"></a>   - arrow-input  : the document to be validated, namespaces must have been processed
+<a name="line-39"></a>
+<a name="line-40"></a>   - arrow-output : the input document, or in case of validation errors, an empty document with status information in the root
+<a name="line-41"></a>
+<a name="line-42"></a>options evaluated by validateDocumentWithRelaxSchema:
+<a name="line-43"></a>
+<a name="line-44"></a>    * 'a_check_restrictions'   : check Relax NG schema restrictions when simplifying the schema (default: on)
+<a name="line-45"></a>    
+<a name="line-46"></a>    - 'a_validate_externalRef' : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)
+<a name="line-47"></a>    
+<a name="line-48"></a>    - 'a_validate_include'     : validate a Relax NG schema referenced by a include-Pattern (default: on)
+<a name="line-49"></a>    
+<a name="line-50"></a>all other options are propagated to the read functions for schema input
+<a name="line-51"></a>
+<a name="line-52"></a>example:
+<a name="line-53"></a>
+<a name="line-54"></a>&gt; validateDocumentWithRelaxSchema [(a_check_restrictions, "0")] "testSchema.rng"
+<a name="line-55"></a>
+<a name="line-56"></a>
+<a name="line-57"></a>-}</span>
+<a name="line-58"></a>
+<a name="line-59"></a><a name="validateDocumentWithRelaxSchema"></a><span class='definition'>validateDocumentWithRelaxSchema</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-60"></a><span class='definition'>validateDocumentWithRelaxSchema</span> <span class='varid'>userOptions</span> <span class='varid'>relaxSchema</span>
+<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='varid'>withOtherUserState</span> <span class='conid'>()</span>
+<a name="line-62"></a>      <span class='varop'>$</span>
+<a name="line-63"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>validate'</span> <span class='varop'>$&lt;</span> <span class='varid'>validSchema</span> <span class='layout'>)</span>	<span class='comment'>-- try to validate, only possible if schema is o.k.</span>
+<a name="line-64"></a>	<span class='varop'>`orElse`</span>
+<a name="line-65"></a>	<span class='varid'>this</span>
+<a name="line-66"></a>      <span class='layout'>)</span>
+<a name="line-67"></a>      <span class='varop'>`when`</span>
+<a name="line-68"></a>      <span class='varid'>documentStatusOk</span>			<span class='comment'>-- only do something when document status is ok</span>
+<a name="line-69"></a>    <span class='keyword'>where</span>
+<a name="line-70"></a>    <span class='varid'>validate'</span> <span class='varid'>schema</span>
+<a name="line-71"></a>	<span class='keyglyph'>=</span> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"read and build Relax NG schema"</span>
+<a name="line-72"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-73"></a>	  <span class='varid'>validateDocumentWithRelax</span> <span class='varid'>schema</span>
+<a name="line-74"></a>
+<a name="line-75"></a>    <span class='varid'>validSchema</span>
+<a name="line-76"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"read Relax NG schema document: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>relaxSchema</span> <span class='layout'>)</span>
+<a name="line-77"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-78"></a>	  <span class='varid'>readForRelax</span> <span class='varid'>remainingOptions</span> <span class='varid'>relaxSchema</span>
+<a name="line-79"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-80"></a>	  <span class='varid'>perform</span> <span class='layout'>(</span> <span class='keyword'>let</span> <span class='varid'>checkSchema</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> <span class='keyword'>in</span>		<span class='comment'>-- test option in al</span>
+<a name="line-81"></a>		    <span class='keyword'>if</span> <span class='varid'>checkSchema</span>
+<a name="line-82"></a>		    <span class='keyword'>then</span> <span class='varid'>validateWithRelaxAndHandleErrors</span> <span class='conid'>S</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span>
+<a name="line-83"></a>		    <span class='keyword'>else</span> <span class='varid'>none</span>
+<a name="line-84"></a>		  <span class='layout'>)</span>
+<a name="line-85"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-86"></a>	  <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"create simplified schema"</span>
+<a name="line-87"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-88"></a>	  <span class='varid'>createSimpleForm</span> <span class='varid'>remainingOptions</span>
+<a name="line-89"></a>	    <span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_check_restrictions</span>   <span class='layout'>)</span>
+<a name="line-90"></a>	    <span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate_externalRef</span> <span class='layout'>)</span>
+<a name="line-91"></a>	    <span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate_include</span>     <span class='layout'>)</span>
+<a name="line-92"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-93"></a>	  <span class='varid'>traceDoc</span> <span class='str'>"simplified schema"</span>
+<a name="line-94"></a>          <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-95"></a>	  <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrors</span>
+<a name="line-96"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-97"></a>		    <span class='varid'>handleSimplificationErrors</span>
+<a name="line-98"></a>		  <span class='layout'>)</span>
+<a name="line-99"></a>    <span class='varid'>hasOption</span> <span class='varid'>n</span>
+<a name="line-100"></a>	<span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>
+<a name="line-101"></a>
+<a name="line-102"></a>    <span class='varid'>options</span> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>
+<a name="line-103"></a>
+<a name="line-104"></a>    <span class='varid'>defaultOptions</span>
+<a name="line-105"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</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>
+<a name="line-106"></a>	  <span class='layout'>,</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>
+<a name="line-107"></a>	  <span class='layout'>,</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>
+<a name="line-108"></a>	  <span class='keyglyph'>]</span>
+<a name="line-109"></a>
+<a name="line-110"></a>    <span class='varid'>remainingOptions</span>
+<a name="line-111"></a>	 <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'>flip</span> <span class='varid'>hasEntry</span> <span class='varid'>defaultOptions</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>options</span>
+<a name="line-112"></a>
+<a name="line-113"></a>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="handleSimplificationErrors"></a><span class='definition'>handleSimplificationErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-116"></a><span class='definition'>handleSimplificationErrors</span>
+<a name="line-117"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceDoc</span> <span class='str'>"simplification errors"</span>
+<a name="line-118"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-119"></a>      <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getAttrValue</span> <span class='str'>"desc"</span>
+<a name="line-120"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-121"></a>      <span class='varid'>arr</span> <span class='layout'>(</span><span class='str'>"Relax NG validation: "</span> <span class='varop'>++</span><span class='layout'>)</span>
+<a name="line-122"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-123"></a>      <span class='varid'>mkError</span> <span class='varid'>c_err</span>
+<a name="line-124"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-125"></a>      <span class='varid'>filterErrorMsg</span>
+<a name="line-126"></a>
+<a name="line-127"></a>
+<a name="line-128"></a><span class='comment'>{- | validate an XML document with respect to a Relax NG schema
+<a name="line-129"></a>
+<a name="line-130"></a>   * 1.parameter  : the valid and simplified schema as XML tree
+<a name="line-131"></a>
+<a name="line-132"></a>   - arrow-input  : the document to be validated
+<a name="line-133"></a>
+<a name="line-134"></a>   - arrow-output : the validated and unchanged document or the empty document with status information set in the root node
+<a name="line-135"></a>-}</span>
+<a name="line-136"></a>
+<a name="line-137"></a><a name="validateDocumentWithRelax"></a><span class='definition'>validateDocumentWithRelax</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-138"></a><span class='definition'>validateDocumentWithRelax</span> <span class='varid'>schema</span>
+<a name="line-139"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validate document with Relax NG schema"</span>
+<a name="line-140"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-141"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>validateWithRelaxAndHandleErrors</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>schema</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-142"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-143"></a>	<span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"validate document with Relax NG schema"</span>
+<a name="line-144"></a>      <span class='layout'>)</span>
+<a name="line-145"></a>      <span class='varop'>`when`</span> <span class='varid'>documentStatusOk</span>				<span class='comment'>-- only do something when document status is ok</span>
+<a name="line-146"></a>
+<a name="line-147"></a>
+<a name="line-148"></a><span class='comment'>{- |
+<a name="line-149"></a>   normalize a document for Relax NG validation,
+<a name="line-150"></a>   call the 'Text.XML.HXT.RelaxNG.Validation.validateRelax' function for doing the hard work,
+<a name="line-151"></a>   and issue errors
+<a name="line-152"></a>
+<a name="line-153"></a>   * 1.parameter  : the arrow for computing the schema
+<a name="line-154"></a>
+<a name="line-155"></a>   - arrow-input  : the document to be validated
+<a name="line-156"></a>
+<a name="line-157"></a>   - arrow-output : nothing
+<a name="line-158"></a>-}</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="validate"></a><span class='comment'>{- | Document validation
+<a name="line-163"></a>
+<a name="line-164"></a>Validates a xml document with respect to a Relax NG schema.
+<a name="line-165"></a>
+<a name="line-166"></a>First, the schema is validated with respect to the Relax NG Spezification. If no error is found, the xml document is validated with respect to the schema.
+<a name="line-167"></a>
+<a name="line-168"></a>   * 1.parameter :  list of options; namespace progagation is always done
+<a name="line-169"></a>
+<a name="line-170"></a>   - 2.parameter :  XML document
+<a name="line-171"></a>   
+<a name="line-172"></a>   - 3.parameter :  Relax NG schema file
+<a name="line-173"></a>
+<a name="line-174"></a>available options:
+<a name="line-175"></a>
+<a name="line-176"></a>    * 'a_do_not_check_restrictions' : do not check Relax NG schema restrictions (includes do-not-validate-externalRef, do-not-validate-include)
+<a name="line-177"></a>    
+<a name="line-178"></a>    - 'a_do_not_validate_externalRef' : do not validate a Relax NG schema referenced by a externalRef-Pattern
+<a name="line-179"></a>    
+<a name="line-180"></a>    - 'a_validate_externalRef' : validate a Relax NG schema referenced by a externalRef-Pattern (default)
+<a name="line-181"></a>    
+<a name="line-182"></a>    - 'a_do_not_validate_include' : do not validate a Relax NG schema referenced by a include-Pattern
+<a name="line-183"></a>    
+<a name="line-184"></a>    - 'a_validate_include' : validate a Relax NG schema referenced by a include-Pattern (default)
+<a name="line-185"></a>    
+<a name="line-186"></a>    - 'a_output_changes' : output Pattern transformations in case of an error
+<a name="line-187"></a>    
+<a name="line-188"></a>    - 'a_do_not_collect_errors' : stop Relax NG simplification after the first error has occurred
+<a name="line-189"></a>    
+<a name="line-190"></a>    - all 'Text.XML.HXT.Arrow.ReadDocument.readDocument' options
+<a name="line-191"></a>
+<a name="line-192"></a>example:
+<a name="line-193"></a>
+<a name="line-194"></a>&gt; validate [(a_do_not_check_restrictions, "1")] "test.xml" "testSchema.rng"
+<a name="line-195"></a>
+<a name="line-196"></a>-}</span>
+<a name="line-197"></a><span class='definition'>validate</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-198"></a><span class='definition'>validate</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>
+<a name="line-199"></a>  <span class='keyglyph'>=</span> <span class='conid'>S</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span>
+<a name="line-200"></a>    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-201"></a>    <span class='varid'>validateWithSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>
+<a name="line-202"></a>
+<a name="line-203"></a>
+<a name="line-204"></a>
+<a name="line-205"></a>
+<a name="line-206"></a><a name="validateSchema"></a><span class='comment'>{- | Relax NG schema validation
+<a name="line-207"></a>
+<a name="line-208"></a>Validates a Relax NG schema with respect to the Relax NG Spezification.
+<a name="line-209"></a>
+<a name="line-210"></a>   * 1.parameter :  list of available options (see also: 'validate')
+<a name="line-211"></a>
+<a name="line-212"></a>   - 2.parameter :  Relax NG schema file
+<a name="line-213"></a> 
+<a name="line-214"></a>-}</span>
+<a name="line-215"></a><span class='definition'>validateSchema</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'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-216"></a><span class='definition'>validateSchema</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>
+<a name="line-217"></a>  <span class='keyglyph'>=</span> <span class='varid'>validate</span> <span class='varid'>al</span> <span class='str'>""</span> <span class='varid'>relaxSchema</span>
+<a name="line-218"></a>
+<a name="line-219"></a>
+<a name="line-220"></a>
+<a name="line-221"></a><a name="validateWithSpezification"></a><span class='comment'>{- | Document validation
+<a name="line-222"></a>
+<a name="line-223"></a>Validates a xml document with respect to a Relax NG schema. Similar to 'validate', but the Relax NG Specification is not created. Can be used, to check a list of documents more efficiently.
+<a name="line-224"></a>
+<a name="line-225"></a>   * 1.parameter :  list of available options (see also: 'validate')
+<a name="line-226"></a>
+<a name="line-227"></a>   - 2.parameter :  XML document
+<a name="line-228"></a>   
+<a name="line-229"></a>   - 3.parameter :  Relax NG schema file
+<a name="line-230"></a>   
+<a name="line-231"></a>   - arrow-input  :  Relax NG Specification in simple form
+<a name="line-232"></a>
+<a name="line-233"></a>example:
+<a name="line-234"></a>
+<a name="line-235"></a>&gt; Text.XML.HXT.RelaxNG.Schema.relaxSchemaArrow
+<a name="line-236"></a>&gt; &gt;&gt;&gt;
+<a name="line-237"></a>&gt; ( validateWithSpezification [] "foo.xml" "foo.rng"
+<a name="line-238"></a>&gt;   &amp;&amp;&amp;
+<a name="line-239"></a>&gt;   validateWithSpezification [] "bar.xml" "bar.rng"
+<a name="line-240"></a>&gt; )
+<a name="line-241"></a>
+<a name="line-242"></a>
+<a name="line-243"></a>-}</span>
+<a name="line-244"></a><span class='definition'>validateWithSpezification</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-245"></a><span class='definition'>validateWithSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>
+<a name="line-246"></a>  <span class='keyglyph'>=</span> <span class='comment'>-- validation of the schema with respect to the specification</span>
+<a name="line-247"></a>    <span class='comment'>-- returns a list of errors or none if the schema is correct</span>
+<a name="line-248"></a>
+<a name="line-249"></a>    <span class='layout'>(</span> <span class='varid'>validateRelax</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>
+<a name="line-250"></a>			 <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-251"></a>			 <span class='varid'>getChildren</span>
+<a name="line-252"></a>		       <span class='layout'>)</span>
+<a name="line-253"></a>    <span class='layout'>)</span>
+<a name="line-254"></a>    <span class='varop'>`orElse`</span>
+<a name="line-255"></a>
+<a name="line-256"></a>    <span class='comment'>-- validation of the xml document with respect to the schema</span>
+<a name="line-257"></a>    <span class='comment'>-- returns a list of errors or none if the xml document is correct    </span>
+<a name="line-258"></a>
+<a name="line-259"></a>    <span class='varid'>validateWithoutSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>
+<a name="line-260"></a>
+<a name="line-261"></a><span class='comment'>{- | Relax NG schema validation
+<a name="line-262"></a>
+<a name="line-263"></a>    see 'validateSchema' and 'validateWithSpezification'
+<a name="line-264"></a>
+<a name="line-265"></a>   * 1.parameter :  list of available options (see also: 'validate')
+<a name="line-266"></a>
+<a name="line-267"></a>   - 2.parameter :  Relax NG schema file   
+<a name="line-268"></a>   
+<a name="line-269"></a>   - arrow-input  :  Relax NG Specification in simple form
+<a name="line-270"></a>-}</span>
+<a name="line-271"></a>
+<a name="line-272"></a><a name="validateSchemaWithSpezification"></a><span class='definition'>validateSchemaWithSpezification</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'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-273"></a><span class='definition'>validateSchemaWithSpezification</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>
+<a name="line-274"></a>  <span class='keyglyph'>=</span> <span class='varid'>validateWithSpezification</span> <span class='varid'>al</span> <span class='str'>""</span> <span class='varid'>relaxSchema</span>
+<a name="line-275"></a>
+<a name="line-276"></a>
+<a name="line-277"></a>
+<a name="line-278"></a><span class='comment'>{- | Document validation
+<a name="line-279"></a>
+<a name="line-280"></a>Validates a xml document with respect to a Relax NG schema, but the schema is @not@ validated with respect to a specification first. Should be used only for valid Relax NG schemes.
+<a name="line-281"></a>
+<a name="line-282"></a>   * 1.parameter :  list of available options (see also: 'validate')
+<a name="line-283"></a>
+<a name="line-284"></a>   - 2.parameter :  XML document
+<a name="line-285"></a>   
+<a name="line-286"></a>   - 3.parameter :  Relax NG schema file
+<a name="line-287"></a>   
+<a name="line-288"></a>-}</span>
+<a name="line-289"></a>
+<a name="line-290"></a>
+<a name="line-291"></a><a name="validateWithoutSpezification"></a><span class='definition'>validateWithoutSpezification</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>
+<a name="line-292"></a><span class='definition'>validateWithoutSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>
+<a name="line-293"></a>  <span class='keyglyph'>=</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>
+<a name="line-294"></a>    <span class='varop'>&gt;&gt;&gt;</span> 
+<a name="line-295"></a>    <span class='varid'>createSimpleForm</span> <span class='varid'>al</span> <span class='conid'>True</span> <span class='conid'>True</span> <span class='conid'>True</span>
+<a name="line-296"></a>    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-297"></a>    <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getErrors</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>perform</span> <span class='varid'>handleSimplificationErrors</span> <span class='layout'>)</span>		<span class='comment'>-- issue errors in schema simplification</span>
+<a name="line-298"></a>      <span class='varop'>`orElse`</span>
+<a name="line-299"></a>      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>xmlDocument</span>						<span class='comment'>-- no errors: validate document</span>
+<a name="line-300"></a>	<span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-301"></a>	<span class='keyword'>else</span> <span class='varid'>validateRelax</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span>
+<a name="line-302"></a>				<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-303"></a>				<span class='varid'>normalizeForRelaxValidation</span>
+<a name="line-304"></a>				<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-305"></a>				<span class='varid'>getChildren</span>
+<a name="line-306"></a>			      <span class='layout'>)</span>
+<a name="line-307"></a>      <span class='layout'>)</span>
+<a name="line-308"></a>    <span class='layout'>)</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
@@ -0,0 +1,624 @@
+<!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     : Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C
+<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>   Datatype library for the W3C XML schema datatypes
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>
+<a name="line-20"></a>  <span class='layout'>(</span> <span class='varid'>w3cNS</span>
+<a name="line-21"></a>  <span class='layout'>,</span> <span class='varid'>w3cDatatypeLib</span>
+<a name="line-22"></a>
+<a name="line-23"></a>  <span class='layout'>,</span> <span class='varid'>xsd_string</span>			<span class='comment'>-- data type names</span>
+<a name="line-24"></a>  <span class='layout'>,</span> <span class='varid'>xsd_normalizedString</span>
+<a name="line-25"></a>  <span class='layout'>,</span> <span class='varid'>xsd_token</span>
+<a name="line-26"></a>  <span class='layout'>,</span> <span class='varid'>xsd_language</span>
+<a name="line-27"></a>  <span class='layout'>,</span> <span class='varid'>xsd_NMTOKEN</span>
+<a name="line-28"></a>  <span class='layout'>,</span> <span class='varid'>xsd_NMTOKENS</span>
+<a name="line-29"></a>  <span class='layout'>,</span> <span class='varid'>xsd_Name</span>
+<a name="line-30"></a>  <span class='layout'>,</span> <span class='varid'>xsd_NCName</span>
+<a name="line-31"></a>  <span class='layout'>,</span> <span class='varid'>xsd_ID</span>
+<a name="line-32"></a>  <span class='layout'>,</span> <span class='varid'>xsd_IDREF</span>
+<a name="line-33"></a>  <span class='layout'>,</span> <span class='varid'>xsd_IDREFS</span>
+<a name="line-34"></a>  <span class='layout'>,</span> <span class='varid'>xsd_ENTITY</span>
+<a name="line-35"></a>  <span class='layout'>,</span> <span class='varid'>xsd_ENTITIES</span>
+<a name="line-36"></a>  <span class='layout'>,</span> <span class='varid'>xsd_anyURI</span>
+<a name="line-37"></a>  <span class='layout'>,</span> <span class='varid'>xsd_QName</span>
+<a name="line-38"></a>  <span class='layout'>,</span> <span class='varid'>xsd_NOTATION</span>
+<a name="line-39"></a>  <span class='layout'>,</span> <span class='varid'>xsd_hexBinary</span>
+<a name="line-40"></a>  <span class='layout'>,</span> <span class='varid'>xsd_base64Binary</span>
+<a name="line-41"></a>  <span class='layout'>,</span> <span class='varid'>xsd_decimal</span>
+<a name="line-42"></a>
+<a name="line-43"></a>  <span class='layout'>,</span> <span class='varid'>xsd_length</span>			<span class='comment'>-- facet names</span>
+<a name="line-44"></a>  <span class='layout'>,</span> <span class='varid'>xsd_maxLength</span>
+<a name="line-45"></a>  <span class='layout'>,</span> <span class='varid'>xsd_minLength</span>
+<a name="line-46"></a>  <span class='layout'>,</span> <span class='varid'>xsd_maxExclusive</span>
+<a name="line-47"></a>  <span class='layout'>,</span> <span class='varid'>xsd_minExclusive</span>
+<a name="line-48"></a>  <span class='layout'>,</span> <span class='varid'>xsd_maxInclusive</span>
+<a name="line-49"></a>  <span class='layout'>,</span> <span class='varid'>xsd_minInclusive</span>
+<a name="line-50"></a>  <span class='layout'>,</span> <span class='varid'>xsd_totalDigits</span>
+<a name="line-51"></a>  <span class='layout'>,</span> <span class='varid'>xsd_fractionDigits</span>
+<a name="line-52"></a>  <span class='layout'>,</span> <span class='varid'>xsd_pattern</span>
+<a name="line-53"></a>  <span class='layout'>,</span> <span class='varid'>xsd_enumeration</span>
+<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'>match</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'>match</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'>match</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>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
@@ -0,0 +1,301 @@
+<!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     : Text.XML.HXT.RelaxNG.XmlSchema.Regex
+<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>   W3C XML Schema Regular Expression Matcher
+<a name="line-14"></a>
+<a name="line-15"></a>   Grammar can be found under \"http:\/\/www.w3.org\/TR\/xmlschema11-2\/#regexs\"
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='conid'>Regex</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>chars</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>charRngs</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>mkZero</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>mkUnit</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>mkSym</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>mkSym1</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>mkSymRng</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>mkDot</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>mkStar</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>mkAlt</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>mkSeq</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>mkRep</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>mkRng</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>mkOpt</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>mkDif</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>mkCompl</span>
+<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'>match</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-46"></a>
+<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</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-61"></a>
+<a name="line-62"></a><span class='comment'>{- just for documentation
+<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-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-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-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-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-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-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-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-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="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-232"></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-233"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-234"></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-235"></a><span class='definition'>nullable</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-236"></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-237"></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-238"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
+<a name="line-239"></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-240"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>
+<a name="line-241"></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-242"></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-243"></a>			  <span class='varid'>nullable</span> <span class='varid'>e</span>
+<a name="line-244"></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-245"></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-246"></a>
+<a name="line-247"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-248"></a>
+<a name="line-249"></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-250"></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-251"></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-252"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>
+<a name="line-253"></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-254"></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-255"></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-256"></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-257"></a>                          <span class='keyword'>where</span>
+<a name="line-258"></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-259"></a>			  <span class='varid'>oneof</span>
+<a name="line-260"></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-261"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>      <span class='keyglyph'>=</span> <span class='str'>"one of "</span>
+<a name="line-262"></a>			  <span class='varid'>chars'</span>
+<a name="line-263"></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-264"></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-265"></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-266"></a>
+<a name="line-267"></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-268"></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-269"></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-270"></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-271"></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-272"></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-273"></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-274"></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-275"></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-276"></a>
+<a name="line-277"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-278"></a>
+<a name="line-279"></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-280"></a><span class='definition'>delta'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>
+<a name="line-281"></a>
+<a name="line-282"></a><a name="match"></a><span class='definition'>match</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-283"></a><span class='definition'>match</span> <span class='varid'>e</span>
+<a name="line-284"></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-285"></a>    <span class='keyword'>where</span>
+<a name="line-286"></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-287"></a>    <span class='varid'>res</span> <span class='varid'>re</span>
+<a name="line-288"></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-289"></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-290"></a>
+<a name="line-291"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
@@ -0,0 +1,372 @@
+<!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     : Text.XML.HXT.RelaxNG.XmlSchema.RegexParser
+<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>   W3C XML Schema Regular Expression Parser
+<a name="line-14"></a>
+<a name="line-15"></a>   Grammar can be found under \"http:\/\/www.w3.org\/TR\/xmlschema11-2\/#regexs\"
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>
+<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-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>
+<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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>Blocks</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>CharProps</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</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="parseRegex"></a><span class='definition'>parseRegex</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>Regex</span>
+<a name="line-38"></a><span class='definition'>parseRegex</span>
+<a name="line-39"></a>    <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='conid'>Right</span>
+<a name="line-40"></a>      <span class='varop'>.</span>
+<a name="line-41"></a>      <span class='varid'>parse</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-42"></a>	      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>regExp</span>
+<a name="line-43"></a>	      <span class='varid'>eof</span>
+<a name="line-44"></a>	      <span class='varid'>return</span> <span class='varid'>r</span>
+<a name="line-45"></a>	    <span class='layout'>)</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="regExp"></a><span class='definition'>regExp</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-50"></a><span class='definition'>regExp</span>
+<a name="line-51"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-52"></a>      <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>branch</span>
+<a name="line-53"></a>      <span class='varid'>rs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>branch1</span>
+<a name="line-54"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>foldr1</span> <span class='varid'>mkAlt</span> <span class='varop'>$</span> <span class='varid'>r1</span><span class='conop'>:</span><span class='varid'>rs</span><span class='layout'>)</span>
+<a name="line-55"></a>    <span class='keyword'>where</span>
+<a name="line-56"></a>    <span class='varid'>branch1</span>
+<a name="line-57"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-58"></a>	  <span class='varid'>char</span> <span class='chr'>'|'</span>
+<a name="line-59"></a>	  <span class='varid'>branch</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="branch"></a><span class='definition'>branch</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-62"></a><span class='definition'>branch</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-64"></a>      <span class='varid'>rs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>piece</span>
+<a name="line-65"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>foldr</span> <span class='varid'>mkSeq</span> <span class='varid'>mkUnit</span> <span class='varid'>rs</span>
+<a name="line-66"></a>
+<a name="line-67"></a><a name="piece"></a><span class='definition'>piece</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-68"></a><span class='definition'>piece</span>
+<a name="line-69"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-70"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>atom</span>
+<a name="line-71"></a>      <span class='varid'>quantifier</span> <span class='varid'>r</span>
+<a name="line-72"></a>
+<a name="line-73"></a><a name="quantifier"></a><span class='definition'>quantifier</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-74"></a><span class='definition'>quantifier</span> <span class='varid'>r</span>
+<a name="line-75"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-76"></a>	<span class='varid'>char</span> <span class='chr'>'?'</span>
+<a name="line-77"></a>	<span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkOpt</span> <span class='varid'>r</span> <span class='layout'>)</span>
+<a name="line-78"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-79"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-80"></a>	<span class='varid'>char</span> <span class='chr'>'*'</span>
+<a name="line-81"></a>	<span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkStar</span> <span class='varid'>r</span> <span class='layout'>)</span>
+<a name="line-82"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-83"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-84"></a>	<span class='varid'>char</span> <span class='chr'>'+'</span>
+<a name="line-85"></a>	<span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkRep</span> <span class='num'>1</span> <span class='varid'>r</span> <span class='layout'>)</span>
+<a name="line-86"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-87"></a>      <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-88"></a>	<span class='varid'>char</span> <span class='chr'>'{'</span>
+<a name="line-89"></a>	<span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>quantity</span> <span class='varid'>r</span>
+<a name="line-90"></a>	<span class='varid'>char</span> <span class='chr'>'}'</span>
+<a name="line-91"></a>	<span class='varid'>return</span> <span class='varid'>res</span>
+<a name="line-92"></a>      <span class='layout'>)</span>
+<a name="line-93"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-94"></a>      <span class='layout'>(</span> <span class='varid'>return</span> <span class='varid'>r</span> <span class='layout'>)</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="quantity"></a><span class='definition'>quantity</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-97"></a><span class='definition'>quantity</span> <span class='varid'>r</span>
+<a name="line-98"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-99"></a>      <span class='varid'>lb</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>
+<a name="line-100"></a>      <span class='varid'>quantityRest</span> <span class='varid'>r</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>lb</span><span class='layout'>)</span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="quantityRest"></a><span class='definition'>quantityRest</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-103"></a><span class='definition'>quantityRest</span> <span class='varid'>r</span> <span class='varid'>lb</span>
+<a name="line-104"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-105"></a>	<span class='varid'>char</span> <span class='chr'>','</span>
+<a name="line-106"></a>	<span class='varid'>ub</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>digit</span>
+<a name="line-107"></a>	<span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ub</span>
+<a name="line-108"></a>		 <span class='keyword'>then</span> <span class='varid'>mkRep</span> <span class='varid'>lb</span> <span class='varid'>r</span>
+<a name="line-109"></a>		 <span class='keyword'>else</span> <span class='varid'>mkRng</span> <span class='varid'>lb</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='varid'>r</span>
+<a name="line-110"></a>	       <span class='layout'>)</span>
+<a name="line-111"></a>      <span class='layout'>)</span>
+<a name="line-112"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-113"></a>      <span class='layout'>(</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>lb</span> <span class='varid'>r</span><span class='layout'>)</span>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="atom"></a><span class='definition'>atom</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-116"></a><span class='definition'>atom</span>
+<a name="line-117"></a>    <span class='keyglyph'>=</span> <span class='varid'>char1</span>
+<a name="line-118"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-119"></a>      <span class='varid'>charClass</span>
+<a name="line-120"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-121"></a>      <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'('</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>')'</span><span class='layout'>)</span> <span class='varid'>regExp</span>
+<a name="line-122"></a>
+<a name="line-123"></a><a name="char1"></a><span class='definition'>char1</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-124"></a><span class='definition'>char1</span>
+<a name="line-125"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-126"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>satisfy</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>".\\?*+{}()|[]"</span><span class='layout'>)</span>
+<a name="line-127"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym1</span> <span class='varid'>c</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="charClass"></a><span class='definition'>charClass</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-130"></a><span class='definition'>charClass</span>
+<a name="line-131"></a>    <span class='keyglyph'>=</span> <span class='varid'>charClassEsc</span>
+<a name="line-132"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-133"></a>      <span class='varid'>charClassExpr</span>
+<a name="line-134"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-135"></a>      <span class='varid'>wildCardEsc</span>
+<a name="line-136"></a>
+<a name="line-137"></a><a name="charClassEsc"></a><span class='definition'>charClassEsc</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-138"></a><span class='definition'>charClassEsc</span>
+<a name="line-139"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-140"></a>      <span class='varid'>char</span> <span class='chr'>'\\'</span>
+<a name="line-141"></a>      <span class='layout'>(</span> <span class='varid'>singleCharEsc</span>
+<a name="line-142"></a>	<span class='varop'>&lt;|&gt;</span>
+<a name="line-143"></a>	<span class='varid'>multiCharEsc</span>
+<a name="line-144"></a>	<span class='varop'>&lt;|&gt;</span>
+<a name="line-145"></a>	<span class='varid'>catEsc</span>
+<a name="line-146"></a>	<span class='varop'>&lt;|&gt;</span>
+<a name="line-147"></a>	<span class='varid'>complEsc</span> <span class='layout'>)</span>
+<a name="line-148"></a>
+<a name="line-149"></a><a name="singleCharEsc"></a><span class='definition'>singleCharEsc</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-150"></a><span class='definition'>singleCharEsc</span>
+<a name="line-151"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-152"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>singleCharEsc'</span>
+<a name="line-153"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym1</span> <span class='varid'>c</span>
+<a name="line-154"></a>
+<a name="line-155"></a><a name="singleCharEsc'"></a><span class='definition'>singleCharEsc'</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Char</span>
+<a name="line-156"></a><span class='definition'>singleCharEsc'</span>
+<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-158"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"nrt\\|.?*+(){}-[]^"</span><span class='layout'>)</span>
+<a name="line-159"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>maybe</span> <span class='varid'>c</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>c</span> <span class='varop'>.</span> <span class='varid'>zip</span> <span class='str'>"ntr"</span> <span class='varop'>$</span> <span class='str'>"\n\r\t"</span>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="multiCharEsc"></a><span class='definition'>multiCharEsc</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-162"></a><span class='definition'>multiCharEsc</span>
+<a name="line-163"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-164"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>es</span><span class='layout'>)</span>
+<a name="line-165"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>pm</span>
+<a name="line-166"></a>    <span class='keyword'>where</span>
+<a name="line-167"></a>    <span class='varid'>es</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>pm</span>
+<a name="line-168"></a>    <span class='varid'>pm</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'s'</span><span class='layout'>,</span>       <span class='varid'>isXmlSpaceChar</span>		<span class='layout'>)</span>
+<a name="line-169"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'S'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isXmlSpaceChar</span>		<span class='layout'>)</span>
+<a name="line-170"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'i'</span><span class='layout'>,</span>       <span class='varid'>isXmlNameStartChar</span>	<span class='layout'>)</span>
+<a name="line-171"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'I'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isXmlNameStartChar</span>	<span class='layout'>)</span>
+<a name="line-172"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'c'</span><span class='layout'>,</span>       <span class='varid'>isXmlNameChar</span>		<span class='layout'>)</span>
+<a name="line-173"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'C'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isXmlNameChar</span>		<span class='layout'>)</span>
+<a name="line-174"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'d'</span><span class='layout'>,</span>       <span class='varid'>isDigit</span>			<span class='layout'>)</span>
+<a name="line-175"></a>	 <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'D'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDigit</span>			<span class='layout'>)</span>
+<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-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>
+<a name="line-185"></a><span class='definition'>catEsc</span>
+<a name="line-186"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-187"></a>      <span class='varid'>char</span> <span class='chr'>'p'</span>
+<a name="line-188"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'{'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'}'</span><span class='layout'>)</span> <span class='varid'>charProp</span>
+<a name="line-189"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='varid'>s</span>
+<a name="line-190"></a>
+<a name="line-191"></a><a name="charProp"></a><span class='definition'>charProp</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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-192"></a><span class='definition'>charProp</span>
+<a name="line-193"></a>    <span class='keyglyph'>=</span> <span class='varid'>isCategory</span>
+<a name="line-194"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-195"></a>      <span class='varid'>isBlock</span>
+<a name="line-196"></a>
+<a name="line-197"></a><a name="isBlock"></a><span class='definition'>isBlock</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</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-198"></a><span class='definition'>isBlock</span>
+<a name="line-199"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-200"></a>      <span class='varid'>string</span> <span class='str'>"Is"</span>
+<a name="line-201"></a>      <span class='varid'>name</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>satisfy</span> <span class='varid'>legalChar</span><span class='layout'>)</span>
+<a name="line-202"></a>      <span class='keyword'>let</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>codeBlocks</span>
+<a name="line-203"></a>      <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>b</span>
+<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-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>
+<a name="line-211"></a>		   <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>
+<a name="line-212"></a>	           <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='varop'>||</span>
+<a name="line-213"></a>		   <span class='chr'>'-'</span> <span class='varop'>==</span> <span class='varid'>c</span>
+<a name="line-214"></a>
+<a name="line-215"></a><a name="isCategory"></a><span class='definition'>isCategory</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</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-216"></a><span class='definition'>isCategory</span>
+<a name="line-217"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-218"></a>      <span class='varid'>pr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>isCategory'</span>
+<a name="line-219"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>pr</span> <span class='varid'>categories</span><span class='layout'>)</span>
+<a name="line-220"></a>
+<a name="line-221"></a><a name="categories"></a><span class='definition'>categories</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'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-222"></a><span class='definition'>categories</span>
+<a name="line-223"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"C"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeC</span> <span class='layout'>)</span>
+<a name="line-224"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Cc"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCc</span><span class='layout'>)</span>
+<a name="line-225"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Cf"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCf</span><span class='layout'>)</span>
+<a name="line-226"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Co"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCo</span><span class='layout'>)</span>
+<a name="line-227"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Cs"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCs</span><span class='layout'>)</span>
+<a name="line-228"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"L"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeL</span> <span class='layout'>)</span>
+<a name="line-229"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ll"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLl</span><span class='layout'>)</span>
+<a name="line-230"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lm"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLm</span><span class='layout'>)</span>
+<a name="line-231"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lo"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLo</span><span class='layout'>)</span>
+<a name="line-232"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lt"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLt</span><span class='layout'>)</span>
+<a name="line-233"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lu"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLu</span><span class='layout'>)</span>
+<a name="line-234"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"M"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeM</span> <span class='layout'>)</span>
+<a name="line-235"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Mc"</span><span class='layout'>,</span> <span class='varid'>isUnicodeMc</span><span class='layout'>)</span>
+<a name="line-236"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Me"</span><span class='layout'>,</span> <span class='varid'>isUnicodeMe</span><span class='layout'>)</span>
+<a name="line-237"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Mn"</span><span class='layout'>,</span> <span class='varid'>isUnicodeMn</span><span class='layout'>)</span>
+<a name="line-238"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"N"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeN</span> <span class='layout'>)</span>
+<a name="line-239"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Nd"</span><span class='layout'>,</span> <span class='varid'>isUnicodeNd</span><span class='layout'>)</span>
+<a name="line-240"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Nl"</span><span class='layout'>,</span> <span class='varid'>isUnicodeNl</span><span class='layout'>)</span>
+<a name="line-241"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"No"</span><span class='layout'>,</span> <span class='varid'>isUnicodeNo</span><span class='layout'>)</span>
+<a name="line-242"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"P"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeP</span> <span class='layout'>)</span>
+<a name="line-243"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pc"</span><span class='layout'>,</span> <span class='varid'>isUnicodePc</span><span class='layout'>)</span>
+<a name="line-244"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pd"</span><span class='layout'>,</span> <span class='varid'>isUnicodePd</span><span class='layout'>)</span>
+<a name="line-245"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pe"</span><span class='layout'>,</span> <span class='varid'>isUnicodePe</span><span class='layout'>)</span>
+<a name="line-246"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pf"</span><span class='layout'>,</span> <span class='varid'>isUnicodePf</span><span class='layout'>)</span>
+<a name="line-247"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pi"</span><span class='layout'>,</span> <span class='varid'>isUnicodePi</span><span class='layout'>)</span>
+<a name="line-248"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Po"</span><span class='layout'>,</span> <span class='varid'>isUnicodePo</span><span class='layout'>)</span>
+<a name="line-249"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ps"</span><span class='layout'>,</span> <span class='varid'>isUnicodePs</span><span class='layout'>)</span>
+<a name="line-250"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"S"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeS</span> <span class='layout'>)</span>
+<a name="line-251"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sc"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSc</span><span class='layout'>)</span>
+<a name="line-252"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sk"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSk</span><span class='layout'>)</span>
+<a name="line-253"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sm"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSm</span><span class='layout'>)</span>
+<a name="line-254"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"So"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSo</span><span class='layout'>)</span>
+<a name="line-255"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Z"</span><span class='layout'>,</span>  <span class='varid'>isUnicodeZ</span> <span class='layout'>)</span>
+<a name="line-256"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zl"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZl</span><span class='layout'>)</span>
+<a name="line-257"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zp"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZp</span><span class='layout'>)</span>
+<a name="line-258"></a>      <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zs"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZs</span><span class='layout'>)</span>
+<a name="line-259"></a>      <span class='keyglyph'>]</span>
+<a name="line-260"></a>
+<a name="line-261"></a><a name="isCategory'"></a><span class='definition'>isCategory'</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>
+<a name="line-262"></a><span class='definition'>isCategory'</span>
+<a name="line-263"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varop'>&lt;|&gt;</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>prop</span><span class='layout'>)</span> <span class='varop'>$</span>
+<a name="line-264"></a>	<span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'L'</span><span class='layout'>,</span> <span class='str'>"ultmo"</span><span class='layout'>)</span>
+<a name="line-265"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'M'</span><span class='layout'>,</span> <span class='str'>"nce"</span><span class='layout'>)</span>
+<a name="line-266"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'N'</span><span class='layout'>,</span> <span class='str'>"dlo"</span><span class='layout'>)</span>
+<a name="line-267"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'P'</span><span class='layout'>,</span> <span class='str'>"cdseifo"</span><span class='layout'>)</span>
+<a name="line-268"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'Z'</span><span class='layout'>,</span> <span class='str'>"slp"</span><span class='layout'>)</span>
+<a name="line-269"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'S'</span><span class='layout'>,</span> <span class='str'>"mcko"</span><span class='layout'>)</span>
+<a name="line-270"></a>	<span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'C'</span><span class='layout'>,</span> <span class='str'>"cfon"</span><span class='layout'>)</span>
+<a name="line-271"></a>	<span class='keyglyph'>]</span>
+<a name="line-272"></a>      <span class='layout'>)</span> <span class='varop'>&lt;?&gt;</span> <span class='str'>"illegal Unicode character property"</span>
+<a name="line-273"></a>    <span class='keyword'>where</span>
+<a name="line-274"></a>    <span class='varid'>prop</span> <span class='varid'>c1</span> <span class='varid'>cs2</span>
+<a name="line-275"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-276"></a>	  <span class='varid'>char</span> <span class='varid'>c1</span>
+<a name="line-277"></a>	  <span class='varid'>s2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span>
+<a name="line-278"></a>		<span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-279"></a>		  <span class='varid'>c2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>cs2</span><span class='layout'>)</span>
+<a name="line-280"></a>		  <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>c2</span><span class='keyglyph'>]</span> <span class='layout'>)</span>
+<a name="line-281"></a>	  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>c1</span><span class='conop'>:</span><span class='varid'>s2</span>
+<a name="line-282"></a>
+<a name="line-283"></a><a name="complEsc"></a><span class='definition'>complEsc</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-284"></a><span class='definition'>complEsc</span>
+<a name="line-285"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-286"></a>      <span class='varid'>char</span> <span class='chr'>'P'</span>
+<a name="line-287"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'{'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'}'</span><span class='layout'>)</span> <span class='varid'>charProp</span>
+<a name="line-288"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="charClassExpr"></a><span class='definition'>charClassExpr</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-291"></a><span class='definition'>charClassExpr</span>
+<a name="line-292"></a>    <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'['</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>']'</span><span class='layout'>)</span> <span class='varid'>charGroup</span>
+<a name="line-293"></a>
+<a name="line-294"></a><a name="charGroup"></a><span class='definition'>charGroup</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-295"></a><span class='definition'>charGroup</span>
+<a name="line-296"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-297"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='layout'>(</span> <span class='varid'>negCharGroup</span>	<span class='comment'>-- a ^ at beginning denotes negation, not start of posCharGroup</span>
+<a name="line-298"></a>	     <span class='varop'>&lt;|&gt;</span>
+<a name="line-299"></a>	     <span class='varid'>posCharGroup</span>
+<a name="line-300"></a>	   <span class='layout'>)</span>
+<a name="line-301"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='layout'>(</span><span class='varid'>mkZero</span> <span class='str'>""</span><span class='layout'>)</span>	<span class='comment'>-- charClassSub</span>
+<a name="line-302"></a>	   <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-303"></a>	     <span class='varid'>char</span> <span class='chr'>'-'</span>
+<a name="line-304"></a>	     <span class='varid'>charClassExpr</span>
+<a name="line-305"></a>	   <span class='layout'>)</span>
+<a name="line-306"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkDif</span> <span class='varid'>r</span> <span class='varid'>s</span>
+<a name="line-307"></a>
+<a name="line-308"></a><a name="posCharGroup"></a><span class='definition'>posCharGroup</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-309"></a><span class='definition'>posCharGroup</span>
+<a name="line-310"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-311"></a>      <span class='varid'>rs</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>charRange</span> <span class='varop'>&lt;|&gt;</span> <span class='varid'>charClassEsc</span><span class='layout'>)</span>
+<a name="line-312"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>foldr1</span> <span class='varid'>mkAlt</span> <span class='varid'>rs</span>
+<a name="line-313"></a>
+<a name="line-314"></a><a name="charRange"></a><span class='definition'>charRange</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-315"></a><span class='definition'>charRange</span>
+<a name="line-316"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='varid'>seRange</span>
+<a name="line-317"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-318"></a>      <span class='varid'>xmlCharIncDash</span>
+<a name="line-319"></a>
+<a name="line-320"></a><a name="seRange"></a><span class='definition'>seRange</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-321"></a><span class='definition'>seRange</span>
+<a name="line-322"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-323"></a>      <span class='varid'>c1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>charOrEsc'</span>
+<a name="line-324"></a>      <span class='varid'>char</span> <span class='chr'>'-'</span>
+<a name="line-325"></a>      <span class='varid'>c2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>charOrEsc'</span>
+<a name="line-326"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSymRng</span> <span class='varid'>c1</span> <span class='varid'>c2</span>
+<a name="line-327"></a>
+<a name="line-328"></a><a name="charOrEsc'"></a><span class='definition'>charOrEsc'</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Char</span>
+<a name="line-329"></a><span class='definition'>charOrEsc'</span>
+<a name="line-330"></a>    <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"\\-[]"</span><span class='layout'>)</span>
+<a name="line-331"></a>      <span class='varop'>&lt;|&gt;</span>
+<a name="line-332"></a>      <span class='varid'>singleCharEsc'</span>
+<a name="line-333"></a>
+<a name="line-334"></a><a name="xmlCharIncDash"></a><span class='definition'>xmlCharIncDash</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-335"></a><span class='definition'>xmlCharIncDash</span>
+<a name="line-336"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-337"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"\\[]"</span><span class='layout'>)</span>
+<a name="line-338"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym1</span> <span class='varid'>c</span>
+<a name="line-339"></a>
+<a name="line-340"></a><a name="negCharGroup"></a><span class='definition'>negCharGroup</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-341"></a><span class='definition'>negCharGroup</span>
+<a name="line-342"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-343"></a>      <span class='varid'>char</span> <span class='chr'>'^'</span>
+<a name="line-344"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>posCharGroup</span>
+<a name="line-345"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkCompl</span> <span class='varid'>r</span>
+<a name="line-346"></a>
+<a name="line-347"></a><a name="wildCardEsc"></a><span class='definition'>wildCardEsc</span>	<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>
+<a name="line-348"></a><span class='definition'>wildCardEsc</span>
+<a name="line-349"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-350"></a>      <span class='varid'>char</span> <span class='chr'>'.'</span>
+<a name="line-351"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"\n\r"</span><span class='layout'>)</span>
+<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-RelaxNG.html b/doc/hdoc/src/Text-XML-HXT-RelaxNG.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-RelaxNG.html
@@ -0,0 +1,32 @@
+<!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'>-- This helper module exports elements from the basic Relax NG libraries:</span>
+<a name="line-3"></a><span class='comment'>-- Validator, CreatePattern, PatternToString and DataTypes.</span>
+<a name="line-4"></a><span class='comment'>-- It is the main entry point to the Relax NG schema validator of the Haskell</span>
+<a name="line-5"></a><span class='comment'>-- XML Toolbox.</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- Author : Torben Kuseler</span>
+<a name="line-8"></a><span class='comment'>--</span>
+<a name="line-9"></a><span class='comment'>-- Version : $Id: RelaxNG.hs,v 1.1 2005/09/02 17:09:39 hxml Exp $</span>
+<a name="line-10"></a>
+<a name="line-11"></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'>RelaxNG</span>
+<a name="line-12"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</span>
+<a name="line-13"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>
+<a name="line-14"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>
+<a name="line-15"></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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>
+<a name="line-16"></a>  <span class='layout'>)</span>
+<a name="line-17"></a><span class='keyword'>where</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>
+<a name="line-22"></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'>CreatePattern</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-AttributeValueValidation.html b/doc/hdoc/src/Text-XML-HXT-Validator-AttributeValueValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-AttributeValueValidation.html
@@ -0,0 +1,368 @@
+<!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'>-- This module provides functions for validating attributes.</span>
+<a name="line-3"></a>
+<a name="line-4"></a><span class='comment'>-- The main functions are:</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>--  - Check if the attribute value meets the lexical constraints of its type</span>
+<a name="line-7"></a><span class='comment'>--</span>
+<a name="line-8"></a><span class='comment'>--  - Normalization of an attribute value</span>
+<a name="line-9"></a><span class='comment'>--</span>
+<a name="line-10"></a>
+<a name="line-11"></a><span class='comment'>-- Special namings in source code:</span>
+<a name="line-12"></a><span class='comment'>--</span>
+<a name="line-13"></a><span class='comment'>--  - nd - XDTD node</span>
+<a name="line-14"></a><span class='comment'>--</span>
+<a name="line-15"></a><span class='comment'>--  - n  - XTag node</span>
+<a name="line-16"></a><span class='comment'>--</span>
+<a name="line-17"></a><span class='comment'>-- Version : $Id: AttributeValueValidation.hs,v 1.1 2004/09/02 19:12:02 hxml Exp $</span>
+<a name="line-18"></a><span class='comment'>--</span>
+<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'>Validator</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>
+<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>checkAttributeValue</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>normalizeAttributeValue</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'>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'>XmlParser</span>
+<a name="line-26"></a>    <span class='layout'>(</span> <span class='varid'>parseNMToken</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>parseName</span>
+<a name="line-28"></a>    <span class='layout'>)</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'>XmlTree</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>
+<a name="line-33"></a><span class='comment'>-- |</span>
+<a name="line-34"></a><span class='comment'>-- Checks if the attribute value meets the lexical constraints of its type.</span>
+<a name="line-35"></a><span class='comment'>--</span>
+<a name="line-36"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-37"></a><span class='comment'>--</span>
+<a name="line-38"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-39"></a><span class='comment'>--</span>
+<a name="line-40"></a><span class='comment'>--    - returns : a function which takes an element (XTag or XDTD ATTLIST),</span>
+<a name="line-41"></a><span class='comment'>--                    checks if the attribute value meets the lexical constraints</span>
+<a name="line-42"></a><span class='comment'>--                    of its type and returns a list of errors</span>
+<a name="line-43"></a>
+<a name="line-44"></a><a name="checkAttributeValue"></a><span class='definition'>checkAttributeValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-45"></a><span class='definition'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='sel'>_al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-46"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkValue</span> <span class='varid'>attrType</span> <span class='varid'>dtdPart</span> <span class='varid'>normalizedVal</span> <span class='varid'>attrDecl</span> <span class='varid'>n</span>
+<a name="line-47"></a>      <span class='keyword'>where</span>
+<a name="line-48"></a>      <span class='varid'>attrType</span>      <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span>
+<a name="line-49"></a>      <span class='varid'>attrValue</span>     <span class='keyglyph'>=</span> <span class='varid'>valueOf</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-50"></a>      <span class='varid'>normalizedVal</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='definition'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n</span><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'>ATTLIST</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-53"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkValue</span> <span class='varid'>attrType</span> <span class='varid'>dtdPart</span> <span class='varid'>normalizedVal</span> <span class='varid'>attrDecl</span> <span class='varid'>n</span>
+<a name="line-54"></a>      <span class='keyword'>where</span>
+<a name="line-55"></a>      <span class='varid'>attrType</span>      <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span>
+<a name="line-56"></a>      <span class='varid'>attrValue</span>     <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al'</span>
+<a name="line-57"></a>      <span class='varid'>normalizedVal</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='definition'>checkAttributeValue</span> <span class='keyword'>_</span> <span class='varid'>nd</span> <span class='varid'>n</span>
+<a name="line-60"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkAttributeValue: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-61"></a>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='comment'>-- |</span>
+<a name="line-64"></a><span class='comment'>-- Dispatches the attibute check by the attribute type.</span>
+<a name="line-65"></a><span class='comment'>--</span>
+<a name="line-66"></a><span class='comment'>--    * 1.parameter typ :  the attribute type</span>
+<a name="line-67"></a><span class='comment'>--</span>
+<a name="line-68"></a><span class='comment'>--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-69"></a><span class='comment'>--</span>
+<a name="line-70"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-71"></a><span class='comment'>--</span>
+<a name="line-72"></a><span class='comment'>--    - 4.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-73"></a><span class='comment'>--</span>
+<a name="line-74"></a><span class='comment'>--    - returns : a functions which takes an element (XTag or XDTD ATTLIST),</span>
+<a name="line-75"></a><span class='comment'>--                        checks if the attribute value meets the lexical constraints</span>
+<a name="line-76"></a><span class='comment'>--                        of its type and returns a list of errors</span>
+<a name="line-77"></a>
+<a name="line-78"></a><a name="checkValue"></a><span class='definition'>checkValue</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'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-79"></a><span class='definition'>checkValue</span> <span class='varid'>typ</span> <span class='varid'>dtdPart</span> <span class='varid'>attrValue</span> <span class='varid'>attrDecl</span>
+<a name="line-80"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_cdata</span>	<span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-81"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-82"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_entity</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-83"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_entities</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-84"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_id</span>		<span class='keyglyph'>=</span> <span class='varid'>checkValueId</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-85"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_idref</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueIdref</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-86"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_idrefs</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueIdrefs</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-87"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_nmtoken</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueNmtoken</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-88"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_nmtokens</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueNmtokens</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-89"></a>	<span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_notation</span>	<span class='keyglyph'>=</span> <span class='varid'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-90"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Attribute type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typ</span> <span class='varop'>++</span> <span class='str'>" unknown."</span><span class='layout'>)</span>
+<a name="line-91"></a>
+<a name="line-92"></a><span class='comment'>-- |</span>
+<a name="line-93"></a><span class='comment'>-- Checks the value of Enumeration attribute types. (3.3.1 \/ p.27 in Spec)</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-98"></a>
+<a name="line-99"></a><a name="checkValueEnumeration"></a><span class='definition'>checkValueEnumeration</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'>XmlFilter</span>
+<a name="line-100"></a><span class='definition'>checkValueEnumeration</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-101"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>attrValue</span> <span class='varop'>`elem`</span> <span class='varid'>enumVals</span>
+<a name="line-102"></a>      <span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-103"></a>      <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-104"></a>                <span class='str'>" must have a value from list "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enumVals</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-105"></a>      <span class='keyword'>where</span>
+<a name="line-106"></a>      <span class='varid'>enumVals</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-107"></a>      <span class='varid'>enumVals</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getEnumVal</span><span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-108"></a>
+<a name="line-109"></a>      <span class='varid'>getEnumVal</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-110"></a>      <span class='varid'>getEnumVal</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>NAME</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al'</span>
+<a name="line-111"></a>      <span class='varid'>getEnumVal</span> <span class='keyword'>_</span>                         <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='definition'>checkValueEnumeration</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-114"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkValueEnumeration: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-115"></a>
+<a name="line-116"></a>
+<a name="line-117"></a><span class='comment'>-- |</span>
+<a name="line-118"></a><span class='comment'>-- Checks the value of ENTITY attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-119"></a><span class='comment'>--</span>
+<a name="line-120"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the</span>
+<a name="line-121"></a><span class='comment'>--                    unparsed entity declarations</span>
+<a name="line-122"></a><span class='comment'>--</span>
+<a name="line-123"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-124"></a><span class='comment'>--</span>
+<a name="line-125"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-126"></a>
+<a name="line-127"></a><a name="checkValueEntity"></a><span class='definition'>checkValueEntity</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-128"></a><span class='definition'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-129"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>attrValue</span> <span class='varop'>`elem`</span> <span class='varid'>upEntities</span>
+<a name="line-130"></a>      <span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-131"></a>      <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-132"></a>                <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is not unparsed. "</span> <span class='varop'>++</span>
+<a name="line-133"></a>                <span class='str'>"The following unparsed entities exist: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upEntities</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-134"></a>      <span class='keyword'>where</span>
+<a name="line-135"></a>      <span class='varid'>upEntities</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-136"></a>      <span class='varid'>upEntities</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getEnumVal</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>isUnparsedEntity</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-137"></a>
+<a name="line-138"></a>      <span class='varid'>getEnumVal</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-139"></a>      <span class='varid'>getEnumVal</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ENTITY</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al'</span>
+<a name="line-140"></a>      <span class='varid'>getEnumVal</span> <span class='keyword'>_</span>                           <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-141"></a>
+<a name="line-142"></a>
+<a name="line-143"></a><span class='definition'>checkValueEntity</span> <span class='keyword'>_</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-144"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkValueEntity: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-145"></a>
+<a name="line-146"></a>
+<a name="line-147"></a><span class='comment'>-- |</span>
+<a name="line-148"></a><span class='comment'>-- Checks the value of ENTITIES attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-149"></a><span class='comment'>--</span>
+<a name="line-150"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the</span>
+<a name="line-151"></a><span class='comment'>--                    unparsed entity declarations</span>
+<a name="line-152"></a><span class='comment'>--</span>
+<a name="line-153"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-154"></a><span class='comment'>--</span>
+<a name="line-155"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="checkValueEntities"></a><span class='definition'>checkValueEntities</span> <span class='keyglyph'>::</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-158"></a><span class='definition'>checkValueEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-159"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>
+<a name="line-160"></a>      <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span>
+<a name="line-161"></a>                 <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be one or more names."</span><span class='layout'>)</span>
+<a name="line-162"></a>      <span class='keyword'>else</span> <span class='varid'>cat</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>valueList</span><span class='layout'>)</span>
+<a name="line-163"></a>      <span class='keyword'>where</span>
+<a name="line-164"></a>      <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='definition'>checkValueEntities</span> <span class='keyword'>_</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-167"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkValueEntities: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-168"></a>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='comment'>-- |</span>
+<a name="line-171"></a><span class='comment'>-- Checks the value of NMTOKEN attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-172"></a><span class='comment'>--</span>
+<a name="line-173"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-174"></a><span class='comment'>--</span>
+<a name="line-175"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-176"></a>
+<a name="line-177"></a><a name="checkValueNmtoken"></a><span class='definition'>checkValueNmtoken</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'>XmlFilter</span>
+<a name="line-178"></a><span class='definition'>checkValueNmtoken</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-179"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkNmtoken</span> <span class='varid'>parseRes</span>
+<a name="line-180"></a>      <span class='keyword'>where</span>
+<a name="line-181"></a>      <span class='varid'>parseRes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span>
+<a name="line-182"></a>      <span class='varid'>parseRes</span> <span class='keyglyph'>=</span> <span class='varid'>parseNMToken</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>mkXTextTree</span> <span class='varid'>attrValue</span><span class='layout'>)</span>
+<a name="line-183"></a>
+<a name="line-184"></a>      <span class='varid'>checkNmtoken</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-185"></a>      <span class='varid'>checkNmtoken</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='keyword'>_</span> <span class='varid'>s</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>
+<a name="line-186"></a>          <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-187"></a>	         <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be a name token, "</span><span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>!!</span> <span class='num'>1</span> <span class='varop'>++</span><span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-188"></a>
+<a name="line-189"></a>      <span class='varid'>checkNmtoken</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-190"></a>
+<a name="line-191"></a>
+<a name="line-192"></a><span class='definition'>checkValueNmtoken</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-193"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkValueNmtoken: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-194"></a>
+<a name="line-195"></a>
+<a name="line-196"></a><span class='comment'>-- |</span>
+<a name="line-197"></a><span class='comment'>-- Checks the value of NMTOKENS attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-198"></a><span class='comment'>--</span>
+<a name="line-199"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-200"></a><span class='comment'>--</span>
+<a name="line-201"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-202"></a>
+<a name="line-203"></a><a name="checkValueNmtokens"></a><span class='definition'>checkValueNmtokens</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'>XmlFilter</span>
+<a name="line-204"></a><span class='definition'>checkValueNmtokens</span> <span class='varid'>attrDecl</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-205"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>
+<a name="line-206"></a>      <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" of element "</span> <span class='varop'>++</span>
+<a name="line-207"></a>                 <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be one or more name tokens."</span><span class='layout'>)</span>
+<a name="line-208"></a>      <span class='keyword'>else</span> <span class='varid'>cat</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueNmtoken</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>valueList</span><span class='layout'>)</span>
+<a name="line-209"></a>      <span class='keyword'>where</span>
+<a name="line-210"></a>      <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>
+<a name="line-211"></a>
+<a name="line-212"></a><span class='definition'>checkValueNmtokens</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-213"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkValueNmtokens: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-214"></a>
+<a name="line-215"></a>
+<a name="line-216"></a><span class='comment'>-- |</span>
+<a name="line-217"></a><span class='comment'>-- Checks the value of ID attribute types. (3.3.1 \/ p.25 in Spec)</span>
+<a name="line-218"></a><span class='comment'>--</span>
+<a name="line-219"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-220"></a><span class='comment'>--</span>
+<a name="line-221"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-222"></a>
+<a name="line-223"></a><a name="checkValueId"></a><span class='definition'>checkValueId</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'>XmlFilter</span>
+<a name="line-224"></a><span class='definition'>checkValueId</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-225"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForName</span> <span class='str'>"Attribute value"</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-226"></a>
+<a name="line-227"></a>
+<a name="line-228"></a><span class='comment'>-- |</span>
+<a name="line-229"></a><span class='comment'>-- Checks the value of IDREF attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-230"></a><span class='comment'>--</span>
+<a name="line-231"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-232"></a><span class='comment'>--</span>
+<a name="line-233"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-234"></a>
+<a name="line-235"></a><a name="checkValueIdref"></a><span class='definition'>checkValueIdref</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'>XmlFilter</span>
+<a name="line-236"></a><span class='definition'>checkValueIdref</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-237"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForName</span> <span class='str'>"Attribute value"</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</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'>-- Checks the value of IDREFS attribute types. (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-242"></a><span class='comment'>--</span>
+<a name="line-243"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-244"></a><span class='comment'>--</span>
+<a name="line-245"></a><span class='comment'>--    - 2.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-246"></a>
+<a name="line-247"></a><a name="checkValueIdrefs"></a><span class='definition'>checkValueIdrefs</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'>XmlFilter</span>
+<a name="line-248"></a><span class='definition'>checkValueIdrefs</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>
+<a name="line-249"></a>    <span class='keyglyph'>=</span> <span class='varid'>cat</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueIdref</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>attrValue</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-250"></a>
+<a name="line-251"></a>
+<a name="line-252"></a>
+<a name="line-253"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-254"></a><span class='comment'>-- General helper functions for checking attribute values</span>
+<a name="line-255"></a><span class='comment'>--</span>
+<a name="line-256"></a>
+<a name="line-257"></a><span class='comment'>-- |</span>
+<a name="line-258"></a><span class='comment'>-- Checks if the value of an attribute is a name.</span>
+<a name="line-259"></a><span class='comment'>--</span>
+<a name="line-260"></a><span class='comment'>--    * 1.parameter msg :  error message, should be "Entity" or "Attribute value"</span>
+<a name="line-261"></a><span class='comment'>--</span>
+<a name="line-262"></a><span class='comment'>--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD</span>
+<a name="line-263"></a><span class='comment'>--</span>
+<a name="line-264"></a><span class='comment'>--    - 3.parameter attrValue :  the normalized attribute value to be checked</span>
+<a name="line-265"></a>
+<a name="line-266"></a><a name="checkForName"></a><span class='definition'>checkForName</span> <span class='keyglyph'>::</span>  <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-267"></a><span class='definition'>checkForName</span> <span class='varid'>msg</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-268"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>parseRes</span>
+<a name="line-269"></a>      <span class='keyword'>where</span>
+<a name="line-270"></a>      <span class='varid'>parseRes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span>
+<a name="line-271"></a>      <span class='varid'>parseRes</span> <span class='keyglyph'>=</span> <span class='varid'>parseName</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>mkXTextTree</span> <span class='varid'>attrValue</span><span class='layout'>)</span>
+<a name="line-272"></a>
+<a name="line-273"></a>      <span class='varid'>checkName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-274"></a>      <span class='varid'>checkName</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='keyword'>_</span> <span class='varid'>s</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>
+<a name="line-275"></a>          <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='varid'>msg</span> <span class='varop'>++</span> <span class='str'>" "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span><span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-276"></a>	    <span class='str'>" for element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" must be a name, "</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>!!</span> <span class='num'>1</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span>
+<a name="line-277"></a>
+<a name="line-278"></a>      <span class='varid'>checkName</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-279"></a>
+<a name="line-280"></a>
+<a name="line-281"></a><span class='definition'>checkForName</span> <span class='keyword'>_</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-282"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForName: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-283"></a>
+<a name="line-284"></a>
+<a name="line-285"></a><span class='comment'>-- |</span>
+<a name="line-286"></a><span class='comment'>-- Gets the element name from an attribute list of an XDTD ATTLIST node.</span>
+<a name="line-287"></a><span class='comment'>--</span>
+<a name="line-288"></a><span class='comment'>--    * 1.parameter tag :  the attibute list of an XDTD ATTLIST</span>
+<a name="line-289"></a><span class='comment'>--</span>
+<a name="line-290"></a><span class='comment'>--    - returns : the element name</span>
+<a name="line-291"></a>
+<a name="line-292"></a><a name="getElemName"></a><span class='definition'>getElemName</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-293"></a><span class='definition'>getElemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>
+<a name="line-294"></a>
+<a name="line-295"></a>
+<a name="line-296"></a><span class='comment'>-- |</span>
+<a name="line-297"></a><span class='comment'>-- Gets the attribute name from an attribute list of an XDTD ATTLIST node.</span>
+<a name="line-298"></a><span class='comment'>--</span>
+<a name="line-299"></a><span class='comment'>--    * 1.parameter tag :  the attibute list of an XDTD ATTLIST</span>
+<a name="line-300"></a><span class='comment'>--</span>
+<a name="line-301"></a><span class='comment'>--    - returns : the attribute name</span>
+<a name="line-302"></a>
+<a name="line-303"></a><a name="getAttrName"></a><span class='definition'>getAttrName</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-304"></a><span class='definition'>getAttrName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span>
+<a name="line-305"></a>
+<a name="line-306"></a>
+<a name="line-307"></a>
+<a name="line-308"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-309"></a>
+<a name="line-310"></a>
+<a name="line-311"></a><a name="normalizeAttributeValue"></a><span class='comment'>-- |</span>
+<a name="line-312"></a><span class='comment'>-- Normalizes an attribute value with respect to its type. (3.3.3 \/ p.29 in Spec)</span>
+<a name="line-313"></a><span class='comment'>--</span>
+<a name="line-314"></a><span class='comment'>--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected</span>
+<a name="line-315"></a><span class='comment'>--                   is a list. If the list is empty, no declaration exists.</span>
+<a name="line-316"></a><span class='comment'>--</span>
+<a name="line-317"></a><span class='comment'>--    - 2.parameter value :  the attribute value to be normalized</span>
+<a name="line-318"></a><span class='comment'>--</span>
+<a name="line-319"></a><span class='comment'>--    - returns : the normalized value</span>
+<a name="line-320"></a><span class='comment'>--</span>
+<a name="line-321"></a><span class='definition'>normalizeAttributeValue</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</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-322"></a><span class='definition'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>value</span>
+<a name="line-323"></a>    <span class='keyglyph'>=</span> <span class='varid'>normalizeAttribute</span> <span class='varid'>attrType</span>
+<a name="line-324"></a>      <span class='keyword'>where</span>
+<a name="line-325"></a>      <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span>
+<a name="line-326"></a>
+<a name="line-327"></a>      <span class='varid'>normalizeAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-328"></a>      <span class='varid'>normalizeAttribute</span> <span class='varid'>typ</span>
+<a name="line-329"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_cdata</span>	<span class='keyglyph'>=</span> <span class='varid'>cdataNormalization</span> <span class='varid'>value</span>
+<a name="line-330"></a>          <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>otherNormalization</span> <span class='varid'>value</span>
+<a name="line-331"></a>
+<a name="line-332"></a>
+<a name="line-333"></a><span class='comment'>-- Attribute not declared in DTD, normalization as CDATA</span>
+<a name="line-334"></a><span class='definition'>normalizeAttributeValue</span> <span class='keyword'>_</span> <span class='varid'>value</span>
+<a name="line-335"></a>    <span class='keyglyph'>=</span> <span class='varid'>cdataNormalization</span> <span class='varid'>value</span>
+<a name="line-336"></a>
+<a name="line-337"></a>
+<a name="line-338"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-339"></a><span class='comment'>-- Helper functions for normalization</span>
+<a name="line-340"></a>
+<a name="line-341"></a>
+<a name="line-342"></a><a name="cdataNormalization"></a><span class='comment'>-- |</span>
+<a name="line-343"></a><span class='comment'>-- Normalization of CDATA attribute values.</span>
+<a name="line-344"></a><span class='comment'>-- is already done when parsing</span>
+<a name="line-345"></a><span class='comment'>-- during entity substituion for attribute values</span>
+<a name="line-346"></a><span class='definition'>cdataNormalization</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-347"></a><span class='definition'>cdataNormalization</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-348"></a>
+<a name="line-349"></a>
+<a name="line-350"></a><a name="otherNormalization"></a><span class='comment'>-- | Normalization of attribute values other than CDATA.</span>
+<a name="line-351"></a><span class='definition'>otherNormalization</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-352"></a><span class='definition'>otherNormalization</span> <span class='keyglyph'>=</span> <span class='varid'>reduceWSSequences</span> <span class='varop'>.</span> <span class='varid'>stringTrim</span> <span class='varop'>.</span> <span class='varid'>cdataNormalization</span>
+<a name="line-353"></a>
+<a name="line-354"></a><a name="reduceWSSequences"></a><span class='comment'>-- | Reduce whitespace sequences to a single whitespace.</span>
+<a name="line-355"></a><span class='definition'>reduceWSSequences</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-356"></a><span class='definition'>reduceWSSequences</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>str</span><span class='layout'>)</span>
+<a name="line-357"></a>
+<a name="line-358"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-DTDValidation.html b/doc/hdoc/src/Text-XML-HXT-Validator-DTDValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-DTDValidation.html
@@ -0,0 +1,638 @@
+<!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'>-- This module provides functions for validating the DTD of XML documents</span>
+<a name="line-3"></a><span class='comment'>-- represented as XmlTree.</span>
+<a name="line-4"></a>
+<a name="line-5"></a><span class='comment'>-- Unlike other popular XML validation tools the validation process returns</span>
+<a name="line-6"></a><span class='comment'>-- a list of errors instead of aborting after the first error was found.</span>
+<a name="line-7"></a>
+<a name="line-8"></a>
+<a name="line-9"></a><span class='comment'>-- Unlike validation of the document, the DTD branch is traversed four times:</span>
+<a name="line-10"></a><span class='comment'>--</span>
+<a name="line-11"></a><span class='comment'>--  - Validation of Notations</span>
+<a name="line-12"></a><span class='comment'>--</span>
+<a name="line-13"></a><span class='comment'>--  - Validation of Unparsed Entities</span>
+<a name="line-14"></a><span class='comment'>--</span>
+<a name="line-15"></a><span class='comment'>--  - Validation of Element declarations</span>
+<a name="line-16"></a><span class='comment'>--</span>
+<a name="line-17"></a><span class='comment'>--  - Validation of Attribute declarations</span>
+<a name="line-18"></a>
+<a name="line-19"></a><span class='comment'>-- Special namings in source code:</span>
+<a name="line-20"></a><span class='comment'>--</span>
+<a name="line-21"></a><span class='comment'>--  - nd - XDTD node</span>
+<a name="line-22"></a><span class='comment'>--</span>
+<a name="line-23"></a><span class='comment'>-- Author : .\\artin Schmidt</span>
+<a name="line-24"></a><span class='comment'>-- Version : $Id: DTDValidation.hs,v 1.1 2004/09/02 19:12:02 hxml Exp $</span>
+<a name="line-25"></a>
+<a name="line-26"></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'>Validator</span><span class='varop'>.</span><span class='conid'>DTDValidation</span>
+<a name="line-27"></a>    <span class='layout'>(</span> <span class='varid'>removeDoublicateDefs</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>validateDTD</span>
+<a name="line-29"></a>    <span class='layout'>)</span>
+<a name="line-30"></a><span class='keyword'>where</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'>XmlTree</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'>Validator</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>
+<a name="line-35"></a>
+<a name="line-36"></a>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='comment'>-- |</span>
+<a name="line-39"></a><span class='comment'>-- Validate a DTD.</span>
+<a name="line-40"></a><span class='comment'>--</span>
+<a name="line-41"></a><span class='comment'>--    - returns : a functions which takes the DTD subset of the XmlTree, checks</span>
+<a name="line-42"></a><span class='comment'>--                  if the DTD is valid and returns a list of errors</span>
+<a name="line-43"></a>
+<a name="line-44"></a><a name="validateDTD"></a><span class='definition'>validateDTD</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-45"></a><span class='definition'>validateDTD</span> <span class='varid'>dtdPart</span>
+<a name="line-46"></a>    <span class='keyglyph'>=</span> <span class='comment'>{-# SCC "validateNotations" #-}</span> <span class='varid'>validateNotations</span> <span class='varid'>dtdPart'</span>
+<a name="line-47"></a>      <span class='varop'>++</span>
+<a name="line-48"></a>      <span class='comment'>{-# SCC "validateEntities" #-}</span> <span class='varid'>validateEntities</span> <span class='varid'>dtdPart'</span> <span class='varid'>notationNames</span>
+<a name="line-49"></a>      <span class='varop'>++</span>
+<a name="line-50"></a>      <span class='comment'>{-# SCC "validateElements" #-}</span> <span class='varid'>validateElements</span> <span class='varid'>dtdPart'</span> <span class='varid'>elemNames</span>
+<a name="line-51"></a>      <span class='varop'>++</span>
+<a name="line-52"></a>      <span class='comment'>{-# SCC "validateAttributes" #-}</span> <span class='varid'>validateAttributes</span> <span class='varid'>dtdPart'</span> <span class='varid'>elemNames</span> <span class='varid'>notationNames</span>
+<a name="line-53"></a>
+<a name="line-54"></a>      <span class='keyword'>where</span>
+<a name="line-55"></a>      <span class='varid'>dtdPart'</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span>
+<a name="line-56"></a>
+<a name="line-57"></a>      <span class='varid'>notationNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-58"></a>      <span class='varid'>notationNames</span>
+<a name="line-59"></a>          <span class='keyglyph'>=</span> <span class='varid'>getXTextValues</span> <span class='layout'>(</span><span class='varid'>isNotation</span> <span class='varop'>.&gt;</span> <span class='varid'>getDTDValue</span> <span class='varid'>a_name</span> <span class='varop'>$$</span> <span class='varid'>dtdPart'</span><span class='layout'>)</span>
+<a name="line-60"></a>
+<a name="line-61"></a>      <span class='varid'>elemNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-62"></a>      <span class='varid'>elemNames</span>
+<a name="line-63"></a>          <span class='keyglyph'>=</span> <span class='varid'>getXTextValues</span> <span class='layout'>(</span><span class='varid'>isElement</span>  <span class='varop'>.&gt;</span> <span class='varid'>getDTDValue</span> <span class='varid'>a_name</span> <span class='varop'>$$</span> <span class='varid'>dtdPart'</span><span class='layout'>)</span>
+<a name="line-64"></a>
+<a name="line-65"></a>
+<a name="line-66"></a>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-69"></a>
+<a name="line-70"></a><span class='comment'>-- |</span>
+<a name="line-71"></a><span class='comment'>-- Returns a list of XText values.</span>
+<a name="line-72"></a><span class='comment'>--</span>
+<a name="line-73"></a><span class='comment'>--    * 1.parameter xtextList :  a list of XText nodes</span>
+<a name="line-74"></a><span class='comment'>--</span>
+<a name="line-75"></a><span class='comment'>--    - returns : the values of the XText nodes</span>
+<a name="line-76"></a>
+<a name="line-77"></a><a name="getXTextValues"></a><span class='definition'>getXTextValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-78"></a><span class='definition'>getXTextValues</span>
+<a name="line-79"></a>  <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>showT</span>
+<a name="line-80"></a>  <span class='keyword'>where</span>
+<a name="line-81"></a>    <span class='varid'>showT</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-82"></a>	<span class='keyglyph'>|</span> <span class='varid'>isXTextNode</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>textOfXNode</span> <span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-83"></a>    <span class='varid'>showT</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-84"></a>
+<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="line-89"></a><span class='comment'>-- |</span>
+<a name="line-90"></a><span class='comment'>-- Validation of Notations, checks if all notation names are unique.</span>
+<a name="line-91"></a><span class='comment'>-- Validity constraint: Unique Notation Name (4.7 \/ p.44 in Spec)</span>
+<a name="line-92"></a><span class='comment'>--</span>
+<a name="line-93"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="validateNotations"></a><span class='definition'>validateNotations</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-98"></a><span class='definition'>validateNotations</span> <span class='varid'>dtdPart</span>
+<a name="line-99"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForUniqueNotation</span> <span class='varid'>notations</span> <span class='conid'>[]</span>
+<a name="line-100"></a>      <span class='keyword'>where</span>
+<a name="line-101"></a>      <span class='varid'>notations</span> <span class='keyglyph'>=</span> <span class='varid'>isNotation</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-102"></a>
+<a name="line-103"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-104"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='layout'>(</span><span class='varid'>x</span><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'>NOTATION</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-105"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-106"></a>	    <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Notation "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" was already specified."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-107"></a>		 <span class='varop'>++</span>
+<a name="line-108"></a>		 <span class='varid'>checkForUniqueNotation</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-109"></a>
+<a name="line-110"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueNotation</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-111"></a>	    <span class='keyword'>where</span>
+<a name="line-112"></a>	    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-113"></a>
+<a name="line-114"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-115"></a>
+<a name="line-116"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-117"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueNotation: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-118"></a>
+<a name="line-119"></a>
+<a name="line-120"></a><span class='comment'>-- |</span>
+<a name="line-121"></a><span class='comment'>-- Validation of Entities.</span>
+<a name="line-122"></a><span class='comment'>--</span>
+<a name="line-123"></a><span class='comment'>-- 1. Issues a warning if entities are declared multiple times.</span>
+<a name="line-124"></a><span class='comment'>--</span>
+<a name="line-125"></a><span class='comment'>--    Optional warning: (4.2 \/ p.35 in Spec) </span>
+<a name="line-126"></a><span class='comment'>--</span>
+<a name="line-127"></a><span class='comment'>--</span>
+<a name="line-128"></a><span class='comment'>-- 2. Validates that a notation is declared for an unparsed entity.</span>
+<a name="line-129"></a><span class='comment'>--</span>
+<a name="line-130"></a><span class='comment'>--    Validity constraint: Notation Declared (4.2.2 \/ p.36 in Spec)</span>
+<a name="line-131"></a><span class='comment'>--</span>
+<a name="line-132"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-133"></a><span class='comment'>--</span>
+<a name="line-134"></a><span class='comment'>--    - 2.parameter notationNames :  list of all notation names declared in the DTD</span>
+<a name="line-135"></a><span class='comment'>--</span>
+<a name="line-136"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="validateEntities"></a><span class='definition'>validateEntities</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-139"></a><span class='definition'>validateEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>notationNames</span>
+<a name="line-140"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForUniqueEntity</span> <span class='varid'>entities</span> <span class='conid'>[]</span>
+<a name="line-141"></a>      <span class='varop'>++</span>
+<a name="line-142"></a>      <span class='varid'>checkNotationDecls</span> <span class='varid'>notationNames</span> <span class='varid'>upEntities</span>
+<a name="line-143"></a>
+<a name="line-144"></a>      <span class='keyword'>where</span>
+<a name="line-145"></a>      <span class='varid'>entities</span>   <span class='keyglyph'>=</span> <span class='varid'>isEntity</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-146"></a>      <span class='varid'>upEntities</span> <span class='keyglyph'>=</span> <span class='varid'>isUnparsedEntity</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-147"></a>
+<a name="line-148"></a>      <span class='comment'>-- Check if entities are declared multiple times</span>
+<a name="line-149"></a>      <span class='varid'>checkForUniqueEntity</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-150"></a>      <span class='varid'>checkForUniqueEntity</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-151"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-152"></a>	    <span class='keyword'>then</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"Entity "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" was already specified. "</span> <span class='varop'>++</span>
+<a name="line-153"></a>	               <span class='str'>"First declaration will be used."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-154"></a>		 <span class='varop'>++</span>
+<a name="line-155"></a>		 <span class='varid'>checkForUniqueEntity</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-156"></a>
+<a name="line-157"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueEntity</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-158"></a>	    <span class='keyword'>where</span>
+<a name="line-159"></a>	    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-160"></a>
+<a name="line-161"></a>      <span class='varid'>checkForUniqueEntity</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-162"></a>
+<a name="line-163"></a>      <span class='varid'>checkForUniqueEntity</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-164"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueEntity: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-165"></a>
+<a name="line-166"></a>
+<a name="line-167"></a>      <span class='comment'>-- Find unparsed entities for which no notation is specified</span>
+<a name="line-168"></a>      <span class='varid'>checkNotationDecls</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='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-169"></a>      <span class='varid'>checkNotationDecls</span> <span class='varid'>notationNames'</span> <span class='varid'>upEntities'</span>
+<a name="line-170"></a>	  <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkNotationDecl</span><span class='layout'>)</span> <span class='varid'>upEntities'</span>
+<a name="line-171"></a>          <span class='keyword'>where</span>
+<a name="line-172"></a>          <span class='varid'>checkNotationDecl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-173"></a>          <span class='varid'>checkNotationDecl</span> <span class='varid'>n</span><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'>ENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-174"></a>              <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>notationName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>`elem`</span> <span class='varid'>notationNames'</span>
+<a name="line-175"></a>	        <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-176"></a>                <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The notation "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>notationName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be declared "</span> <span class='varop'>++</span>
+<a name="line-177"></a>	                  <span class='str'>"when referenced in the unparsed entity declaration for "</span> <span class='varop'>++</span>
+<a name="line-178"></a>		          <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>upEntityName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-179"></a>                <span class='keyword'>where</span>
+<a name="line-180"></a>		<span class='varid'>notationName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>k_ndata</span>
+<a name="line-181"></a>                <span class='varid'>upEntityName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>
+<a name="line-182"></a>
+<a name="line-183"></a>          <span class='varid'>checkNotationDecl</span> <span class='varid'>nd</span>
+<a name="line-184"></a>              <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkNotationDecl: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-185"></a>
+<a name="line-186"></a>
+<a name="line-187"></a>
+<a name="line-188"></a><span class='comment'>-- |</span>
+<a name="line-189"></a><span class='comment'>-- Validation of Element declarations.</span>
+<a name="line-190"></a><span class='comment'>--</span>
+<a name="line-191"></a><span class='comment'>-- 1. Validates that an element is not declared multiple times.</span>
+<a name="line-192"></a><span class='comment'>--</span>
+<a name="line-193"></a><span class='comment'>--    Validity constraint: Unique Element Type Declaration (3.2 \/ p.21 in Spec) </span>
+<a name="line-194"></a><span class='comment'>--</span>
+<a name="line-195"></a><span class='comment'>--</span>
+<a name="line-196"></a><span class='comment'>-- 2. Validates that an element name only appears once in a mixed-content declaration.</span>
+<a name="line-197"></a><span class='comment'>--</span>
+<a name="line-198"></a><span class='comment'>--    Validity constraint: No Duplicate Types (3.2 \/ p.21 in Spec) </span>
+<a name="line-199"></a><span class='comment'>--</span>
+<a name="line-200"></a><span class='comment'>--</span>
+<a name="line-201"></a><span class='comment'>-- 3. Issues a warning if an element mentioned in a content model is not declared in the</span>
+<a name="line-202"></a><span class='comment'>--    DTD.</span>
+<a name="line-203"></a><span class='comment'>--</span>
+<a name="line-204"></a><span class='comment'>--    Optional warning: (3.2 \/ p.21 in Spec)</span>
+<a name="line-205"></a><span class='comment'>--</span>
+<a name="line-206"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-207"></a><span class='comment'>--</span>
+<a name="line-208"></a><span class='comment'>--    - 2.parameter elemNames :  list of all element names declared in the DTD</span>
+<a name="line-209"></a><span class='comment'>--</span>
+<a name="line-210"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-211"></a>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="validateElements"></a><span class='definition'>validateElements</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-214"></a><span class='definition'>validateElements</span> <span class='varid'>dtdPart</span> <span class='varid'>elemNames</span>
+<a name="line-215"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForUniqueElement</span> <span class='varid'>elements</span> <span class='conid'>[]</span>
+<a name="line-216"></a>      <span class='varop'>++</span>
+<a name="line-217"></a>      <span class='varid'>checkMixedContents</span> <span class='varid'>mixedContentElems</span>
+<a name="line-218"></a>      <span class='varop'>++</span>
+<a name="line-219"></a>      <span class='varid'>checkContentModels</span> <span class='varid'>elemNames</span> <span class='varid'>elements</span>
+<a name="line-220"></a>
+<a name="line-221"></a>      <span class='keyword'>where</span>
+<a name="line-222"></a>      <span class='varid'>elements</span>          <span class='keyglyph'>=</span> <span class='varid'>isElement</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-223"></a>      <span class='varid'>mixedContentElems</span> <span class='keyglyph'>=</span> <span class='varid'>isMixedContentElement</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-224"></a>
+<a name="line-225"></a>
+<a name="line-226"></a>      <span class='comment'>-- Validates that an element is not declared multiple times</span>
+<a name="line-227"></a>      <span class='varid'>checkForUniqueElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-228"></a>      <span class='varid'>checkForUniqueElement</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-229"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-230"></a>	    <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Element type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-231"></a>		      <span class='str'>" must not be declared more than once."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-232"></a>		 <span class='varop'>++</span>
+<a name="line-233"></a>		 <span class='varid'>checkForUniqueElement</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-234"></a>
+<a name="line-235"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueElement</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-236"></a>	    <span class='keyword'>where</span>
+<a name="line-237"></a>	    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-238"></a>
+<a name="line-239"></a>      <span class='varid'>checkForUniqueElement</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-240"></a>
+<a name="line-241"></a>      <span class='varid'>checkForUniqueElement</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-242"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueElement: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-243"></a>
+<a name="line-244"></a>
+<a name="line-245"></a>      <span class='comment'>-- Validates that an element name only appears once in a mixed-content declaration</span>
+<a name="line-246"></a>      <span class='varid'>checkMixedContents</span> <span class='varid'>elems</span>
+<a name="line-247"></a>          <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkMixedContent</span><span class='layout'>)</span> <span class='varid'>elems</span>
+<a name="line-248"></a>	  <span class='keyword'>where</span>
+<a name="line-249"></a>          <span class='varid'>checkMixedContent</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-250"></a>	      <span class='keyglyph'>=</span> <span class='varid'>checkMC</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-251"></a>	      <span class='keyword'>where</span>
+<a name="line-252"></a>	      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-253"></a>
+<a name="line-254"></a>	      <span class='varid'>checkMC</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-255"></a>	      <span class='varid'>checkMC</span> <span class='layout'>(</span><span class='varid'>x</span><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'>NAME</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-256"></a>                  <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-257"></a>	            <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The element type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>
+<a name="line-258"></a>			      <span class='str'>" was already specified in the mixed-content model of the element declaration "</span> <span class='varop'>++</span>
+<a name="line-259"></a>		              <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-260"></a>		         <span class='varop'>++</span>
+<a name="line-261"></a>		         <span class='varid'>checkMC</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-262"></a>
+<a name="line-263"></a>	            <span class='keyword'>else</span> <span class='varid'>checkMC</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-264"></a>	            <span class='keyword'>where</span>
+<a name="line-265"></a>	            <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al'</span>
+<a name="line-266"></a>
+<a name="line-267"></a>              <span class='varid'>checkMC</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-268"></a>
+<a name="line-269"></a>              <span class='varid'>checkMC</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-270"></a>	          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkMC: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-271"></a>
+<a name="line-272"></a>	  <span class='varid'>checkMixedContent</span> <span class='varid'>nd</span>
+<a name="line-273"></a>	      <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkMixedContent: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-274"></a>
+<a name="line-275"></a>
+<a name="line-276"></a>      <span class='comment'>-- Issues a warning if an element mentioned in a content model is not</span>
+<a name="line-277"></a>      <span class='comment'>-- declared in the DTD.</span>
+<a name="line-278"></a>      <span class='varid'>checkContentModels</span> <span class='varid'>names</span> <span class='varid'>elems</span>
+<a name="line-279"></a>          <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>checkContentModel</span> <span class='varid'>elems</span>
+<a name="line-280"></a>	  <span class='keyword'>where</span>
+<a name="line-281"></a>          <span class='varid'>checkContentModel</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-282"></a>          <span class='varid'>checkContentModel</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-283"></a>              <span class='keyglyph'>=</span> <span class='varid'>validateContent</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-284"></a>	      <span class='keyword'>where</span>
+<a name="line-285"></a>	      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-286"></a>
+<a name="line-287"></a>	      <span class='varid'>validateContent</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-288"></a>	      <span class='varid'>validateContent</span> <span class='varid'>cm</span>
+<a name="line-289"></a>	          <span class='keyglyph'>|</span> <span class='varid'>cm</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='keyglyph'>=</span> <span class='varid'>checkContent</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-290"></a>	          <span class='keyglyph'>|</span> <span class='varid'>cm</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span>    <span class='keyglyph'>=</span> <span class='varid'>checkContent</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-291"></a>	          <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>        <span class='keyglyph'>=</span> <span class='conid'>[]</span>  <span class='comment'>-- no child elements to check</span>
+<a name="line-292"></a>
+<a name="line-293"></a>	      <span class='varid'>checkContent</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-294"></a>	      <span class='varid'>checkContent</span> <span class='varid'>n</span><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'>NAME</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-295"></a>	          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>childElemName</span> <span class='varop'>`elem`</span> <span class='varid'>names</span>
+<a name="line-296"></a>	            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-297"></a>	            <span class='keyword'>else</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"The element type "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>childElemName</span> <span class='varop'>++</span>
+<a name="line-298"></a>		               <span class='str'>", used in content model of element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span>
+<a name="line-299"></a>			       <span class='str'>", is not declared."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-300"></a>	            <span class='keyword'>where</span>
+<a name="line-301"></a>		    <span class='varid'>childElemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al'</span>
+<a name="line-302"></a>
+<a name="line-303"></a>	      <span class='varid'>checkContent</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='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs'</span><span class='layout'>)</span>
+<a name="line-304"></a>	          <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkContent</span><span class='layout'>)</span> <span class='varid'>cs'</span>
+<a name="line-305"></a>
+<a name="line-306"></a>	      <span class='varid'>checkContent</span> <span class='varid'>nd</span>
+<a name="line-307"></a>	          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkContent: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-308"></a>
+<a name="line-309"></a>          <span class='varid'>checkContentModel</span> <span class='varid'>nd</span>
+<a name="line-310"></a>              <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkContentModel: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-311"></a>
+<a name="line-312"></a>
+<a name="line-313"></a><span class='comment'>-- |</span>
+<a name="line-314"></a><span class='comment'>-- Validation of Attribute declarations.</span>
+<a name="line-315"></a><span class='comment'>--</span>
+<a name="line-316"></a><span class='comment'>-- (1) Issues a warning if an attribute is declared for an element type not itself</span>
+<a name="line-317"></a><span class='comment'>--    decared.</span>
+<a name="line-318"></a><span class='comment'>--</span>
+<a name="line-319"></a><span class='comment'>--    Optinal warning: (3.3 \/ p. 24 in Spec)</span>
+<a name="line-320"></a><span class='comment'>--</span>
+<a name="line-321"></a><span class='comment'>--</span>
+<a name="line-322"></a><span class='comment'>-- 2. Issues a warning if more than one definition is provided for the same</span>
+<a name="line-323"></a><span class='comment'>--    attribute of a given element type. Fist declaration is binding, later</span>
+<a name="line-324"></a><span class='comment'>--    definitions are ignored.</span>
+<a name="line-325"></a><span class='comment'>--</span>
+<a name="line-326"></a><span class='comment'>--    Optional warning: (3.3 \/ p.24 in Spec)</span>
+<a name="line-327"></a><span class='comment'>--</span>
+<a name="line-328"></a><span class='comment'>--</span>
+<a name="line-329"></a><span class='comment'>-- 3. Issues a warning if the same Nmtoken occures more than once in enumerated</span>
+<a name="line-330"></a><span class='comment'>--    attribute types of a single element type.</span>
+<a name="line-331"></a><span class='comment'>--</span>
+<a name="line-332"></a><span class='comment'>--    Optional warning: (3.3.1 \/ p.27 in Spec) </span>
+<a name="line-333"></a><span class='comment'>--</span>
+<a name="line-334"></a><span class='comment'>--</span>
+<a name="line-335"></a><span class='comment'>-- 4. Validates that an element type has not more than one ID attribute defined.</span>
+<a name="line-336"></a><span class='comment'>--</span>
+<a name="line-337"></a><span class='comment'>--    Validity constraint: One ID per Element Type (3.3.1 \/ p.26 in Spec) </span>
+<a name="line-338"></a><span class='comment'>--</span>
+<a name="line-339"></a><span class='comment'>--</span>
+<a name="line-340"></a><span class='comment'>-- 5. Validates that an element type has not more than one NOTATION attribute defined.</span>
+<a name="line-341"></a><span class='comment'>--</span>
+<a name="line-342"></a><span class='comment'>--    Validity constraint: One Notation per Element Type (3.3.1 \/ p.27 in Spec) </span>
+<a name="line-343"></a><span class='comment'>--</span>
+<a name="line-344"></a><span class='comment'>--</span>
+<a name="line-345"></a><span class='comment'>-- 6. Validates that an ID attributes has the type #IMPLIED or #REQUIRED.</span>
+<a name="line-346"></a><span class='comment'>--</span>
+<a name="line-347"></a><span class='comment'>--    Validity constraint: ID Attribute Default (3.3.1 \/ p.26 in Spec) </span>
+<a name="line-348"></a><span class='comment'>--</span>
+<a name="line-349"></a><span class='comment'>--</span>
+<a name="line-350"></a><span class='comment'>-- 7. Validates that all referenced notations are declared.</span>
+<a name="line-351"></a><span class='comment'>--</span>
+<a name="line-352"></a><span class='comment'>--    Validity constraint: Notation Attributes (3.3.1 \/ p.27 in Spec) </span>
+<a name="line-353"></a><span class='comment'>--</span>
+<a name="line-354"></a><span class='comment'>--</span>
+<a name="line-355"></a><span class='comment'>-- 8. Validates that notations are not declared for EMPTY elements.</span>
+<a name="line-356"></a><span class='comment'>--</span>
+<a name="line-357"></a><span class='comment'>--    Validity constraint: No Notation on Empty Element (3.3.1 \/p.27 in Spec) </span>
+<a name="line-358"></a><span class='comment'>--</span>
+<a name="line-359"></a><span class='comment'>--</span>
+<a name="line-360"></a><span class='comment'>-- 9. Validates that the default value matches the lexical constraints of it's type.</span>
+<a name="line-361"></a><span class='comment'>--</span>
+<a name="line-362"></a><span class='comment'>--    Validity constraint: Attribute default legal (3.3.2 \/ p.28 in Spec)</span>
+<a name="line-363"></a><span class='comment'>--</span>
+<a name="line-364"></a><span class='comment'>--</span>
+<a name="line-365"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-366"></a><span class='comment'>--</span>
+<a name="line-367"></a><span class='comment'>--    - 2.parameter elemNames :  list of all element names declared in the DTD</span>
+<a name="line-368"></a><span class='comment'>--</span>
+<a name="line-369"></a><span class='comment'>--    - 3.parameter notationNames :  list of all notation names declared in the DTD</span>
+<a name="line-370"></a><span class='comment'>--</span>
+<a name="line-371"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-372"></a>
+<a name="line-373"></a><a name="validateAttributes"></a><span class='definition'>validateAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-374"></a><span class='definition'>validateAttributes</span> <span class='varid'>dtdPart</span> <span class='varid'>elemNames</span> <span class='varid'>notationNames</span>
+<a name="line-375"></a>    <span class='keyglyph'>=</span> <span class='comment'>-- 1. Find attributes for which no elements are declared</span>
+<a name="line-376"></a>      <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>checkDeclaredElements</span> <span class='varid'>elemNames</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>attributes</span><span class='layout'>)</span>
+<a name="line-377"></a>      <span class='varop'>++</span>
+<a name="line-378"></a>      <span class='comment'>-- 2. Find attributes which are declared more than once</span>
+<a name="line-379"></a>      <span class='layout'>(</span><span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='varid'>attributes</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-380"></a>      <span class='varop'>++</span>
+<a name="line-381"></a>      <span class='comment'>-- 3. Find enumerated attribute types which nmtokens are declared more than once</span>
+<a name="line-382"></a>      <span class='layout'>(</span><span class='varid'>checkEnumeratedTypes</span>
+<a name="line-383"></a>      <span class='varop'>`o`</span>
+<a name="line-384"></a>      <span class='layout'>(</span><span class='varid'>isEnumAttrType</span> <span class='varop'>`orElse`</span> <span class='varid'>isNotationAttrType</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>attributes</span><span class='layout'>)</span>
+<a name="line-385"></a>      <span class='varop'>++</span>
+<a name="line-386"></a>      <span class='comment'>-- 4. Validate that there exists only one ID attribute for an element</span>
+<a name="line-387"></a>      <span class='layout'>(</span><span class='varid'>checkForUniqueId</span> <span class='varid'>idAttributes</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-388"></a>      <span class='varop'>++</span>
+<a name="line-389"></a>      <span class='comment'>-- 5. Validate that there exists only one NOTATION attribute for an element</span>
+<a name="line-390"></a>      <span class='layout'>(</span><span class='varid'>checkForUniqueNotation</span> <span class='varid'>notationAttributes</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-391"></a>      <span class='varop'>++</span>
+<a name="line-392"></a>      <span class='comment'>-- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED</span>
+<a name="line-393"></a>      <span class='layout'>(</span><span class='varid'>checkIdKindConstraint</span> <span class='varop'>$$</span> <span class='varid'>idAttributes</span><span class='layout'>)</span>
+<a name="line-394"></a>      <span class='varop'>++</span>
+<a name="line-395"></a>      <span class='comment'>-- 7. Validate that all referenced notations are declared</span>
+<a name="line-396"></a>      <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>checkNotationDeclaration</span> <span class='varid'>notationNames</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>notationAttributes</span><span class='layout'>)</span>
+<a name="line-397"></a>      <span class='varop'>++</span>
+<a name="line-398"></a>      <span class='comment'>-- 8. Validate that notations are not declared for EMPTY elements</span>
+<a name="line-399"></a>      <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>checkNoNotationForEmptyElement</span>
+<a name="line-400"></a>      	  <span class='layout'>(</span>
+<a name="line-401"></a>    	      <span class='varid'>getXTextValues</span> <span class='layout'>(</span><span class='varid'>getDTDValue</span> <span class='varid'>a_name</span> <span class='varop'>$$</span> <span class='layout'>(</span><span class='varid'>isEmptyElement</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-402"></a>       	  <span class='layout'>)</span>
+<a name="line-403"></a>        <span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>notationAttributes</span><span class='layout'>)</span>
+<a name="line-404"></a>      <span class='varop'>++</span>
+<a name="line-405"></a>      <span class='comment'>-- 9. Validate that the default value matches the lexical constraints of it's type</span>
+<a name="line-406"></a>      <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>checkDefaultValueTypes</span> <span class='varid'>dtdPart</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='layout'>(</span><span class='varid'>isDefaultAttrKind</span> <span class='varop'>$$</span> <span class='varid'>attributes</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-407"></a>
+<a name="line-408"></a>      <span class='keyword'>where</span>
+<a name="line-409"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-410"></a>      <span class='comment'>-- helper functions</span>
+<a name="line-411"></a>      <span class='varid'>attributes</span>         <span class='keyglyph'>=</span> <span class='varid'>isAttlist</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-412"></a>      <span class='varid'>idAttributes</span>       <span class='keyglyph'>=</span> <span class='varid'>isIdAttrType</span> <span class='varop'>$$</span> <span class='varid'>attributes</span>
+<a name="line-413"></a>      <span class='varid'>notationAttributes</span> <span class='keyglyph'>=</span> <span class='varid'>isNotationAttrType</span> <span class='varop'>$$</span> <span class='varid'>attributes</span>
+<a name="line-414"></a>
+<a name="line-415"></a>
+<a name="line-416"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>
+<a name="line-417"></a>      <span class='varid'>attName</span>  <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span>
+<a name="line-418"></a>
+<a name="line-419"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-420"></a>      <span class='comment'>-- 1. Find attributes for which no elements are declared</span>
+<a name="line-421"></a>      <span class='varid'>checkDeclaredElements</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='conid'>XmlFilter</span>
+<a name="line-422"></a>      <span class='varid'>checkDeclaredElements</span> <span class='varid'>elemNames'</span> <span class='varid'>n</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-423"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>elemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>`elem`</span> <span class='varid'>elemNames'</span>
+<a name="line-424"></a>	    <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-425"></a>	    <span class='keyword'>else</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"The element type \""</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" used in declaration "</span><span class='varop'>++</span>
+<a name="line-426"></a>	               <span class='str'>"of attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" is not declared."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-427"></a>
+<a name="line-428"></a>      <span class='varid'>checkDeclaredElements</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-429"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkDeclaredElements: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-430"></a>
+<a name="line-431"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-432"></a>      <span class='comment'>-- 2. Find attributes which are declared more than once</span>
+<a name="line-433"></a>      <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-434"></a>      <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-435"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-436"></a>	    <span class='keyword'>then</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"Attribute \""</span><span class='varop'>++</span> <span class='varid'>aname</span> <span class='varop'>++</span><span class='str'>"\" for element type \""</span><span class='varop'>++</span>
+<a name="line-437"></a>		        <span class='varid'>ename</span> <span class='varop'>++</span><span class='str'>"\" is already declared. First "</span><span class='varop'>++</span>
+<a name="line-438"></a>		        <span class='str'>"declaration will be used."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-439"></a>		 <span class='varop'>++</span>
+<a name="line-440"></a>		 <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-441"></a>
+<a name="line-442"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-443"></a>	    <span class='keyword'>where</span>
+<a name="line-444"></a>	    <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>elemName</span> <span class='varid'>al</span>
+<a name="line-445"></a>	    <span class='varid'>aname</span> <span class='keyglyph'>=</span> <span class='varid'>attName</span> <span class='varid'>al</span>
+<a name="line-446"></a>	    <span class='varid'>name</span>  <span class='keyglyph'>=</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>aname</span>
+<a name="line-447"></a>
+<a name="line-448"></a>      <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-449"></a>
+<a name="line-450"></a>      <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-451"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueAttributeDeclaration: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-452"></a>
+<a name="line-453"></a>
+<a name="line-454"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-455"></a>      <span class='comment'>-- 3. Find enumerated attribute types which nmtokens are declared more than once</span>
+<a name="line-456"></a>      <span class='varid'>checkEnumeratedTypes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-457"></a>      <span class='varid'>checkEnumeratedTypes</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-458"></a>          <span class='keyglyph'>=</span> <span class='varid'>checkForUniqueType</span> <span class='varid'>cs</span> <span class='conid'>[]</span>
+<a name="line-459"></a>	  <span class='keyword'>where</span>
+<a name="line-460"></a>	  <span class='varid'>checkForUniqueType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-461"></a>          <span class='varid'>checkForUniqueType</span> <span class='layout'>(</span><span class='varid'>x</span><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'>NAME</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-462"></a>              <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>nmtoken</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-463"></a>	        <span class='keyword'>then</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"Nmtoken \""</span><span class='varop'>++</span> <span class='varid'>nmtoken</span> <span class='varop'>++</span><span class='str'>"\" should not "</span><span class='varop'>++</span>
+<a name="line-464"></a>		        <span class='str'>"occur more than once in attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span>
+<a name="line-465"></a>			<span class='str'>"\" for element \""</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\"."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-466"></a>		     <span class='varop'>++</span>
+<a name="line-467"></a>		     <span class='varid'>checkForUniqueType</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-468"></a>
+<a name="line-469"></a>	        <span class='keyword'>else</span> <span class='varid'>checkForUniqueType</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>nmtoken</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-470"></a>	        <span class='keyword'>where</span>
+<a name="line-471"></a>	        <span class='varid'>nmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al'</span>
+<a name="line-472"></a>
+<a name="line-473"></a>          <span class='varid'>checkForUniqueType</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-474"></a>
+<a name="line-475"></a>          <span class='varid'>checkForUniqueType</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-476"></a>              <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueType: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-477"></a>
+<a name="line-478"></a>      <span class='varid'>checkEnumeratedTypes</span> <span class='varid'>nd</span>
+<a name="line-479"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkEnumeratedTypes: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-480"></a>
+<a name="line-481"></a>
+<a name="line-482"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-483"></a>      <span class='comment'>-- 4. Validate that there exists only one ID attribute for an element</span>
+<a name="line-484"></a>      <span class='varid'>checkForUniqueId</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-485"></a>      <span class='varid'>checkForUniqueId</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-486"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>ename</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-487"></a>	    <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"\" already has attribute of type "</span><span class='varop'>++</span>
+<a name="line-488"></a>		       <span class='str'>"ID, another attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" of type ID is "</span><span class='varop'>++</span>
+<a name="line-489"></a>		       <span class='str'>"not permitted."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-490"></a>		 <span class='varop'>++</span>
+<a name="line-491"></a>		 <span class='varid'>checkForUniqueId</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-492"></a>
+<a name="line-493"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueId</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>ename</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-494"></a>	    <span class='keyword'>where</span>
+<a name="line-495"></a>	    <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>elemName</span> <span class='varid'>al</span>
+<a name="line-496"></a>
+<a name="line-497"></a>      <span class='varid'>checkForUniqueId</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-498"></a>
+<a name="line-499"></a>      <span class='varid'>checkForUniqueId</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-500"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueId: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-501"></a>
+<a name="line-502"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-503"></a>      <span class='comment'>-- 5. Validate that there exists only one NOTATION attribute for an element</span>
+<a name="line-504"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-505"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-506"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>ename</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-507"></a>	    <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Element \""</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" already has attribute of type "</span><span class='varop'>++</span>
+<a name="line-508"></a>		       <span class='str'>"NOTATION, another attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" of type NOTATION "</span><span class='varop'>++</span>
+<a name="line-509"></a>		       <span class='str'>"is not permitted."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-510"></a>		 <span class='varop'>++</span>
+<a name="line-511"></a>		 <span class='varid'>checkForUniqueNotation</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-512"></a>
+<a name="line-513"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueNotation</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>ename</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-514"></a>	    <span class='keyword'>where</span>
+<a name="line-515"></a>	    <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>elemName</span> <span class='varid'>al</span>
+<a name="line-516"></a>
+<a name="line-517"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-518"></a>
+<a name="line-519"></a>      <span class='varid'>checkForUniqueNotation</span> <span class='varid'>nd</span> <span class='keyword'>_</span>
+<a name="line-520"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkForUniqueNotation: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-521"></a>
+<a name="line-522"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-523"></a>      <span class='comment'>-- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED</span>
+<a name="line-524"></a>      <span class='varid'>checkIdKindConstraint</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-525"></a>      <span class='varid'>checkIdKindConstraint</span> <span class='varid'>nd</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-526"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>attKind</span> <span class='varop'>==</span> <span class='varid'>k_implied</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>attKind</span> <span class='varop'>==</span> <span class='varid'>k_required</span><span class='layout'>)</span>
+<a name="line-527"></a>	    <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-528"></a>	    <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"ID attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" must have a declared default "</span><span class='varop'>++</span>
+<a name="line-529"></a>	              <span class='str'>"of \"#IMPLIED\" or \"REQUIRED\""</span><span class='layout'>)</span> <span class='varid'>nd</span>
+<a name="line-530"></a>	    <span class='keyword'>where</span>
+<a name="line-531"></a>	    <span class='varid'>attKind</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span>
+<a name="line-532"></a>
+<a name="line-533"></a>      <span class='varid'>checkIdKindConstraint</span> <span class='varid'>nd</span>
+<a name="line-534"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkIdKindConstraint: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-535"></a>
+<a name="line-536"></a>
+<a name="line-537"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-538"></a>      <span class='comment'>-- 7. Validate that all referenced notations are declared</span>
+<a name="line-539"></a>      <span class='varid'>checkNotationDeclaration</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='conid'>XmlFilter</span>
+<a name="line-540"></a>      <span class='varid'>checkNotationDeclaration</span> <span class='varid'>notations</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-541"></a>          <span class='keyglyph'>=</span> <span class='varid'>checkNotations</span> <span class='varop'>$$</span> <span class='varid'>cs</span>
+<a name="line-542"></a>	  <span class='keyword'>where</span>
+<a name="line-543"></a>	  <span class='varid'>checkNotations</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-544"></a>	  <span class='varid'>checkNotations</span> <span class='varid'>nd</span><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'>NAME</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-545"></a>	      <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>notation</span> <span class='varop'>`elem`</span> <span class='varid'>notations</span>
+<a name="line-546"></a>	        <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-547"></a>	        <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The notation \""</span><span class='varop'>++</span> <span class='varid'>notation</span> <span class='varop'>++</span><span class='str'>"\" must be declared when "</span><span class='varop'>++</span>
+<a name="line-548"></a>		          <span class='str'>"referenced in the notation type list for attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span>
+<a name="line-549"></a>			  <span class='str'>"\" of element \""</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\"."</span><span class='layout'>)</span> <span class='varid'>nd</span>
+<a name="line-550"></a>                <span class='keyword'>where</span>
+<a name="line-551"></a>	        <span class='varid'>notation</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al'</span>
+<a name="line-552"></a>
+<a name="line-553"></a>          <span class='varid'>checkNotations</span> <span class='varid'>nd</span>
+<a name="line-554"></a>              <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkNotations: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-555"></a>
+<a name="line-556"></a>      <span class='varid'>checkNotationDeclaration</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-557"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkNotationDeclaration: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-558"></a>
+<a name="line-559"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-560"></a>      <span class='comment'>-- 8. Validate that notations are not declared for EMPTY elements</span>
+<a name="line-561"></a>      <span class='varid'>checkNoNotationForEmptyElement</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='conid'>XmlFilter</span>
+<a name="line-562"></a>      <span class='varid'>checkNoNotationForEmptyElement</span> <span class='varid'>emptyElems</span> <span class='varid'>nd</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-563"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>elemName</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>`elem`</span> <span class='varid'>emptyElems</span>
+<a name="line-564"></a>	    <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute \""</span><span class='varop'>++</span> <span class='varid'>attName</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" of type NOTATION must not be "</span><span class='varop'>++</span>
+<a name="line-565"></a>	              <span class='str'>"declared on the element \""</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" declared EMPTY."</span><span class='layout'>)</span>
+<a name="line-566"></a>		      <span class='varid'>nd</span>
+<a name="line-567"></a>	    <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-568"></a>
+<a name="line-569"></a>      <span class='varid'>checkNoNotationForEmptyElement</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-570"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkNoNotationForEmptyElement: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-571"></a>
+<a name="line-572"></a>      <span class='comment'>--------------------------------------------------------------------------</span>
+<a name="line-573"></a>      <span class='comment'>-- 9. Validate that default values meet the lexical constraints of the attribute types</span>
+<a name="line-574"></a>      <span class='varid'>checkDefaultValueTypes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-575"></a>      <span class='varid'>checkDefaultValueTypes</span> <span class='varid'>dtdPart'</span> <span class='varid'>n</span><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'>ATTLIST</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-576"></a>          <span class='keyglyph'>=</span> <span class='varid'>checkAttributeValue</span> <span class='varid'>dtdPart'</span> <span class='varid'>n</span> <span class='varid'>n</span>
+<a name="line-577"></a>
+<a name="line-578"></a>      <span class='varid'>checkDefaultValueTypes</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-579"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkDefaultValueTypes: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-580"></a>
+<a name="line-581"></a>
+<a name="line-582"></a>
+<a name="line-583"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-584"></a>
+<a name="line-585"></a><span class='comment'>-- |</span>
+<a name="line-586"></a><span class='comment'>-- Removes doublicate declarations from the DTD, which first declaration is</span>
+<a name="line-587"></a><span class='comment'>-- binding. This is the case for ATTLIST and ENTITY declarations.</span>
+<a name="line-588"></a><span class='comment'>--</span>
+<a name="line-589"></a><span class='comment'>--    - returns : A function that replaces the children of DOCTYPE nodes by a list</span>
+<a name="line-590"></a><span class='comment'>--               where all multiple declarations are removed.</span>
+<a name="line-591"></a>
+<a name="line-592"></a><a name="removeDoublicateDefs"></a><span class='definition'>removeDoublicateDefs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-593"></a><span class='definition'>removeDoublicateDefs</span> <span class='varid'>n</span><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'>DOCTYPE</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-594"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>removeDoubleDefs</span> <span class='conid'>[]</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-595"></a>      <span class='keyword'>where</span>
+<a name="line-596"></a>      <span class='varid'>removeDoubleDefs</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='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-597"></a>      <span class='varid'>removeDoubleDefs</span> <span class='varid'>used</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-598"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>elemAttr</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-599"></a>            <span class='keyword'>then</span> <span class='varid'>removeDoubleDefs</span> <span class='varid'>used</span> <span class='varid'>xs</span>
+<a name="line-600"></a>            <span class='keyword'>else</span> <span class='varid'>x</span>
+<a name="line-601"></a>	         <span class='conop'>:</span>
+<a name="line-602"></a>	         <span class='varid'>removeDoubleDefs</span> <span class='layout'>(</span><span class='varid'>elemAttr</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span> <span class='varid'>xs</span>
+<a name="line-603"></a>            <span class='keyword'>where</span>
+<a name="line-604"></a>	    <span class='varid'>elemAttr</span> <span class='keyglyph'>=</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>attrName</span>
+<a name="line-605"></a>            <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al</span>
+<a name="line-606"></a>            <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-607"></a>
+<a name="line-608"></a>
+<a name="line-609"></a>      <span class='varid'>removeDoubleDefs</span> <span class='varid'>used</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ENTITY</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-610"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-611"></a>            <span class='keyword'>then</span> <span class='varid'>removeDoubleDefs</span> <span class='varid'>used</span> <span class='varid'>xs</span>
+<a name="line-612"></a>            <span class='keyword'>else</span> <span class='varid'>x</span>
+<a name="line-613"></a>	         <span class='conop'>:</span>
+<a name="line-614"></a>	         <span class='varid'>removeDoubleDefs</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span> <span class='varid'>xs</span>
+<a name="line-615"></a>            <span class='keyword'>where</span>
+<a name="line-616"></a>            <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-617"></a>
+<a name="line-618"></a>
+<a name="line-619"></a>      <span class='varid'>removeDoubleDefs</span> <span class='varid'>used</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-620"></a>          <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>removeDoubleDefs</span> <span class='varid'>used</span> <span class='varid'>xs</span>
+<a name="line-621"></a>
+<a name="line-622"></a>      <span class='varid'>removeDoubleDefs</span> <span class='keyword'>_</span> <span class='conid'>[]</span>
+<a name="line-623"></a>          <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-624"></a>
+<a name="line-625"></a>
+<a name="line-626"></a><span class='definition'>removeDoublicateDefs</span> <span class='varid'>n</span>
+<a name="line-627"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-628"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-DocTransformation.html b/doc/hdoc/src/Text-XML-HXT-Validator-DocTransformation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-DocTransformation.html
@@ -0,0 +1,245 @@
+<!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'>-- This module provides functions for transforming XML documents represented as</span>
+<a name="line-3"></a><span class='comment'>-- XmlTree with respect to its DTD.</span>
+<a name="line-4"></a>
+<a name="line-5"></a><span class='comment'>-- Transforming an XML document with respect to its DTD means:</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>--  - add all attributes with default values</span>
+<a name="line-8"></a><span class='comment'>--</span>
+<a name="line-9"></a><span class='comment'>--  - normalize all attribute values</span>
+<a name="line-10"></a><span class='comment'>--</span>
+<a name="line-11"></a><span class='comment'>--  - sort all attributes in lexical order</span>
+<a name="line-12"></a><span class='comment'>--</span>
+<a name="line-13"></a>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='comment'>-- Note: Transformation should be started after validation.</span>
+<a name="line-16"></a>
+<a name="line-17"></a>
+<a name="line-18"></a><span class='comment'>-- Before the document is validated, a lookup-table is build on the basis of</span>
+<a name="line-19"></a><span class='comment'>-- the DTD which maps element names to their transformation functions.</span>
+<a name="line-20"></a><span class='comment'>-- After this initialization phase the whole document is traversed in preorder</span>
+<a name="line-21"></a><span class='comment'>-- and every element is transformed by the XmlFilter from the lookup-table.</span>
+<a name="line-22"></a>
+<a name="line-23"></a><span class='comment'>-- Special namings in source code:</span>
+<a name="line-24"></a><span class='comment'>--</span>
+<a name="line-25"></a><span class='comment'>--  - nd - XDTD node</span>
+<a name="line-26"></a><span class='comment'>--</span>
+<a name="line-27"></a><span class='comment'>--  - n  - XTag node</span>
+<a name="line-28"></a><span class='comment'>--</span>
+<a name="line-29"></a><span class='comment'>-- Author : .\\artin Schmidt</span>
+<a name="line-30"></a><span class='comment'>-- Version : $Id: DocTransformation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $</span>
+<a name="line-31"></a>
+<a name="line-32"></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'>Validator</span><span class='varop'>.</span><span class='conid'>DocTransformation</span>
+<a name="line-33"></a>    <span class='layout'>(</span> <span class='varid'>transform</span>
+<a name="line-34"></a>    <span class='layout'>)</span>
+<a name="line-35"></a><span class='keyword'>where</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'>XmlTree</span>
+<a name="line-38"></a>
+<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'>Validator</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</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'>List</span>
+<a name="line-43"></a>
+<a name="line-44"></a>
+<a name="line-45"></a>
+<a name="line-46"></a><span class='comment'>-- |</span>
+<a name="line-47"></a><span class='comment'>-- Lookup-table which maps element names to their transformation functions. The</span>
+<a name="line-48"></a><span class='comment'>-- transformation functions are XmlFilters.</span>
+<a name="line-49"></a>
+<a name="line-50"></a><a name="TransEnvTable"></a><span class='keyword'>type</span> <span class='conid'>TransEnvTable</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>TransEnv</span><span class='keyglyph'>]</span>
+<a name="line-51"></a><a name="TransEnv"></a><span class='keyword'>type</span> <span class='conid'>TransEnv</span> 		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>TransFct</span><span class='layout'>)</span>
+<a name="line-52"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span>		<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-53"></a><a name="TransFct"></a><span class='keyword'>type</span> <span class='conid'>TransFct</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlFilter</span>
+<a name="line-54"></a>
+<a name="line-55"></a>
+<a name="line-56"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-57"></a>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- |</span>
+<a name="line-60"></a><span class='comment'>-- filter for transforming the document.</span>
+<a name="line-61"></a><span class='comment'>--</span>
+<a name="line-62"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree</span>
+<a name="line-63"></a><span class='comment'>--</span>
+<a name="line-64"></a><span class='comment'>--    - 2.parameter doc :  the document subset of the XmlTree</span>
+<a name="line-65"></a><span class='comment'>--</span>
+<a name="line-66"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-67"></a>
+<a name="line-68"></a><a name="transform"></a><span class='definition'>transform</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-69"></a><span class='definition'>transform</span> <span class='varid'>dtdPart</span> <span class='varid'>dom</span>
+<a name="line-70"></a>    <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>transTable</span> <span class='varid'>dom</span>
+<a name="line-71"></a>    <span class='keyword'>where</span>
+<a name="line-72"></a>    <span class='varid'>transTable</span> <span class='keyglyph'>=</span> <span class='comment'>{-# SCC "buildAllTransFcts" #-}</span> <span class='varid'>buildAllTransformationFunctions</span> <span class='varid'>dtdPart</span>
+<a name="line-73"></a>
+<a name="line-74"></a>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='comment'>-- |</span>
+<a name="line-77"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>
+<a name="line-78"></a><span class='comment'>--</span>
+<a name="line-79"></a><span class='comment'>--    * 1.parameter transEnv :  lookup-table which maps element names to their transformation functions</span>
+<a name="line-80"></a><span class='comment'>--</span>
+<a name="line-81"></a><span class='comment'>--    - returns : the whole transformed document</span>
+<a name="line-82"></a>
+<a name="line-83"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>TransEnvTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-84"></a><span class='definition'>traverseTree</span> <span class='varid'>transEnv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>transEnv</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='layout'>(</span><span class='varid'>transFct</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-86"></a>      <span class='keyword'>where</span>
+<a name="line-87"></a>      <span class='varid'>transFct</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>transEnv</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-88"></a>          <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>this</span>   <span class='comment'>-- element not in DTD, can't be transformed</span>
+<a name="line-89"></a>	  <span class='conid'>Just</span> <span class='varid'>f</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='definition'>traverseTree</span> <span class='keyword'>_</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-92"></a>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='comment'>-- |</span>
+<a name="line-95"></a><span class='comment'>-- Build all transformation functions.</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset, root node should be of type @DOCTYPE@</span>
+<a name="line-98"></a><span class='comment'>--</span>
+<a name="line-99"></a><span class='comment'>--    - returns : lookup-table which maps element names to their transformation functions</span>
+<a name="line-100"></a>
+<a name="line-101"></a><a name="buildAllTransformationFunctions"></a><span class='definition'>buildAllTransformationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TransEnvTable</span>
+<a name="line-102"></a><span class='definition'>buildAllTransformationFunctions</span> <span class='varid'>dtdPart</span>
+<a name="line-103"></a>    <span class='keyglyph'>=</span> <span class='varid'>buildTransRoot</span>
+<a name="line-104"></a>      <span class='conop'>:</span>
+<a name="line-105"></a>      <span class='comment'>-- construct the list of filters</span>
+<a name="line-106"></a>      <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>buildTransformationFunctions</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>isElement</span> <span class='varop'>$$</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span>
+<a name="line-107"></a>      <span class='keyword'>where</span>
+<a name="line-108"></a>      <span class='varid'>dtdNodes</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span>
+<a name="line-109"></a>
+<a name="line-110"></a>
+<a name="line-111"></a><span class='comment'>-- |</span>
+<a name="line-112"></a><span class='comment'>-- Build a transformation function for the document root. By root @\/@</span>
+<a name="line-113"></a><span class='comment'>-- is meant, which is the topmost dummy created by the parser. This function is only a</span>
+<a name="line-114"></a><span class='comment'>-- dummy, too.</span>
+<a name="line-115"></a><span class='comment'>--</span>
+<a name="line-116"></a><span class='comment'>--    * returns : entry for the lookup-table</span>
+<a name="line-117"></a>
+<a name="line-118"></a><a name="buildTransRoot"></a><span class='definition'>buildTransRoot</span> <span class='keyglyph'>::</span> <span class='conid'>TransEnv</span>
+<a name="line-119"></a><span class='definition'>buildTransRoot</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>t_root</span><span class='layout'>,</span> <span class='varid'>this</span><span class='layout'>)</span>
+<a name="line-120"></a>
+<a name="line-121"></a>
+<a name="line-122"></a>
+<a name="line-123"></a><span class='comment'>-- |</span>
+<a name="line-124"></a><span class='comment'>-- Build transformation functions for an element.</span>
+<a name="line-125"></a><span class='comment'>--</span>
+<a name="line-126"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-127"></a><span class='comment'>--</span>
+<a name="line-128"></a><span class='comment'>--    * 1.parameter nd :  element declaration for which the transformation functions are</span>
+<a name="line-129"></a><span class='comment'>--                    created</span>
+<a name="line-130"></a><span class='comment'>--</span>
+<a name="line-131"></a><span class='comment'>--    - returns : entry for the lookup-table</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="buildTransformationFunctions"></a><span class='definition'>buildTransformationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TransEnv</span>
+<a name="line-134"></a>
+<a name="line-135"></a><span class='definition'>buildTransformationFunctions</span> <span class='varid'>dtdPart</span> <span class='varid'>n</span><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'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-136"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>name</span><span class='layout'>,</span> <span class='varid'>transFct</span><span class='layout'>)</span>
+<a name="line-137"></a>    <span class='keyword'>where</span>
+<a name="line-138"></a>    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-139"></a>    <span class='varid'>transFct</span> <span class='keyglyph'>=</span> <span class='varid'>lexicographicAttributeOrder</span>
+<a name="line-140"></a>               <span class='varop'>`o`</span>
+<a name="line-141"></a>	       <span class='varid'>normalizeAttributeValues</span> <span class='varid'>n</span> <span class='varid'>dtdPart</span>
+<a name="line-142"></a>	       <span class='varop'>`o`</span>
+<a name="line-143"></a>	       <span class='varid'>setDefaultAttributeValues</span> <span class='varid'>n</span> <span class='varid'>dtdPart</span>
+<a name="line-144"></a>
+<a name="line-145"></a><span class='definition'>buildTransformationFunctions</span> <span class='keyword'>_</span> <span class='varid'>n</span>
+<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildTransformationFunctions: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-147"></a>
+<a name="line-148"></a>
+<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="line-153"></a><span class='comment'>-- |</span>
+<a name="line-154"></a><span class='comment'>-- Sort the attributes of an element in lexicographic order.</span>
+<a name="line-155"></a><span class='comment'>--</span>
+<a name="line-156"></a><span class='comment'>--    * returns : a function which takes an element (XTag), sorts its</span>
+<a name="line-157"></a><span class='comment'>--                  attributes in lexicographic order and returns the changed element</span>
+<a name="line-158"></a>
+<a name="line-159"></a><a name="lexicographicAttributeOrder"></a><span class='definition'>lexicographicAttributeOrder</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-160"></a><span class='definition'>lexicographicAttributeOrder</span>
+<a name="line-161"></a>    <span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='varid'>sortAttrl</span>
+<a name="line-162"></a>      <span class='keyword'>where</span>
+<a name="line-163"></a>      <span class='varid'>sortAttrl</span> <span class='varid'>al</span>
+<a name="line-164"></a>	  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>al</span> <span class='varop'>!!</span><span class='layout'>)</span> <span class='varid'>ixs</span>
+<a name="line-165"></a>	    <span class='keyword'>where</span>
+<a name="line-166"></a>	    <span class='varid'>ns</span>  <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>nameOf</span> <span class='varid'>al</span>
+<a name="line-167"></a>	    <span class='varid'>ixs</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>.</span> <span class='varid'>sort</span> <span class='varop'>.</span> <span class='varid'>zip</span> <span class='varid'>ns</span> <span class='varop'>$</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-168"></a>
+<a name="line-169"></a><span class='comment'>-- |</span>
+<a name="line-170"></a><span class='comment'>-- Normalize attribute values.</span>
+<a name="line-171"></a><span class='comment'>--</span>
+<a name="line-172"></a><span class='comment'>--    * returns : a function which takes an element (XTag), normalizes its</span>
+<a name="line-173"></a><span class='comment'>--                  attribute values and returns the changed element</span>
+<a name="line-174"></a>
+<a name="line-175"></a><a name="normalizeAttributeValues"></a><span class='definition'>normalizeAttributeValues</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'>XmlFilter</span>
+<a name="line-176"></a><span class='definition'>normalizeAttributeValues</span> <span class='varid'>elemDescr</span><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'>ELEMENT</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>
+<a name="line-177"></a>    <span class='keyglyph'>=</span> <span class='varid'>processAttr</span> <span class='varid'>normalizeAttr</span>
+<a name="line-178"></a>      <span class='keyword'>where</span>
+<a name="line-179"></a>      <span class='varid'>elemName</span>     <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>elemDescr</span>
+<a name="line-180"></a>      <span class='varid'>declaredAtts</span> <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-181"></a>
+<a name="line-182"></a>      <span class='varid'>normalizeAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-183"></a>      <span class='varid'>normalizeAttr</span> <span class='varid'>att</span>
+<a name="line-184"></a>	  <span class='keyglyph'>=</span> <span class='varid'>normalizeAttrValue</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>attDescr</span>
+<a name="line-185"></a>				<span class='keyword'>then</span> <span class='conid'>Nothing</span>
+<a name="line-186"></a>				<span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>attDescr</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-187"></a>	    <span class='keyword'>where</span>
+<a name="line-188"></a>	    <span class='varid'>attDescr</span> <span class='keyglyph'>=</span> <span class='varid'>filter</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'>valueOfDTD</span> <span class='varid'>a_value</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>nameOf</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>declaredAtts</span>
+<a name="line-189"></a>
+<a name="line-190"></a>      <span class='varid'>normalizeAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-191"></a>      <span class='varid'>normalizeAttrValue</span> <span class='varid'>descr</span>
+<a name="line-192"></a>	  <span class='keyglyph'>=</span> <span class='varid'>modifyChildren</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>modifyText</span> <span class='layout'>(</span><span class='varid'>normalizeAttributeValue</span> <span class='varid'>descr</span><span class='layout'>)</span> <span class='varop'>$$</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>xmlTreesToText</span><span class='layout'>)</span>
+<a name="line-193"></a>
+<a name="line-194"></a><span class='definition'>normalizeAttributeValues</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-195"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"normalizeAttributeValues: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-196"></a>
+<a name="line-197"></a>
+<a name="line-198"></a>
+<a name="line-199"></a><span class='comment'>-- |</span>
+<a name="line-200"></a><span class='comment'>-- Set default attribute values if they are not set.</span>
+<a name="line-201"></a><span class='comment'>--</span>
+<a name="line-202"></a><span class='comment'>--    * returns : a function which takes an element (XTag), adds missing attribute</span>
+<a name="line-203"></a><span class='comment'>--                  defaults and returns the changed element</span>
+<a name="line-204"></a>
+<a name="line-205"></a><a name="setDefaultAttributeValues"></a><span class='definition'>setDefaultAttributeValues</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'>XmlFilter</span>
+<a name="line-206"></a><span class='definition'>setDefaultAttributeValues</span> <span class='varid'>elemDescr</span><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'>ELEMENT</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>
+<a name="line-207"></a>    <span class='keyglyph'>=</span> <span class='varid'>seqF</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>setDefault</span> <span class='varid'>defaultAtts</span><span class='layout'>)</span>
+<a name="line-208"></a>      <span class='keyword'>where</span>
+<a name="line-209"></a>						<span class='comment'>-- select the element name from the dtd</span>
+<a name="line-210"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>elemDescr</span>
+<a name="line-211"></a>
+<a name="line-212"></a>      <span class='varid'>defaultAtts</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isFixedAttrKind</span>		<span class='comment'>-- select attributes with default values</span>
+<a name="line-213"></a>		      <span class='varop'>`orElse`</span>
+<a name="line-214"></a>		      <span class='varid'>isDefaultAttrKind</span>
+<a name="line-215"></a>		    <span class='layout'>)</span>
+<a name="line-216"></a>                    <span class='varop'>$$</span>
+<a name="line-217"></a>		    <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-218"></a>
+<a name="line-219"></a>      <span class='varid'>setDefault</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-220"></a>      <span class='varid'>setDefault</span> <span class='varid'>attrDescr</span>			<span class='comment'>-- add the default attributes</span>
+<a name="line-221"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>attName</span> <span class='varid'>defaultValue</span>	<span class='comment'>-- to tag nodes with missing attributes</span>
+<a name="line-222"></a>	      <span class='varop'>`whenNot`</span>
+<a name="line-223"></a>	      <span class='varid'>hasAttr</span> <span class='varid'>attName</span>
+<a name="line-224"></a>	    <span class='layout'>)</span>
+<a name="line-225"></a>	    <span class='varop'>`when`</span>
+<a name="line-226"></a>	    <span class='varid'>isXTag</span>
+<a name="line-227"></a>	    <span class='keyword'>where</span>
+<a name="line-228"></a>	    <span class='varid'>attName</span>      <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span>   <span class='varid'>attrDescr</span>
+<a name="line-229"></a>	    <span class='varid'>defaultValue</span> <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_default</span> <span class='varid'>attrDescr</span>
+<a name="line-230"></a>
+<a name="line-231"></a>
+<a name="line-232"></a><span class='definition'>setDefaultAttributeValues</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-233"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"setDefaultAttributeValues: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-234"></a>
+<a name="line-235"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-DocValidation.html b/doc/hdoc/src/Text-XML-HXT-Validator-DocValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-DocValidation.html
@@ -0,0 +1,548 @@
+<!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'>-- This module provides functions for validating XML Documents represented as</span>
+<a name="line-3"></a><span class='comment'>-- XmlTree.</span>
+<a name="line-4"></a>
+<a name="line-5"></a><span class='comment'>-- Unlike other popular XML validation tools the validation process returns</span>
+<a name="line-6"></a><span class='comment'>-- a list of errors instead of aborting after the first error was found.</span>
+<a name="line-7"></a>
+<a name="line-8"></a>
+<a name="line-9"></a><span class='comment'>-- Before the document is validated, a lookup-table is build on the basis of</span>
+<a name="line-10"></a><span class='comment'>-- the DTD which maps element names to their validation functions.</span>
+<a name="line-11"></a><span class='comment'>-- After this initialization phase the whole document is traversed in preorder</span>
+<a name="line-12"></a><span class='comment'>-- and every element is validated by the XmlFilter from the lookup-table.</span>
+<a name="line-13"></a>
+<a name="line-14"></a><span class='comment'>-- Special namings in source code:</span>
+<a name="line-15"></a><span class='comment'>--</span>
+<a name="line-16"></a><span class='comment'>--  - nd - XDTD node</span>
+<a name="line-17"></a><span class='comment'>--</span>
+<a name="line-18"></a><span class='comment'>--  - n  - XTag node</span>
+<a name="line-19"></a><span class='comment'>--</span>
+<a name="line-20"></a><span class='comment'>-- Author : .\\artin Schmidt</span>
+<a name="line-21"></a><span class='comment'>-- Version : $Id: DocValidation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $</span>
+<a name="line-22"></a>
+<a name="line-23"></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'>Validator</span><span class='varop'>.</span><span class='conid'>DocValidation</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>validateDoc</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>where</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'>XmlTree</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'>Validator</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</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'>Validator</span><span class='varop'>.</span><span class='conid'>XmlRE</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- |</span>
+<a name="line-36"></a><span class='comment'>-- Lookup-table which maps element names to their validation functions. The</span>
+<a name="line-37"></a><span class='comment'>-- validation functions are XmlFilters.</span>
+<a name="line-38"></a>
+<a name="line-39"></a><a name="ValiEnvTable"></a><span class='keyword'>type</span> <span class='conid'>ValiEnvTable</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>
+<a name="line-40"></a><a name="ValiEnv"></a><span class='keyword'>type</span> <span class='conid'>ValiEnv</span> 		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>ValFct</span><span class='layout'>)</span>
+<a name="line-41"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span>		<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-42"></a><a name="ValFct"></a><span class='keyword'>type</span> <span class='conid'>ValFct</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlFilter</span>
+<a name="line-43"></a>
+<a name="line-44"></a>
+<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="line-49"></a><span class='comment'>-- |</span>
+<a name="line-50"></a><span class='comment'>-- Validate a document.</span>
+<a name="line-51"></a><span class='comment'>--</span>
+<a name="line-52"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree</span>
+<a name="line-53"></a><span class='comment'>--</span>
+<a name="line-54"></a><span class='comment'>--    - 2.parameter doc :  the document subset of the XmlTree</span>
+<a name="line-55"></a><span class='comment'>--</span>
+<a name="line-56"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-57"></a>
+<a name="line-58"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-59"></a><span class='definition'>validateDoc</span> <span class='varid'>dtdPart</span> <span class='varid'>doc</span>
+<a name="line-60"></a>    <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>valTable</span> <span class='varid'>doc</span>
+<a name="line-61"></a>    <span class='keyword'>where</span>
+<a name="line-62"></a>    <span class='varid'>valTable</span> <span class='keyglyph'>=</span> <span class='comment'>{-# SCC "buildAllValFcts" #-}</span> <span class='varid'>buildAllValidationFunctions</span> <span class='varid'>dtdPart</span>
+<a name="line-63"></a>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='comment'>-- |</span>
+<a name="line-66"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>
+<a name="line-67"></a><span class='comment'>--</span>
+<a name="line-68"></a><span class='comment'>--    * 1.parameter valiEnv :  lookup-table which maps element names to their validation functions</span>
+<a name="line-69"></a><span class='comment'>--</span>
+<a name="line-70"></a><span class='comment'>--    - returns : list of errors</span>
+<a name="line-71"></a>
+<a name="line-72"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>ValiEnvTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-73"></a><span class='definition'>traverseTree</span> <span class='varid'>valiEnv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-74"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>valFct</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>valiEnv</span><span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-75"></a>      <span class='keyword'>where</span>
+<a name="line-76"></a>      <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-77"></a>      <span class='varid'>valFct</span>
+<a name="line-78"></a>          <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>valiEnv</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-79"></a>	    <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>err</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'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" not declared in DTD."</span><span class='layout'>)</span>
+<a name="line-80"></a>	    <span class='conid'>Just</span> <span class='varid'>f</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span>
+<a name="line-81"></a>
+<a name="line-82"></a><span class='definition'>traverseTree</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-83"></a>
+<a name="line-84"></a>
+<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="line-89"></a><span class='comment'>-- |</span>
+<a name="line-90"></a><span class='comment'>-- Build all validation functions.</span>
+<a name="line-91"></a><span class='comment'>--</span>
+<a name="line-92"></a><span class='comment'>--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>--    - returns : lookup-table which maps element names to their validation functions</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="buildAllValidationFunctions"></a><span class='definition'>buildAllValidationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ValiEnvTable</span>
+<a name="line-97"></a><span class='definition'>buildAllValidationFunctions</span> <span class='varid'>dtdPart</span>
+<a name="line-98"></a>    <span class='keyglyph'>=</span> <span class='varid'>buildValidateRoot</span> <span class='varid'>dtdPart</span>
+<a name="line-99"></a>      <span class='conop'>:</span>
+<a name="line-100"></a>      <span class='comment'>-- construct a list of validation filters for all element declarations</span>
+<a name="line-101"></a>      <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>buildValidateFunctions</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>isElement</span> <span class='varop'>$$</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span>
+<a name="line-102"></a>      <span class='keyword'>where</span>
+<a name="line-103"></a>      <span class='varid'>dtdNodes</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span>
+<a name="line-104"></a>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='comment'>-- |</span>
+<a name="line-107"></a><span class='comment'>-- Build a validation function for the document root. By root node @\/@</span>
+<a name="line-108"></a><span class='comment'>-- is meant, which is the topmost dummy created by the parser.</span>
+<a name="line-109"></a><span class='comment'>--</span>
+<a name="line-110"></a><span class='comment'>--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@</span>
+<a name="line-111"></a><span class='comment'>--</span>
+<a name="line-112"></a><span class='comment'>--    - returns : entry for the lookup-table</span>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="buildValidateRoot"></a><span class='definition'>buildValidateRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ValiEnv</span>
+<a name="line-115"></a><span class='definition'>buildValidateRoot</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>DOCTYPE</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-116"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>t_root</span><span class='layout'>,</span> <span class='varid'>valFct</span><span class='layout'>)</span>
+<a name="line-117"></a>      <span class='keyword'>where</span>
+<a name="line-118"></a>      <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-119"></a>
+<a name="line-120"></a>      <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-121"></a>      <span class='varid'>valFct</span> <span class='varid'>nd</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-122"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>msg</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-123"></a>            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-124"></a>            <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Root Element must be "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>". "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>nd</span>
+<a name="line-125"></a>	    <span class='keyword'>where</span>
+<a name="line-126"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_sym</span> <span class='layout'>(</span><span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-127"></a>	    <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-128"></a>
+<a name="line-129"></a>      <span class='varid'>valFct</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildValidateRoot: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-130"></a>
+<a name="line-131"></a><span class='definition'>buildValidateRoot</span> <span class='varid'>nd</span>
+<a name="line-132"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildValidateRoot: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-133"></a>
+<a name="line-134"></a>
+<a name="line-135"></a><span class='comment'>-- |</span>
+<a name="line-136"></a><span class='comment'>-- Build validation functions for an element.</span>
+<a name="line-137"></a><span class='comment'>--</span>
+<a name="line-138"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-139"></a><span class='comment'>--</span>
+<a name="line-140"></a><span class='comment'>--    - 2.parameter nd :  element declaration for which the validation functions are</span>
+<a name="line-141"></a><span class='comment'>--                   created</span>
+<a name="line-142"></a><span class='comment'>--</span>
+<a name="line-143"></a><span class='comment'>--    - returns : entry for the lookup-table</span>
+<a name="line-144"></a>
+<a name="line-145"></a><a name="buildValidateFunctions"></a><span class='definition'>buildValidateFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ValiEnv</span>
+<a name="line-146"></a>
+<a name="line-147"></a><span class='definition'>buildValidateFunctions</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span><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'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>valFct</span><span class='layout'>)</span>
+<a name="line-149"></a>      <span class='keyword'>where</span>
+<a name="line-150"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-151"></a>
+<a name="line-152"></a>      <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-153"></a>      <span class='varid'>valFct</span> <span class='keyglyph'>=</span> <span class='varid'>buildContentValidation</span> <span class='varid'>nd</span>
+<a name="line-154"></a>               <span class='varop'>+++</span>
+<a name="line-155"></a>	       <span class='varid'>buildAttributeValidation</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span>
+<a name="line-156"></a>
+<a name="line-157"></a><span class='definition'>buildValidateFunctions</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-158"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildValidateFunctions: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a>
+<a name="line-161"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-162"></a>
+<a name="line-163"></a>
+<a name="line-164"></a><span class='comment'>-- |</span>
+<a name="line-165"></a><span class='comment'>-- Build validation functions for the content model of an element.</span>
+<a name="line-166"></a><span class='comment'>-- Validity constraint: Element Valid (3 \/ p.18 in Spec)</span>
+<a name="line-167"></a><span class='comment'>--</span>
+<a name="line-168"></a><span class='comment'>--    * 1.parameter nd :  element declaration for which the content validation functions</span>
+<a name="line-169"></a><span class='comment'>--                  are built</span>
+<a name="line-170"></a><span class='comment'>--</span>
+<a name="line-171"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if its</span>
+<a name="line-172"></a><span class='comment'>--                  children match its content model and returns a list of errors</span>
+<a name="line-173"></a>
+<a name="line-174"></a><a name="buildContentValidation"></a><span class='definition'>buildContentValidation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-175"></a><span class='definition'>buildContentValidation</span> <span class='varid'>nd</span><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'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-176"></a>    <span class='keyglyph'>=</span> <span class='varid'>contentValidation</span> <span class='varid'>attrType</span> <span class='varid'>nd</span>
+<a name="line-177"></a>      <span class='keyword'>where</span>
+<a name="line-178"></a>      <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span>
+<a name="line-179"></a>
+<a name="line-180"></a>
+<a name="line-181"></a>      <span class='comment'>-- Delegates construction of the validation function on the basis of the</span>
+<a name="line-182"></a>      <span class='comment'>-- content model type</span>
+<a name="line-183"></a>      <span class='varid'>contentValidation</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-184"></a>      <span class='varid'>contentValidation</span> <span class='varid'>typ</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ELEMENT</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-185"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_pcdata</span>   <span class='keyglyph'>=</span> <span class='varid'>contentValidationPcdata</span>
+<a name="line-186"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_empty</span>    <span class='keyglyph'>=</span> <span class='varid'>contentValidationEmpty</span>
+<a name="line-187"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_any</span>      <span class='keyglyph'>=</span> <span class='varid'>contentValidationAny</span>
+<a name="line-188"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationChildren</span> <span class='varid'>cs</span>
+<a name="line-189"></a>          <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span>    <span class='keyglyph'>=</span> <span class='varid'>contentValidationMixed</span> <span class='varid'>cs</span>
+<a name="line-190"></a>          <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>         <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidation: unknown type: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typ</span><span class='layout'>)</span>
+<a name="line-191"></a>
+<a name="line-192"></a>      <span class='varid'>contentValidation</span> <span class='keyword'>_</span> <span class='varid'>nd'</span>
+<a name="line-193"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidation: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd'</span><span class='layout'>)</span>
+<a name="line-194"></a>
+<a name="line-195"></a>
+<a name="line-196"></a>      <span class='comment'>-- Checks #PCDATA content models</span>
+<a name="line-197"></a>      <span class='varid'>contentValidationPcdata</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-198"></a>      <span class='varid'>contentValidationPcdata</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-199"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>msg</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-200"></a>            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-201"></a>            <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The content of element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-202"></a>	              <span class='str'>" must match (#PCDATA). "</span><span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-203"></a>	    <span class='keyword'>where</span>
+<a name="line-204"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>k_pcdata</span><span class='layout'>)</span>
+<a name="line-205"></a>	    <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-206"></a>
+<a name="line-207"></a>      <span class='varid'>contentValidationPcdata</span> <span class='varid'>n</span>
+<a name="line-208"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidationPcdata: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-209"></a>
+<a name="line-210"></a>
+<a name="line-211"></a>      <span class='comment'>-- Checks EMPTY content models</span>
+<a name="line-212"></a>      <span class='varid'>contentValidationEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-213"></a>      <span class='varid'>contentValidationEmpty</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-214"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>msg</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-215"></a>            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-216"></a>            <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The content of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-217"></a>	              <span class='str'>" must match EMPTY. "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-218"></a>	    <span class='keyword'>where</span>
+<a name="line-219"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_unit</span>
+<a name="line-220"></a>	    <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-221"></a>
+<a name="line-222"></a>      <span class='varid'>contentValidationEmpty</span> <span class='varid'>n</span>
+<a name="line-223"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidationEmpty: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-224"></a>
+<a name="line-225"></a>
+<a name="line-226"></a>      <span class='comment'>-- Checks ANY content models</span>
+<a name="line-227"></a>      <span class='varid'>contentValidationAny</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-228"></a>      <span class='varid'>contentValidationAny</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-229"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>msg</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-230"></a>            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-231"></a>            <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The content of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-232"></a>	              <span class='str'>" must match ANY. "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-233"></a>	    <span class='keyword'>where</span>
+<a name="line-234"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_dot</span><span class='layout'>)</span>
+<a name="line-235"></a>	    <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-236"></a>
+<a name="line-237"></a>      <span class='varid'>contentValidationAny</span> <span class='varid'>n</span>
+<a name="line-238"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidationAny: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-239"></a>
+<a name="line-240"></a>
+<a name="line-241"></a>      <span class='comment'>-- Checks "children" content models</span>
+<a name="line-242"></a>      <span class='varid'>contentValidationChildren</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-243"></a>      <span class='varid'>contentValidationChildren</span> <span class='varid'>cm</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-244"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>msg</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-245"></a>            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-246"></a>            <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The content of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-247"></a>	              <span class='str'>" must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span> <span class='varop'>++</span> <span class='str'>". "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-248"></a>	    <span class='keyword'>where</span>
+<a name="line-249"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>createRE</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cm</span><span class='layout'>)</span>
+<a name="line-250"></a>	    <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-251"></a>
+<a name="line-252"></a>      <span class='varid'>contentValidationChildren</span> <span class='keyword'>_</span> <span class='varid'>n</span>
+<a name="line-253"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidationChildren: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-254"></a>
+<a name="line-255"></a>
+<a name="line-256"></a>      <span class='comment'>-- Checks "mixed content" content models</span>
+<a name="line-257"></a>      <span class='varid'>contentValidationMixed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-258"></a>      <span class='varid'>contentValidationMixed</span> <span class='varid'>cm</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-259"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>msg</span> <span class='varop'>==</span> <span class='str'>""</span>
+<a name="line-260"></a>            <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-261"></a>            <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"The content of element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-262"></a>	              <span class='str'>" must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span> <span class='varop'>++</span> <span class='str'>". "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-263"></a>	    <span class='keyword'>where</span>
+<a name="line-264"></a>	    <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>k_pcdata</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cm</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-265"></a>	    <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-266"></a>
+<a name="line-267"></a>      <span class='varid'>contentValidationMixed</span> <span class='keyword'>_</span> <span class='varid'>n</span>
+<a name="line-268"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"contentValidationMixed: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-269"></a>
+<a name="line-270"></a>
+<a name="line-271"></a><span class='definition'>buildContentValidation</span> <span class='varid'>nd</span>
+<a name="line-272"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildContentValidation: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-273"></a>
+<a name="line-274"></a>
+<a name="line-275"></a>
+<a name="line-276"></a><span class='comment'>-- |</span>
+<a name="line-277"></a><span class='comment'>-- Build a regular expression from the content model. The regular expression</span>
+<a name="line-278"></a><span class='comment'>-- is provided by the module XmlRE.</span>
+<a name="line-279"></a><span class='comment'>--</span>
+<a name="line-280"></a><span class='comment'>--    * 1.parameter nd :  node of the content model. Expected: @CONTENT@ or</span>
+<a name="line-281"></a><span class='comment'>--              @NAME@</span>
+<a name="line-282"></a><span class='comment'>--</span>
+<a name="line-283"></a><span class='comment'>--    - returns : regular expression of the content model</span>
+<a name="line-284"></a>
+<a name="line-285"></a><a name="createRE"></a><span class='definition'>createRE</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-286"></a><span class='definition'>createRE</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'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-287"></a>    <span class='keyglyph'>=</span> <span class='varid'>processModifier</span> <span class='varid'>modifier</span>
+<a name="line-288"></a>      <span class='keyword'>where</span>
+<a name="line-289"></a>      <span class='varid'>modifier</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_modifier</span> <span class='varid'>al</span>
+<a name="line-290"></a>      <span class='varid'>kind</span>     <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span>
+<a name="line-291"></a>
+<a name="line-292"></a>      <span class='varid'>processModifier</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-293"></a>      <span class='varid'>processModifier</span> <span class='varid'>m</span>
+<a name="line-294"></a>          <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_plus</span>	  <span class='keyglyph'>=</span> <span class='varid'>re_plus</span> <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>
+<a name="line-295"></a>	  <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_star</span>	  <span class='keyglyph'>=</span> <span class='varid'>re_rep</span>  <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>
+<a name="line-296"></a>	  <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_option</span> <span class='keyglyph'>=</span> <span class='varid'>re_opt</span>  <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>
+<a name="line-297"></a>	  <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_null</span>	  <span class='keyglyph'>=</span> <span class='varid'>processKind</span> <span class='varid'>kind</span>
+<a name="line-298"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>     <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Unknown modifier: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>m</span><span class='layout'>)</span>
+<a name="line-299"></a>
+<a name="line-300"></a>      <span class='varid'>processKind</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-301"></a>      <span class='varid'>processKind</span> <span class='varid'>k</span>
+<a name="line-302"></a>          <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_seq</span>	  <span class='keyglyph'>=</span> <span class='varid'>makeSequence</span> <span class='varid'>cs</span>
+<a name="line-303"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_choice</span> <span class='keyglyph'>=</span> <span class='varid'>makeChoice</span> <span class='varid'>cs</span>
+<a name="line-304"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Unknown kind: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>k</span><span class='layout'>)</span>
+<a name="line-305"></a>
+<a name="line-306"></a>      <span class='varid'>makeSequence</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-307"></a>      <span class='varid'>makeSequence</span> <span class='conid'>[]</span>     <span class='keyglyph'>=</span> <span class='varid'>re_unit</span>
+<a name="line-308"></a>      <span class='varid'>makeSequence</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'>re_seq</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>makeSequence</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-309"></a>
+<a name="line-310"></a>      <span class='varid'>makeChoice</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-311"></a>      <span class='varid'>makeChoice</span> <span class='conid'>[]</span>       <span class='keyglyph'>=</span> <span class='varid'>re_zero</span> <span class='str'>""</span>
+<a name="line-312"></a>      <span class='varid'>makeChoice</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'>re_alt</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>makeChoice</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-313"></a>
+<a name="line-314"></a><span class='definition'>createRE</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>NAME</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-315"></a>    <span class='keyglyph'>=</span> <span class='varid'>re_sym</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span><span class='layout'>)</span>
+<a name="line-316"></a>
+<a name="line-317"></a><span class='definition'>createRE</span> <span class='varid'>nd</span>
+<a name="line-318"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"createRE: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-319"></a>
+<a name="line-320"></a>
+<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="line-325"></a>
+<a name="line-326"></a><span class='comment'>-- |</span>
+<a name="line-327"></a><span class='comment'>-- Build validation functions for the attributes of an element.</span>
+<a name="line-328"></a><span class='comment'>--</span>
+<a name="line-329"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-330"></a><span class='comment'>--</span>
+<a name="line-331"></a><span class='comment'>--    - 2.parameter nd :  element declaration for which the attribute validation functions</span>
+<a name="line-332"></a><span class='comment'>--                  are created</span>
+<a name="line-333"></a><span class='comment'>--</span>
+<a name="line-334"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if its</span>
+<a name="line-335"></a><span class='comment'>--                  attributes are valid and returns a list of errors</span>
+<a name="line-336"></a>
+<a name="line-337"></a><a name="buildAttributeValidation"></a><span class='definition'>buildAttributeValidation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-338"></a><span class='definition'>buildAttributeValidation</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span> <span class='keyglyph'>=</span>
+<a name="line-339"></a>    <span class='varid'>noDoublicateAttributes</span>
+<a name="line-340"></a>    <span class='varop'>+++</span>
+<a name="line-341"></a>    <span class='varid'>checkNotDeclardAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>
+<a name="line-342"></a>    <span class='varop'>+++</span>
+<a name="line-343"></a>    <span class='varid'>checkRequiredAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>
+<a name="line-344"></a>    <span class='varop'>+++</span>
+<a name="line-345"></a>    <span class='varid'>checkFixedAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>
+<a name="line-346"></a>    <span class='varop'>+++</span>
+<a name="line-347"></a>    <span class='varid'>checkValuesOfAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span>
+<a name="line-348"></a>    <span class='keyword'>where</span>
+<a name="line-349"></a>    <span class='varid'>attrDecls</span> <span class='keyglyph'>=</span> <span class='varid'>isAttlist</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-350"></a>
+<a name="line-351"></a>
+<a name="line-352"></a><span class='comment'>-- |</span>
+<a name="line-353"></a><span class='comment'>-- Validate that all attributes of an element are unique.</span>
+<a name="line-354"></a><span class='comment'>-- Well-formdness constraint: Unique AttSpec (3.1 \/ p.19 in Spec)</span>
+<a name="line-355"></a><span class='comment'>--</span>
+<a name="line-356"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if its</span>
+<a name="line-357"></a><span class='comment'>--                  attributes are unique and returns a list of errors</span>
+<a name="line-358"></a>
+<a name="line-359"></a><a name="noDoublicateAttributes"></a><span class='definition'>noDoublicateAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-360"></a><span class='definition'>noDoublicateAttributes</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-361"></a>    <span class='keyglyph'>=</span> <span class='varid'>doubles</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>names</span>
+<a name="line-362"></a>      <span class='keyword'>where</span>
+<a name="line-363"></a>      <span class='varid'>tagname</span> <span class='keyglyph'>=</span> <span class='varid'>nameOf</span> <span class='varid'>n</span>
+<a name="line-364"></a>      <span class='varid'>names</span>   <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>nameOf</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-365"></a>
+<a name="line-366"></a>      <span class='varid'>doubles</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='conid'>XmlTrees</span>
+<a name="line-367"></a>      <span class='varid'>doubles</span> <span class='conid'>[]</span>
+<a name="line-368"></a>	  <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-369"></a>      <span class='varid'>doubles</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='conop'>:</span><span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-370"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>n1</span> <span class='varop'>`elem`</span> <span class='varid'>ns</span>
+<a name="line-371"></a>	      <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" was already specified for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>tagname</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-372"></a>	      <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-373"></a>	    <span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>doubles</span> <span class='varid'>ns</span>
+<a name="line-374"></a>
+<a name="line-375"></a><span class='definition'>noDoublicateAttributes</span> <span class='varid'>n</span>
+<a name="line-376"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"noDoublicateAttributes: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-377"></a>
+<a name="line-378"></a>
+<a name="line-379"></a><span class='comment'>-- |</span>
+<a name="line-380"></a><span class='comment'>-- Validate that all \#REQUIRED attributes are provided.</span>
+<a name="line-381"></a><span class='comment'>-- Validity constraint: Required Attributes (3.3.2 \/ p.28 in Spec)</span>
+<a name="line-382"></a><span class='comment'>--</span>
+<a name="line-383"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-384"></a><span class='comment'>--</span>
+<a name="line-385"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-386"></a><span class='comment'>--</span>
+<a name="line-387"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-388"></a><span class='comment'>--                  required attributes are provided and returns a list of errors</span>
+<a name="line-389"></a>
+<a name="line-390"></a><a name="checkRequiredAttributes"></a><span class='definition'>checkRequiredAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-391"></a><span class='definition'>checkRequiredAttributes</span> <span class='varid'>attrDecls</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkRequired</span> <span class='varid'>requiredAtts</span>
+<a name="line-393"></a>      <span class='keyword'>where</span>
+<a name="line-394"></a>      <span class='varid'>elemName</span>     <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-395"></a>      <span class='varid'>requiredAtts</span> <span class='keyglyph'>=</span> <span class='varid'>isRequiredAttrKind</span> <span class='varop'>$$</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span><span class='layout'>)</span>
+<a name="line-396"></a>
+<a name="line-397"></a>
+<a name="line-398"></a>      <span class='varid'>checkRequired</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-399"></a>      <span class='varid'>checkRequired</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-400"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>satisfies</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>attName</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-401"></a>	    <span class='keyword'>then</span> <span class='varid'>checkRequired</span> <span class='varid'>xs</span> <span class='varid'>n</span>
+<a name="line-402"></a>	    <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attName</span> <span class='varop'>++</span> <span class='str'>" must be declared for element type "</span> <span class='varop'>++</span>
+<a name="line-403"></a>	             <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-404"></a>	         <span class='varop'>++</span>
+<a name="line-405"></a>		 <span class='varid'>checkRequired</span> <span class='varid'>xs</span> <span class='varid'>n</span>
+<a name="line-406"></a>	    <span class='keyword'>where</span>
+<a name="line-407"></a>	    <span class='varid'>attName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al'</span>
+<a name="line-408"></a>
+<a name="line-409"></a>      <span class='varid'>checkRequired</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-410"></a>
+<a name="line-411"></a>      <span class='varid'>checkRequired</span> <span class='varid'>nd</span> <span class='varid'>n</span>
+<a name="line-412"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkRequired: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-413"></a>
+<a name="line-414"></a>
+<a name="line-415"></a><span class='definition'>checkRequiredAttributes</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-416"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkRequiredAttributes: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-417"></a>
+<a name="line-418"></a>
+<a name="line-419"></a>
+<a name="line-420"></a><span class='comment'>-- |</span>
+<a name="line-421"></a><span class='comment'>-- Validate that \#FIXED attributes match the default value.</span>
+<a name="line-422"></a><span class='comment'>-- Validity constraint: Fixed Attribute Default (3.3.2 \/ p.28 in Spec)</span>
+<a name="line-423"></a><span class='comment'>--</span>
+<a name="line-424"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-425"></a><span class='comment'>--</span>
+<a name="line-426"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-427"></a><span class='comment'>--</span>
+<a name="line-428"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-429"></a><span class='comment'>--                  fixed attributes match the default value and returns a list of errors</span>
+<a name="line-430"></a>
+<a name="line-431"></a><a name="checkFixedAttributes"></a><span class='definition'>checkFixedAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-432"></a><span class='definition'>checkFixedAttributes</span> <span class='varid'>attrDecls</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-433"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkFixed</span> <span class='varid'>fixedAtts</span>
+<a name="line-434"></a>      <span class='keyword'>where</span>
+<a name="line-435"></a>      <span class='varid'>elemName</span>  <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-436"></a>      <span class='varid'>fixedAtts</span> <span class='keyglyph'>=</span> <span class='varid'>isFixedAttrKind</span> <span class='varop'>$$</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span><span class='layout'>)</span>
+<a name="line-437"></a>
+<a name="line-438"></a>
+<a name="line-439"></a>      <span class='varid'>checkFixed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-440"></a>      <span class='varid'>checkFixed</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ATTLIST</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-441"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>satisfies</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>attName</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-442"></a>	    <span class='keyword'>then</span> <span class='keyword'>if</span> <span class='varid'>attValue</span> <span class='varop'>==</span> <span class='varid'>fixedValue</span>
+<a name="line-443"></a>	         <span class='keyword'>then</span> <span class='varid'>checkFixed</span> <span class='varid'>xs</span> <span class='varid'>n</span>
+<a name="line-444"></a>	         <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attName</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-445"></a>		           <span class='str'>" with value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attValue</span> <span class='varop'>++</span> <span class='str'>" must have a value of "</span> <span class='varop'>++</span>
+<a name="line-446"></a>			   <span class='varid'>show</span> <span class='varid'>fixedValue</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-447"></a>	              <span class='varop'>++</span>
+<a name="line-448"></a>		      <span class='varid'>checkFixed</span> <span class='varid'>xs</span> <span class='varid'>n</span>
+<a name="line-449"></a>	    <span class='keyword'>else</span> <span class='varid'>checkFixed</span> <span class='varid'>xs</span> <span class='varid'>n</span>
+<a name="line-450"></a>	    <span class='keyword'>where</span>
+<a name="line-451"></a>	    <span class='varid'>attName</span>    <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al'</span>
+<a name="line-452"></a>	    <span class='varid'>fixedValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</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-453"></a>	    <span class='varid'>attValue</span>   <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>valueOf</span> <span class='varid'>attName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-454"></a>
+<a name="line-455"></a>      <span class='varid'>checkFixed</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-456"></a>
+<a name="line-457"></a>      <span class='varid'>checkFixed</span> <span class='varid'>nd</span> <span class='varid'>n</span>
+<a name="line-458"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkFixed: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-459"></a>
+<a name="line-460"></a>
+<a name="line-461"></a><span class='definition'>checkFixedAttributes</span> <span class='keyword'>_</span> <span class='varid'>nd</span>
+<a name="line-462"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkFixedAttributes: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-463"></a>
+<a name="line-464"></a>
+<a name="line-465"></a><span class='comment'>-- |</span>
+<a name="line-466"></a><span class='comment'>-- Validate that an element has no attributes which are not declared.</span>
+<a name="line-467"></a><span class='comment'>-- Validity constraint: Attribute Value Type (3.1 \/ p.19 in Spec)</span>
+<a name="line-468"></a><span class='comment'>--</span>
+<a name="line-469"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-470"></a><span class='comment'>--</span>
+<a name="line-471"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-472"></a><span class='comment'>--</span>
+<a name="line-473"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-474"></a><span class='comment'>--                  attributes are declared and returns a list of errors</span>
+<a name="line-475"></a>
+<a name="line-476"></a><a name="checkNotDeclardAttributes"></a><span class='definition'>checkNotDeclardAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-477"></a><span class='definition'>checkNotDeclardAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>elemDescr</span>
+<a name="line-478"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkNotDeclared</span>
+<a name="line-479"></a>      <span class='keyword'>where</span>
+<a name="line-480"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>elemDescr</span>
+<a name="line-481"></a>      <span class='varid'>decls</span>    <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>
+<a name="line-482"></a>
+<a name="line-483"></a>      <span class='varid'>checkNotDeclared</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-484"></a>      <span class='varid'>checkNotDeclared</span> <span class='varid'>n</span>
+<a name="line-485"></a>	  <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isXTag</span>
+<a name="line-486"></a>	      <span class='varop'>`guards`</span>
+<a name="line-487"></a>	      <span class='varid'>cat</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>searchForDeclaredAtt</span> <span class='varid'>elemName</span> <span class='varid'>decls</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-488"></a>	    <span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-489"></a>
+<a name="line-490"></a>      <span class='varid'>searchForDeclaredAtt</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'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-491"></a>      <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-492"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>nameOf</span> <span class='varid'>att</span>
+<a name="line-493"></a>            <span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-494"></a>	    <span class='keyword'>else</span> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='varid'>xs</span> <span class='varid'>att</span>
+<a name="line-495"></a>
+<a name="line-496"></a>      <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>attrName</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-497"></a>          <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>attrName</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is not declared in DTD."</span><span class='layout'>)</span>
+<a name="line-498"></a>
+<a name="line-499"></a>      <span class='varid'>searchForDeclaredAtt</span> <span class='keyword'>_</span> <span class='varid'>nd</span> <span class='varid'>a</span>
+<a name="line-500"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"searchForDeclaredAtt: illegeal paramter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-501"></a>
+<a name="line-502"></a><span class='comment'>-- |</span>
+<a name="line-503"></a><span class='comment'>-- Validate that the attribute value meets the lexical constraints of its type.</span>
+<a name="line-504"></a><span class='comment'>-- Validity constaint: Attribute Value Type (3.1 \/ p.19 in Spec)</span>
+<a name="line-505"></a><span class='comment'>--</span>
+<a name="line-506"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-507"></a><span class='comment'>--</span>
+<a name="line-508"></a><span class='comment'>--    - 2.parameter nd :  element declaration which attributes have to be checked</span>
+<a name="line-509"></a><span class='comment'>--</span>
+<a name="line-510"></a><span class='comment'>--    - returns : a function which takes an element (XTag), checks if all</span>
+<a name="line-511"></a><span class='comment'>--                  attributes meet the lexical constraints and returns a list of errors</span>
+<a name="line-512"></a>
+<a name="line-513"></a><a name="checkValuesOfAttributes"></a><span class='definition'>checkValuesOfAttributes</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-514"></a><span class='definition'>checkValuesOfAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dtdPart</span> <span class='varid'>elemDescr</span>
+<a name="line-515"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkValues</span>
+<a name="line-516"></a>      <span class='keyword'>where</span>
+<a name="line-517"></a>      <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>elemDescr</span>
+<a name="line-518"></a>      <span class='varid'>decls</span>    <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>
+<a name="line-519"></a>
+<a name="line-520"></a>      <span class='varid'>checkValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-521"></a>      <span class='varid'>checkValues</span> <span class='varid'>n</span>
+<a name="line-522"></a>          <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isXTag</span>
+<a name="line-523"></a>	      <span class='varop'>`guards`</span>
+<a name="line-524"></a>	      <span class='varid'>cat</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValue</span> <span class='varid'>decls</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-525"></a>	    <span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-526"></a>
+<a name="line-527"></a>      <span class='varid'>checkValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-528"></a>      <span class='varid'>checkValue</span> <span class='layout'>(</span><span class='varid'>attrDecl</span><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'>ATTLIST</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>att</span>
+<a name="line-529"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al'</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>nameOf</span> <span class='varid'>att</span>
+<a name="line-530"></a>            <span class='keyword'>then</span> <span class='varid'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span>
+<a name="line-531"></a>	    <span class='keyword'>else</span> <span class='varid'>checkValue</span> <span class='varid'>xs</span> <span class='varid'>att</span>
+<a name="line-532"></a>
+<a name="line-533"></a>      <span class='varid'>checkValue</span> <span class='conid'>[]</span> <span class='keyword'>_</span>
+<a name="line-534"></a>          <span class='keyglyph'>=</span> <span class='varid'>none</span>  <span class='comment'>-- undeclared attribute, reported by separate function</span>
+<a name="line-535"></a>
+<a name="line-536"></a>      <span class='varid'>checkValue</span> <span class='varid'>n</span> <span class='keyword'>_</span>
+<a name="line-537"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"checkValue: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-538"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-IdValidation.html b/doc/hdoc/src/Text-XML-HXT-Validator-IdValidation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-IdValidation.html
@@ -0,0 +1,279 @@
+<!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'>-- This module provides functions for checking special ID/IDREF/IDREFS constraints.</span>
+<a name="line-3"></a>
+<a name="line-4"></a><span class='comment'>-- Checking special ID/IDREF/IDREFS constraints means:</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>--  - checking that all ID values are unique.</span>
+<a name="line-7"></a><span class='comment'>--</span>
+<a name="line-8"></a><span class='comment'>--  - checking that all IDREF/IDREFS values match the value of some ID attribute</span>
+<a name="line-9"></a><span class='comment'>--</span>
+<a name="line-10"></a>
+<a name="line-11"></a>
+<a name="line-12"></a><span class='comment'>-- ID-Validation should be started before or after validating the document.</span>
+<a name="line-13"></a>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='comment'>-- First all nodes with ID attributes are collected from the document, then</span>
+<a name="line-16"></a><span class='comment'>-- it is validated that values of ID attributes do not occure more than once.</span>
+<a name="line-17"></a><span class='comment'>-- During a second iteration over the document it is validated that there exists</span>
+<a name="line-18"></a><span class='comment'>-- an ID attribute value for IDREF/IDREFS attribute values.</span>
+<a name="line-19"></a>
+<a name="line-20"></a><span class='comment'>-- Special namings in source code:</span>
+<a name="line-21"></a><span class='comment'>--</span>
+<a name="line-22"></a><span class='comment'>--  - nd - XDTD node</span>
+<a name="line-23"></a><span class='comment'>--</span>
+<a name="line-24"></a><span class='comment'>--  - n  - XTag node</span>
+<a name="line-25"></a><span class='comment'>--</span>
+<a name="line-26"></a><span class='comment'>-- Author : .\\artin Schmidt</span>
+<a name="line-27"></a><span class='comment'>-- Version : $Id: IdValidation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $</span>
+<a name="line-28"></a>
+<a name="line-29"></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'>Validator</span><span class='varop'>.</span><span class='conid'>IdValidation</span>
+<a name="line-30"></a>    <span class='layout'>(</span> <span class='varid'>validateIds</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>
+<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'>XmlTree</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'>Validator</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>
+<a name="line-37"></a>
+<a name="line-38"></a>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='comment'>-- |</span>
+<a name="line-41"></a><span class='comment'>-- Lookup-table which maps element names to their validation functions. The</span>
+<a name="line-42"></a><span class='comment'>-- validation functions are XmlFilters.</span>
+<a name="line-43"></a>
+<a name="line-44"></a><a name="IdEnvTable"></a><span class='keyword'>type</span> <span class='conid'>IdEnvTable</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>
+<a name="line-45"></a><a name="IdEnv"></a><span class='keyword'>type</span> <span class='conid'>IdEnv</span> 		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>IdFct</span><span class='layout'>)</span>
+<a name="line-46"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span>		<span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-47"></a><a name="IdFct"></a><span class='keyword'>type</span> <span class='conid'>IdFct</span>		<span class='keyglyph'>=</span> <span class='conid'>XmlFilter</span>
+<a name="line-48"></a>
+<a name="line-49"></a>
+<a name="line-50"></a>
+<a name="line-51"></a><span class='comment'>-- |</span>
+<a name="line-52"></a><span class='comment'>-- Perform the validation of the ID/IDREF/IDREFS constraints.</span>
+<a name="line-53"></a><span class='comment'>--</span>
+<a name="line-54"></a><span class='comment'>--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree</span>
+<a name="line-55"></a><span class='comment'>--</span>
+<a name="line-56"></a><span class='comment'>--    - 2.parameter doc :  the document subset of the XmlTree</span>
+<a name="line-57"></a><span class='comment'>--</span>
+<a name="line-58"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-59"></a>
+<a name="line-60"></a><a name="validateIds"></a><span class='definition'>validateIds</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-61"></a><span class='definition'>validateIds</span> <span class='varid'>dtdPart</span> <span class='varid'>doc</span>
+<a name="line-62"></a>    <span class='keyglyph'>=</span> <span class='comment'>{-# SCC "checkForUniqueIds" #-}</span> <span class='varid'>checkForUniqueIds</span> <span class='varid'>idNodeList</span> <span class='varid'>dtdNodes</span>
+<a name="line-63"></a>      <span class='varop'>++</span>
+<a name="line-64"></a>      <span class='comment'>{-# SCC "checkIdReferences" #-}</span> <span class='varid'>checkIdReferences</span> <span class='varid'>idRefEnv</span> <span class='varid'>doc</span>
+<a name="line-65"></a>      <span class='keyword'>where</span>
+<a name="line-66"></a>      <span class='varid'>idEnv</span>      <span class='keyglyph'>=</span> <span class='varid'>buildIdCollectorFcts</span> <span class='varid'>dtdNodes</span>
+<a name="line-67"></a>      <span class='varid'>idRefEnv</span>   <span class='keyglyph'>=</span> <span class='varid'>buildIdrefValidationFcts</span> <span class='varid'>dtdNodes</span> <span class='varid'>idNodeList</span>
+<a name="line-68"></a>      <span class='varid'>idNodeList</span> <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>idEnv</span> <span class='varid'>doc</span>
+<a name="line-69"></a>      <span class='varid'>dtdNodes</span>   <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span>
+<a name="line-70"></a>
+<a name="line-71"></a>
+<a name="line-72"></a><span class='comment'>-- |</span>
+<a name="line-73"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>
+<a name="line-74"></a><span class='comment'>--</span>
+<a name="line-75"></a><span class='comment'>--    * 1.parameter idEnv :  lookup-table which maps element names to their validation functions</span>
+<a name="line-76"></a><span class='comment'>--</span>
+<a name="line-77"></a><span class='comment'>--    - returns : list of errors</span>
+<a name="line-78"></a>
+<a name="line-79"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>IdEnvTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-80"></a><span class='definition'>traverseTree</span> <span class='varid'>idEnv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>
+<a name="line-81"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>idFct</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>idEnv</span><span class='layout'>)</span> <span class='varid'>cs</span>
+<a name="line-82"></a>      <span class='keyword'>where</span>
+<a name="line-83"></a>      <span class='varid'>idFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-84"></a>      <span class='varid'>idFct</span>
+<a name="line-85"></a>          <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>idEnv</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-86"></a>	    <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>none</span>
+<a name="line-87"></a>	    <span class='conid'>Just</span> <span class='varid'>f</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='definition'>traverseTree</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-90"></a>
+<a name="line-91"></a>
+<a name="line-92"></a>
+<a name="line-93"></a><span class='comment'>-- |</span>
+<a name="line-94"></a><span class='comment'>-- Returns the value of an element's ID attribute. The attribute name has to be</span>
+<a name="line-95"></a><span class='comment'>-- retrieved first from the DTD.</span>
+<a name="line-96"></a><span class='comment'>--</span>
+<a name="line-97"></a><span class='comment'>--    * 1.parameter dtdPart :  list of ID attribute definitions from the DTD</span>
+<a name="line-98"></a><span class='comment'>--</span>
+<a name="line-99"></a><span class='comment'>--    - 2.parameter n :  element which ID attribute value should be returned</span>
+<a name="line-100"></a><span class='comment'>--</span>
+<a name="line-101"></a><span class='comment'>--    - returns : normalized value of the ID attribute</span>
+<a name="line-102"></a>
+<a name="line-103"></a><a name="getIdValue"></a><span class='definition'>getIdValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-104"></a><span class='definition'>getIdValue</span> <span class='layout'>(</span><span class='varid'>x</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='sel'>_al'</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-105"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>elemName</span>
+<a name="line-106"></a>      <span class='keyword'>then</span> <span class='varid'>attrValue</span>
+<a name="line-107"></a>      <span class='keyword'>else</span> <span class='varid'>getIdValue</span> <span class='varid'>xs</span> <span class='varid'>n</span>
+<a name="line-108"></a>      <span class='keyword'>where</span>
+<a name="line-109"></a>      <span class='varid'>elemName</span>  <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-110"></a>      <span class='varid'>attrName</span>  <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al</span>
+<a name="line-111"></a>      <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>valueOf</span> <span class='varid'>attrName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-112"></a>
+<a name="line-113"></a><span class='definition'>getIdValue</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-114"></a>
+<a name="line-115"></a>
+<a name="line-116"></a>
+<a name="line-117"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-118"></a>
+<a name="line-119"></a>
+<a name="line-120"></a><span class='comment'>-- |</span>
+<a name="line-121"></a><span class='comment'>-- Build collector functions which return XTag nodes with ID attributes from</span>
+<a name="line-122"></a><span class='comment'>-- a document.</span>
+<a name="line-123"></a><span class='comment'>--</span>
+<a name="line-124"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-125"></a><span class='comment'>--</span>
+<a name="line-126"></a><span class='comment'>--    - returns : lookup-table which maps element names to their collector function</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="buildIdCollectorFcts"></a><span class='definition'>buildIdCollectorFcts</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IdEnvTable</span>
+<a name="line-129"></a><span class='definition'>buildIdCollectorFcts</span> <span class='varid'>dtdPart</span>
+<a name="line-130"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>buildIdCollectorFct</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>isIdAttrType</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-131"></a>      <span class='keyword'>where</span>
+<a name="line-132"></a>      <span class='varid'>buildIdCollectorFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IdEnv</span>
+<a name="line-133"></a>      <span class='varid'>buildIdCollectorFct</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-134"></a>          <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>hasAttr</span> <span class='varid'>attrName</span><span class='layout'>)</span>
+<a name="line-135"></a>            <span class='keyword'>where</span>
+<a name="line-136"></a>            <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-137"></a>            <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al</span>
+<a name="line-138"></a>
+<a name="line-139"></a>      <span class='varid'>buildIdCollectorFct</span> <span class='varid'>nd</span>
+<a name="line-140"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildIdCollectorFct: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-141"></a>
+<a name="line-142"></a>
+<a name="line-143"></a><span class='comment'>-- |</span>
+<a name="line-144"></a><span class='comment'>-- Build validation functions for checking if IDREF\/IDREFS values match a value</span>
+<a name="line-145"></a><span class='comment'>-- of some ID attributes.</span>
+<a name="line-146"></a><span class='comment'>--</span>
+<a name="line-147"></a><span class='comment'>--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-148"></a><span class='comment'>--</span>
+<a name="line-149"></a><span class='comment'>--    - 2.parameter idNodeList :  list of all XTag nodes with ID attributes</span>
+<a name="line-150"></a><span class='comment'>--</span>
+<a name="line-151"></a><span class='comment'>--    - returns : lookup-table which maps element names to their validation function</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="buildIdrefValidationFcts"></a><span class='definition'>buildIdrefValidationFcts</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'>IdEnvTable</span>
+<a name="line-154"></a><span class='definition'>buildIdrefValidationFcts</span> <span class='varid'>dtdPart</span> <span class='varid'>idNodeList</span>
+<a name="line-155"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>buildElemValidationFct</span> <span class='varid'>elements</span>
+<a name="line-156"></a>      <span class='keyword'>where</span>
+<a name="line-157"></a>      <span class='varid'>elements</span>    <span class='keyglyph'>=</span> <span class='varid'>isElement</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-158"></a>      <span class='varid'>idValueList</span> <span class='keyglyph'>=</span> <span class='varid'>getIdValues</span> <span class='layout'>(</span><span class='varid'>isIdAttrType</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>
+<a name="line-159"></a>
+<a name="line-160"></a>      <span class='varid'>getIdValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-161"></a>      <span class='varid'>getIdValues</span> <span class='varid'>idAttrTypes</span>
+<a name="line-162"></a>          <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getIdValue</span> <span class='varid'>idAttrTypes</span><span class='layout'>)</span> <span class='varid'>idNodeList</span>
+<a name="line-163"></a>
+<a name="line-164"></a>
+<a name="line-165"></a>      <span class='varid'>buildElemValidationFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IdEnv</span>
+<a name="line-166"></a>      <span class='varid'>buildElemValidationFct</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-167"></a>          <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>buildIdrefValidationFct</span> <span class='varid'>idRefAttrTypes</span><span class='layout'>)</span>
+<a name="line-168"></a>	  <span class='keyword'>where</span>
+<a name="line-169"></a>	  <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>
+<a name="line-170"></a>	  <span class='varid'>idRefAttrTypes</span> <span class='keyglyph'>=</span> <span class='varid'>isIdRefAttrType</span> <span class='varop'>$$</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-171"></a>
+<a name="line-172"></a>      <span class='varid'>buildElemValidationFct</span> <span class='varid'>nd</span>
+<a name="line-173"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildIdrefValidationFct: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-174"></a>
+<a name="line-175"></a>
+<a name="line-176"></a>      <span class='varid'>buildIdrefValidationFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlFilter</span>
+<a name="line-177"></a>      <span class='varid'>buildIdrefValidationFct</span> <span class='layout'>(</span><span class='varid'>nd</span><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'>ATTLIST</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-178"></a>          <span class='keyglyph'>=</span> <span class='varid'>checkIdref</span> <span class='varop'>+++</span> <span class='varid'>buildIdrefValidationFct</span> <span class='varid'>xs</span>
+<a name="line-179"></a>            <span class='keyword'>where</span>
+<a name="line-180"></a>            <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span> <span class='varid'>al</span>
+<a name="line-181"></a>	    <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span>
+<a name="line-182"></a>
+<a name="line-183"></a>            <span class='varid'>checkIdref</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-184"></a>            <span class='varid'>checkIdref</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-185"></a>                <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>satisfies</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>attrName</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-186"></a>	          <span class='keyword'>then</span> <span class='keyword'>if</span> <span class='varid'>attrType</span> <span class='varop'>==</span> <span class='varid'>k_idref</span>
+<a name="line-187"></a>		       <span class='keyword'>then</span> <span class='varid'>checkValueDeclared</span> <span class='varid'>n</span> <span class='varid'>attrValue</span>
+<a name="line-188"></a>		       <span class='keyword'>else</span> <span class='keyword'>let</span> <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>
+<a name="line-189"></a>		            <span class='keyword'>in</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>
+<a name="line-190"></a>		               <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrName</span> <span class='varop'>++</span>
+<a name="line-191"></a>					 <span class='str'>" of Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>
+<a name="line-192"></a>					 <span class='str'>" must have at least one name."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-193"></a>		               <span class='keyword'>else</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkValueDeclared</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>attrValue</span><span class='layout'>)</span>
+<a name="line-194"></a>	          <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-195"></a>		  <span class='keyword'>where</span>
+<a name="line-196"></a>		  <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>nd</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>valueOf</span> <span class='varid'>attrName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-197"></a>
+<a name="line-198"></a>	    <span class='varid'>checkIdref</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-199"></a>
+<a name="line-200"></a>
+<a name="line-201"></a>	    <span class='varid'>checkValueDeclared</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'>XmlTrees</span>
+<a name="line-202"></a>	    <span class='varid'>checkValueDeclared</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>attrValue</span>
+<a name="line-203"></a>	        <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>attrValue</span> <span class='varop'>`elem`</span> <span class='varid'>idValueList</span>
+<a name="line-204"></a>		  <span class='keyword'>then</span> <span class='conid'>[]</span>
+<a name="line-205"></a>		  <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"An Element with identifier "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span>
+<a name="line-206"></a>		            <span class='str'>" must appear in the document."</span><span class='layout'>)</span> <span class='varid'>n</span>
+<a name="line-207"></a>
+<a name="line-208"></a>            <span class='varid'>checkValueDeclared</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-209"></a>
+<a name="line-210"></a>      <span class='varid'>buildIdrefValidationFct</span> <span class='conid'>[]</span>
+<a name="line-211"></a>          <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-212"></a>
+<a name="line-213"></a>      <span class='varid'>buildIdrefValidationFct</span> <span class='varid'>nd</span>
+<a name="line-214"></a>          <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"buildIdCollectorFct: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nd</span><span class='layout'>)</span>
+<a name="line-215"></a>
+<a name="line-216"></a>
+<a name="line-217"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-218"></a>
+<a name="line-219"></a>
+<a name="line-220"></a><span class='comment'>-- |</span>
+<a name="line-221"></a><span class='comment'>-- Validate that all ID values are unique within a document.</span>
+<a name="line-222"></a><span class='comment'>-- Validity constraint: ID (3.3.1 \/p. 25 in Spec)</span>
+<a name="line-223"></a><span class='comment'>--</span>
+<a name="line-224"></a><span class='comment'>--    * 1.parameter idNodeList :  list of all XTag nodes with ID attributes</span>
+<a name="line-225"></a><span class='comment'>--</span>
+<a name="line-226"></a><span class='comment'>--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node</span>
+<a name="line-227"></a><span class='comment'>--</span>
+<a name="line-228"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-229"></a>
+<a name="line-230"></a><a name="checkForUniqueIds"></a><span class='definition'>checkForUniqueIds</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'>XmlTrees</span>
+<a name="line-231"></a><span class='definition'>checkForUniqueIds</span> <span class='varid'>idNodeList</span> <span class='varid'>dtdPart</span>
+<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkForUniqueId</span> <span class='varid'>idNodeList</span> <span class='conid'>[]</span>
+<a name="line-233"></a>      <span class='keyword'>where</span>
+<a name="line-234"></a>      <span class='varid'>idAttrTypes</span> <span class='keyglyph'>=</span> <span class='varid'>isIdAttrType</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>
+<a name="line-235"></a>
+<a name="line-236"></a>      <span class='varid'>checkForUniqueId</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</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'>XmlTrees</span>
+<a name="line-237"></a>      <span class='varid'>checkForUniqueId</span> <span class='layout'>(</span><span class='varid'>x</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>used</span>
+<a name="line-238"></a>          <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>attrValue</span> <span class='varop'>`elem`</span> <span class='varid'>used</span>
+<a name="line-239"></a>	    <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of type ID for element "</span> <span class='varop'>++</span>
+<a name="line-240"></a>	              <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be unique within the document."</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-241"></a>		 <span class='varop'>++</span>
+<a name="line-242"></a>		 <span class='varid'>checkForUniqueId</span> <span class='varid'>xs</span> <span class='varid'>used</span>
+<a name="line-243"></a>
+<a name="line-244"></a>	    <span class='keyword'>else</span> <span class='varid'>checkForUniqueId</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>attrValue</span> <span class='conop'>:</span> <span class='varid'>used</span><span class='layout'>)</span>
+<a name="line-245"></a>	    <span class='keyword'>where</span>
+<a name="line-246"></a>	    <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>getIdValue</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>idAttrTypes</span><span class='layout'>)</span> <span class='varid'>x</span>
+<a name="line-247"></a>
+<a name="line-248"></a>      <span class='varid'>checkForUniqueId</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-249"></a>
+<a name="line-250"></a>
+<a name="line-251"></a>
+<a name="line-252"></a><span class='comment'>-- |</span>
+<a name="line-253"></a><span class='comment'>-- Validate that all IDREF\/IDREFS values match the value of some ID attribute.</span>
+<a name="line-254"></a><span class='comment'>-- Validity constraint: IDREF (3.3.1 \/ p.26 in Spec)</span>
+<a name="line-255"></a><span class='comment'>--</span>
+<a name="line-256"></a><span class='comment'>--    * 1.parameter idRefEnv :  lookup-table which maps element names to their validation function</span>
+<a name="line-257"></a><span class='comment'>--</span>
+<a name="line-258"></a><span class='comment'>--    - 2.parameter doc :  the document to validate</span>
+<a name="line-259"></a><span class='comment'>--</span>
+<a name="line-260"></a><span class='comment'>--    - returns : a list of errors</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="checkIdReferences"></a><span class='definition'>checkIdReferences</span> <span class='keyglyph'>::</span> <span class='conid'>IdEnvTable</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'>checkIdReferences</span> <span class='varid'>idRefEnv</span> <span class='varid'>doc</span>
+<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>idRefEnv</span> <span class='varid'>doc</span>
+<a name="line-265"></a>
+<a name="line-266"></a>
+<a name="line-267"></a>
+<a name="line-268"></a>
+<a name="line-269"></a>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-RE.html b/doc/hdoc/src/Text-XML-HXT-Validator-RE.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-RE.html
@@ -0,0 +1,340 @@
+<!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'>-- A module for regular expression matching based on derivatives of regular expressions.</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- The code was taken from Joe English (&lt;<a href="http://www.flightlab.com/~joe/sgml/validate.html">http://www.flightlab.com/~joe/sgml/validate.html</a>&gt;).</span>
+<a name="line-5"></a><span class='comment'>-- Tested and extended by Martin Schmidt.</span>
+<a name="line-6"></a><span class='comment'>--</span>
+<a name="line-7"></a><span class='comment'>-- Further references for the algorithm:</span>
+<a name="line-8"></a><span class='comment'>--</span>
+<a name="line-9"></a><span class='comment'>-- Janusz A. Brzozowski.</span>
+<a name="line-10"></a><span class='comment'>--</span>
+<a name="line-11"></a><span class='comment'>-- 	Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. </span>
+<a name="line-12"></a><span class='comment'>--</span>
+<a name="line-13"></a><span class='comment'>-- Mark Hopkins.</span>
+<a name="line-14"></a><span class='comment'>--</span>
+<a name="line-15"></a><span class='comment'>--	Regular Expression Package. Posted to comp.compilers, 1994.</span>
+<a name="line-16"></a><span class='comment'>--      Available per FTP at &lt;ftp://iecc.com/pub/file/regex.tar.gz&gt;.</span>
+<a name="line-17"></a><span class='comment'>--</span>
+<a name="line-18"></a><span class='comment'>-- Version : $Id: RE.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $</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'>Validator</span><span class='varop'>.</span><span class='conid'>RE</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='conid'>RE</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>
+<a name="line-22"></a>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>re_unit</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>re_zero</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>re_sym</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>re_rep</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>re_plus</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>re_opt</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>re_seq</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>re_alt</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>re_dot</span>
+<a name="line-32"></a>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>checkRE</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>matches</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>nullable</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>printRE</span>
+<a name="line-37"></a>  <span class='layout'>)</span>
+<a name="line-38"></a><span class='keyword'>where</span>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='comment'>-- |</span>
+<a name="line-41"></a><span class='comment'>-- Data type for regular expressions.</span>
+<a name="line-42"></a>
+<a name="line-43"></a><a name="RE"></a><span class='keyword'>data</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>=</span>
+<a name="line-44"></a>	<span class='conid'>RE_ZERO</span>	<span class='conid'>String</span>		<span class='comment'>--' L(0)   = {} (empty set)</span>
+<a name="line-45"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_UNIT</span>		<span class='comment'>--' L(1)   = { [] } (empty sequence)</span>
+<a name="line-46"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_SYM</span> <span class='varid'>a</span>		<span class='comment'>--' L(x)   = { [x] }</span>
+<a name="line-47"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_DOT</span>                <span class='comment'>--' accept any single symbol</span>
+<a name="line-48"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>		<span class='comment'>--' L(e*)  = { [] } `union` L(e+)</span>
+<a name="line-49"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_PLUS</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>	<span class='comment'>--' L(e+)  = { x ++ y | x &lt;- L(e), y &lt;- L(e*) }</span>
+<a name="line-50"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_OPT</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>		<span class='comment'>--' L(e?)  = L(e) `union` { [] }</span>
+<a name="line-51"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_SEQ</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>	<span class='comment'>--' L(e,f) = { x ++ y | x &lt;- L(e), y &lt;- L(f) }</span>
+<a name="line-52"></a>	<span class='keyglyph'>|</span> <span class='conid'>RE_ALT</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span>	<span class='comment'>--' L(e|f) = L(e) `union` L(f)</span>
+<a name="line-53"></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>
+<a name="line-54"></a>
+<a name="line-55"></a>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-58"></a><span class='comment'>-- Constructor functions to simplify regular expressions when constructing them.</span>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- |</span>
+<a name="line-61"></a><span class='comment'>-- Constructs a regular expression for an empty set.</span>
+<a name="line-62"></a><span class='comment'>--</span>
+<a name="line-63"></a><span class='comment'>--    * 1.parameter errMsg :  error message</span>
+<a name="line-64"></a><span class='comment'>--</span>
+<a name="line-65"></a><span class='comment'>--    - returns : regular expression for an empty set</span>
+<a name="line-66"></a>
+<a name="line-67"></a><a name="re_zero"></a><span class='definition'>re_zero</span>			<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-68"></a><span class='definition'>re_zero</span> <span class='varid'>m</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-69"></a>
+<a name="line-70"></a>
+<a name="line-71"></a><span class='comment'>-- |</span>
+<a name="line-72"></a><span class='comment'>-- Constructs a regular expression for an empty sequence.</span>
+<a name="line-73"></a><span class='comment'>--</span>
+<a name="line-74"></a><span class='comment'>--    - returns : regular expression for an empty sequence</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="re_unit"></a><span class='definition'>re_unit</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-77"></a><span class='definition'>re_unit</span>			<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-78"></a>
+<a name="line-79"></a>
+<a name="line-80"></a><span class='comment'>-- |</span>
+<a name="line-81"></a><span class='comment'>-- Constructs a regular expression for accepting a symbol</span>
+<a name="line-82"></a><span class='comment'>--</span>
+<a name="line-83"></a><span class='comment'>--    * 1.parameter sym :  the symbol to be accepted</span>
+<a name="line-84"></a><span class='comment'>--</span>
+<a name="line-85"></a><span class='comment'>--    - returns : regular expression for accepting a symbol</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="re_sym"></a><span class='definition'>re_sym</span>			<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-88"></a><span class='definition'>re_sym</span> <span class='varid'>x</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_SYM</span> <span class='varid'>x</span>
+<a name="line-89"></a>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- |</span>
+<a name="line-92"></a><span class='comment'>-- Constructs a regular expression for accepting any singel symbol</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='comment'>--    - returns : regular expression for accepting any singel symbol</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="re_dot"></a><span class='definition'>re_dot</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-97"></a><span class='definition'>re_dot</span>			<span class='keyglyph'>=</span> <span class='conid'>RE_DOT</span>
+<a name="line-98"></a>
+<a name="line-99"></a>
+<a name="line-100"></a><span class='comment'>-- |</span>
+<a name="line-101"></a><span class='comment'>-- Constructs an optional repetition (*) of a regular expression</span>
+<a name="line-102"></a><span class='comment'>--</span>
+<a name="line-103"></a><span class='comment'>--    * 1.parameter re_a :  regular expression to be repeted</span>
+<a name="line-104"></a><span class='comment'>--</span>
+<a name="line-105"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-106"></a>
+<a name="line-107"></a><a name="re_rep"></a><span class='definition'>re_rep</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-108"></a><span class='definition'>re_rep</span> <span class='conid'>RE_UNIT</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-109"></a><span class='definition'>re_rep</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-110"></a><span class='definition'>re_rep</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e</span><span class='layout'>)</span>		<span class='comment'>-- remove nested reps</span>
+<a name="line-111"></a><span class='definition'>re_rep</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e</span><span class='layout'>)</span>		<span class='comment'>-- remove nested reps in alternatives</span>
+<a name="line-112"></a><span class='definition'>re_rep</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='varid'>e</span>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- |</span>
+<a name="line-115"></a><span class='comment'>-- remove redundant nested *'s in RE</span>
+<a name="line-116"></a><span class='comment'>-- theoretically this is unneccessary,</span>
+<a name="line-117"></a><span class='comment'>-- but without this simplification the runtime can increase exponentally</span>
+<a name="line-118"></a><span class='comment'>-- when computing deltas, e.g. for a** or (a|b*)* which is the same as (a|b)*</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="rem_rep"></a><span class='definition'>rem_rep</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-121"></a><span class='definition'>rem_rep</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_ALT</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e2</span><span class='layout'>)</span>
+<a name="line-122"></a><span class='definition'>rem_rep</span> <span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='varid'>e1</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rem_rep</span> <span class='varid'>e1</span>
+<a name="line-123"></a><span class='definition'>rem_rep</span> <span class='varid'>e1</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>
+<a name="line-124"></a>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- |</span>
+<a name="line-127"></a><span class='comment'>-- Constructs a repetition (+) of a regular expression</span>
+<a name="line-128"></a><span class='comment'>--</span>
+<a name="line-129"></a><span class='comment'>--    * 1.parameter re_a :  regular expression to be repeted</span>
+<a name="line-130"></a><span class='comment'>--</span>
+<a name="line-131"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-132"></a>
+<a name="line-133"></a><a name="re_plus"></a><span class='definition'>re_plus</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-134"></a><span class='definition'>re_plus</span> <span class='conid'>RE_UNIT</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-135"></a><span class='definition'>re_plus</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-136"></a><span class='definition'>re_plus</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>
+<a name="line-137"></a>
+<a name="line-138"></a>
+<a name="line-139"></a><span class='comment'>-- |</span>
+<a name="line-140"></a><span class='comment'>-- Constructs an option (?) of a regular expression</span>
+<a name="line-141"></a><span class='comment'>--</span>
+<a name="line-142"></a><span class='comment'>--    * 1.parameter re_a :  regular expression to be optional</span>
+<a name="line-143"></a><span class='comment'>--</span>
+<a name="line-144"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-145"></a>
+<a name="line-146"></a><a name="re_opt"></a><span class='definition'>re_opt</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-147"></a><span class='definition'>re_opt</span> <span class='conid'>RE_UNIT</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-148"></a><span class='definition'>re_opt</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>
+<a name="line-149"></a><span class='definition'>re_opt</span> <span class='varid'>e</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_OPT</span> <span class='varid'>e</span>
+<a name="line-150"></a>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='comment'>-- |</span>
+<a name="line-153"></a><span class='comment'>-- Constructs a sequence (,) of two regular expressions</span>
+<a name="line-154"></a><span class='comment'>--</span>
+<a name="line-155"></a><span class='comment'>--    * 1.parameter re_a :  first regular expression in sequence</span>
+<a name="line-156"></a><span class='comment'>--</span>
+<a name="line-157"></a><span class='comment'>--    - 2.parameter re_b :  second regular expression in sequence</span>
+<a name="line-158"></a><span class='comment'>--</span>
+<a name="line-159"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-160"></a>
+<a name="line-161"></a><a name="re_seq"></a><span class='definition'>re_seq</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-162"></a><span class='definition'>re_seq</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyword'>_</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-163"></a><span class='definition'>re_seq</span> <span class='conid'>RE_UNIT</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-164"></a><span class='definition'>re_seq</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>
+<a name="line-165"></a><span class='definition'>re_seq</span> <span class='varid'>e</span> <span class='conid'>RE_UNIT</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-166"></a><span class='definition'>re_seq</span> <span class='varid'>e</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-167"></a>
+<a name="line-168"></a>
+<a name="line-169"></a><span class='comment'>-- |</span>
+<a name="line-170"></a><span class='comment'>-- Constructs an alternative (|) of two regular expressions</span>
+<a name="line-171"></a><span class='comment'>--</span>
+<a name="line-172"></a><span class='comment'>--    * 1.parameter re_a :  first regular expression of alternative</span>
+<a name="line-173"></a><span class='comment'>--</span>
+<a name="line-174"></a><span class='comment'>--    - 2.parameter re_b :  second regular expression of alternative</span>
+<a name="line-175"></a><span class='comment'>--</span>
+<a name="line-176"></a><span class='comment'>--    - returns : new regular expression</span>
+<a name="line-177"></a>
+<a name="line-178"></a><a name="re_alt"></a><span class='definition'>re_alt</span>			<span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-179"></a><span class='definition'>re_alt</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>f</span>
+<a name="line-180"></a><span class='definition'>re_alt</span> <span class='varid'>e</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-181"></a><span class='definition'>re_alt</span> <span class='varid'>e</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-182"></a>
+<a name="line-183"></a>
+<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="line-188"></a><span class='comment'>-- |</span>
+<a name="line-189"></a><span class='comment'>-- Checks if a regular expression matches the empty sequence.</span>
+<a name="line-190"></a><span class='comment'>--</span>
+<a name="line-191"></a><span class='comment'>-- nullable e == [] `in` L(e)</span>
+<a name="line-192"></a><span class='comment'>--</span>
+<a name="line-193"></a><span class='comment'>-- This check indicates if a regular expression fits to a sentence or not.</span>
+<a name="line-194"></a><span class='comment'>--</span>
+<a name="line-195"></a><span class='comment'>--    * 1.parameter re :  regular expression to be checked</span>
+<a name="line-196"></a><span class='comment'>--</span>
+<a name="line-197"></a><span class='comment'>--    - returns : true if regular expression matches the empty sequence,</span>
+<a name="line-198"></a><span class='comment'>--                otherwise false</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="nullable"></a><span class='definition'>nullable</span>		<span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-201"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-202"></a><span class='definition'>nullable</span> <span class='conid'>RE_UNIT</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-203"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_SYM</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-204"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-205"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_PLUS</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-206"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_OPT</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-207"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>nullable</span> <span class='varid'>f</span>
+<a name="line-208"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>f</span>
+<a name="line-209"></a><span class='definition'>nullable</span> <span class='conid'>RE_DOT</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-210"></a>
+<a name="line-211"></a>
+<a name="line-212"></a><span class='comment'>-- |</span>
+<a name="line-213"></a><span class='comment'>-- Derives a regular expression with respect to one symbol.</span>
+<a name="line-214"></a><span class='comment'>--</span>
+<a name="line-215"></a><span class='comment'>-- L(delta e x) = x \ L(e)</span>
+<a name="line-216"></a><span class='comment'>--</span>
+<a name="line-217"></a><span class='comment'>--    * 1.parameter re :  regular expression to be derived</span>
+<a name="line-218"></a><span class='comment'>--</span>
+<a name="line-219"></a><span class='comment'>--    - 2.parameter sym :  the symbol on which the regular expression is applied</span>
+<a name="line-220"></a><span class='comment'>--</span>
+<a name="line-221"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-222"></a>
+<a name="line-223"></a><a name="delta"></a><span class='definition'>delta</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='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-224"></a><span class='definition'>delta</span> <span class='varid'>re</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>
+<a name="line-225"></a>	<span class='conid'>RE_ZERO</span>	<span class='keyword'>_</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re</span>					<span class='comment'>-- re_zero m</span>
+<a name="line-226"></a>	<span class='conid'>RE_UNIT</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>" unexpected."</span><span class='layout'>)</span>
+<a name="line-227"></a>	<span class='conid'>RE_SYM</span> <span class='varid'>sym</span>
+<a name="line-228"></a>		<span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>sym</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-229"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sym</span> <span class='varop'>++</span> <span class='str'>" expected, but symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>" found."</span><span class='layout'>)</span>
+<a name="line-230"></a>	<span class='conid'>RE_REP</span>  <span class='varid'>e</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>re</span>		<span class='comment'>-- (re_rep e)</span>
+<a name="line-231"></a>	<span class='conid'>RE_PLUS</span> <span class='varid'>e</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-232"></a>	<span class='conid'>RE_OPT</span>  <span class='varid'>e</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span>
+<a name="line-233"></a>	<span class='conid'>RE_SEQ</span>  <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-234"></a>		<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-235"></a>		<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-236"></a>	<span class='conid'>RE_ALT</span>  <span class='varid'>e</span> <span class='varid'>f</span>		<span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>
+<a name="line-237"></a>	<span class='conid'>RE_DOT</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</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'>-- Derives a regular expression with respect to a sentence.</span>
+<a name="line-242"></a><span class='comment'>--</span>
+<a name="line-243"></a><span class='comment'>--    * 1.parameter re :  regular expression</span>
+<a name="line-244"></a><span class='comment'>--</span>
+<a name="line-245"></a><span class='comment'>--    - 2.parameter s :  sentence to which the regular expression is applied</span>
+<a name="line-246"></a><span class='comment'>--</span>
+<a name="line-247"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-248"></a>
+<a name="line-249"></a><a name="matches"></a><span class='definition'>matches</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='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>RE</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='conid'>RE</span> <span class='varid'>a</span>
+<a name="line-250"></a><span class='definition'>matches</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span> <span class='varid'>e</span>
+<a name="line-251"></a>
+<a name="line-252"></a>
+<a name="line-253"></a><span class='comment'>-- |</span>
+<a name="line-254"></a><span class='comment'>-- Checks if an input matched a regular expression. The function should be</span>
+<a name="line-255"></a><span class='comment'>-- called after matches.</span>
+<a name="line-256"></a><span class='comment'>--</span>
+<a name="line-257"></a><span class='comment'>-- Was the sentence used in @matches@ in the language of the regular expression?</span>
+<a name="line-258"></a><span class='comment'>-- -&gt; matches e s == s `in` L(e)?</span>
+<a name="line-259"></a><span class='comment'>--</span>
+<a name="line-260"></a><span class='comment'>--    * 1.parameter re :  the derived regular expression</span>
+<a name="line-261"></a><span class='comment'>--</span>
+<a name="line-262"></a><span class='comment'>--    - returns : empty String if input matched the regular expression, otherwise</span>
+<a name="line-263"></a><span class='comment'>--               an error message is returned</span>
+<a name="line-264"></a>
+<a name="line-265"></a><a name="checkRE"></a><span class='definition'>checkRE</span> <span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-266"></a><span class='definition'>checkRE</span> <span class='layout'>(</span><span class='conid'>RE_UNIT</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-267"></a><span class='definition'>checkRE</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>m</span>
+<a name="line-268"></a><span class='definition'>checkRE</span> <span class='varid'>re</span>
+<a name="line-269"></a>	<span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>
+<a name="line-270"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='str'>"Input must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span>
+<a name="line-271"></a>
+<a name="line-272"></a>
+<a name="line-273"></a>
+<a name="line-274"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-275"></a>
+<a name="line-276"></a>
+<a name="line-277"></a>
+<a name="line-278"></a><span class='comment'>-- |</span>
+<a name="line-279"></a><span class='comment'>-- Constructs a string representation of a regular expression.</span>
+<a name="line-280"></a><span class='comment'>--</span>
+<a name="line-281"></a><span class='comment'>--    * 1.parameter re :  a regular expression</span>
+<a name="line-282"></a><span class='comment'>--</span>
+<a name="line-283"></a><span class='comment'>--    - returns : the string representation of the regular expression</span>
+<a name="line-284"></a>
+<a name="line-285"></a><a name="printRE"></a><span class='definition'>printRE</span> <span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-286"></a><span class='definition'>printRE</span> <span class='varid'>re'</span>
+<a name="line-287"></a>    <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>re'</span> <span class='varop'>++</span> <span class='str'>" )"</span>
+<a name="line-288"></a>      <span class='keyword'>where</span>
+<a name="line-289"></a>      <span class='varid'>printRE1</span> <span class='keyglyph'>::</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'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-290"></a>      <span class='varid'>printRE1</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>
+<a name="line-291"></a>	  <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>				<span class='keyglyph'>-&gt;</span> <span class='str'>"ERROR: "</span> <span class='varop'>++</span> <span class='varid'>m</span>
+<a name="line-292"></a>	  <span class='conid'>RE_UNIT</span>				<span class='keyglyph'>-&gt;</span> <span class='str'>""</span>
+<a name="line-293"></a>	  <span class='conid'>RE_SYM</span> <span class='varid'>sym</span>				<span class='keyglyph'>-&gt;</span> <span class='varid'>show</span> <span class='varid'>sym</span>
+<a name="line-294"></a>	  <span class='conid'>RE_DOT</span>				<span class='keyglyph'>-&gt;</span> <span class='str'>"."</span>
+<a name="line-295"></a>	  <span class='conid'>RE_REP</span> <span class='varid'>e</span>
+<a name="line-296"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"*"</span>
+<a name="line-297"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>
+<a name="line-298"></a>	  <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>
+<a name="line-299"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"+"</span>
+<a name="line-300"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>
+<a name="line-301"></a>	  <span class='conid'>RE_OPT</span> <span class='varid'>e</span>
+<a name="line-302"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"?"</span>
+<a name="line-303"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>
+<a name="line-304"></a>	  <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-305"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isAlt</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isAlt</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") , "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-306"></a>	      <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isAlt</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isAlt</span> <span class='varid'>f</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" , ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-307"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isAlt</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>isAlt</span> <span class='varid'>f</span>		<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") , ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-308"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" , "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-309"></a>	  <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-310"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSeq</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isSeq</span> <span class='varid'>f</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") | "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-311"></a>	      <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isSeq</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isSeq</span> <span class='varid'>f</span>	<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" | ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-312"></a>	      <span class='keyglyph'>|</span> <span class='varid'>isSeq</span> <span class='varid'>e</span>  <span class='varop'>&amp;&amp;</span> <span class='varid'>isSeq</span> <span class='varid'>f</span>		<span class='keyglyph'>-&gt;</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") | ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>
+<a name="line-313"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>-&gt;</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" | "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>
+<a name="line-314"></a>
+<a name="line-315"></a>
+<a name="line-316"></a>      <span class='varid'>isSingle</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-317"></a>      <span class='varid'>isSingle</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-318"></a>      <span class='varid'>isSingle</span> <span class='conid'>RE_UNIT</span>        <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-319"></a>      <span class='varid'>isSingle</span> <span class='layout'>(</span><span class='conid'>RE_SYM</span> <span class='keyword'>_</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-320"></a>      <span class='varid'>isSingle</span> <span class='keyword'>_</span>              <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-321"></a>
+<a name="line-322"></a>
+<a name="line-323"></a>      <span class='varid'>isSeq</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-324"></a>      <span class='varid'>isSeq</span> <span class='layout'>(</span><span class='conid'>RE_SEQ</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-325"></a>      <span class='varid'>isSeq</span> <span class='keyword'>_</span>                 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-326"></a>
+<a name="line-327"></a>
+<a name="line-328"></a>      <span class='varid'>isAlt</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-329"></a>      <span class='varid'>isAlt</span> <span class='layout'>(</span><span class='conid'>RE_ALT</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-330"></a>      <span class='varid'>isAlt</span> <span class='keyword'>_</span>                 <span class='keyglyph'>=</span> <span class='conid'>False</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-Validation.html b/doc/hdoc/src/Text-XML-HXT-Validator-Validation.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-Validation.html
@@ -0,0 +1,75 @@
+<!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'>-- This module provides a state filter as a main function for validating XML documents.</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- The real validation is done with pure filters from module 'Text.XML.HXT.Validator.ValidationFilter'</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>-- Author : .\\artin Schmidt</span>
+<a name="line-7"></a><span class='comment'>-- Version : $Id: Validation.hs,v 1.2 2004/11/23 15:50:23 hxml Exp $</span>
+<a name="line-8"></a>
+<a name="line-9"></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'>Validator</span><span class='varop'>.</span><span class='conid'>Validation</span>
+<a name="line-10"></a>    <span class='layout'>(</span> <span class='varid'>getValidatedDoc</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'>Validator</span><span class='varop'>.</span><span class='conid'>ValidationFilter</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'>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'>XmlTree</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'>XmlState</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'>Validator</span><span class='varop'>.</span><span class='conid'>ValidationFilter</span>
+<a name="line-20"></a>
+<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'>Parser</span><span class='varop'>.</span><span class='conid'>XmlOutput</span>
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>traceTree</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>traceSource</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>traceMsg</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a>
+<a name="line-27"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-28"></a>
+<a name="line-29"></a><span class='comment'>-- |</span>
+<a name="line-30"></a><span class='comment'>-- monadic filter for validating and transforming a wellformed document.</span>
+<a name="line-31"></a><span class='comment'>--</span>
+<a name="line-32"></a><span class='comment'>-- the "main" function for validation.</span>
+<a name="line-33"></a><span class='comment'>--</span>
+<a name="line-34"></a><span class='comment'>-- the input tree must consist of a root node with a complete document and DTD.</span>
+<a name="line-35"></a><span class='comment'>-- Result is the single element list containing same tree but tranformed with respect to the DTD,</span>
+<a name="line-36"></a><span class='comment'>-- or, in case of errors, the root with an empty list of children</span>
+<a name="line-37"></a>
+<a name="line-38"></a><a name="getValidatedDoc"></a><span class='definition'>getValidatedDoc</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlStateFilter</span> <span class='varid'>state</span>
+<a name="line-39"></a><span class='definition'>getValidatedDoc</span>
+<a name="line-40"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validating document"</span>
+<a name="line-41"></a>      <span class='varop'>.&gt;&gt;</span>
+<a name="line-42"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>runValidation</span>
+<a name="line-43"></a>	  <span class='varop'>.&gt;&gt;</span>
+<a name="line-44"></a>	  <span class='varid'>traceTree</span>
+<a name="line-45"></a>	  <span class='varop'>.&gt;&gt;</span>
+<a name="line-46"></a>	  <span class='varid'>traceSource</span>
+<a name="line-47"></a>	<span class='layout'>)</span>
+<a name="line-48"></a>	<span class='varop'>`whenM`</span> <span class='layout'>(</span><span class='varid'>isRoot</span> <span class='varop'>.&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>
+<a name="line-49"></a>      <span class='layout'>)</span>
+<a name="line-50"></a>      <span class='keyword'>where</span>
+<a name="line-51"></a>      <span class='varid'>runValidation</span> <span class='varid'>t</span>
+<a name="line-52"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-53"></a>	    <span class='varid'>issueError</span> <span class='varop'>$$&lt;</span> <span class='varid'>res</span>
+<a name="line-54"></a>	    <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>errs</span>
+<a name="line-55"></a>	      <span class='keyword'>then</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"transforming validated document"</span>
+<a name="line-56"></a>		     <span class='varop'>.&gt;&gt;</span>
+<a name="line-57"></a>		     <span class='varid'>liftMf</span> <span class='varid'>transform</span>
+<a name="line-58"></a>		   <span class='layout'>)</span>
+<a name="line-59"></a>	      <span class='keyword'>else</span> <span class='varid'>liftMf</span> <span class='layout'>(</span><span class='varid'>setStatus</span> <span class='varid'>c_err</span> <span class='str'>"validating document"</span><span class='layout'>)</span>
+<a name="line-60"></a>	      <span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-61"></a>	    <span class='keyword'>where</span>
+<a name="line-62"></a>	    <span class='varid'>res</span>  <span class='keyglyph'>=</span> <span class='varid'>validate</span> <span class='varid'>t</span>
+<a name="line-63"></a>	    <span class='varid'>errs</span> <span class='keyglyph'>=</span> <span class='varid'>isXError</span> <span class='varop'>.&gt;</span> <span class='varid'>neg</span> <span class='varid'>isWarning</span> <span class='varop'>$$</span> <span class='varid'>res</span>
+<a name="line-64"></a>
+<a name="line-65"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-ValidationFilter.html b/doc/hdoc/src/Text-XML-HXT-Validator-ValidationFilter.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-ValidationFilter.html
@@ -0,0 +1,136 @@
+<!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'>-- This module provides functions for validating XML documents represented as</span>
+<a name="line-3"></a><span class='comment'>-- XmlTree.</span>
+<a name="line-4"></a>
+<a name="line-5"></a><span class='comment'>-- Unlike other popular XML validation tools the validation functions return</span>
+<a name="line-6"></a><span class='comment'>-- a list of errors instead of aborting after the first error was found.</span>
+<a name="line-7"></a><span class='comment'>-- </span>
+<a name="line-8"></a><span class='comment'>-- Note: The validation process has been split into validation and transformation!</span>
+<a name="line-9"></a><span class='comment'>--       If @validate@ did not report any errors, @transform@</span>
+<a name="line-10"></a><span class='comment'>--       should be called, to change the document the way a validating parser</span>
+<a name="line-11"></a><span class='comment'>--       is expected to do.</span>
+<a name="line-12"></a>
+<a name="line-13"></a><span class='comment'>--</span>
+<a name="line-14"></a><span class='comment'>-- Author : .\\artin Schmidt</span>
+<a name="line-15"></a><span class='comment'>-- Version : $Id: ValidationFilter.hs,v 1.1 2004/11/23 15:50:23 hxml Exp $</span>
+<a name="line-16"></a>
+<a name="line-17"></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'>Validator</span><span class='varop'>.</span><span class='conid'>ValidationFilter</span>
+<a name="line-18"></a>    <span class='layout'>(</span> <span class='varid'>getDTDSubset</span>
+<a name="line-19"></a>    <span class='layout'>,</span> <span class='varid'>validate</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>validateDTD</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>validateDoc</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>removeDoublicateDefs</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>transform</span>
+<a name="line-24"></a>    <span class='layout'>)</span>
+<a name="line-25"></a>
+<a name="line-26"></a><span class='keyword'>where</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'>XmlTree</span>
+<a name="line-29"></a>
+<a name="line-30"></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'>Validator</span><span class='varop'>.</span><span class='conid'>DTDValidation</span> <span class='keyword'>as</span> <span class='conid'>DTDValidation</span>
+<a name="line-31"></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'>Validator</span><span class='varop'>.</span><span class='conid'>DocValidation</span> <span class='keyword'>as</span> <span class='conid'>DocValidation</span>
+<a name="line-32"></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'>Validator</span><span class='varop'>.</span><span class='conid'>IdValidation</span> <span class='keyword'>as</span> <span class='conid'>IdValidation</span>
+<a name="line-33"></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'>Validator</span><span class='varop'>.</span><span class='conid'>DocTransformation</span> <span class='keyword'>as</span> <span class='conid'>DocTransformation</span>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- |</span>
+<a name="line-36"></a><span class='comment'>-- Main validation filter. Check if the DTD and the document are valid.</span>
+<a name="line-37"></a><span class='comment'>--</span>
+<a name="line-38"></a><span class='comment'>--</span>
+<a name="line-39"></a><span class='comment'>--    - returns : a function which expects a complete document as XmlTree input</span>
+<a name="line-40"></a><span class='comment'>--                     and returns a list of all errors found.</span>
+<a name="line-41"></a>
+<a name="line-42"></a><a name="validate"></a><span class='definition'>validate</span> 	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-43"></a><span class='definition'>validate</span>	<span class='keyglyph'>=</span> <span class='varid'>validateDTD</span> <span class='varop'>+++</span> <span class='varid'>validateDoc</span>
+<a name="line-44"></a>
+<a name="line-45"></a><span class='comment'>-- |</span>
+<a name="line-46"></a><span class='comment'>-- Check if the DTD is valid.</span>
+<a name="line-47"></a><span class='comment'>--</span>
+<a name="line-48"></a><span class='comment'>--</span>
+<a name="line-49"></a><span class='comment'>--    - returns : a function which expects an XmlTree from the parser as input</span>
+<a name="line-50"></a><span class='comment'>--                     and returns a list of all errors found in the DTD.</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="validateDTD"></a><span class='definition'>validateDTD</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-53"></a><span class='definition'>validateDTD</span>
+<a name="line-54"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>getDTDSubset</span>
+<a name="line-55"></a>	       <span class='conop'>:-&gt;</span> <span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='varid'>validateDTD</span>
+<a name="line-56"></a>	     <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-57"></a>               <span class='conop'>:-&gt;</span> <span class='varid'>err</span> <span class='str'>"Can't validate DTD: There is no DOCTYPE declaration in the document."</span>
+<a name="line-58"></a>	     <span class='keyglyph'>]</span>
+<a name="line-59"></a><span class='comment'>-- |</span>
+<a name="line-60"></a><span class='comment'>-- Check if the document corresponds to the given DTD.</span>
+<a name="line-61"></a><span class='comment'>--</span>
+<a name="line-62"></a><span class='comment'>--</span>
+<a name="line-63"></a><span class='comment'>--    - returns : a function which expects a complete document as XmlTree input</span>
+<a name="line-64"></a><span class='comment'>--                     and returns a list of all errors found in the content part.</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-67"></a><span class='definition'>validateDoc</span> <span class='varid'>t</span>
+<a name="line-68"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>dtds</span>
+<a name="line-69"></a>	<span class='keyword'>then</span> <span class='varid'>err</span> <span class='str'>"Can't validate document: There is no DOCTYPE declaration in the document."</span>
+<a name="line-70"></a>	<span class='keyword'>else</span> <span class='layout'>(</span> <span class='conid'>DocValidation</span><span class='varop'>.</span><span class='varid'>validateDoc</span> <span class='varid'>dtdPart</span>
+<a name="line-71"></a>               <span class='varop'>+++</span>
+<a name="line-72"></a>	       <span class='conid'>IdValidation</span><span class='varop'>.</span><span class='varid'>validateIds</span> <span class='varid'>dtdPart</span>
+<a name="line-73"></a>	     <span class='layout'>)</span>
+<a name="line-74"></a>      <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-75"></a>      <span class='keyword'>where</span>
+<a name="line-76"></a>      <span class='varid'>dtds</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDSubset</span> <span class='varop'>.&gt;</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeDoublicateDefs</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-77"></a>      <span class='varid'>dtdPart</span>  <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varid'>dtds</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- |</span>
+<a name="line-80"></a><span class='comment'>-- filter for transforming a document with respect to the given DTD.</span>
+<a name="line-81"></a><span class='comment'>--</span>
+<a name="line-82"></a><span class='comment'>-- Validating parsers</span>
+<a name="line-83"></a><span class='comment'>-- are expected to  normalize attribute values and add default values.</span>
+<a name="line-84"></a><span class='comment'>-- This function should be called after a successful validation.</span>
+<a name="line-85"></a><span class='comment'>--</span>
+<a name="line-86"></a><span class='comment'>--</span>
+<a name="line-87"></a><span class='comment'>--    - returns : a function which expects a complete XML document tree</span>
+<a name="line-88"></a><span class='comment'>--                and returns the transformed XmlTree</span>
+<a name="line-89"></a>
+<a name="line-90"></a><a name="transform"></a><span class='definition'>transform</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-91"></a><span class='definition'>transform</span>
+<a name="line-92"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>
+<a name="line-93"></a>               <span class='conop'>:-&gt;</span> <span class='varid'>transformDoc</span>
+<a name="line-94"></a>	     <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-95"></a>	       <span class='conop'>:-&gt;</span> <span class='varid'>fatal</span> <span class='str'>"Can't transform document: No document root given"</span>
+<a name="line-96"></a>	     <span class='keyglyph'>]</span>
+<a name="line-97"></a>      <span class='keyword'>where</span>
+<a name="line-98"></a>      <span class='varid'>transformDoc</span> <span class='varid'>t</span>
+<a name="line-99"></a>	  <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>dtds</span>
+<a name="line-100"></a>	      <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varid'>t</span>
+<a name="line-101"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-102"></a>	      <span class='keyglyph'>=</span> <span class='conid'>DocTransformation</span><span class='varop'>.</span><span class='varid'>transform</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>dtds</span><span class='layout'>)</span> <span class='varid'>t</span>
+<a name="line-103"></a>	  <span class='keyword'>where</span>
+<a name="line-104"></a>	  <span class='varid'>dtds</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDSubset</span> <span class='varop'>.&gt;</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeDoublicateDefs</span> <span class='varop'>$</span> <span class='varid'>t</span>
+<a name="line-105"></a>
+<a name="line-106"></a><span class='comment'>-- |</span>
+<a name="line-107"></a><span class='comment'>-- Removes doublicate declarations from the DTD which first declaration is</span>
+<a name="line-108"></a><span class='comment'>-- binding. This is the case for ATTLIST and ENTITY declarations.</span>
+<a name="line-109"></a><span class='comment'>--</span>
+<a name="line-110"></a><span class='comment'>--</span>
+<a name="line-111"></a><span class='comment'>--    - returns : A function that replaces the children of DOCTYPE nodes by a list</span>
+<a name="line-112"></a><span class='comment'>--               where all multiple declarations are removed.</span>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="removeDoublicateDefs"></a><span class='definition'>removeDoublicateDefs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-115"></a><span class='definition'>removeDoublicateDefs</span>
+<a name="line-116"></a>    <span class='keyglyph'>=</span> <span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='varid'>removeDoublicateDefs</span>
+<a name="line-117"></a>
+<a name="line-118"></a><span class='comment'>--</span>
+<a name="line-119"></a><span class='comment'>-- selects the DTD part of a document</span>
+<a name="line-120"></a><span class='comment'>-- but only, if there is more than the internal part for the 4 predefined XML entities</span>
+<a name="line-121"></a>
+<a name="line-122"></a><a name="getDTDSubset"></a><span class='definition'>getDTDSubset</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-123"></a><span class='definition'>getDTDSubset</span>
+<a name="line-124"></a>    <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>isDoctype</span> <span class='varop'>.&gt;</span> <span class='varid'>hasRootName</span>
+<a name="line-125"></a>      <span class='keyword'>where</span>
+<a name="line-126"></a>      <span class='varid'>hasRootName</span> <span class='keyglyph'>=</span> <span class='varid'>isOf</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>a_name</span> <span class='varop'>.</span> <span class='varid'>attrlOfDTD</span><span class='layout'>)</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-Validator-XmlRE.html b/doc/hdoc/src/Text-XML-HXT-Validator-XmlRE.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-Validator-XmlRE.html
@@ -0,0 +1,115 @@
+<!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'>-- A module for regular expression matching, adapted for XML DTDs.</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- This module is based on the module RE.</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a><span class='comment'>-- Author .\\artin Schmidt</span>
+<a name="line-7"></a>
+<a name="line-8"></a><span class='comment'>-- Version : $Id: XmlRE.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $</span>
+<a name="line-9"></a>
+<a name="line-10"></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'>Validator</span><span class='varop'>.</span><span class='conid'>XmlRE</span>
+<a name="line-11"></a>    <span class='layout'>(</span> <span class='conid'>RE</span>
+<a name="line-12"></a>
+<a name="line-13"></a>    <span class='layout'>,</span> <span class='varid'>checkRE</span>
+<a name="line-14"></a>    <span class='layout'>,</span> <span class='varid'>matches</span>
+<a name="line-15"></a>    <span class='layout'>,</span> <span class='varid'>printRE</span>
+<a name="line-16"></a>
+<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>re_unit</span>
+<a name="line-18"></a>    <span class='layout'>,</span> <span class='varid'>re_zero</span>
+<a name="line-19"></a>    <span class='layout'>,</span> <span class='varid'>re_sym</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>re_rep</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>re_plus</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>re_opt</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>re_seq</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>re_alt</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>re_dot</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='comment'>-- import Debug.Trace(trace)</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'>Validator</span><span class='varop'>.</span><span class='conid'>RE</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>matches</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'>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'>XmlTree</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'>DOM</span><span class='varop'>.</span><span class='conid'>EditFilters</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>removeComment</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>
+<a name="line-38"></a>    <span class='layout'>)</span>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='comment'>-- |</span>
+<a name="line-41"></a><span class='comment'>-- Derives a regular expression with respect to a list of elements.</span>
+<a name="line-42"></a><span class='comment'>--</span>
+<a name="line-43"></a><span class='comment'>--    * 1.parameter re :  regular expression</span>
+<a name="line-44"></a><span class='comment'>--</span>
+<a name="line-45"></a><span class='comment'>--    - 2.parameter list :  list of elements to which the regular expression is applied</span>
+<a name="line-46"></a><span class='comment'>--</span>
+<a name="line-47"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-48"></a>
+<a name="line-49"></a><a name="matches"></a><span class='definition'>matches</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-50"></a><span class='definition'>matches</span> <span class='varid'>re</span> <span class='varid'>list</span>
+<a name="line-51"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>removeUnimportantStuff</span> <span class='varop'>$$</span> <span class='varid'>list</span><span class='layout'>)</span>
+<a name="line-52"></a>      <span class='keyword'>where</span>
+<a name="line-53"></a>      <span class='varid'>removeUnimportantStuff</span> <span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-54"></a>      <span class='varid'>removeUnimportantStuff</span> <span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span> <span class='layout'>(</span><span class='varid'>removeWhiteSpace</span> <span class='varop'>`o`</span> <span class='varid'>removeComment</span><span class='layout'>)</span>
+<a name="line-55"></a>      <span class='comment'>-- trace of growth of REs</span>
+<a name="line-56"></a>      <span class='comment'>-- delta' re el = delta (trace (("RE : " ++) . (++ "\n" ) . show $ re) re) el</span>
+<a name="line-57"></a>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- |</span>
+<a name="line-60"></a><span class='comment'>-- Derives a regular expression with respect to one element.</span>
+<a name="line-61"></a><span class='comment'>--</span>
+<a name="line-62"></a><span class='comment'>-- L(delta e x) = x \ L(e)</span>
+<a name="line-63"></a><span class='comment'>--</span>
+<a name="line-64"></a><span class='comment'>--    * 1.parameter re :  regular expression to be derived</span>
+<a name="line-65"></a><span class='comment'>--</span>
+<a name="line-66"></a><span class='comment'>--    - 2.parameter el :  the element on which the regular expression is applied</span>
+<a name="line-67"></a><span class='comment'>--</span>
+<a name="line-68"></a><span class='comment'>--    - returns : the derived regular expression</span>
+<a name="line-69"></a>
+<a name="line-70"></a><a name="delta"></a><span class='definition'>delta</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>RE</span> <span class='conid'>String</span>
+<a name="line-71"></a><span class='definition'>delta</span> <span class='varid'>re</span> <span class='varid'>el</span>
+<a name="line-72"></a>    <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>allowed</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>re</span>
+<a name="line-73"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>        <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>
+<a name="line-74"></a>        <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>		 <span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='varid'>m</span>
+<a name="line-75"></a>        <span class='conid'>RE_UNIT</span>			 <span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" unexpected."</span><span class='layout'>)</span>
+<a name="line-76"></a>        <span class='conid'>RE_SYM</span> <span class='varid'>sym</span>
+<a name="line-77"></a>    	    <span class='keyglyph'>|</span> <span class='varid'>sym</span> <span class='varop'>==</span> <span class='varid'>k_pcdata</span>	 <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>el</span> <span class='keyword'>in</span>
+<a name="line-78"></a>	                            <span class='keyword'>if</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>isXTextNode</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>isXCdataNode</span> <span class='varid'>node</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-79"></a>				    <span class='keyword'>then</span> <span class='varid'>re_unit</span>
+<a name="line-80"></a>				    <span class='keyword'>else</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Character data expected, but "</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" found."</span><span class='layout'>)</span>
+<a name="line-81"></a>       	    <span class='keyglyph'>|</span> <span class='varid'>expectedNode</span> <span class='varid'>el</span> <span class='varid'>sym</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-82"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>-&gt;</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sym</span> <span class='varop'>++</span><span class='str'>" expected, but "</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" found."</span><span class='layout'>)</span>
+<a name="line-83"></a>        <span class='conid'>RE_REP</span> <span class='varid'>e</span>                  <span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-84"></a>        <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>                 <span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>
+<a name="line-85"></a>        <span class='conid'>RE_OPT</span> <span class='varid'>e</span>                  <span class='keyglyph'>-&gt;</span> <span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span>
+<a name="line-86"></a>        <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>
+<a name="line-87"></a>       	    <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e</span>          <span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-88"></a>       	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>-&gt;</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-89"></a>        <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>                <span class='keyglyph'>-&gt;</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>el</span><span class='layout'>)</span>
+<a name="line-90"></a>        <span class='conid'>RE_DOT</span>                    <span class='keyglyph'>-&gt;</span> <span class='varid'>re_unit</span>
+<a name="line-91"></a>
+<a name="line-92"></a>    <span class='keyword'>where</span>
+<a name="line-93"></a>    <span class='varid'>expectedNode</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'>Bool</span>
+<a name="line-94"></a>    <span class='varid'>expectedNode</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>sym</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>sym</span>
+<a name="line-95"></a>    <span class='varid'>expectedNode</span> <span class='keyword'>_</span> <span class='keyword'>_</span>			  <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-96"></a>
+<a name="line-97"></a>    <span class='varid'>elemName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-98"></a>    <span class='varid'>elemName</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='str'>"element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-99"></a>    <span class='varid'>elemName</span> <span class='keyword'>_</span>				<span class='keyglyph'>=</span> <span class='str'>"character data"</span>
+<a name="line-100"></a>
+<a name="line-101"></a>    <span class='varid'>allowed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-102"></a>    <span class='varid'>allowed</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-103"></a>    <span class='varid'>allowed</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-104"></a>    <span class='varid'>allowed</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-105"></a>    <span class='varid'>allowed</span> <span class='keyword'>_</span>				<span class='keyglyph'>=</span> <span class='conid'>False</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-NavTree.html b/doc/hdoc/src/Text-XML-HXT-XPath-NavTree.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-NavTree.html
@@ -0,0 +1,89 @@
+<!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'>-- Navigable tree structure which allow a program to traverse</span>
+<a name="line-3"></a><span class='comment'>-- for XPath expressions</span>
+<a name="line-4"></a><span class='comment'>-- copied and modified from HXML (&lt;<a href="http://www.flightlab.com/~joe/hxml/">http://www.flightlab.com/~joe/hxml/</a>&gt;)</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'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</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'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</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'>NavTree</span>
+<a name="line-10"></a>    <span class='layout'>)</span>
+<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'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>
+<a name="line-16"></a>
+<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'>Interface</span>
+<a name="line-18"></a>    <span class='layout'>(</span> <span class='conid'>XNode</span>
+<a name="line-19"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>namespaceUri</span>
+<a name="line-21"></a>    <span class='layout'>)</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
+<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>isRoot</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>isElem</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>getName</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>getAttrl</span>
+<a name="line-28"></a>    <span class='layout'>)</span>
+<a name="line-29"></a>
+<a name="line-30"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-31"></a><span class='comment'>-- functions for representing XPath axes. All axes except the namespace-axis are supported</span>
+<a name="line-32"></a>
+<a name="line-33"></a>
+<a name="line-34"></a><a name="parentAxis"></a><span class='definition'>parentAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-35"></a><span class='definition'>parentAxis</span>		<span class='keyglyph'>=</span> <span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>upNT</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="ancestorAxis"></a><span class='definition'>ancestorAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-38"></a><span class='definition'>ancestorAxis</span> 		<span class='keyglyph'>=</span> <span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='varid'>u</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>u</span>		<span class='comment'>-- or: maybePlus upNT</span>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="ancestorOrSelfAxis"></a><span class='definition'>ancestorOrSelfAxis</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-41"></a><span class='definition'>ancestorOrSelfAxis</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span><span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='varid'>u</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span><span class='conop'>:</span><span class='varid'>u</span>	<span class='comment'>-- or: maybeStar upNT</span>
+<a name="line-42"></a>
+<a name="line-43"></a><a name="childAxis"></a><span class='definition'>childAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-44"></a><span class='definition'>childAxis</span>		<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>rightNT</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>downNT</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="descendantAxis"></a><span class='definition'>descendantAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-47"></a><span class='definition'>descendantAxis</span>		<span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varop'>.</span> <span class='varid'>preorderNT</span> <span class='comment'>-- concatMap preorderNT . childAxis</span>
+<a name="line-48"></a>
+<a name="line-49"></a><a name="descendantOrSelfAxis"></a><span class='definition'>descendantOrSelfAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-50"></a><span class='definition'>descendantOrSelfAxis</span>	<span class='keyglyph'>=</span> <span class='varid'>preorderNT</span>
+<a name="line-51"></a>
+<a name="line-52"></a><a name="followingSiblingAxis"></a><span class='definition'>followingSiblingAxis</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-53"></a><span class='definition'>followingSiblingAxis</span>	<span class='keyglyph'>=</span> <span class='varid'>maybePlus</span> <span class='varid'>rightNT</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="precedingSiblingAxis"></a><span class='definition'>precedingSiblingAxis</span>	<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-56"></a><span class='definition'>precedingSiblingAxis</span>	<span class='keyglyph'>=</span> <span class='varid'>maybePlus</span> <span class='varid'>leftNT</span>
+<a name="line-57"></a>
+<a name="line-58"></a><a name="selfAxis"></a><span class='definition'>selfAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-59"></a><span class='definition'>selfAxis</span>		<span class='keyglyph'>=</span> <span class='varid'>wrap</span>  <span class='keyword'>where</span> <span class='varid'>wrap</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="followingAxis"></a><span class='definition'>followingAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-62"></a><span class='definition'>followingAxis</span>		<span class='keyglyph'>=</span> <span class='varid'>preorderNT</span>     <span class='varop'>`o'`</span> <span class='varid'>followingSiblingAxis</span> <span class='varop'>`o'`</span> <span class='varid'>ancestorOrSelfAxis</span>
+<a name="line-63"></a>
+<a name="line-64"></a><a name="precedingAxis"></a><span class='definition'>precedingAxis</span>		<span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-65"></a><span class='definition'>precedingAxis</span>		<span class='keyglyph'>=</span> <span class='varid'>revPreorderNT</span>  <span class='varop'>`o'`</span> <span class='varid'>precedingSiblingAxis</span> <span class='varop'>`o'`</span> <span class='varid'>ancestorOrSelfAxis</span>
+<a name="line-66"></a>
+<a name="line-67"></a>
+<a name="line-68"></a><a name="attributeAxis"></a><span class='definition'>attributeAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='conid'>XNode</span><span class='keyglyph'>]</span>
+<a name="line-69"></a><span class='definition'>attributeAxis</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>xt</span> <span class='varid'>a</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-70"></a>    <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>xt</span>
+<a name="line-71"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-72"></a>      <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isRoot</span> <span class='varid'>xt</span><span class='layout'>)</span>
+<a name="line-73"></a>	<span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>attr</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>attr</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>a</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>al</span>
+<a name="line-74"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-75"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-76"></a>    <span class='keyword'>where</span>
+<a name="line-77"></a>    <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>/=</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>namespaceUri</span> <span class='varop'>.</span> <span class='varid'>getName</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>xt</span>
+<a name="line-78"></a>
+<a name="line-79"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathArithmetic.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathArithmetic.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathArithmetic.html
@@ -0,0 +1,176 @@
+<!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'>-- The module contains arithmetic calculations according the IEEE 754 standard</span>
+<a name="line-3"></a><span class='comment'>-- for plus, minus, unary minus, multiplication, modulo and division.</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathArithmetic</span>
+<a name="line-8"></a>    <span class='layout'>(</span> <span class='varid'>xPathMulti</span>
+<a name="line-9"></a>    <span class='layout'>,</span> <span class='varid'>xPathMod</span>
+<a name="line-10"></a>    <span class='layout'>,</span> <span class='varid'>xPathDiv</span>
+<a name="line-11"></a>    <span class='layout'>,</span> <span class='varid'>xPathAdd</span>
+<a name="line-12"></a>    <span class='layout'>,</span> <span class='varid'>xPathUnary</span>
+<a name="line-13"></a>    <span class='layout'>)</span>
+<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'>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-17"></a>
+<a name="line-18"></a>
+<a name="line-19"></a><span class='comment'>-- |</span>
+<a name="line-20"></a><span class='comment'>-- Unary minus: the value 'NaN' is not calculatable and returned unchanged,</span>
+<a name="line-21"></a><span class='comment'>-- all other values can be denied.</span>
+<a name="line-22"></a><span class='comment'>--</span>
+<a name="line-23"></a>
+<a name="line-24"></a><a name="xPathUnary"></a><span class='definition'>xPathUnary</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>
+<a name="line-25"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span>  <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='comment'>-</span><span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-26"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='layout'>)</span>          <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>
+<a name="line-27"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NaN</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
+<a name="line-28"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-29"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-30"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-31"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-32"></a><span class='definition'>xPathUnary</span> <span class='keyword'>_</span>                     <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to unaryEval without a number"</span>
+<a name="line-33"></a>
+<a name="line-34"></a>
+<a name="line-35"></a><span class='comment'>-- |</span>
+<a name="line-36"></a><span class='comment'>-- Multiplication</span>
+<a name="line-37"></a><span class='comment'>--</span>
+<a name="line-38"></a>
+<a name="line-39"></a><a name="xPathMulti"></a><span class='definition'>xPathMulti</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-40"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-41"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>*</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-42"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-43"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-44"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-45"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-46"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-47"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-48"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>
+<a name="line-49"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-50"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-51"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>
+<a name="line-52"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-53"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-54"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-55"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-56"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-57"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-58"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-59"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-60"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>
+<a name="line-61"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-62"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-63"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>
+<a name="line-64"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-65"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-66"></a><span class='definition'>xPathMulti</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-67"></a>
+<a name="line-68"></a>
+<a name="line-69"></a><span class='comment'>-- |</span>
+<a name="line-70"></a><span class='comment'>-- Modulo</span>
+<a name="line-71"></a><span class='comment'>--</span>
+<a name="line-72"></a>
+<a name="line-73"></a><a name="xPathMod"></a><span class='definition'>xPathMod</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-74"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-75"></a>    <span class='keyglyph'>|</span> <span class='varid'>floatMod</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-76"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>floatMod</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-77"></a>      <span class='keyword'>where</span>
+<a name="line-78"></a>      <span class='varid'>floatMod</span> <span class='varid'>x</span> <span class='varid'>y</span>
+<a name="line-79"></a>        <span class='keyglyph'>|</span> <span class='varid'>x</span><span class='varop'>/</span><span class='varid'>y</span> <span class='varop'>&gt;=</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='comment'>-</span> <span class='varid'>y</span> <span class='varop'>*</span> <span class='varid'>fromInteger</span><span class='layout'>(</span><span class='varid'>floor</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='varop'>/</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-80"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span><span class='varid'>x</span> <span class='comment'>-</span> <span class='varid'>y</span> <span class='varop'>*</span> <span class='varid'>fromInteger</span><span class='layout'>(</span><span class='varid'>ceiling</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='varop'>/</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-81"></a>
+<a name="line-82"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>
+<a name="line-83"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-84"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>
+<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-86"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>
+<a name="line-87"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-88"></a><span class='definition'>xPathMod</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-89"></a>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- |</span>
+<a name="line-92"></a><span class='comment'>-- Division: the divison-operator is not according the IEEE 754 standard,</span>
+<a name="line-93"></a><span class='comment'>-- it calculates the same as the % operator in Java and ECMAScript</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="xPathDiv"></a><span class='definition'>xPathDiv</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-97"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-98"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>/</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-99"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-100"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-101"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-102"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-103"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-104"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-105"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>
+<a name="line-106"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-107"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-108"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>
+<a name="line-109"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-110"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-111"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-112"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-113"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-114"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>
+<a name="line-115"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-116"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-117"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>
+<a name="line-118"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='num'>0</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-119"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-120"></a><span class='definition'>xPathDiv</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>  <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-121"></a>
+<a name="line-122"></a>
+<a name="line-123"></a><span class='comment'>-- |</span>
+<a name="line-124"></a><span class='comment'>-- Plus and minus</span>
+<a name="line-125"></a><span class='comment'>--</span>
+<a name="line-126"></a><span class='comment'>--    1.parameter op :  plus or minus operation</span>
+<a name="line-127"></a><span class='comment'>--</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="xPathAdd"></a><span class='definition'>xPathAdd</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-130"></a><span class='definition'>xPathAdd</span> <span class='conid'>Plus</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-131"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='varop'>+</span> <span class='varid'>b</span> <span class='varop'>==</span> <span class='num'>0</span>
+<a name="line-132"></a>        <span class='keyword'>then</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-133"></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'>a</span><span class='varop'>+</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-134"></a><span class='definition'>xPathAdd</span> <span class='conid'>Minus</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='comment'>-</span> <span class='varid'>b</span> <span class='varop'>==</span> <span class='num'>0</span>
+<a name="line-136"></a>        <span class='keyword'>then</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-137"></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'>a</span><span class='comment'>-</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-138"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
+<a name="line-139"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
+<a name="line-140"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='keyword'>_</span>                   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-141"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='keyword'>_</span>                   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-142"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>                   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>
+<a name="line-143"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>                   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>
+<a name="line-144"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-145"></a><span class='definition'>xPathAdd</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-146"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Minus</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='comment'>-</span><span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-147"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-148"></a><span class='definition'>xPathAdd</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-149"></a>    <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Minus</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='comment'>-</span><span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-150"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-151"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-152"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-153"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-154"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-155"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-156"></a><span class='definition'>xPathAdd</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>
+<a name="line-157"></a>
+<a name="line-158"></a>
+<a name="line-159"></a><a name="xPathSpez"></a><span class='comment'>-- |</span>
+<a name="line-160"></a><span class='comment'>-- Identically results of the operators are combined to get</span>
+<a name="line-161"></a><span class='comment'>-- as few as possible combinations of the special IEEE values</span>
+<a name="line-162"></a><span class='comment'>--</span>
+<a name="line-163"></a><span class='definition'>xPathSpez</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-164"></a><span class='definition'>xPathSpez</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>
+<a name="line-165"></a><span class='definition'>xPathSpez</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>
+<a name="line-166"></a><span class='definition'>xPathSpez</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>            <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathDataTypes.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathDataTypes.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathDataTypes.html
@@ -0,0 +1,295 @@
+<!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     : Text.XML.HXT.XPath.XPathDataTypes
+<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>
+<a name="line-12"></a>   The core data types of XPath.
+<a name="line-13"></a>   The Type NodeSet is based on the module "NavTree" which was adapted from
+<a name="line-14"></a>   HXML (&lt;<a href="http://www.flightlab.com/~joe/hxml/">http://www.flightlab.com/~joe/hxml/</a>&gt;)
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</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'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</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'>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'>NavTree</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'>Interface</span>
+<a name="line-28"></a>
+<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'>-- Expr</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- | Represents expression</span>
+<a name="line-34"></a><span class='comment'>-- </span>
+<a name="line-35"></a>
+<a name="line-36"></a><a name="Expr"></a><span class='keyword'>data</span> <span class='conid'>Expr</span>     <span class='keyglyph'>=</span> <span class='conid'>GenExpr</span> <span class='conid'>Op</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>             <span class='comment'>-- ^ generic expression with an operator and one or more operands</span>
+<a name="line-37"></a>              <span class='keyglyph'>|</span> <span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>Expr</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>LocationPath</span><span class='layout'>)</span>
+<a name="line-38"></a>	                                      <span class='comment'>-- ^ a path expression contains an optional filter-expression</span>
+<a name="line-39"></a>					      <span class='comment'>-- or an optional locationpath. one expression is urgently</span>
+<a name="line-40"></a>					      <span class='comment'>-- necessary, both are possible</span>
+<a name="line-41"></a>              <span class='keyglyph'>|</span> <span class='conid'>FilterExpr</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>             <span class='comment'>-- ^ filter-expression with zero or more predicates</span>
+<a name="line-42"></a>              <span class='keyglyph'>|</span> <span class='conid'>VarExpr</span> <span class='conid'>VarName</span>               <span class='comment'>-- ^ variable</span>
+<a name="line-43"></a>              <span class='keyglyph'>|</span> <span class='conid'>LiteralExpr</span> <span class='conid'>Literal</span>           <span class='comment'>-- ^ string</span>
+<a name="line-44"></a>              <span class='keyglyph'>|</span> <span class='conid'>NumberExpr</span> <span class='conid'>XPNumber</span>           <span class='comment'>-- ^ number</span>
+<a name="line-45"></a>              <span class='keyglyph'>|</span> <span class='conid'>FctExpr</span> <span class='conid'>FctName</span> <span class='conid'>FctArguments</span>  <span class='comment'>-- ^ a function with a name and an optional list of arguments</span>
+<a name="line-46"></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>
+<a name="line-47"></a>
+<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><span class='comment'>-- Op</span>
+<a name="line-52"></a>
+<a name="line-53"></a><span class='comment'>-- | Represents XPath operators</span>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="Op"></a><span class='keyword'>data</span> <span class='conid'>Op</span>       <span class='keyglyph'>=</span> <span class='conid'>Or</span> <span class='keyglyph'>|</span> <span class='conid'>And</span> <span class='keyglyph'>|</span> <span class='conid'>Eq</span> <span class='keyglyph'>|</span> <span class='conid'>NEq</span> <span class='keyglyph'>|</span> <span class='conid'>Less</span> <span class='keyglyph'>|</span> <span class='conid'>Greater</span> <span class='keyglyph'>|</span> <span class='conid'>LessEq</span>
+<a name="line-56"></a>              <span class='keyglyph'>|</span> <span class='conid'>GreaterEq</span> <span class='keyglyph'>|</span><span class='conid'>Plus</span> <span class='keyglyph'>|</span> <span class='conid'>Minus</span> <span class='keyglyph'>|</span> <span class='conid'>Div</span> <span class='keyglyph'>|</span> <span class='conid'>Mod</span> <span class='keyglyph'>|</span> <span class='conid'>Mult</span><span class='keyglyph'>|</span> <span class='conid'>Unary</span> <span class='keyglyph'>|</span> <span class='conid'>Union</span>
+<a name="line-57"></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>
+<a name="line-58"></a>
+<a name="line-59"></a>
+<a name="line-60"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-61"></a><span class='comment'>--</span>
+<a name="line-62"></a><span class='comment'>-- |</span>
+<a name="line-63"></a><span class='comment'>-- Represents a floating-point number according the IEEE 754 standard</span>
+<a name="line-64"></a><span class='comment'>--</span>
+<a name="line-65"></a><span class='comment'>-- The standard includes a special Not-a-Number (NaN) value,</span>
+<a name="line-66"></a><span class='comment'>-- positive and negative infinity, positive and negative zero.</span>
+<a name="line-67"></a>
+<a name="line-68"></a><a name="XPNumber"></a><span class='keyword'>data</span> <span class='conid'>XPNumber</span> <span class='keyglyph'>=</span> <span class='conid'>Float</span> <span class='conid'>Float</span>  <span class='comment'>-- ^ floating-point number</span>
+<a name="line-69"></a>              <span class='keyglyph'>|</span> <span class='conid'>NaN</span>          <span class='comment'>-- ^ not-a-number</span>
+<a name="line-70"></a>              <span class='keyglyph'>|</span> <span class='conid'>NegInf</span>       <span class='comment'>-- ^ negative infinity</span>
+<a name="line-71"></a>              <span class='keyglyph'>|</span> <span class='conid'>Neg0</span>         <span class='comment'>-- ^ negative zero</span>
+<a name="line-72"></a>              <span class='keyglyph'>|</span> <span class='conid'>Pos0</span>         <span class='comment'>-- ^ positive zero</span>
+<a name="line-73"></a>              <span class='keyglyph'>|</span> <span class='conid'>PosInf</span>       <span class='comment'>-- ^ positive infinity</span>
+<a name="line-74"></a>
+<a name="line-75"></a>
+<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>XPNumber</span>
+<a name="line-77"></a>    <span class='keyword'>where</span>
+<a name="line-78"></a>    <span class='varid'>show</span> <span class='conid'>NaN</span>           <span class='keyglyph'>=</span> <span class='str'>"NaN"</span>
+<a name="line-79"></a>    <span class='varid'>show</span> <span class='conid'>NegInf</span>        <span class='keyglyph'>=</span> <span class='str'>"-Infinity"</span>
+<a name="line-80"></a>    <span class='varid'>show</span> <span class='conid'>Neg0</span>          <span class='keyglyph'>=</span> <span class='str'>"-0"</span>
+<a name="line-81"></a>    <span class='varid'>show</span> <span class='conid'>Pos0</span>          <span class='keyglyph'>=</span> <span class='str'>"0"</span>
+<a name="line-82"></a>    <span class='varid'>show</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'>show</span> <span class='varid'>f</span>
+<a name="line-83"></a>    <span class='varid'>show</span> <span class='conid'>PosInf</span>        <span class='keyglyph'>=</span> <span class='str'>"Infinity"</span>
+<a name="line-84"></a>
+<a name="line-85"></a>
+<a name="line-86"></a>
+<a name="line-87"></a><span class='comment'>-- Negative zero is equal to positive zero,</span>
+<a name="line-88"></a><span class='comment'>-- equality test with NaN-value is always false</span>
+<a name="line-89"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>XPNumber</span>
+<a name="line-90"></a>    <span class='keyword'>where</span>
+<a name="line-91"></a>    <span class='conid'>NegInf</span>  <span class='varop'>==</span> <span class='conid'>NegInf</span>  <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-92"></a>    <span class='conid'>Pos0</span>    <span class='varop'>==</span> <span class='conid'>Neg0</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-93"></a>    <span class='conid'>Neg0</span>    <span class='varop'>==</span> <span class='conid'>Pos0</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-94"></a>    <span class='conid'>Pos0</span>    <span class='varop'>==</span> <span class='conid'>Pos0</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-95"></a>    <span class='conid'>Neg0</span>    <span class='varop'>==</span> <span class='conid'>Neg0</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-96"></a>    <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='conid'>Float</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='varid'>g</span>
+<a name="line-97"></a>    <span class='conid'>PosInf</span>  <span class='varop'>==</span> <span class='conid'>PosInf</span>  <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-98"></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-99"></a>
+<a name="line-100"></a>
+<a name="line-101"></a><span class='keyword'>instance</span> <span class='conid'>Ord</span> <span class='conid'>XPNumber</span>
+<a name="line-102"></a>    <span class='keyword'>where</span>
+<a name="line-103"></a>    <span class='varid'>a</span>       <span class='varop'>&lt;=</span> <span class='varid'>b</span>       <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>&lt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>==</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-104"></a>    <span class='varid'>a</span>       <span class='varop'>&gt;=</span> <span class='varid'>b</span>       <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>&gt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>==</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-105"></a>    <span class='varid'>a</span>       <span class='varop'>&gt;</span>  <span class='varid'>b</span>       <span class='keyglyph'>=</span>  <span class='varid'>b</span> <span class='varop'>&lt;</span> <span class='varid'>a</span>
+<a name="line-106"></a>
+<a name="line-107"></a>    <span class='conid'>NaN</span>     <span class='varop'>&lt;</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-108"></a>    <span class='keyword'>_</span>       <span class='varop'>&lt;</span> <span class='conid'>NaN</span>      <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-109"></a>
+<a name="line-110"></a>    <span class='keyword'>_</span>       <span class='varop'>&lt;</span> <span class='conid'>NegInf</span>   <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-111"></a>    <span class='conid'>NegInf</span>  <span class='varop'>&lt;</span> <span class='keyword'>_</span>	       <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-112"></a>
+<a name="line-113"></a>    <span class='conid'>Neg0</span>    <span class='varop'>&lt;</span> <span class='conid'>Neg0</span>     <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-114"></a>    <span class='conid'>Pos0</span>    <span class='varop'>&lt;</span> <span class='conid'>Pos0</span>     <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-115"></a>    <span class='conid'>Pos0</span>    <span class='varop'>&lt;</span> <span class='conid'>Neg0</span>     <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-116"></a>    <span class='conid'>Neg0</span>    <span class='varop'>&lt;</span> <span class='conid'>Pos0</span>     <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-117"></a>
+<a name="line-118"></a>    <span class='conid'>Neg0</span>    <span class='varop'>&lt;</span> <span class='conid'>Float</span> <span class='varid'>f</span>  <span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'>&lt;</span> <span class='varid'>f</span>
+<a name="line-119"></a>    <span class='conid'>Pos0</span>    <span class='varop'>&lt;</span> <span class='conid'>Float</span> <span class='varid'>f</span>  <span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'>&lt;</span> <span class='varid'>f</span>
+<a name="line-120"></a>    <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='conid'>Neg0</span>     <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='num'>0</span>
+<a name="line-121"></a>    <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='conid'>Pos0</span>     <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='num'>0</span>
+<a name="line-122"></a>
+<a name="line-123"></a>    <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='conid'>Float</span> <span class='varid'>g</span>  <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='varid'>g</span>
+<a name="line-124"></a>
+<a name="line-125"></a>    <span class='conid'>PosInf</span>  <span class='varop'>&lt;</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-126"></a>    <span class='keyword'>_</span>       <span class='varop'>&lt;</span> <span class='conid'>PosInf</span>   <span class='keyglyph'>=</span> <span class='conid'>True</span>
+<a name="line-127"></a>
+<a name="line-128"></a>
+<a name="line-129"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-130"></a><span class='comment'>-- | Represents location path</span>
+<a name="line-131"></a><span class='comment'>--</span>
+<a name="line-132"></a><span class='comment'>-- A location path consists of a sequence of one or more location steps.</span>
+<a name="line-133"></a>
+<a name="line-134"></a><a name="LocationPath"></a><span class='keyword'>data</span> <span class='conid'>LocationPath</span> <span class='keyglyph'>=</span> <span class='conid'>LocPath</span> <span class='conid'>Path</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>
+<a name="line-135"></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>
+<a name="line-136"></a>
+<a name="line-137"></a>
+<a name="line-138"></a><span class='comment'>-- -----------------------------------------------------------------------------                  </span>
+<a name="line-139"></a><span class='comment'>-- |</span>
+<a name="line-140"></a><span class='comment'>-- A location path is either a relative or an absolute path.</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="Path"></a><span class='keyword'>data</span> <span class='conid'>Path</span>         <span class='keyglyph'>=</span> <span class='conid'>Rel</span> <span class='keyglyph'>|</span> <span class='conid'>Abs</span>
+<a name="line-143"></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>
+<a name="line-144"></a>					
+<a name="line-145"></a>
+<a name="line-146"></a><span class='comment'>-- | Represents location step</span>
+<a name="line-147"></a><span class='comment'>-- </span>
+<a name="line-148"></a><span class='comment'>-- A location step consists of an axis, a node-test and zero or more predicates.</span>
+<a name="line-149"></a>
+<a name="line-150"></a><a name="XStep"></a><span class='keyword'>data</span> <span class='conid'>XStep</span>        <span class='keyglyph'>=</span> <span class='conid'>Step</span> <span class='conid'>AxisSpec</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>
+<a name="line-151"></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>
+<a name="line-152"></a>
+<a name="line-153"></a>			
+<a name="line-154"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-155"></a><span class='comment'>--</span>
+<a name="line-156"></a><span class='comment'>-- AxisSpec</span>
+<a name="line-157"></a>
+<a name="line-158"></a><span class='comment'>-- | Represents XPath axis</span>
+<a name="line-159"></a>
+<a name="line-160"></a><a name="AxisSpec"></a><span class='keyword'>data</span> <span class='conid'>AxisSpec</span>     <span class='keyglyph'>=</span> <span class='conid'>Ancestor</span> <span class='keyglyph'>|</span> <span class='conid'>AncestorOrSelf</span> <span class='keyglyph'>|</span> <span class='conid'>Attribute</span> <span class='keyglyph'>|</span> <span class='conid'>Child</span> <span class='keyglyph'>|</span> <span class='conid'>Descendant</span>  
+<a name="line-161"></a>                  <span class='keyglyph'>|</span> <span class='conid'>DescendantOrSelf</span> <span class='keyglyph'>|</span> <span class='conid'>Following</span> <span class='keyglyph'>|</span> <span class='conid'>FollowingSibling</span>
+<a name="line-162"></a>                  <span class='keyglyph'>|</span> <span class='conid'>Namespace</span> <span class='keyglyph'>|</span> <span class='conid'>Parent</span> <span class='keyglyph'>|</span> <span class='conid'>Preceding</span> <span class='keyglyph'>|</span> <span class='conid'>PrecedingSibling</span> <span class='keyglyph'>|</span> <span class='conid'>Self</span>
+<a name="line-163"></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>
+<a name="line-164"></a>
+<a name="line-165"></a>
+<a name="line-166"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-167"></a><span class='comment'>--</span>
+<a name="line-168"></a><span class='comment'>-- NodeTest</span>
+<a name="line-169"></a>
+<a name="line-170"></a><span class='comment'>-- | Represents XPath node-tests</span>
+<a name="line-171"></a>
+<a name="line-172"></a><a name="NodeTest"></a><span class='comment'>--data NodeTest     = NameTest Name     -- ^ name-test</span>
+<a name="line-173"></a><a name="NodeTest"></a><span class='keyword'>data</span> <span class='conid'>NodeTest</span>     <span class='keyglyph'>=</span> <span class='conid'>NameTest</span> <span class='conid'>QName</span>     <span class='comment'>-- ^ name-test</span>
+<a name="line-174"></a>                  <span class='keyglyph'>|</span> <span class='conid'>PI</span> <span class='conid'>String</span>           <span class='comment'>-- ^ processing-instruction-test with a literal argument</span>
+<a name="line-175"></a>                  <span class='keyglyph'>|</span> <span class='conid'>TypeTest</span> <span class='conid'>XPathNode</span>  <span class='comment'>-- ^ all nodetype-tests</span>
+<a name="line-176"></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>
+<a name="line-177"></a>
+<a name="line-178"></a>
+<a name="line-179"></a>
+<a name="line-180"></a>
+<a name="line-181"></a>
+<a name="line-182"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-183"></a><span class='comment'>--</span>
+<a name="line-184"></a><span class='comment'>-- XPathNode</span>
+<a name="line-185"></a>
+<a name="line-186"></a><span class='comment'>-- | Represents nodetype-tests</span>
+<a name="line-187"></a>
+<a name="line-188"></a><a name="XPathNode"></a><span class='keyword'>data</span> <span class='conid'>XPathNode</span>    <span class='keyglyph'>=</span> <span class='conid'>XPNode</span>            <span class='comment'>-- ^ all 7 nodetypes</span>
+<a name="line-189"></a>                                      <span class='comment'>--  (root, element, attribute, namespace, pi, comment, text)</span>
+<a name="line-190"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPCommentNode</span>     <span class='comment'>-- ^ comment-nodes</span>
+<a name="line-191"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPPINode</span>          <span class='comment'>-- ^ processing-instruction-nodes</span>
+<a name="line-192"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPTextNode</span>        <span class='comment'>-- ^ text-nodes: cdata, character data</span>
+<a name="line-193"></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>
+<a name="line-194"></a>
+<a name="line-195"></a>
+<a name="line-196"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-197"></a><span class='comment'>--</span>
+<a name="line-198"></a><span class='comment'>-- useful type definitions</span>
+<a name="line-199"></a>
+<a name="line-200"></a><a name="Name"></a><span class='keyword'>type</span> <span class='conid'>Name</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>NamePrefix</span><span class='layout'>,</span> <span class='conid'>LocalName</span><span class='layout'>)</span>
+<a name="line-201"></a><a name="NamePrefix"></a><span class='keyword'>type</span> <span class='conid'>NamePrefix</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-202"></a><a name="LocalName"></a><span class='keyword'>type</span> <span class='conid'>LocalName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-203"></a>
+<a name="line-204"></a><a name="VarName"></a><span class='comment'>-- | Variable name</span>
+<a name="line-205"></a><a name="VarName"></a><span class='keyword'>type</span> <span class='conid'>VarName</span>      <span class='keyglyph'>=</span> <span class='conid'>Name</span>
+<a name="line-206"></a>
+<a name="line-207"></a><a name="Literal"></a><span class='comment'>-- | a string</span>
+<a name="line-208"></a><a name="Literal"></a><span class='keyword'>type</span> <span class='conid'>Literal</span>      <span class='keyglyph'>=</span> <span class='conid'>String</span>					
+<a name="line-209"></a>
+<a name="line-210"></a><a name="FctName"></a><span class='comment'>-- | Function name</span>
+<a name="line-211"></a><a name="FctName"></a><span class='keyword'>type</span> <span class='conid'>FctName</span>      <span class='keyglyph'>=</span> <span class='conid'>String</span>
+<a name="line-212"></a>
+<a name="line-213"></a><a name="FctArguments"></a><span class='comment'>-- | Function arguments</span>
+<a name="line-214"></a><a name="FctArguments"></a><span class='keyword'>type</span> <span class='conid'>FctArguments</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>
+<a name="line-215"></a>
+<a name="line-216"></a><a name="Context"></a><span class='comment'>-- | Evaluation context</span>
+<a name="line-217"></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='conid'>ConPos</span> <span class='layout'>,</span><span class='conid'>ConLen</span><span class='layout'>,</span> <span class='conid'>ConNode</span><span class='layout'>)</span>
+<a name="line-218"></a>
+<a name="line-219"></a><a name="ConPos"></a><span class='comment'>-- | Context position</span>
+<a name="line-220"></a><a name="ConPos"></a><span class='keyword'>type</span> <span class='conid'>ConPos</span>       <span class='keyglyph'>=</span> <span class='conid'>Int</span>
+<a name="line-221"></a>
+<a name="line-222"></a><a name="ConLen"></a><span class='comment'>-- | Context length</span>
+<a name="line-223"></a><a name="ConLen"></a><span class='keyword'>type</span> <span class='conid'>ConLen</span>       <span class='keyglyph'>=</span> <span class='conid'>Int</span>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="ConNode"></a><span class='comment'>-- | Context node</span>
+<a name="line-226"></a><a name="ConNode"></a><span class='keyword'>type</span> <span class='conid'>ConNode</span>      <span class='keyglyph'>=</span> <span class='conid'>NavXmlTree</span>
+<a name="line-227"></a>
+<a name="line-228"></a>
+<a name="line-229"></a>
+<a name="line-230"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-231"></a><span class='comment'>--</span>
+<a name="line-232"></a><span class='comment'>-- XPathValue</span>
+<a name="line-233"></a>
+<a name="line-234"></a><span class='comment'>-- | Represents XPath results</span>
+<a name="line-235"></a>
+<a name="line-236"></a><a name="XPathValue"></a><span class='keyword'>data</span> <span class='conid'>XPathValue</span>   <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='conid'>NodeSet</span>      <span class='comment'>-- ^ node-set</span>
+<a name="line-237"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPVBool</span> <span class='conid'>Bool</span>         <span class='comment'>-- ^ boolean value</span>
+<a name="line-238"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPVNumber</span> <span class='conid'>XPNumber</span>   <span class='comment'>-- ^ number according the IEEE 754 standard</span>
+<a name="line-239"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPVString</span> <span class='conid'>String</span>     <span class='comment'>-- ^ string value</span>
+<a name="line-240"></a>                  <span class='keyglyph'>|</span> <span class='conid'>XPVError</span> <span class='conid'>String</span>      <span class='comment'>-- ^ error message with text</span>
+<a name="line-241"></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-242"></a>
+<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><span class='comment'>-- Basic types for navigable tree and filters</span>
+<a name="line-247"></a>
+<a name="line-248"></a><span class='comment'>-- | Node of navigable tree representation</span>
+<a name="line-249"></a>
+<a name="line-250"></a><a name="NavXmlTree"></a><span class='keyword'>type</span> <span class='conid'>NavXmlTree</span>   <span class='keyglyph'>=</span> <span class='conid'>NavTree</span> <span class='conid'>XNode</span>
+<a name="line-251"></a>
+<a name="line-252"></a><span class='comment'>-- | List of nodes of navigable tree representation</span>
+<a name="line-253"></a>
+<a name="line-254"></a><a name="NavXmlTrees"></a><span class='keyword'>type</span> <span class='conid'>NavXmlTrees</span>  <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>
+<a name="line-255"></a>
+<a name="line-256"></a><span class='comment'>-- | Type synonym for a list of navigable tree representation</span>
+<a name="line-257"></a>
+<a name="line-258"></a><a name="NodeSet"></a><span class='keyword'>type</span> <span class='conid'>NodeSet</span>      <span class='keyglyph'>=</span> <span class='conid'>NavXmlTrees</span>
+<a name="line-259"></a>
+<a name="line-260"></a><span class='comment'>-- | A functions that takes a XPath result and returns a XPath result</span>
+<a name="line-261"></a>
+<a name="line-262"></a><a name="XPathFilter"></a><span class='keyword'>type</span> <span class='conid'>XPathFilter</span>  <span class='keyglyph'>=</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-263"></a>
+<a name="line-264"></a>
+<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'>-- Env</span>
+<a name="line-269"></a>
+<a name="line-270"></a><span class='comment'>-- | XPath environment</span>
+<a name="line-271"></a><span class='comment'>--</span>
+<a name="line-272"></a><span class='comment'>-- All variables are stored in the environment,</span>
+<a name="line-273"></a><span class='comment'>-- each variable name is bound to a value.</span>
+<a name="line-274"></a>
+<a name="line-275"></a><a name="VarTab"></a><span class='keyword'>type</span> <span class='conid'>VarTab</span>       <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>VarName</span><span class='layout'>,</span> <span class='conid'>XPathValue</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-276"></a><a name="KeyTab"></a><span class='keyword'>type</span> <span class='conid'>KeyTab</span>       <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>QName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NavXmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-277"></a>
+<a name="line-278"></a><a name="Env"></a><span class='keyword'>type</span> <span class='conid'>Env</span>          <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>VarTab</span><span class='layout'>,</span> <span class='conid'>KeyTab</span><span class='layout'>)</span>
+<a name="line-279"></a>
+<a name="line-280"></a><a name="varEnv"></a><span class='definition'>varEnv</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span>
+<a name="line-281"></a><span class='definition'>varEnv</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>"name"</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span><span class='layout'>)</span> <span class='keyglyph'>]</span>
+<a name="line-282"></a>	 <span class='layout'>,</span> <span class='conid'>[]</span>
+<a name="line-283"></a>         <span class='layout'>)</span>
+<a name="line-284"></a>
+<a name="line-285"></a><span class='comment'>-- -----------------------------------------------------------------------------</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html
@@ -0,0 +1,672 @@
+<!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     : Text.XML.HXT.XPath.XPathEval
+<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: XPathEval.hs,v 1.8 2006/10/12 11:51:29 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   The core functions for evaluating the different types of XPath expressions.
+<a name="line-14"></a>   Each 'Expr'-constructor is mapped to an evaluation function.
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='varid'>getXPath</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>getXPathWithNsEnv</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>getXPathSubTrees</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>getXPathSubTreesWithNsEnv</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>getXPathNodeSet</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>getXPathNodeSetWithNsEnv</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>evalExpr</span>
+<a name="line-28"></a>    <span class='layout'>)</span>
+<a name="line-29"></a><span class='keyword'>where</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'>XPathFct</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><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'>XPathArithmetic</span>
+<a name="line-34"></a>    <span class='layout'>(</span> <span class='varid'>xPathAdd</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>xPathDiv</span>
+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>xPathMod</span>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>xPathMulti</span>
+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>xPathUnary</span>
+<a name="line-39"></a>    <span class='layout'>)</span>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
+<a name="line-41"></a>    <span class='layout'>(</span> <span class='varid'>parseXPath</span> <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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>
+<a name="line-44"></a>    <span class='layout'>(</span> <span class='varid'>xPValue2XmlTrees</span> <span class='layout'>)</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToNodeSet</span>
+<a name="line-47"></a>    <span class='layout'>(</span> <span class='varid'>xPValue2NodeSet</span>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>emptyNodeSet</span>
+<a name="line-49"></a>    <span class='layout'>)</span>
+<a name="line-50"></a>
+<a name="line-51"></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-52"></a>    <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'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-55"></a>    <span class='layout'>(</span> <span class='varid'>fromJust</span> <span class='layout'>)</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- the DOM functions</span>
+<a name="line-60"></a>
+<a name="line-61"></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-62"></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-63"></a>
+<a name="line-64"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-65"></a>
+<a name="line-66"></a><span class='comment'>-- the list arrow functions</span>
+<a name="line-67"></a>
+<a name="line-68"></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'>&gt;&gt;&gt;</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;^</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-69"></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>		<span class='layout'>(</span> <span class='varid'>arrL</span><span class='layout'>,</span> <span class='varid'>isA</span> <span class='layout'>)</span>
+<a name="line-70"></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>    	<span class='layout'>(</span> <span class='varid'>filterA</span> <span class='layout'>)</span>
+<a name="line-71"></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='layout'>(</span> <span class='varid'>runLA</span> <span class='layout'>)</span>
+<a name="line-72"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span>
+<a name="line-73"></a>       <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>		<span class='keyword'>as</span> <span class='conid'>AT</span>
+<a name="line-74"></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='conid'>ArrowDTD</span><span class='layout'>,</span> <span class='varid'>isDTD</span><span class='layout'>,</span> <span class='varid'>getDTDAttrl</span> <span class='layout'>)</span>
+<a name="line-75"></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> <span class='layout'>)</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'>-- |</span>
+<a name="line-80"></a><span class='comment'>-- Select parts of a document by an XPath expression.</span>
+<a name="line-81"></a><span class='comment'>--</span>
+<a name="line-82"></a><span class='comment'>-- The main filter for selecting parts of a document via XPath.</span>
+<a name="line-83"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>
+<a name="line-84"></a><span class='comment'>-- the argument tree must be a complete document tree.</span>
+<a name="line-85"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>
+<a name="line-86"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>
+<a name="line-87"></a><span class='comment'>-- are convertet to text nodes.</span>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="getXPath"></a><span class='definition'>getXPath</span>		<span class='keyglyph'>::</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-90"></a><span class='definition'>getXPath</span>		<span class='keyglyph'>=</span> <span class='varid'>getXPathWithNsEnv</span> <span class='conid'>[]</span>
+<a name="line-91"></a>
+<a name="line-92"></a><span class='comment'>-- |</span>
+<a name="line-93"></a><span class='comment'>-- Select parts of a document by a namespace aware XPath expression.</span>
+<a name="line-94"></a><span class='comment'>--</span>
+<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-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-102"></a>				<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'>-- Select parts of an XML tree by a XPath expression.</span>
+<a name="line-106"></a><span class='comment'>--</span>
+<a name="line-107"></a><span class='comment'>-- The main filter for selecting parts of an arbitrary XML tree via XPath.</span>
+<a name="line-108"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>
+<a name="line-109"></a><span class='comment'>-- There are no restrictions on the arument tree.</span>
+<a name="line-110"></a><span class='comment'>--</span>
+<a name="line-111"></a><span class='comment'>-- No canonicalization is performed before evaluating the query</span>
+<a name="line-112"></a><span class='comment'>--</span>
+<a name="line-113"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>
+<a name="line-114"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>
+<a name="line-115"></a><span class='comment'>-- are convertet to text nodes.</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="getXPathSubTrees"></a><span class='definition'>getXPathSubTrees</span>	<span class='keyglyph'>::</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-118"></a><span class='definition'>getXPathSubTrees</span>	<span class='keyglyph'>=</span> <span class='varid'>getXPathSubTreesWithNsEnv</span> <span class='conid'>[]</span>
+<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-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-125"></a>
+<a name="line-126"></a><span class='comment'>-- | compute the node set of an XPath query</span>
+<a name="line-127"></a>
+<a name="line-128"></a><a name="getXPathNodeSet"></a><span class='definition'>getXPathNodeSet</span>		<span class='keyglyph'>::</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-129"></a><span class='definition'>getXPathNodeSet</span>		<span class='keyglyph'>=</span> <span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='conid'>[]</span>
+<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-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-136"></a>
+<a name="line-137"></a><span class='comment'>-- | parse xpath, evaluate xpath expr and prepare results</span>
+<a name="line-138"></a>
+<a name="line-139"></a><a name="getXPathValues"></a><span class='definition'>getXPathValues</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</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'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>
+<a name="line-140"></a><span class='definition'>getXPathValues</span> <span class='varid'>cvRes</span> <span class='varid'>cvErr</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span> <span class='varid'>t</span>
+<a name="line-141"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='varid'>nsEnv</span> <span class='str'>""</span> <span class='varid'>xpStr</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-142"></a>      <span class='conid'>Left</span> <span class='varid'>parseError</span>
+<a name="line-143"></a>	  <span class='keyglyph'>-&gt;</span> <span class='varid'>cvErr</span> <span class='varid'>xpStr</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>parseError</span><span class='layout'>)</span>
+<a name="line-144"></a>      <span class='conid'>Right</span> <span class='varid'>xpExpr</span>
+<a name="line-145"></a>	  <span class='keyglyph'>-&gt;</span> <span class='varid'>evalXP</span> <span class='varid'>xpExpr</span>
+<a name="line-146"></a>    <span class='keyword'>where</span>
+<a name="line-147"></a>    <span class='varid'>evalXP</span> <span class='varid'>xpe</span>
+<a name="line-148"></a>	<span class='keyglyph'>=</span> <span class='varid'>cvRes</span> <span class='varid'>xpRes</span>
+<a name="line-149"></a>	<span class='keyword'>where</span>
+<a name="line-150"></a>	<span class='varid'>t'</span>      <span class='keyglyph'>=</span> <span class='varid'>addRoot</span> <span class='varid'>t</span>				<span class='comment'>-- we need a root node for starting xpath eval</span>
+<a name="line-151"></a>	<span class='varid'>idAttr</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>"idAttr"</span><span class='layout'>)</span>			<span class='comment'>-- id attributes from DTD (if there)</span>
+<a name="line-152"></a>		  <span class='layout'>,</span> <span class='varid'>idAttributesToXPathValue</span> <span class='varop'>.</span> <span class='varid'>getIdAttributes</span> <span class='varop'>$</span> <span class='varid'>t'</span>
+<a name="line-153"></a>		  <span class='layout'>)</span>
+<a name="line-154"></a>	<span class='varid'>navTD</span>	<span class='keyglyph'>=</span> <span class='varid'>ntree</span> <span class='varid'>t'</span>
+<a name="line-155"></a>	<span class='varid'>xpRes</span>	<span class='keyglyph'>=</span> <span class='varid'>evalExpr</span> <span class='layout'>(</span><span class='varid'>idAttr</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>getVarTab</span> <span class='varid'>varEnv</span><span class='layout'>)</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='num'>1</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>navTD</span><span class='layout'>)</span> <span class='varid'>xpe</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>navTD</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-156"></a>
+<a name="line-157"></a><a name="addRoot"></a><span class='definition'>addRoot</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-158"></a><span class='definition'>addRoot</span> <span class='varid'>t</span>
+<a name="line-159"></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-160"></a>	<span class='keyglyph'>=</span> <span class='varid'>t</span>
+<a name="line-161"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-162"></a>	<span class='keyglyph'>=</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>
+<a name="line-163"></a>
+<a name="line-164"></a><a name="xPathErr"></a><span class='definition'>xPathErr</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'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-165"></a><span class='definition'>xPathErr</span> <span class='varid'>xpStr</span> <span class='varid'>parseError</span>
+<a name="line-166"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_err</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'>xpStr</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>parseError</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-167"></a>
+<a name="line-168"></a><span class='comment'>-- |</span>
+<a name="line-169"></a><span class='comment'>-- The main evaluation entry point. </span>
+<a name="line-170"></a><span class='comment'>-- Each XPath-'Expr' is mapped to an evaluation function. The 'Env'-parameter contains the set of global variables</span>
+<a name="line-171"></a><span class='comment'>-- for the evaluator, the 'Context'-parameter the root of the tree in which the expression is evaluated.</span>
+<a name="line-172"></a><span class='comment'>-- </span>
+<a name="line-173"></a>
+<a name="line-174"></a><a name="evalExpr"></a><span class='definition'>evalExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-175"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Or</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-176"></a>    <span class='keyglyph'>=</span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Or</span> <span class='varid'>ex</span>
+<a name="line-177"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>And</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-178"></a>    <span class='keyglyph'>=</span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>And</span> <span class='varid'>ex</span>
+<a name="line-179"></a>    
+<a name="line-180"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Eq</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Eq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-182"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>NEq</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-183"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>NEq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-184"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Less</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-185"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Less</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-186"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>LessEq</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-187"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>LessEq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-188"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Greater</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-189"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Greater</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-190"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>GreaterEq</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-191"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>GreaterEq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-192"></a>
+<a name="line-193"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Plus</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-194"></a>    <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathAdd</span> <span class='conid'>Plus</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-195"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Minus</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-196"></a>    <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathAdd</span> <span class='conid'>Minus</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-197"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Div</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-198"></a>    <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathDiv</span> <span class='conid'>Div</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-199"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Mod</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-200"></a>    <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathMod</span> <span class='conid'>Mod</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-201"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Mult</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-202"></a>    <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathMulti</span> <span class='conid'>Mult</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-203"></a>
+<a name="line-204"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Unary</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-205"></a>    <span class='keyglyph'>=</span> <span class='varid'>xPathUnary</span> <span class='varop'>.</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-206"></a>
+<a name="line-207"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-208"></a>    <span class='keyglyph'>=</span> <span class='varid'>unionEval</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-209"></a>
+<a name="line-210"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>name</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-211"></a>    <span class='keyglyph'>=</span> <span class='varid'>fctEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>name</span> <span class='varid'>args</span>
+<a name="line-212"></a>
+<a name="line-213"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='keyword'>_</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-214"></a>    <span class='keyglyph'>=</span> <span class='varid'>locPathEval</span> <span class='varid'>env</span> <span class='varid'>lp</span>
+<a name="line-215"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</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'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>locPathEval</span> <span class='varid'>env</span> <span class='varid'>lp</span> <span class='varop'>.</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fe</span>
+<a name="line-217"></a>
+<a name="line-218"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-219"></a>    <span class='keyglyph'>=</span> <span class='varid'>filterEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>
+<a name="line-220"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='keyword'>_</span> <span class='varid'>ex</span>
+<a name="line-221"></a>    <span class='keyglyph'>=</span> <span class='varid'>evalSpezExpr</span> <span class='varid'>env</span> <span class='varid'>ex</span>
+<a name="line-222"></a>
+<a name="line-223"></a>
+<a name="line-224"></a>
+<a name="line-225"></a><a name="evalExprL"></a><span class='definition'>evalExprL</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</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'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span>
+<a name="line-226"></a><span class='definition'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span> <span class='varid'>ns</span>
+<a name="line-227"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>e</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='varid'>ex</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="evalSpezExpr"></a><span class='definition'>evalSpezExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-230"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-231"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-232"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-233"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-234"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-235"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>
+<a name="line-236"></a><span class='definition'>evalSpezExpr</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>v</span>
+<a name="line-237"></a>    <span class='keyglyph'>=</span> <span class='varid'>getVariable</span> <span class='varid'>env</span> <span class='varid'>name</span> <span class='varid'>v</span>
+<a name="line-238"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-239"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalExpr with a wrong argument"</span>
+<a name="line-240"></a>
+<a name="line-241"></a>
+<a name="line-242"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-243"></a>
+<a name="line-244"></a><a name="filterEval"></a><span class='comment'>-- |</span>
+<a name="line-245"></a><span class='comment'>-- filter for evaluating a filter-expression</span>
+<a name="line-246"></a><span class='definition'>filterEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</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'>XPathFilter</span>
+<a name="line-247"></a><span class='definition'>filterEval</span> <span class='varid'>env</span> <span class='varid'>cont</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='varid'>ns</span>
+<a name="line-248"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>prim</span> <span class='varid'>ns</span> <span class='keyword'>of</span>
+<a name="line-249"></a>        <span class='varid'>new_ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>evalPredL</span> <span class='varid'>env</span> <span class='varid'>predicates</span> <span class='varid'>new_ns</span>
+<a name="line-250"></a>        <span class='keyword'>_</span>                  <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVError</span> <span class='str'>"Return of a filterexpression is not a nodeset"</span>
+<a name="line-251"></a><span class='definition'>filterEval</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-252"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to filterEval without an expression"</span>
+<a name="line-253"></a>
+<a name="line-254"></a>
+<a name="line-255"></a>
+<a name="line-256"></a><a name="unionEval"></a><span class='comment'>-- |</span>
+<a name="line-257"></a><span class='comment'>-- returns the union of its arguments, the arguments have to be node-sets.</span>
+<a name="line-258"></a><span class='definition'>unionEval</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-259"></a><span class='definition'>unionEval</span>
+<a name="line-260"></a>    <span class='keyglyph'>=</span> <span class='varid'>createDocumentOrder</span> <span class='varop'>.</span> <span class='varid'>remDups</span> <span class='varop'>.</span> <span class='varid'>unionEval'</span>
+<a name="line-261"></a>      <span class='keyword'>where</span>
+<a name="line-262"></a>      <span class='varid'>unionEval'</span> <span class='layout'>(</span><span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</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> <span class='varid'>e</span>
+<a name="line-263"></a>      <span class='varid'>unionEval'</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</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> <span class='varid'>e</span>
+<a name="line-264"></a>      <span class='varid'>unionEval'</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span>              <span class='keyglyph'>=</span> <span class='varid'>n</span>
+<a name="line-265"></a>      <span class='varid'>unionEval'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>m</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>unionEval</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>m</span><span class='layout'>)</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-266"></a>      <span class='varid'>unionEval'</span> <span class='keyword'>_</span>                            <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"The value of a union ( | ) is not a nodeset"</span>
+<a name="line-267"></a>
+<a name="line-268"></a>
+<a name="line-269"></a>
+<a name="line-270"></a><a name="relEqEval"></a><span class='comment'>-- |</span>
+<a name="line-271"></a><span class='comment'>-- Equality or relational test for node-sets, numbers, boolean values or strings,</span>
+<a name="line-272"></a><span class='comment'>-- each computation of two operands is done by relEqEv'</span>
+<a name="line-273"></a><span class='definition'>relEqEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-274"></a><span class='definition'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span>
+<a name="line-275"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldl1</span> <span class='layout'>(</span><span class='varid'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span><span class='layout'>)</span>
+<a name="line-276"></a>
+<a name="line-277"></a>    
+<a name="line-278"></a>
+<a name="line-279"></a><a name="relEqEv'"></a><span class='definition'>relEqEv'</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-280"></a><span class='definition'>relEqEv'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</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-281"></a><span class='definition'>relEqEv'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-282"></a>
+<a name="line-283"></a><span class='comment'>-- two node-sets</span>
+<a name="line-284"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>b</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-285"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqTwoNodes</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-286"></a>
+<a name="line-287"></a><span class='comment'>-- one node-set</span>
+<a name="line-288"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-289"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqOneNode</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-290"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>b</span>
+<a name="line-291"></a>    <span class='keyglyph'>=</span> <span class='varid'>relEqOneNode</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>a</span>
+<a name="line-292"></a>
+<a name="line-293"></a>
+<a name="line-294"></a><span class='comment'>--  test without a node-set and equality or not-equality operator</span>
+<a name="line-295"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='varid'>b</span>  <span class='keyglyph'>=</span> <span class='varid'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-296"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>NEq</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-297"></a>
+<a name="line-298"></a><span class='comment'>-- test without a node-set and less, less-equal, greater or greater-equal operator</span>
+<a name="line-299"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-300"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXNumber</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXNumber</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-301"></a>      <span class='keyword'>where</span>
+<a name="line-302"></a>      <span class='varid'>toXNumber</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span>
+<a name="line-303"></a>
+<a name="line-304"></a>
+<a name="line-305"></a>
+<a name="line-306"></a><a name="relEqTwoNodes"></a><span class='comment'>-- |</span>
+<a name="line-307"></a><span class='comment'>-- Equality or relational test for two node-sets.</span>
+<a name="line-308"></a><span class='comment'>-- The comparison will be true if and only if there is a node in the first node-set</span>
+<a name="line-309"></a><span class='comment'>-- and a node in the second node-set such that the result of performing the</span>
+<a name="line-310"></a><span class='comment'>-- comparison on the string-values of the two nodes is true</span>
+<a name="line-311"></a><span class='definition'>relEqTwoNodes</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-312"></a><span class='definition'>relEqTwoNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ms</span><span class='layout'>)</span>
+<a name="line-313"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>foldr</span>  <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>op</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getStrValues</span> <span class='varid'>ms</span><span class='layout'>)</span> <span class='varop'>||</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>False</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-314"></a>      <span class='keyword'>where</span>
+<a name="line-315"></a>      <span class='varid'>fct</span> <span class='varid'>op'</span> <span class='varid'>n'</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>stringValue</span> <span class='varid'>n'</span><span class='layout'>)</span>
+<a name="line-316"></a>      <span class='varid'>getStrValues</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>stringValue</span>
+<a name="line-317"></a><span class='definition'>relEqTwoNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-318"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to relEqTwoNodes without a nodeset"</span>
+<a name="line-319"></a>
+<a name="line-320"></a>
+<a name="line-321"></a><a name="relEqOneNode"></a><span class='comment'>-- |</span>
+<a name="line-322"></a><span class='comment'>-- Comparison between a node-set and different type.</span>
+<a name="line-323"></a><span class='comment'>-- The node-set is converted in a boolean value if the second argument is of type boolean.</span>
+<a name="line-324"></a><span class='comment'>-- If the argument is of type number, the node-set is converted in a number, otherwise it is converted</span>
+<a name="line-325"></a><span class='comment'>-- in a string value.</span>
+<a name="line-326"></a><span class='definition'>relEqOneNode</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-327"></a><span class='definition'>relEqOneNode</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>arg</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-328"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>any</span>  <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>arg</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getStrValues</span> <span class='varid'>arg</span> <span class='varid'>ns</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-329"></a>      <span class='keyword'>where</span>
+<a name="line-330"></a>      <span class='varid'>getStrValues</span> <span class='varid'>arg'</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getConvFct</span> <span class='varid'>arg'</span><span class='layout'>)</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>wrap</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>stringValue</span>
+<a name="line-331"></a>      <span class='varid'>wrap</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span>
+<a name="line-332"></a><span class='definition'>relEqOneNode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-333"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to relEqOneNode without a nodeset"</span>
+<a name="line-334"></a>
+<a name="line-335"></a>
+<a name="line-336"></a>
+<a name="line-337"></a><a name="eqEv"></a><span class='comment'>-- |</span>
+<a name="line-338"></a><span class='comment'>-- No node-set is involved and the operator is equality or not-equality.</span>
+<a name="line-339"></a><span class='comment'>-- The arguments are converted in a common type. If one argument is a boolean value</span>
+<a name="line-340"></a><span class='comment'>-- then it is the boolean type. If a number is involved, the arguments have to converted in numbers,</span>
+<a name="line-341"></a><span class='comment'>-- else the string type is the common type.</span>
+<a name="line-342"></a><span class='definition'>eqEv</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-343"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>g</span>
+<a name="line-344"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>`fct`</span> <span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>g</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-345"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span> <span class='varid'>g</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-346"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>f</span><span class='keyglyph'>]</span> <span class='varop'>`fct`</span> <span class='varid'>g</span><span class='layout'>)</span>
+<a name="line-347"></a>
+<a name="line-348"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>g</span>
+<a name="line-349"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>`fct`</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>g</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-350"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span> <span class='varid'>g</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-351"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>f</span><span class='keyglyph'>]</span> <span class='varop'>`fct`</span> <span class='varid'>g</span><span class='layout'>)</span>
+<a name="line-352"></a>
+<a name="line-353"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span> <span class='varid'>g</span>
+<a name="line-354"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>f</span><span class='keyglyph'>]</span> <span class='varop'>`fct`</span> <span class='varid'>xstring</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>g</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-355"></a>
+<a name="line-356"></a>
+<a name="line-357"></a><a name="getOpFct"></a><span class='definition'>getOpFct</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-358"></a><span class='definition'>getOpFct</span> <span class='conid'>Eq</span>        <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>
+<a name="line-359"></a><span class='definition'>getOpFct</span> <span class='conid'>NEq</span>       <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span>
+<a name="line-360"></a><span class='definition'>getOpFct</span> <span class='conid'>Less</span>      <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span>
+<a name="line-361"></a><span class='definition'>getOpFct</span> <span class='conid'>LessEq</span>    <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span>
+<a name="line-362"></a><span class='definition'>getOpFct</span> <span class='conid'>Greater</span>   <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span>
+<a name="line-363"></a><span class='definition'>getOpFct</span> <span class='conid'>GreaterEq</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span>
+<a name="line-364"></a><span class='definition'>getOpFct</span> <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-365"></a>
+<a name="line-366"></a>
+<a name="line-367"></a>
+<a name="line-368"></a><a name="getRoot"></a><span class='comment'>-- |</span>
+<a name="line-369"></a><span class='comment'>-- Filter for accessing the root element of a document tree</span>
+<a name="line-370"></a><span class='definition'>getRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>
+<a name="line-371"></a><span class='definition'>getRoot</span> <span class='layout'>(</span><span class='conid'>XPVNode</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>
+<a name="line-372"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>getRoot'</span> <span class='varid'>n</span><span class='keyglyph'>]</span>
+<a name="line-373"></a>      <span class='keyword'>where</span>
+<a name="line-374"></a>      <span class='varid'>getRoot'</span> <span class='varid'>tree</span>
+<a name="line-375"></a>        <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>upNT</span> <span class='varid'>tree</span> <span class='keyword'>of</span>
+<a name="line-376"></a>            <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>tree</span>
+<a name="line-377"></a>            <span class='conid'>Just</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>getRoot'</span> <span class='varid'>t</span>
+<a name="line-378"></a><span class='definition'>getRoot</span> <span class='keyword'>_</span>
+<a name="line-379"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to getRoot without a nodeset"</span>
+<a name="line-380"></a>
+<a name="line-381"></a>
+<a name="line-382"></a>
+<a name="line-383"></a><a name="getAxisNodes"></a><span class='comment'>-- |</span>
+<a name="line-384"></a><span class='comment'>-- Filter for accessing all nodes of a XPath-axis</span>
+<a name="line-385"></a><span class='comment'>--</span>
+<a name="line-386"></a><span class='comment'>--    * 1.parameter as :  axis specifier</span>
+<a name="line-387"></a><span class='comment'>--</span>
+<a name="line-388"></a><span class='definition'>getAxisNodes</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>XPathFilter</span>
+<a name="line-389"></a><span class='definition'>getAxisNodes</span> <span class='keyword'>as</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-390"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='keyword'>as</span> <span class='varid'>axisFctL</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-391"></a><span class='definition'>getAxisNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to getAxis without a nodeset"</span>
+<a name="line-393"></a>
+<a name="line-394"></a>
+<a name="line-395"></a>
+<a name="line-396"></a><a name="axisFctL"></a><span class='comment'>-- |</span>
+<a name="line-397"></a><span class='comment'>-- Axis-Function-Table.</span>
+<a name="line-398"></a><span class='comment'>-- Each XPath axis-specifier is mapped to the corresponding axis-function</span>
+<a name="line-399"></a><span class='definition'>axisFctL</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>AxisSpec</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTrees</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-400"></a><span class='definition'>axisFctL</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='conid'>Ancestor</span><span class='layout'>,</span> <span class='varid'>ancestorAxis</span><span class='layout'>)</span>
+<a name="line-401"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>AncestorOrSelf</span><span class='layout'>,</span> <span class='varid'>ancestorOrSelfAxis</span><span class='layout'>)</span>
+<a name="line-402"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Attribute</span><span class='layout'>,</span> <span class='varid'>attributeAxis</span><span class='layout'>)</span>
+<a name="line-403"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Child</span><span class='layout'>,</span> <span class='varid'>childAxis</span><span class='layout'>)</span>
+<a name="line-404"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Descendant</span><span class='layout'>,</span> <span class='varid'>descendantAxis</span><span class='layout'>)</span>
+<a name="line-405"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>DescendantOrSelf</span><span class='layout'>,</span> <span class='varid'>descendantOrSelfAxis</span><span class='layout'>)</span>
+<a name="line-406"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Following</span><span class='layout'>,</span> <span class='varid'>followingAxis</span><span class='layout'>)</span>
+<a name="line-407"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>FollowingSibling</span><span class='layout'>,</span> <span class='varid'>followingSiblingAxis</span><span class='layout'>)</span>
+<a name="line-408"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Parent</span><span class='layout'>,</span> <span class='varid'>parentAxis</span><span class='layout'>)</span>
+<a name="line-409"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Preceding</span><span class='layout'>,</span> <span class='varid'>precedingAxis</span><span class='layout'>)</span>
+<a name="line-410"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>PrecedingSibling</span><span class='layout'>,</span> <span class='varid'>precedingSiblingAxis</span><span class='layout'>)</span>
+<a name="line-411"></a>           <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Self</span><span class='layout'>,</span> <span class='varid'>selfAxis</span><span class='layout'>)</span>
+<a name="line-412"></a>           <span class='keyglyph'>]</span>
+<a name="line-413"></a>
+<a name="line-414"></a>
+<a name="line-415"></a><a name="locPathEval"></a><span class='comment'>-- |</span>
+<a name="line-416"></a><span class='comment'>-- evaluates a location path,</span>
+<a name="line-417"></a><span class='comment'>-- evaluation of an absolute path starts at the document root, </span>
+<a name="line-418"></a><span class='comment'>-- the relative path at the context node</span>
+<a name="line-419"></a><span class='definition'>locPathEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LocationPath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-420"></a><span class='definition'>locPathEval</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>steps</span><span class='layout'>)</span>
+<a name="line-421"></a>    <span class='keyglyph'>=</span> <span class='varid'>evalSteps</span> <span class='varid'>env</span> <span class='varid'>steps</span>
+<a name="line-422"></a><span class='definition'>locPathEval</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>steps</span><span class='layout'>)</span>
+<a name="line-423"></a>    <span class='keyglyph'>=</span> <span class='varid'>evalSteps</span> <span class='varid'>env</span> <span class='varid'>steps</span> <span class='varop'>.</span> <span class='varid'>getRoot</span>
+<a name="line-424"></a>
+<a name="line-425"></a>
+<a name="line-426"></a>
+<a name="line-427"></a>
+<a name="line-428"></a><a name="evalSteps"></a><span class='definition'>evalSteps</span> <span class='keyglyph'>::</span> <span class='conid'>Env</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'>XPathFilter</span>
+<a name="line-429"></a><span class='definition'>evalSteps</span> <span class='varid'>env</span> <span class='varid'>steps</span> <span class='varid'>ns</span>
+<a name="line-430"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varid'>evalStep</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>ns</span> <span class='varid'>steps</span>
+<a name="line-431"></a>
+<a name="line-432"></a>
+<a name="line-433"></a><a name="evalStep"></a><span class='comment'>-- |</span>
+<a name="line-434"></a><span class='comment'>-- evaluate a single XPath step</span>
+<a name="line-435"></a><span class='comment'>-- namespace-axis is not supported</span>
+<a name="line-436"></a><span class='definition'>evalStep</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XStep</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-437"></a><span class='definition'>evalStep</span> <span class='keyword'>_</span>   <span class='keyword'>_</span>  <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Namespace</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"namespace-axis not supported"</span>
+<a name="line-438"></a><span class='definition'>evalStep</span> <span class='keyword'>_</span>   <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Attribute</span> <span class='varid'>nt</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalAttr</span> <span class='varid'>nt</span> <span class='layout'>(</span><span class='varid'>getAxisNodes</span> <span class='conid'>Attribute</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-439"></a><span class='definition'>evalStep</span> <span class='varid'>env</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='varid'>axisSpec</span> <span class='varid'>nt</span> <span class='varid'>pr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalStep'</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varid'>nt</span> <span class='layout'>(</span><span class='varid'>getAxisNodes</span> <span class='varid'>axisSpec</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-440"></a>
+<a name="line-441"></a>
+<a name="line-442"></a>
+<a name="line-443"></a><a name="evalAttr"></a><span class='definition'>evalAttr</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-444"></a><span class='definition'>evalAttr</span> <span class='varid'>nt</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-445"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>evalAttrNodeTest</span> <span class='varid'>nt</span> <span class='varid'>n</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-446"></a><span class='definition'>evalAttr</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-447"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalAttr without a nodeset"</span>
+<a name="line-448"></a>
+<a name="line-449"></a>
+<a name="line-450"></a><a name="evalAttrNodeTest"></a><span class='definition'>evalAttrNodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTrees</span>
+<a name="line-451"></a><span class='definition'>evalAttrNodeTest</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn1</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-452"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>uri</span> <span class='varop'>==</span> <span class='varid'>uri1</span>               <span class='varop'>&amp;&amp;</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='varid'>lp1</span><span class='layout'>)</span>
+<a name="line-453"></a>	   <span class='varop'>||</span> 
+<a name="line-454"></a>           <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>uri</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>||</span> <span class='varid'>uri</span> <span class='varop'>==</span> <span class='varid'>uri1</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='str'>"*"</span><span class='layout'>)</span> 
+<a name="line-455"></a>         <span class='layout'>)</span>
+<a name="line-456"></a>      <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-457"></a>      <span class='keyword'>else</span> <span class='conid'>[]</span>
+<a name="line-458"></a>      <span class='keyword'>where</span>
+<a name="line-459"></a>      <span class='varid'>uri</span>  <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span>
+<a name="line-460"></a>      <span class='varid'>uri1</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn1</span>
+<a name="line-461"></a>      <span class='varid'>lp</span>   <span class='keyglyph'>=</span> <span class='varid'>localPart</span>    <span class='varid'>qn</span>
+<a name="line-462"></a>      <span class='varid'>lp1</span>  <span class='keyglyph'>=</span> <span class='varid'>localPart</span>    <span class='varid'>qn1</span>
+<a name="line-463"></a>
+<a name="line-464"></a><span class='definition'>evalAttrNodeTest</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-465"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-466"></a>
+<a name="line-467"></a><span class='definition'>evalAttrNodeTest</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-468"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-469"></a>
+<a name="line-470"></a><a name="evalStep'"></a><span class='definition'>evalStep'</span> <span class='keyglyph'>::</span> <span class='conid'>Env</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'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-471"></a><span class='definition'>evalStep'</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varid'>nt</span>
+<a name="line-472"></a>    <span class='keyglyph'>=</span> <span class='varid'>evalPredL</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varop'>.</span> <span class='varid'>nodeTest</span> <span class='varid'>nt</span>
+<a name="line-473"></a>
+<a name="line-474"></a>
+<a name="line-475"></a><a name="evalPredL"></a><span class='definition'>evalPredL</span> <span class='keyglyph'>::</span> <span class='conid'>Env</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'>XPathFilter</span>
+<a name="line-476"></a><span class='definition'>evalPredL</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-477"></a>    <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='varop'>$</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varid'>evalPred</span> <span class='varid'>env</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>ns</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='varid'>pr</span>
+<a name="line-478"></a><span class='definition'>evalPredL</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-479"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalPredL without a nodeset"</span>
+<a name="line-480"></a>
+<a name="line-481"></a>
+<a name="line-482"></a><a name="evalPred"></a><span class='definition'>evalPred</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-483"></a><span class='definition'>evalPred</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span>
+<a name="line-484"></a><span class='definition'>evalPred</span> <span class='varid'>env</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='layout'>(</span><span class='conid'>XPVNode</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='varid'>ex</span>
+<a name="line-485"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>testPredicate</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='varid'>len</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>ex</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-486"></a>        <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>e</span>
+<a name="line-487"></a>        <span class='conid'>XPVBool</span> <span class='conid'>True</span>   <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-488"></a>        <span class='conid'>XPVBool</span> <span class='conid'>False</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>nextNode</span>
+<a name="line-489"></a>        <span class='keyword'>_</span>              <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVError</span> <span class='str'>"Value of testPredicate is not a boolean"</span>
+<a name="line-490"></a>      <span class='keyword'>where</span> <span class='varid'>nextNode</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalPred</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>len</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ex</span>
+<a name="line-491"></a><span class='definition'>evalPred</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-492"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalPred without a nodeset"</span>
+<a name="line-493"></a>
+<a name="line-494"></a>
+<a name="line-495"></a>
+<a name="line-496"></a><a name="testPredicate"></a><span class='definition'>testPredicate</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-497"></a><span class='definition'>testPredicate</span> <span class='varid'>env</span> <span class='varid'>context</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>ex</span> <span class='varid'>ns</span>
+<a name="line-498"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>context</span> <span class='varid'>ex</span> <span class='varid'>ns</span> <span class='keyword'>of</span>
+<a name="line-499"></a>        <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>==</span> <span class='varid'>fromIntegral</span> <span class='varid'>pos</span><span class='layout'>)</span>
+<a name="line-500"></a>        <span class='conid'>XPVNumber</span> <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVBool</span> <span class='conid'>False</span>
+<a name="line-501"></a>        <span class='keyword'>_</span>                   <span class='keyglyph'>-&gt;</span> <span class='varid'>xboolean</span> <span class='varid'>context</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>context</span> <span class='varid'>ex</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-502"></a>
+<a name="line-503"></a>
+<a name="line-504"></a><span class='comment'>-- |</span>
+<a name="line-505"></a><span class='comment'>-- filter for selecting a special type of nodes from the current fragment tree</span>
+<a name="line-506"></a><span class='comment'>--</span>
+<a name="line-507"></a><span class='comment'>-- the filter works with namespace activated and without namespaces.</span>
+<a name="line-508"></a><span class='comment'>-- If namespaces occur in XPath names, the uris are used for matching,</span>
+<a name="line-509"></a><span class='comment'>-- else the name prefix</span>
+<a name="line-510"></a><span class='comment'>--</span>
+<a name="line-511"></a><span class='comment'>--    Bugfix : "*" (or any other name-test) must not match the root node</span>
+<a name="line-512"></a>
+<a name="line-513"></a><a name="nodeTest"></a><span class='definition'>nodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-514"></a>
+<a name="line-515"></a><span class='comment'>-- nodeTest (NameTest (QN "" "*" ""))      = filterNodes (\n -&gt; isXTagNode n &amp;&amp; not (isRootNode n))</span>
+<a name="line-516"></a><span class='comment'>-- nodeTest (NameTest (QN _ "*" uri))      = filterNodes (filterd uri)</span>
+<a name="line-517"></a>
+<a name="line-518"></a><span class='definition'>nodeTest</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>q</span><span class='layout'>)</span>
+<a name="line-519"></a>    <span class='keyglyph'>|</span> <span class='varid'>isWildcardTest</span>
+<a name="line-520"></a>	<span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='layout'>(</span><span class='varid'>wildcardTest</span> <span class='varid'>q</span><span class='layout'>)</span>
+<a name="line-521"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-522"></a>        <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='layout'>(</span><span class='varid'>nameTest</span> <span class='varid'>q</span><span class='layout'>)</span>		<span class='comment'>-- old: (isOfTagNode1 q)</span>
+<a name="line-523"></a>      <span class='keyword'>where</span>
+<a name="line-524"></a>      <span class='varid'>isWildcardTest</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>q</span> <span class='varop'>==</span> <span class='str'>"*"</span>
+<a name="line-525"></a>
+<a name="line-526"></a><span class='definition'>nodeTest</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>n</span><span class='layout'>)</span>                         <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='varid'>isPiNode</span>
+<a name="line-527"></a>					  <span class='keyword'>where</span>
+<a name="line-528"></a>					  <span class='varid'>isPiNode</span> <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='varid'>n</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getPiName</span>
+<a name="line-529"></a>
+<a name="line-530"></a><span class='definition'>nodeTest</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>t</span><span class='layout'>)</span>                   <span class='keyglyph'>=</span> <span class='varid'>typeTest</span> <span class='varid'>t</span>
+<a name="line-531"></a>
+<a name="line-532"></a><a name="nameTest"></a><span class='definition'>nameTest</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-533"></a><span class='definition'>nameTest</span> <span class='varid'>xpName</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>elemName</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-534"></a>    <span class='keyglyph'>|</span> <span class='varid'>namespaceAware</span>
+<a name="line-535"></a>	<span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span>
+<a name="line-536"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-537"></a>	  <span class='varid'>namespaceUri</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span>
+<a name="line-538"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-539"></a>	<span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>elemName</span>
+<a name="line-540"></a>    <span class='keyword'>where</span>
+<a name="line-541"></a>    <span class='varid'>namespaceAware</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'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>xpName</span>
+<a name="line-542"></a>
+<a name="line-543"></a><span class='definition'>nameTest</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-544"></a>
+<a name="line-545"></a><a name="wildcardTest"></a><span class='definition'>wildcardTest</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-546"></a><span class='definition'>wildcardTest</span> <span class='varid'>xpName</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>elemName</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-547"></a>    <span class='keyglyph'>|</span> <span class='varid'>namespaceAware</span>
+<a name="line-548"></a>	<span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span>
+<a name="line-549"></a>    <span class='keyglyph'>|</span> <span class='varid'>prefixMatch</span>
+<a name="line-550"></a>	<span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>namePrefix</span> <span class='varid'>elemName</span>
+<a name="line-551"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-552"></a>	<span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span> <span class='varop'>/=</span> <span class='varid'>t_root</span>			<span class='comment'>-- all names except the root name "/"</span>
+<a name="line-553"></a>    <span class='keyword'>where</span>
+<a name="line-554"></a>    <span class='varid'>namespaceAware</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'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>xpName</span>
+<a name="line-555"></a>    <span class='varid'>prefixMatch</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'>namePrefix</span>   <span class='varop'>$</span> <span class='varid'>xpName</span>
+<a name="line-556"></a>
+<a name="line-557"></a><span class='definition'>wildcardTest</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-558"></a>
+<a name="line-559"></a><a name="typeTest"></a><span class='comment'>-- |</span>
+<a name="line-560"></a><span class='comment'>-- tests whether a node is of a special type</span>
+<a name="line-561"></a><span class='comment'>--</span>
+<a name="line-562"></a><span class='definition'>typeTest</span> <span class='keyglyph'>::</span> <span class='conid'>XPathNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-563"></a><span class='definition'>typeTest</span> <span class='conid'>XPNode</span>         <span class='keyglyph'>=</span> <span class='varid'>id</span>
+<a name="line-564"></a><span class='definition'>typeTest</span> <span class='conid'>XPCommentNode</span>  <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCmt</span>
+<a name="line-565"></a><span class='definition'>typeTest</span> <span class='conid'>XPPINode</span>       <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isPi</span>
+<a name="line-566"></a><span class='definition'>typeTest</span> <span class='conid'>XPTextNode</span>     <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span>
+<a name="line-567"></a>
+<a name="line-568"></a><a name="filterNodes"></a><span class='comment'>-- |</span>
+<a name="line-569"></a><span class='comment'>-- the filter selects the NTree part of a navigable tree and</span>
+<a name="line-570"></a><span class='comment'>-- tests whether the node is of the necessary type</span>
+<a name="line-571"></a><span class='comment'>--</span>
+<a name="line-572"></a><span class='comment'>--    * 1.parameter fct :  filter function from the XmlTreeFilter module which tests the type of a node</span>
+<a name="line-573"></a><span class='comment'>--</span>
+<a name="line-574"></a><span class='definition'>filterNodes</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-575"></a><span class='definition'>filterNodes</span> <span class='varid'>fct</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-576"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ns</span> <span class='layout'>,</span> <span class='varid'>fct</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-577"></a><span class='definition'>filterNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-578"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to filterNodes without a nodeset"</span>
+<a name="line-579"></a>
+<a name="line-580"></a><a name="boolEval"></a><span class='comment'>-- |</span>
+<a name="line-581"></a><span class='comment'>-- evaluates a boolean expression, the evaluation is non-strict</span>
+<a name="line-582"></a><span class='definition'>boolEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Op</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'>XPathFilter</span>
+<a name="line-583"></a><span class='definition'>boolEval</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>op</span> <span class='conid'>[]</span> <span class='keyword'>_</span>
+<a name="line-584"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>op</span><span class='varop'>==</span><span class='conid'>And</span><span class='layout'>)</span>
+<a name="line-585"></a><span class='definition'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Or</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'>ns</span>
+<a name="line-586"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>x</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyword'>of</span>
+<a name="line-587"></a>        <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>e</span>
+<a name="line-588"></a>        <span class='conid'>XPVBool</span> <span class='conid'>True</span>   <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVBool</span> <span class='conid'>True</span>
+<a name="line-589"></a>        <span class='keyword'>_</span>              <span class='keyglyph'>-&gt;</span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Or</span> <span class='varid'>xs</span> <span class='varid'>ns</span>
+<a name="line-590"></a>
+<a name="line-591"></a><span class='definition'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>And</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'>ns</span>
+<a name="line-592"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>x</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyword'>of</span>
+<a name="line-593"></a>        <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>e</span>
+<a name="line-594"></a>        <span class='conid'>XPVBool</span> <span class='conid'>True</span>   <span class='keyglyph'>-&gt;</span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>And</span> <span class='varid'>xs</span> <span class='varid'>ns</span>
+<a name="line-595"></a>        <span class='keyword'>_</span>              <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVBool</span> <span class='conid'>False</span>
+<a name="line-596"></a><span class='definition'>boolEval</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-597"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to boolEval with a wrong argument"</span>
+<a name="line-598"></a>
+<a name="line-599"></a>
+<a name="line-600"></a>
+<a name="line-601"></a><a name="getVariable"></a><span class='comment'>-- |</span>
+<a name="line-602"></a><span class='comment'>-- returns the value of a variable</span>
+<a name="line-603"></a><span class='definition'>getVariable</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>VarName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathFilter</span>
+<a name="line-604"></a><span class='definition'>getVariable</span> <span class='varid'>env</span> <span class='varid'>name</span> <span class='keyword'>_</span>
+<a name="line-605"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>getVarTab</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-606"></a>        <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVError</span> <span class='layout'>(</span><span class='str'>"Variable: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span>
+<a name="line-607"></a>        <span class='conid'>Just</span> <span class='varid'>v</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>v</span>
+<a name="line-608"></a>
+<a name="line-609"></a>
+<a name="line-610"></a><a name="fctEval"></a><span class='comment'>-- |</span>
+<a name="line-611"></a><span class='comment'>-- evaluates a function, </span>
+<a name="line-612"></a><span class='comment'>-- computation is done by 'XPathFct.evalFct' which is defined in "XPathFct".</span>
+<a name="line-613"></a><span class='definition'>fctEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>FctName</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'>XPathFilter</span>
+<a name="line-614"></a><span class='definition'>fctEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>name</span> <span class='varid'>args</span>
+<a name="line-615"></a>    <span class='keyglyph'>=</span> <span class='varid'>evalFct</span> <span class='varid'>name</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>args</span>
+<a name="line-616"></a>
+<a name="line-617"></a>
+<a name="line-618"></a>
+<a name="line-619"></a><a name="numEval"></a><span class='comment'>-- |</span>
+<a name="line-620"></a><span class='comment'>-- evaluates an arithmetic operation.</span>
+<a name="line-621"></a><span class='comment'>--</span>
+<a name="line-622"></a><span class='comment'>--   1.parameter f :  arithmetic function from "XPathArithmetic"</span>
+<a name="line-623"></a><span class='comment'>--</span>
+<a name="line-624"></a><span class='definition'>numEval</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-625"></a><span class='definition'>numEval</span> <span class='varid'>f</span> <span class='varid'>op</span> <span class='keyglyph'>=</span> <span class='varid'>foldl1</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>op</span><span class='layout'>)</span>
+<a name="line-626"></a>
+<a name="line-627"></a>
+<a name="line-628"></a>
+<a name="line-629"></a><span class='comment'>-- |</span>
+<a name="line-630"></a><span class='comment'>-- Convert list of ID attributes from DTD into a space separated 'XPVString'</span>
+<a name="line-631"></a><span class='comment'>--</span>
+<a name="line-632"></a>
+<a name="line-633"></a><a name="idAttributesToXPathValue"></a><span class='definition'>idAttributesToXPathValue</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-634"></a><span class='definition'>idAttributesToXPathValue</span> <span class='varid'>ts</span>
+<a name="line-635"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>ts</span><span class='layout'>)</span>
+<a name="line-636"></a>
+<a name="line-637"></a><span class='comment'>-- |</span>
+<a name="line-638"></a><span class='comment'>-- Extracts all ID-attributes from the document type definition (DTD).</span>
+<a name="line-639"></a><span class='comment'>--</span>
+<a name="line-640"></a>
+<a name="line-641"></a><a name="getIdAttributes"></a><span class='definition'>getIdAttributes</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-642"></a><span class='definition'>getIdAttributes</span>
+<a name="line-643"></a>    <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varop'>$</span>
+<a name="line-644"></a>      <span class='conid'>AT</span><span class='varop'>.</span><span class='varid'>getChildren</span>
+<a name="line-645"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-646"></a>      <span class='varid'>isDTD</span>
+<a name="line-647"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-648"></a>      <span class='conid'>AT</span><span class='varop'>.</span><span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>isIdAttrType</span><span class='layout'>)</span>
+<a name="line-649"></a>
+<a name="line-650"></a><span class='comment'>-- ----------------------------------------</span>
+<a name="line-651"></a>
+<a name="line-652"></a><a name="isIdAttrType"></a><span class='definition'>isIdAttrType</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</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-653"></a><span class='definition'>isIdAttrType</span>		<span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_id</span><span class='layout'>)</span>
+<a name="line-654"></a>
+<a name="line-655"></a><a name="valueOfDTD"></a><span class='definition'>valueOfDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-656"></a><span class='definition'>valueOfDTD</span> <span class='varid'>n</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'>getDTDAttrl</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>lookup1</span> <span class='varid'>n</span> <span class='layout'>)</span>
+<a name="line-657"></a>
+<a name="line-658"></a><a name="hasDTDAttrValue"></a><span class='definition'>hasDTDAttrValue</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</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='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-659"></a><span class='definition'>hasDTDAttrValue</span>	<span class='varid'>an</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>filterA</span> <span class='varop'>$</span>
+<a name="line-660"></a>			  <span class='varid'>getDTDAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>lookup1</span> <span class='varid'>an</span><span class='layout'>)</span>
+<a name="line-661"></a>
+<a name="line-662"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathFct.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathFct.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathFct.html
@@ -0,0 +1,897 @@
+<!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     : Text.XML.HXT.XPath.XPathFct
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   The module contains the core-functions of the XPath function library.
+<a name="line-13"></a>   All functions are implemented as XFct. Each XFct contains the evaluation context,
+<a name="line-14"></a>   the variable environment and the function arguments.
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>
+<a name="line-21"></a>    <span class='layout'>(</span> <span class='conid'>XFct</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>evalFct</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>toXValue</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>xnumber</span>
+<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>xboolean</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>xstring</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>getConvFct</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>stringValue</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>remDups</span>
+<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>isNotInNodeList</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>createDocumentOrder</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>createDocumentOrderReverse</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>getVarTab</span>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>getKeyTab</span>
+<a name="line-35"></a>    <span class='layout'>)</span>
+<a name="line-36"></a><span class='keyword'>where</span>
+<a name="line-37"></a>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
+<a name="line-40"></a>    <span class='layout'>(</span> <span class='varid'>parseNumber</span>
+<a name="line-41"></a>    <span class='layout'>)</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathArithmetic</span>
+<a name="line-43"></a>    <span class='layout'>(</span> <span class='varid'>xPathAdd</span>
+<a name="line-44"></a>    <span class='layout'>)</span>
+<a name="line-45"></a>
+<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='layout'>(</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;+&gt;</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-47"></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>			<span class='layout'>(</span> <span class='varid'>constA</span> <span class='layout'>)</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'>ArrowIf</span>    		<span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>)</span>
+<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'>ArrowTree</span>			<span class='layout'>(</span> <span class='varid'>deep</span> <span class='layout'>)</span>
+<a name="line-50"></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='layout'>(</span> <span class='conid'>LA</span><span class='layout'>,</span> <span class='varid'>runLA</span> <span class='layout'>)</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'>XmlArrow</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'>readDocument</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'>XmlIOStateArrow</span>	<span class='layout'>(</span><span class='varid'>runX</span><span class='layout'>)</span>
+<a name="line-54"></a>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>
+<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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>
+<a name="line-57"></a>
+<a name="line-58"></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>
+<a name="line-59"></a>    <span class='layout'>(</span> <span class='varid'>unsafePerformIO</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'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-63"></a>    <span class='layout'>(</span> <span class='varid'>isAscii</span>
+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>isUpper</span>
+<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>isLower</span>
+<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>isDigit</span>
+<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>ord</span>
+<a name="line-68"></a>    <span class='layout'>)</span>
+<a name="line-69"></a>
+<a name="line-70"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-71"></a>    <span class='layout'>(</span> <span class='varid'>sortBy</span>
+<a name="line-72"></a>    <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>
+<a name="line-76"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='comment'>-- added by Tim Walkenhorst to fix Pos0 vs. Float 0.0 problems...</span>
+<a name="line-79"></a>
+<a name="line-80"></a><a name="int2XPNumber"></a><span class='definition'>int2XPNumber</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPNumber</span>
+<a name="line-81"></a><span class='definition'>int2XPNumber</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>Pos0</span>
+<a name="line-82"></a><span class='definition'>int2XPNumber</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='conid'>Float</span> <span class='varop'>$</span> <span class='varid'>fromIntegral</span> <span class='varid'>i</span>
+<a name="line-83"></a>
+<a name="line-84"></a><span class='comment'>-- |</span>
+<a name="line-85"></a><span class='comment'>-- Type signature for all functions which can be used in the XPath module.</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="XFct"></a><span class='keyword'>type</span> <span class='conid'>XFct</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span><span class='layout'>)</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='comment'>-- |</span>
+<a name="line-90"></a><span class='comment'>-- All functions are stored in a function table.</span>
+<a name="line-91"></a>
+<a name="line-92"></a><a name="FctTable"></a><span class='keyword'>type</span> <span class='conid'>FctTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>FctName</span><span class='layout'>,</span> <span class='conid'>FctTableElem</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-93"></a>
+<a name="line-94"></a><span class='comment'>-- |</span>
+<a name="line-95"></a><span class='comment'>-- Each table entry consists of the function and the expected function arguments.</span>
+<a name="line-96"></a>
+<a name="line-97"></a><a name="FctTableElem"></a><span class='keyword'>type</span> <span class='conid'>FctTableElem</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>XFct</span><span class='layout'>,</span> <span class='conid'>CheckArgCount</span><span class='layout'>)</span>
+<a name="line-98"></a>
+<a name="line-99"></a><span class='comment'>-- |</span>
+<a name="line-100"></a><span class='comment'>-- Tests whether the number of current function arguments is correct</span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="CheckArgCount"></a><span class='keyword'>type</span> <span class='conid'>CheckArgCount</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>
+<a name="line-103"></a>
+<a name="line-104"></a><a name="zero"></a><span class='definition'>zero</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>,</span> <span class='varid'>twoOrM</span><span class='layout'>,</span> <span class='varid'>twoOrThree</span><span class='layout'>,</span> <span class='varid'>three</span> <span class='keyglyph'>::</span> <span class='conid'>CheckArgCount</span>
+<a name="line-105"></a><span class='definition'>zero</span> <span class='varid'>ex</span>       <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>0</span>
+<a name="line-106"></a><a name="zeroOrOne"></a><span class='definition'>zeroOrOne</span> <span class='varid'>ex</span>  <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='varop'>||</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>1</span>
+<a name="line-107"></a><a name="one"></a><span class='definition'>one</span> <span class='varid'>ex</span>        <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>1</span>
+<a name="line-108"></a><a name="two"></a><span class='definition'>two</span> <span class='varid'>ex</span>        <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>2</span>
+<a name="line-109"></a><a name="twoOrM"></a><span class='definition'>twoOrM</span> <span class='varid'>ex</span>     <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>&gt;=</span> <span class='num'>2</span>
+<a name="line-110"></a><a name="twoOrThree"></a><span class='definition'>twoOrThree</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>2</span> <span class='varop'>||</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>3</span>
+<a name="line-111"></a><a name="three"></a><span class='definition'>three</span> <span class='varid'>ex</span>      <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>3</span>
+<a name="line-112"></a>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- |</span>
+<a name="line-115"></a><span class='comment'>-- The core-functions library</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="fctTable"></a><span class='definition'>fctTable</span> <span class='keyglyph'>::</span> <span class='conid'>FctTable</span>
+<a name="line-118"></a><span class='definition'>fctTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span>
+<a name="line-119"></a>            <span class='layout'>(</span><span class='str'>"last"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xlast</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- nodeset functions</span>
+<a name="line-120"></a>            <span class='layout'>(</span><span class='str'>"position"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xposition</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-121"></a>            <span class='layout'>(</span><span class='str'>"count"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xcount</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-122"></a>            <span class='layout'>(</span><span class='str'>"id"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xid</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-123"></a>            <span class='layout'>(</span><span class='str'>"local-name"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xlocalName</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-124"></a>            <span class='layout'>(</span><span class='str'>"namespace-uri"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xnamespaceUri</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-125"></a>            <span class='layout'>(</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xname</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-126"></a>
+<a name="line-127"></a>            <span class='layout'>(</span><span class='str'>"string"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xstring</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- string functions</span>
+<a name="line-128"></a>            <span class='layout'>(</span><span class='str'>"concat"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xconcat</span><span class='layout'>,</span> <span class='varid'>twoOrM</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-129"></a>            <span class='layout'>(</span><span class='str'>"starts-with"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xstartsWith</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-130"></a>            <span class='layout'>(</span><span class='str'>"contains"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xcontains</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-131"></a>            <span class='layout'>(</span><span class='str'>"substring-before"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsubstringBefore</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-132"></a>            <span class='layout'>(</span><span class='str'>"substring-after"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsubstringAfter</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-133"></a>            <span class='layout'>(</span><span class='str'>"substring"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsubstring</span><span class='layout'>,</span> <span class='varid'>twoOrThree</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-134"></a>            <span class='layout'>(</span><span class='str'>"string-length"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xstringLength</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-135"></a>            <span class='layout'>(</span><span class='str'>"normalize-space"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xnormalizeSpace</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-136"></a>            <span class='layout'>(</span><span class='str'>"translate"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xtranslate</span><span class='layout'>,</span> <span class='varid'>three</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-137"></a>
+<a name="line-138"></a>            <span class='layout'>(</span><span class='str'>"boolean"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xboolean</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- boolean functions</span>
+<a name="line-139"></a>            <span class='layout'>(</span><span class='str'>"not"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xnot</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-140"></a>            <span class='layout'>(</span><span class='str'>"true"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xtrue</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-141"></a>            <span class='layout'>(</span><span class='str'>"false"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xfalse</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-142"></a>            <span class='layout'>(</span><span class='str'>"lang"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xlang</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-143"></a>
+<a name="line-144"></a>            <span class='layout'>(</span><span class='str'>"number"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xnumber</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- number functions</span>
+<a name="line-145"></a>            <span class='layout'>(</span><span class='str'>"sum"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xsum</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-146"></a>            <span class='layout'>(</span><span class='str'>"floor"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xfloor</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-147"></a>            <span class='layout'>(</span><span class='str'>"ceiling"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xceiling</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-148"></a>            <span class='layout'>(</span><span class='str'>"round"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xround</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-149"></a>            <span class='layout'>(</span><span class='str'>"key"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xkey</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-150"></a>            <span class='layout'>(</span><span class='str'>"format-number"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xformatNumber</span><span class='layout'>,</span> <span class='varid'>twoOrThree</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>
+<a name="line-151"></a>            
+<a name="line-152"></a>            <span class='layout'>(</span><span class='str'>"document"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xdocument</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span><span class='comment'>-- extension functions for xslt 1.0</span>
+<a name="line-153"></a>            <span class='layout'>(</span><span class='str'>"generate-id"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xgenerateId</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-154"></a>            
+<a name="line-155"></a>           <span class='keyglyph'>]</span>
+<a name="line-156"></a>
+<a name="line-157"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-158"></a>
+<a name="line-159"></a><span class='comment'>-- some helper functions</span>
+<a name="line-160"></a>
+<a name="line-161"></a><span class='comment'>-- |</span>
+<a name="line-162"></a><span class='comment'>-- Returns the table of keys, needed by xslt, from the environment</span>
+<a name="line-163"></a>
+<a name="line-164"></a><a name="getKeyTab"></a><span class='definition'>getKeyTab</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>KeyTab</span>
+<a name="line-165"></a><span class='definition'>getKeyTab</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>keyTab</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>keyTab</span>
+<a name="line-166"></a>
+<a name="line-167"></a>
+<a name="line-168"></a><span class='comment'>-- |</span>
+<a name="line-169"></a><span class='comment'>-- Returns the table of variables from the environment</span>
+<a name="line-170"></a>
+<a name="line-171"></a><a name="getVarTab"></a><span class='definition'>getVarTab</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>VarTab</span>
+<a name="line-172"></a><span class='definition'>getVarTab</span> <span class='layout'>(</span><span class='varid'>varTab</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>varTab</span>
+<a name="line-173"></a>
+<a name="line-174"></a>
+<a name="line-175"></a><span class='comment'>-- |</span>
+<a name="line-176"></a><span class='comment'>-- Returns the conversion function for the XPath results: string, boolean and number</span>
+<a name="line-177"></a><span class='comment'>-- A nodeset can not be converted.</span>
+<a name="line-178"></a>
+<a name="line-179"></a><a name="getConvFct"></a><span class='definition'>getConvFct</span> <span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XFct</span>
+<a name="line-180"></a><span class='definition'>getConvFct</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>xnumber</span>
+<a name="line-181"></a><span class='definition'>getConvFct</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>xstring</span>
+<a name="line-182"></a><span class='definition'>getConvFct</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>xboolean</span>
+<a name="line-183"></a><span class='definition'>getConvFct</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-184"></a>
+<a name="line-185"></a>
+<a name="line-186"></a><span class='comment'>-- |</span>
+<a name="line-187"></a><span class='comment'>-- Filter for ordering a list of Nodes in document order</span>
+<a name="line-188"></a>
+<a name="line-189"></a><a name="createDocumentOrder"></a><span class='definition'>createDocumentOrder</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>
+<a name="line-190"></a><span class='definition'>createDocumentOrder</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>sortBy</span> <span class='varid'>documentOrder</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-191"></a>      <span class='keyword'>where</span>
+<a name="line-192"></a>      <span class='varid'>documentOrder</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Ordering</span>
+<a name="line-193"></a>      <span class='varid'>documentOrder</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-194"></a>
+<a name="line-195"></a><span class='definition'>createDocumentOrder</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-196"></a><span class='definition'>createDocumentOrder</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to createDocumentOrder without a nodeset"</span>
+<a name="line-197"></a>
+<a name="line-198"></a>
+<a name="line-199"></a><span class='comment'>-- |</span>
+<a name="line-200"></a><span class='comment'>-- Filter for ordering a list of Nodes in reverse document order</span>
+<a name="line-201"></a>
+<a name="line-202"></a><a name="createDocumentOrderReverse"></a><span class='definition'>createDocumentOrderReverse</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>
+<a name="line-203"></a><span class='definition'>createDocumentOrderReverse</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>sortBy</span> <span class='varid'>documentOrderReverse</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-204"></a>      <span class='keyword'>where</span>
+<a name="line-205"></a>      <span class='varid'>documentOrderReverse</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Ordering</span>
+<a name="line-206"></a>      <span class='varid'>documentOrderReverse</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-207"></a>
+<a name="line-208"></a><span class='definition'>createDocumentOrderReverse</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-209"></a><span class='definition'>createDocumentOrderReverse</span> <span class='keyword'>_</span>              <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to createDocumentOrderReverse without a nodeset"</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 removing identical fragment trees in a nodeset</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="remDups"></a><span class='definition'>remDups</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>
+<a name="line-215"></a><span class='definition'>remDups</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>
+<a name="line-216"></a><span class='definition'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='conid'>[]</span>
+<a name="line-217"></a><span class='definition'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</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>
+<a name="line-218"></a>    <span class='keyglyph'>|</span> <span class='varid'>isNotInNodeList</span> <span class='varid'>x</span> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>y</span><span class='layout'>)</span>
+<a name="line-219"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>            <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-220"></a>      <span class='keyword'>where</span>
+<a name="line-221"></a>      <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-222"></a><span class='definition'>remDups</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to remDups without a nodeset"</span>
+<a name="line-223"></a>
+<a name="line-224"></a><span class='comment'>-- |</span>
+<a name="line-225"></a><span class='comment'>-- Check whether a node is not a part of a node list. Needed to implement matching &amp; testing in xslt.</span>
+<a name="line-226"></a>
+<a name="line-227"></a><a name="isNotInNodeList"></a><span class='definition'>isNotInNodeList</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-228"></a><span class='definition'>isNotInNodeList</span> <span class='varid'>n</span> <span class='varid'>xs'</span> <span class='keyglyph'>=</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>`notElem`</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>nodeID</span> <span class='varop'>.</span> <span class='conid'>Just</span><span class='layout'>)</span> <span class='varid'>xs'</span>
+<a name="line-229"></a>
+<a name="line-230"></a>
+<a name="line-231"></a><span class='comment'>-- |</span>
+<a name="line-232"></a><span class='comment'>-- calculate an ID for a NODE</span>
+<a name="line-233"></a><span class='comment'>--</span>
+<a name="line-234"></a><span class='comment'>--    - returns : a list of numbers, one number for each level of the tree</span>
+<a name="line-235"></a>
+<a name="line-236"></a><span class='comment'>-- Tim Walkenhorst:</span>
+<a name="line-237"></a><span class='comment'>--   - Attributes are identified by their QName (they do not have previous siblings)</span>
+<a name="line-238"></a><span class='comment'>--   - Elements are identified by their relative position (# of previous siblings)</span>
+<a name="line-239"></a>
+<a name="line-240"></a><a name="IdPathStep"></a><span class='keyword'>data</span> <span class='conid'>IdPathStep</span> <span class='keyglyph'>=</span> <span class='conid'>IdRoot</span> <span class='conid'>String</span> <span class='keyglyph'>|</span> <span class='conid'>IdPos</span> <span class='conid'>Int</span> <span class='keyglyph'>|</span> <span class='conid'>IdAttr</span> <span class='conid'>QName</span> <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-241"></a>
+<a name="line-242"></a><a name="nodeID"></a><span class='definition'>nodeID</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>NavXmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>IdPathStep</span><span class='keyglyph'>]</span>
+<a name="line-243"></a><span class='definition'>nodeID</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-244"></a><span class='definition'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IdAttr</span> <span class='varid'>qn</span> <span class='conop'>:</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='varid'>upNT</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-245"></a><span class='definition'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>node</span> <span class='keyword'>_</span> <span class='varid'>prev</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>               
+<a name="line-246"></a>   <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span> <span class='varid'>node</span>
+<a name="line-247"></a>       <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>IdRoot</span> <span class='layout'>(</span><span class='varid'>getRootId</span> <span class='varid'>node</span><span class='layout'>)</span> 
+<a name="line-248"></a>   <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-249"></a>       <span class='keyglyph'>=</span> <span class='conid'>IdPos</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>prev</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='varid'>upNT</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-250"></a>   <span class='keyword'>where</span>
+<a name="line-251"></a>   <span class='varid'>getRootId</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'>getAttrValue</span> <span class='str'>"rootId"</span><span class='layout'>)</span>
+<a name="line-252"></a>
+<a name="line-253"></a><span class='comment'>-- |</span>
+<a name="line-254"></a><span class='comment'>-- Calculates the position of a node in a tree (in document order)</span>
+<a name="line-255"></a>
+<a name="line-256"></a><a name="documentPos"></a><span class='definition'>documentPos</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>IdPathStep</span><span class='keyglyph'>]</span>
+<a name="line-257"></a><span class='definition'>documentPos</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>tree</span><span class='layout'>)</span>
+<a name="line-258"></a>
+<a name="line-259"></a>
+<a name="line-260"></a><span class='comment'>-- |</span>
+<a name="line-261"></a><span class='comment'>-- Evaluates a function.</span>
+<a name="line-262"></a><span class='comment'>-- Calculation of the function value is done by looking up the function name in the function table,</span>
+<a name="line-263"></a><span class='comment'>-- check the number of arguments and calculate the funtion, if no</span>
+<a name="line-264"></a><span class='comment'>-- argument evaluation returns an error.</span>
+<a name="line-265"></a><span class='comment'>--</span>
+<a name="line-266"></a><span class='comment'>--    - returns : the function value as 'XPathValue'</span>
+<a name="line-267"></a>
+<a name="line-268"></a><a name="evalFct"></a><span class='definition'>evalFct</span> <span class='keyglyph'>::</span> <span class='conid'>FctName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-269"></a><span class='definition'>evalFct</span> <span class='varid'>name</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>args</span>
+<a name="line-270"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>fctTable</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-271"></a>        <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVError</span> <span class='layout'>(</span><span class='str'>"Call to undefined function "</span><span class='varop'>++</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-272"></a>        <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>fct</span><span class='layout'>,</span> <span class='varid'>checkArgCount</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-273"></a>          <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>checkArgCount</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-274"></a>            <span class='keyword'>then</span> <span class='conid'>XPVError</span> <span class='layout'>(</span><span class='str'>"Call to function "</span><span class='varop'>++</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" with wrong arguments"</span><span class='layout'>)</span>
+<a name="line-275"></a>            <span class='keyword'>else</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>checkArgErrors</span> <span class='varid'>args</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-276"></a>                   <span class='conid'>Just</span> <span class='varid'>e</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>e</span>
+<a name="line-277"></a>                   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>fct</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-278"></a>      <span class='keyword'>where</span>
+<a name="line-279"></a>      <span class='varid'>checkArgErrors</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-280"></a>      <span class='varid'>checkArgErrors</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>r</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>r</span><span class='layout'>)</span>
+<a name="line-281"></a>      <span class='varid'>checkArgErrors</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>checkArgErrors</span> <span class='varid'>xs</span>
+<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'>-- Converts a list of different 'XPathValue' types in a list of one 'XPathValue' type.</span>
+<a name="line-286"></a><span class='comment'>--</span>
+<a name="line-287"></a><span class='comment'>--    * 1.parameter fct :  the conversion function</span>
+<a name="line-288"></a><span class='comment'>--</span>
+<a name="line-289"></a>
+<a name="line-290"></a><a name="toXValue"></a><span class='definition'>toXValue</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span>
+<a name="line-291"></a><span class='definition'>toXValue</span> <span class='varid'>fct</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>fct</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>args</span><span class='keyglyph'>]</span>
+<a name="line-292"></a>
+<a name="line-293"></a>
+<a name="line-294"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-295"></a><span class='comment'>-- core-funktions library</span>
+<a name="line-296"></a>
+<a name="line-297"></a><span class='comment'>-- nodeset functions</span>
+<a name="line-298"></a>
+<a name="line-299"></a><span class='comment'>-- |</span>
+<a name="line-300"></a><span class='comment'>-- number last(): returns a number equal to the context size from the expression evaluation context</span>
+<a name="line-301"></a>
+<a name="line-302"></a><a name="xlast"></a><span class='definition'>xlast</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-303"></a><span class='definition'>xlast</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>len</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='varid'>int2XPNumber</span> <span class='varid'>len</span>
+<a name="line-304"></a>
+<a name="line-305"></a>
+<a name="line-306"></a><span class='comment'>-- |</span>
+<a name="line-307"></a><span class='comment'>-- number position(): returns a number equal to the context position from the expression evaluation context</span>
+<a name="line-308"></a>
+<a name="line-309"></a><a name="xposition"></a><span class='definition'>xposition</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-310"></a><span class='definition'>xposition</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='keyword'>_</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='varid'>int2XPNumber</span> <span class='varid'>pos</span>
+<a name="line-311"></a>
+<a name="line-312"></a>
+<a name="line-313"></a><span class='comment'>-- |</span>
+<a name="line-314"></a><span class='comment'>-- number count(node-set): returns the number of nodes in the argument node-set</span>
+<a name="line-315"></a>
+<a name="line-316"></a><a name="xcount"></a><span class='definition'>xcount</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-317"></a><span class='definition'>xcount</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='varid'>int2XPNumber</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>ns</span>
+<a name="line-318"></a><span class='definition'>xcount</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function count with wrong arguments"</span>
+<a name="line-319"></a>
+<a name="line-320"></a>
+<a name="line-321"></a><span class='comment'>-- |</span>
+<a name="line-322"></a><span class='comment'>-- node-set id(object): selects elements by their unique ID</span>
+<a name="line-323"></a>
+<a name="line-324"></a><a name="xid"></a><span class='definition'>xid</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-325"></a><span class='definition'>xid</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-326"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInId</span>  <span class='layout'>(</span><span class='varid'>getIds</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>strValues</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span>
+<a name="line-327"></a>      <span class='keyword'>where</span>
+<a name="line-328"></a>      <span class='varid'>strValues</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>stringValue</span><span class='layout'>)</span>
+<a name="line-329"></a>
+<a name="line-330"></a><span class='definition'>xid</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='varid'>arg</span>
+<a name="line-331"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInId</span> <span class='layout'>(</span><span class='varid'>getIds</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>words</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>arg</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span>
+<a name="line-332"></a>
+<a name="line-333"></a>
+<a name="line-334"></a>
+<a name="line-335"></a><span class='comment'>-- |</span>
+<a name="line-336"></a><span class='comment'>-- returns all IDs from the variable environment as a list of strings.</span>
+<a name="line-337"></a><span class='comment'>-- the IDs are stored in the variable: idAttr</span>
+<a name="line-338"></a>
+<a name="line-339"></a><a name="getIds"></a><span class='definition'>getIds</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>
+<a name="line-340"></a><span class='definition'>getIds</span> <span class='varid'>env</span>
+<a name="line-341"></a><span class='comment'>-- hier muss noch auf prefix getestet werden</span>
+<a name="line-342"></a>    <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>"idAttr"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getVarTab</span> <span class='varid'>env</span> 
+<a name="line-343"></a>
+<a name="line-344"></a>
+<a name="line-345"></a><a name="isInId"></a><span class='definition'>isInId</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'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-346"></a><span class='definition'>isInId</span> <span class='varid'>ids</span> <span class='varid'>str</span> <span class='varid'>ns</span>
+<a name="line-347"></a>    <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>filterNS</span> <span class='varid'>ids</span> <span class='varid'>str</span> <span class='varop'>.</span> <span class='varid'>descendantOrSelfAxis</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-348"></a>
+<a name="line-349"></a>
+<a name="line-350"></a><a name="filterNS"></a><span class='definition'>filterNS</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'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTrees</span>
+<a name="line-351"></a><span class='definition'>filterNS</span> <span class='varid'>ids</span> <span class='varid'>str</span> <span class='varid'>ns</span>
+<a name="line-352"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ns</span><span class='layout'>,</span> <span class='varid'>or</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>idInIdList</span> <span class='varid'>a</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varid'>ids</span><span class='keyglyph'>]</span>
+<a name="line-353"></a>      <span class='keyword'>where</span>
+<a name="line-354"></a>      <span class='varid'>idInIdList</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-355"></a>      <span class='varid'>idInIdList</span> <span class='varid'>al</span> <span class='varid'>str'</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getValue</span> <span class='varid'>b</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>`elem`</span> <span class='varid'>str'</span>
+<a name="line-356"></a>
+<a name="line-357"></a>
+<a name="line-358"></a><span class='comment'>-- |</span>
+<a name="line-359"></a><span class='comment'>-- string local-name(node-set?):</span>
+<a name="line-360"></a><span class='comment'>-- returns the local part of the expanded-name of the node in the argument node-set</span>
+<a name="line-361"></a><span class='comment'>-- that is first in document order. </span>
+<a name="line-362"></a><span class='comment'>-- If the argument node-set is empty or the first node has no expanded-name, an empty string is returned. </span>
+<a name="line-363"></a><span class='comment'>-- If the argument is omitted, it defaults to a node-set with the context node as its only member</span>
+<a name="line-364"></a>
+<a name="line-365"></a><span class='comment'>--   Bugfix: name(\/) is "" not "\/"!</span>
+<a name="line-366"></a>
+<a name="line-367"></a><a name="xlocalName"></a><span class='definition'>xlocalName</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-368"></a><span class='definition'>xlocalName</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpLocalPartOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varid'>cn</span><span class='layout'>)</span>
+<a name="line-369"></a><span class='definition'>xlocalName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-370"></a><span class='definition'>xlocalName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpLocalPartOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-371"></a><span class='definition'>xlocalName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>            <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function local-name with wrong arguments"</span>
+<a name="line-372"></a>
+<a name="line-373"></a><span class='comment'>-- |</span>
+<a name="line-374"></a><span class='comment'>-- string namespace-uri(node-set?):</span>
+<a name="line-375"></a><span class='comment'>-- returns the namespace URI of the expanded-name of the node in the argument node-set</span>
+<a name="line-376"></a><span class='comment'>-- that is first in document order.</span>
+<a name="line-377"></a><span class='comment'>-- If the argument node-set is empty, the first node has no expanded-name,</span>
+<a name="line-378"></a><span class='comment'>-- or the namespace URI of the expanded-name</span>
+<a name="line-379"></a><span class='comment'>-- is null, an empty string is returned. If the argument is omitted,</span>
+<a name="line-380"></a><span class='comment'>-- it defaults to a node-set with the context node as its only member</span>
+<a name="line-381"></a>
+<a name="line-382"></a><a name="xnamespaceUri"></a><span class='definition'>xnamespaceUri</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-383"></a><span class='definition'>xnamespaceUri</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNamespaceOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varid'>cn</span><span class='layout'>)</span>
+<a name="line-384"></a><span class='definition'>xnamespaceUri</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-385"></a><span class='definition'>xnamespaceUri</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNamespaceOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-386"></a><span class='definition'>xnamespaceUri</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>            <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function namespace-uri with wrong arguments"</span>
+<a name="line-387"></a>
+<a name="line-388"></a>
+<a name="line-389"></a><span class='comment'>-- |</span>
+<a name="line-390"></a><span class='comment'>-- string name(node-set?): </span>
+<a name="line-391"></a><span class='comment'>-- returns a string containing a QName representing the expanded-name of the node</span>
+<a name="line-392"></a><span class='comment'>-- in the argument node-set </span>
+<a name="line-393"></a><span class='comment'>-- that is first in document order. If the argument node-set is empty or the first</span>
+<a name="line-394"></a><span class='comment'>-- node has no expanded-name, </span>
+<a name="line-395"></a><span class='comment'>-- an empty string is returned. If the argument it omitted, it defaults to a node-set</span>
+<a name="line-396"></a><span class='comment'>-- with the context node as its only member.</span>
+<a name="line-397"></a><span class='comment'>-- Tim Walkenhorst: </span>
+<a name="line-398"></a>
+<a name="line-399"></a><span class='comment'>--   Bugfix: name(\/) is "" not "\/"!</span>
+<a name="line-400"></a>
+<a name="line-401"></a><a name="xname"></a><span class='definition'>xname</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-402"></a><span class='definition'>xname</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span>  <span class='keyglyph'>=</span>  <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNameOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varid'>cn</span><span class='layout'>)</span>
+<a name="line-403"></a><span class='definition'>xname</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-404"></a><span class='definition'>xname</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNameOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-405"></a><span class='definition'>xname</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>            <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function name with wrong arguments"</span>
+<a name="line-406"></a>
+<a name="line-407"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-408"></a><span class='comment'>-- string functions</span>
+<a name="line-409"></a>
+<a name="line-410"></a><a name="getFirstPos"></a><span class='comment'>-- |</span>
+<a name="line-411"></a><span class='comment'>-- some helper functions</span>
+<a name="line-412"></a><span class='definition'>getFirstPos</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'>Int</span>
+<a name="line-413"></a><span class='definition'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span>
+<a name="line-414"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>getFirstPos'</span> <span class='varid'>s</span> <span class='varid'>sub</span><span class='layout'>)</span> <span class='varop'>&gt;</span> <span class='varid'>length</span> <span class='varid'>s</span>
+<a name="line-415"></a>        <span class='keyword'>then</span> <span class='comment'>-</span><span class='num'>1</span>
+<a name="line-416"></a>        <span class='keyword'>else</span> <span class='varid'>getFirstPos'</span> <span class='varid'>s</span> <span class='varid'>sub</span>
+<a name="line-417"></a>
+<a name="line-418"></a><a name="getFirstPos'"></a><span class='definition'>getFirstPos'</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'>Int</span>
+<a name="line-419"></a><span class='definition'>getFirstPos'</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='num'>2</span>
+<a name="line-420"></a><span class='definition'>getFirstPos'</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'>sub</span>
+<a name="line-421"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>strStartsWith</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'>sub</span>
+<a name="line-422"></a>      <span class='keyword'>then</span> <span class='num'>0</span>
+<a name="line-423"></a>      <span class='keyword'>else</span> <span class='num'>1</span> <span class='varop'>+</span> <span class='varid'>getFirstPos'</span> <span class='varid'>xs</span> <span class='varid'>sub</span>
+<a name="line-424"></a>
+<a name="line-425"></a><a name="strStartsWith"></a><span class='definition'>strStartsWith</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-426"></a><span class='definition'>strStartsWith</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-427"></a>    <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varop'>==</span> <span class='varid'>b</span>
+<a name="line-428"></a>
+<a name="line-429"></a>
+<a name="line-430"></a>
+<a name="line-431"></a><span class='comment'>-- |</span>
+<a name="line-432"></a><span class='comment'>-- Returns the string-value of a node,</span>
+<a name="line-433"></a><span class='comment'>-- the value of a namespace node is not supported</span>
+<a name="line-434"></a>
+<a name="line-435"></a><a name="stringValue"></a><span class='definition'>stringValue</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-436"></a><span class='definition'>stringValue</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>a</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-437"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varop'>$</span> <span class='varid'>xpTextOf</span> <span class='varid'>a</span>
+<a name="line-438"></a>
+<a name="line-439"></a><span class='comment'>{-
+<a name="line-440"></a>      textFilter 
+<a name="line-441"></a>        = getXCmt `orElse`
+<a name="line-442"></a>--        getXNamespace `orElse`
+<a name="line-443"></a>          multi isXText
+<a name="line-444"></a>         
+<a name="line-445"></a>--        = (isXTag `guards` multi isXText) `orElse`
+<a name="line-446"></a>--          (isXPi `guards` multi isXText) `orElse`
+<a name="line-447"></a>--          (isXAttr `guards` multi isXText) `orElse`          
+<a name="line-448"></a>--          (isXText `guards` multi isXText) `orElse`
+<a name="line-449"></a>--          getXCmt
+<a name="line-450"></a>-}</span>
+<a name="line-451"></a>
+<a name="line-452"></a>
+<a name="line-453"></a><span class='comment'>-- |</span>
+<a name="line-454"></a><span class='comment'>-- string string(object?): converts an object to a string</span>
+<a name="line-455"></a>
+<a name="line-456"></a><a name="xstring"></a><span class='definition'>xstring</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-457"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>           <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-458"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span>        <span class='keyglyph'>=</span> <span class='varid'>stringValue</span> <span class='varid'>x</span>
+<a name="line-459"></a><span class='definition'>xstring</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span>            <span class='keyglyph'>=</span> <span class='varid'>stringValue</span> <span class='varid'>cn</span>
+<a name="line-460"></a>
+<a name="line-461"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-462"></a>    <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>round</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>a</span><span class='layout'>)</span><span class='keyglyph'>::</span><span class='conid'>Integer</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-463"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>a</span><span class='layout'>)</span>
+<a name="line-464"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>s</span><span class='keyglyph'>]</span>          <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-465"></a>
+<a name="line-466"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='conid'>True</span><span class='keyglyph'>]</span>         <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>"true"</span>
+<a name="line-467"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='conid'>False</span><span class='keyglyph'>]</span>        <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>"false"</span>
+<a name="line-468"></a>
+<a name="line-469"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span>          <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>
+<a name="line-470"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='keyglyph'>]</span>           <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>
+<a name="line-471"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>                      <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xstring with a wrong argument"</span>
+<a name="line-472"></a>
+<a name="line-473"></a>
+<a name="line-474"></a>
+<a name="line-475"></a><span class='comment'>-- |</span>
+<a name="line-476"></a><span class='comment'>-- string concat(string, string, string*): returns the concatenation of its arguments</span>
+<a name="line-477"></a>
+<a name="line-478"></a><a name="xconcat"></a><span class='definition'>xconcat</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-479"></a><span class='definition'>xconcat</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span> 
+<a name="line-480"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-481"></a>
+<a name="line-482"></a>
+<a name="line-483"></a><span class='comment'>-- |</span>
+<a name="line-484"></a><span class='comment'>-- boolean starts-with(string, string): </span>
+<a name="line-485"></a><span class='comment'>-- returns true if the first argument string starts </span>
+<a name="line-486"></a><span class='comment'>-- with the second argument string, and otherwise returns false</span>
+<a name="line-487"></a>
+<a name="line-488"></a><a name="xstartsWith"></a><span class='definition'>xstartsWith</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-489"></a><span class='definition'>xstartsWith</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-490"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>a</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>strStartsWith</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-491"></a>
+<a name="line-492"></a>
+<a name="line-493"></a><span class='comment'>-- |</span>
+<a name="line-494"></a><span class='comment'>-- boolean contains(string, string):</span>
+<a name="line-495"></a><span class='comment'>-- returns true if the first argument string contains the second argument string,</span>
+<a name="line-496"></a><span class='comment'>-- and otherwise returns false</span>
+<a name="line-497"></a>
+<a name="line-498"></a><a name="xcontains"></a><span class='definition'>xcontains</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-499"></a><span class='definition'>xcontains</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-500"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>sub</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span> <span class='varop'>/=</span> <span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-501"></a>
+<a name="line-502"></a>
+<a name="line-503"></a><span class='comment'>-- |</span>
+<a name="line-504"></a><span class='comment'>-- string substring-before(string, string):</span>
+<a name="line-505"></a><span class='comment'>-- returns the substring of the first argument string that precedes the first occurrence of</span>
+<a name="line-506"></a><span class='comment'>-- the second argument string </span>
+<a name="line-507"></a><span class='comment'>-- in the first argument string, or the empty string if the first argument string does not</span>
+<a name="line-508"></a><span class='comment'>-- contain the second argument string</span>
+<a name="line-509"></a>
+<a name="line-510"></a><a name="xsubstringBefore"></a><span class='definition'>xsubstringBefore</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-511"></a><span class='definition'>xsubstringBefore</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-512"></a>    <span class='keyglyph'>=</span> <span class='varid'>xsubstringBefore'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-513"></a>
+<a name="line-514"></a><a name="xsubstringBefore'"></a><span class='definition'>xsubstringBefore'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-515"></a><span class='definition'>xsubstringBefore'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-516"></a><span class='definition'>xsubstringBefore'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>sub</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-517"></a><span class='definition'>xsubstringBefore'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstringBefore' with a wrong argument"</span>
+<a name="line-518"></a>
+<a name="line-519"></a>
+<a name="line-520"></a>
+<a name="line-521"></a>
+<a name="line-522"></a><span class='comment'>-- |</span>
+<a name="line-523"></a><span class='comment'>-- string substring-after(string, string):</span>
+<a name="line-524"></a><span class='comment'>-- returns the substring of the first argument string that follows the first occurrence of</span>
+<a name="line-525"></a><span class='comment'>-- the second argument string </span>
+<a name="line-526"></a><span class='comment'>-- in the first argument string, or the empty string if the first argument string does not</span>
+<a name="line-527"></a><span class='comment'>-- contain the second argument string</span>
+<a name="line-528"></a>
+<a name="line-529"></a><a name="xsubstringAfter"></a><span class='definition'>xsubstringAfter</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-530"></a><span class='definition'>xsubstringAfter</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-531"></a>    <span class='keyglyph'>=</span> <span class='varid'>xsubstringAfter'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-532"></a>
+<a name="line-533"></a><a name="xsubstringAfter'"></a><span class='definition'>xsubstringAfter'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-534"></a><span class='definition'>xsubstringAfter'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-535"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>
+<a name="line-536"></a><span class='definition'>xsubstringAfter'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>sub</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-537"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span> <span class='varop'>==</span> <span class='comment'>-</span><span class='num'>1</span>
+<a name="line-538"></a>        <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-539"></a>        <span class='keyword'>else</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span><span class='layout'>)</span><span class='varop'>+</span><span class='varid'>length</span> <span class='varid'>sub</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-540"></a><span class='definition'>xsubstringAfter'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> 
+<a name="line-541"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstringAfter' with a wrong argument"</span>
+<a name="line-542"></a>
+<a name="line-543"></a>
+<a name="line-544"></a><span class='comment'>-- |</span>
+<a name="line-545"></a><span class='comment'>-- string substring(string, number, number?):</span>
+<a name="line-546"></a><span class='comment'>-- returns the substring of the first argument starting at the position specified</span>
+<a name="line-547"></a><span class='comment'>-- in the second argument </span>
+<a name="line-548"></a><span class='comment'>-- with length specified in the third argument. If the third argument is not specified,</span>
+<a name="line-549"></a><span class='comment'>-- it returns the substring </span>
+<a name="line-550"></a><span class='comment'>-- starting at the position specified in the second argument and continuing to the end of the string.</span>
+<a name="line-551"></a>
+<a name="line-552"></a><a name="xsubstring"></a><span class='definition'>xsubstring</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-553"></a><span class='definition'>xsubstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-554"></a>    <span class='keyglyph'>=</span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='varop'>++</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-555"></a><span class='definition'>xsubstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-556"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring with a wrong argument"</span>
+<a name="line-557"></a>
+<a name="line-558"></a><a name="xsubstring'"></a><span class='definition'>xsubstring'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-559"></a><span class='definition'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>start</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-560"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span> <span class='keyword'>of</span>
+<a name="line-561"></a>        <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>       <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-562"></a>        <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>    <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-563"></a>        <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-564"></a>        <span class='conid'>XPVNumber</span> <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>
+<a name="line-565"></a>        <span class='keyword'>_</span>                   <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring' with a wrong argument"</span>
+<a name="line-566"></a>
+<a name="line-567"></a><span class='definition'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>start</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='varid'>end</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-568"></a>    <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xPathAdd</span> <span class='conid'>Plus</span> <span class='layout'>(</span><span class='varid'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>end</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyword'>of</span>
+<a name="line-569"></a>        <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-570"></a>        <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>    <span class='keyglyph'>-&gt;</span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-571"></a>        <span class='conid'>XPVNumber</span> <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='str'>""</span>
+<a name="line-572"></a>        <span class='keyword'>_</span>                   <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring' with a wrong argument"</span>
+<a name="line-573"></a><span class='definition'>xsubstring'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-574"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring' with a wrong argument"</span>
+<a name="line-575"></a>
+<a name="line-576"></a>
+<a name="line-577"></a><span class='comment'>-- |</span>
+<a name="line-578"></a><span class='comment'>-- number string-length(string?):</span>
+<a name="line-579"></a><span class='comment'>-- returns the number of characters in the string. If the argument is omitted,</span>
+<a name="line-580"></a><span class='comment'>-- it defaults to the context node </span>
+<a name="line-581"></a><span class='comment'>-- converted to a string, in other words the string-value of the context node.</span>
+<a name="line-582"></a>
+<a name="line-583"></a><a name="xstringLength"></a><span class='definition'>xstringLength</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-584"></a><span class='definition'>xstringLength</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='conid'>[]</span>
+<a name="line-585"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-586"></a>      <span class='keyword'>where</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-587"></a><span class='definition'>xstringLength</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-588"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>int2XPNumber</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-589"></a>
+<a name="line-590"></a>
+<a name="line-591"></a><span class='comment'>-- |</span>
+<a name="line-592"></a><span class='comment'>-- string normalize-space(string?):</span>
+<a name="line-593"></a><span class='comment'>-- returns the argument string with whitespace normalized by stripping leading</span>
+<a name="line-594"></a><span class='comment'>-- and trailing whitespace and replacing sequences </span>
+<a name="line-595"></a><span class='comment'>-- of whitespace characters by a single space. If the argument is omitted,</span>
+<a name="line-596"></a><span class='comment'>-- it defaults to the context node converted to a string, </span>
+<a name="line-597"></a><span class='comment'>-- in other words the string-value of the context node.</span>
+<a name="line-598"></a><span class='comment'>-- The string is parsed by a function parseStr from XPathParser module. &lt;-- No longer! Tim Walkenhorst</span>
+<a name="line-599"></a>
+<a name="line-600"></a><a name="xnormalizeSpace"></a><span class='definition'>xnormalizeSpace</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-601"></a><span class='definition'>xnormalizeSpace</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='conid'>[]</span>
+<a name="line-602"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='varop'>$</span> <span class='varid'>normStr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-603"></a><span class='definition'>xnormalizeSpace</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-604"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVString</span> <span class='varop'>$</span> <span class='varid'>normStr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-605"></a>
+<a name="line-606"></a><a name="normStr"></a><span class='comment'>-- Tim Walkenhorst normStr replaces the use of parseStr...</span>
+<a name="line-607"></a><span class='definition'>normStr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-608"></a><span class='definition'>normStr</span> <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='varop'>.</span> <span class='varid'>words</span>
+<a name="line-609"></a>
+<a name="line-610"></a><a name="xtranslate"></a><span class='comment'>-- |</span>
+<a name="line-611"></a><span class='comment'>-- string translate(string, string, string):</span>
+<a name="line-612"></a><span class='comment'>-- returns the first argument string with occurrences of characters in the second argument string replaced by the character at </span>
+<a name="line-613"></a><span class='comment'>-- the corresponding position in the third argument string</span>
+<a name="line-614"></a><span class='definition'>xtranslate</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-615"></a><span class='definition'>xtranslate</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-616"></a>    <span class='keyglyph'>=</span> <span class='varid'>xtranslate'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-617"></a>
+<a name="line-618"></a><a name="xtranslate'"></a><span class='definition'>xtranslate'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-619"></a><span class='definition'>xtranslate'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>a</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>b</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-620"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>replace</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-621"></a><span class='definition'>xtranslate'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-622"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xtranslate' with a wrong argument"</span>
+<a name="line-623"></a>
+<a name="line-624"></a><a name="replace"></a><span class='definition'>replace</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'>String</span>
+<a name="line-625"></a><span class='definition'>replace</span> <span class='varid'>str</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>str</span>
+<a name="line-626"></a>
+<a name="line-627"></a><span class='comment'>-- remove all characters, if there is no corresponding character in the third argument</span>
+<a name="line-628"></a><span class='definition'>replace</span> <span class='varid'>str</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='conid'>[]</span>
+<a name="line-629"></a>    <span class='keyglyph'>=</span> <span class='varid'>replace</span> <span class='keyglyph'>[</span> <span class='varid'>s</span> <span class='keyglyph'>|</span> <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>str</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>/=</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='varid'>xs</span> <span class='conid'>[]</span>
+<a name="line-630"></a>
+<a name="line-631"></a><span class='definition'>replace</span> <span class='varid'>str</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='varid'>y</span><span class='conop'>:</span><span class='varid'>ys</span><span class='layout'>)</span>
+<a name="line-632"></a>    <span class='keyglyph'>=</span> <span class='varid'>replace</span> <span class='layout'>(</span><span class='varid'>rep</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='varid'>ys</span>
+<a name="line-633"></a>      <span class='keyword'>where</span> <span class='comment'>-- replace all characters in the first argument</span>
+<a name="line-634"></a>      <span class='varid'>rep</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'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-635"></a>      <span class='varid'>rep</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='varid'>a</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>b</span><span class='conop'>:</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span>
+<a name="line-636"></a>
+<a name="line-637"></a>
+<a name="line-638"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-639"></a><span class='comment'>-- boolean functions</span>
+<a name="line-640"></a>
+<a name="line-641"></a><a name="xboolean"></a><span class='comment'>-- |</span>
+<a name="line-642"></a><span class='comment'>-- boolean boolean(object): converts its argument to a boolean value</span>
+<a name="line-643"></a><span class='definition'>xboolean</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-644"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>a</span><span class='varop'>/=</span> <span class='conid'>NaN</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>a</span><span class='varop'>/=</span> <span class='conid'>Neg0</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>a</span><span class='varop'>/=</span> <span class='conid'>Pos0</span><span class='layout'>)</span>
+<a name="line-645"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>s</span> <span class='varop'>/=</span> <span class='num'>0</span><span class='layout'>)</span>
+<a name="line-646"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='keyglyph'>]</span>   <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='varid'>b</span>
+<a name="line-647"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>ns</span> <span class='varop'>&gt;</span> <span class='num'>0</span><span class='layout'>)</span>
+<a name="line-648"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='keyglyph'>]</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>
+<a name="line-649"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xboolean with a wrong argument"</span>
+<a name="line-650"></a>
+<a name="line-651"></a>
+<a name="line-652"></a><a name="xnot"></a><span class='comment'>-- |</span>
+<a name="line-653"></a><span class='comment'>-- boolean not(boolean): returns true if its argument is false, and false otherwise</span>
+<a name="line-654"></a><span class='definition'>xnot</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-655"></a><span class='definition'>xnot</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-656"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>not</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xboolean</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span> <span class='layout'>)</span>
+<a name="line-657"></a>
+<a name="line-658"></a>
+<a name="line-659"></a><a name="xtrue"></a><span class='comment'>-- |</span>
+<a name="line-660"></a><span class='comment'>-- boolean true(): returns true</span>
+<a name="line-661"></a><span class='definition'>xtrue</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-662"></a><span class='definition'>xtrue</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='conid'>True</span>
+<a name="line-663"></a>
+<a name="line-664"></a>
+<a name="line-665"></a><a name="xfalse"></a><span class='comment'>-- |</span>
+<a name="line-666"></a><span class='comment'>-- boolean false(): returns false</span>
+<a name="line-667"></a><span class='definition'>xfalse</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-668"></a><span class='definition'>xfalse</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='conid'>False</span>
+<a name="line-669"></a>
+<a name="line-670"></a>
+<a name="line-671"></a><span class='comment'>-- |</span>
+<a name="line-672"></a><span class='comment'>-- boolean lang(string):</span>
+<a name="line-673"></a><span class='comment'>-- returns true or false depending on whether the language of the context node as specified by xml:lang attributes </span>
+<a name="line-674"></a><span class='comment'>-- is the same as or is a sublanguage of the language specified by the argument string</span>
+<a name="line-675"></a>
+<a name="line-676"></a><a name="xlang"></a><span class='comment'>-- function needs namespaces which are not supported by the toolbox</span>
+<a name="line-677"></a><span class='definition'>xlang</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-678"></a><span class='definition'>xlang</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-679"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"namespaces are not supported"</span>
+<a name="line-680"></a>
+<a name="line-681"></a><span class='comment'>-- xlang c env args</span>
+<a name="line-682"></a><span class='comment'>--    = (\ (_, _, cn) [XPVString s] -&gt; ...) c (toXValue xstring c env args)</span>
+<a name="line-683"></a>
+<a name="line-684"></a>
+<a name="line-685"></a>
+<a name="line-686"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-687"></a><span class='comment'>-- number functions</span>
+<a name="line-688"></a>
+<a name="line-689"></a><a name="xnumber"></a><span class='comment'>-- |</span>
+<a name="line-690"></a><span class='comment'>-- number number(object?): converts its argument to a number</span>
+<a name="line-691"></a><span class='definition'>xnumber</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-692"></a><span class='definition'>xnumber</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='conid'>[]</span>
+<a name="line-693"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-694"></a><span class='definition'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-695"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-696"></a>
+<a name="line-697"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='keyglyph'>]</span>
+<a name="line-698"></a>    <span class='keyglyph'>|</span> <span class='varid'>b</span>                   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>1</span><span class='layout'>)</span>
+<a name="line-699"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-700"></a>
+<a name="line-701"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span>
+<a name="line-702"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>
+<a name="line-703"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='keyglyph'>]</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>
+<a name="line-704"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xnumber with a wrong argument"</span>
+<a name="line-705"></a>
+<a name="line-706"></a>
+<a name="line-707"></a><a name="xsum"></a><span class='comment'>-- |</span>
+<a name="line-708"></a><span class='comment'>-- number sum(node-set): </span>
+<a name="line-709"></a><span class='comment'>-- returns the sum, for each node in the argument node-set, of the result of </span>
+<a name="line-710"></a><span class='comment'>-- converting the string-values of the node to a number</span>
+<a name="line-711"></a><span class='definition'>xsum</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-712"></a><span class='definition'>xsum</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>
+<a name="line-713"></a><span class='definition'>xsum</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>
+<a name="line-714"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>xPathAdd</span> <span class='conid'>Plus</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getValues</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-715"></a>      <span class='keyword'>where</span>
+<a name="line-716"></a>      <span class='varid'>getValues</span> <span class='keyglyph'>::</span> <span class='conid'>NodeSet</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span>
+<a name="line-717"></a>      <span class='varid'>getValues</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>stringValue</span> <span class='varid'>n</span><span class='keyglyph'>]</span> <span class='keyglyph'>]</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-718"></a>
+<a name="line-719"></a><span class='definition'>xsum</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-720"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"The value of the function sum is not a nodeset"</span>
+<a name="line-721"></a>
+<a name="line-722"></a><a name="xfloor"></a><span class='comment'>-- |</span>
+<a name="line-723"></a><span class='comment'>-- number floor(number): returns the largest (closest to positive infinity) number that is not greater </span>
+<a name="line-724"></a><span class='comment'>-- than the argument and that is an integer</span>
+<a name="line-725"></a><span class='definition'>xfloor</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-726"></a><span class='definition'>xfloor</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-727"></a>    <span class='keyglyph'>=</span> <span class='varid'>xfloor'</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-728"></a>      <span class='keyword'>where</span>
+<a name="line-729"></a>      <span class='varid'>xfloor'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-730"></a>        <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>&gt;</span> <span class='num'>0</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='num'>1</span>    <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-731"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>         <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>floor</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-732"></a>      <span class='varid'>xfloor'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>
+<a name="line-733"></a>      <span class='varid'>xfloor'</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xfloor' without a number"</span>
+<a name="line-734"></a>
+<a name="line-735"></a>
+<a name="line-736"></a><a name="xceiling"></a><span class='comment'>-- |</span>
+<a name="line-737"></a><span class='comment'>-- number ceiling(number): returns the smallest (closest to negative infinity) number that is not less </span>
+<a name="line-738"></a><span class='comment'>-- than the argument and that is an integer</span>
+<a name="line-739"></a><span class='definition'>xceiling</span>  <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-740"></a><span class='definition'>xceiling</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-741"></a>    <span class='keyglyph'>=</span> <span class='varid'>xceiling'</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-742"></a>      <span class='keyword'>where</span>
+<a name="line-743"></a>      <span class='varid'>xceiling'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-744"></a>        <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='num'>0</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>f</span> <span class='varop'>&gt;</span> <span class='comment'>-</span><span class='num'>1</span>     <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-745"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>ceiling</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-746"></a>      <span class='varid'>xceiling'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>
+<a name="line-747"></a>      <span class='varid'>xceiling'</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xceiling' without a number"</span>
+<a name="line-748"></a>
+<a name="line-749"></a><a name="xround"></a><span class='comment'>-- |</span>
+<a name="line-750"></a><span class='comment'>-- number round(number):</span>
+<a name="line-751"></a><span class='comment'>-- returns the number that is closest to the argument and that is an integer. </span>
+<a name="line-752"></a><span class='comment'>-- If there are two such numbers, then the one that is closest to positive infinity is returned.</span>
+<a name="line-753"></a><span class='definition'>xround</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-754"></a><span class='definition'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>
+<a name="line-755"></a>    <span class='keyglyph'>=</span> <span class='varid'>xround'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>
+<a name="line-756"></a>
+<a name="line-757"></a><a name="xround'"></a><span class='definition'>xround'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-758"></a><span class='definition'>xround'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-759"></a>    <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='num'>0</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>f</span> <span class='varop'>&gt;=</span> <span class='comment'>-</span><span class='num'>0.5</span>  <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>
+<a name="line-760"></a>    <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>&gt;=</span> <span class='num'>0</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>f</span> <span class='varop'>&lt;</span> <span class='num'>0.5</span>   <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>
+<a name="line-761"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>           <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>xPathRound</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-762"></a>      <span class='keyword'>where</span>
+<a name="line-763"></a>      <span class='varid'>xPathRound</span> <span class='varid'>a</span> 
+<a name="line-764"></a>        <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='comment'>-</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>floor</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>&lt;</span> <span class='num'>0.5</span>
+<a name="line-765"></a>            <span class='keyword'>then</span> <span class='varid'>floor</span> <span class='varid'>a</span>
+<a name="line-766"></a>            <span class='keyword'>else</span> <span class='varid'>floor</span> <span class='layout'>(</span><span class='varid'>a</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span>
+<a name="line-767"></a>
+<a name="line-768"></a><span class='definition'>xround'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>
+<a name="line-769"></a><span class='definition'>xround'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>             <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xround' without a number"</span>
+<a name="line-770"></a>
+<a name="line-771"></a>
+<a name="line-772"></a>
+<a name="line-773"></a><a name="xkey"></a><span class='comment'>-- |</span>
+<a name="line-774"></a><span class='comment'>-- node-set key(string, object):</span>
+<a name="line-775"></a><span class='comment'>-- does for keys what the id function does for IDs</span>
+<a name="line-776"></a><span class='comment'>-- The first argument specifies the name of the key.</span>
+<a name="line-777"></a><span class='comment'>-- When the second argument is of type node-set, then the result is the</span>
+<a name="line-778"></a><span class='comment'>-- union of the result of applying the key function to the string value</span>
+<a name="line-779"></a><span class='comment'>-- of each of the nodes in the argument node-set.</span>
+<a name="line-780"></a><span class='comment'>-- When the second argument is of any other type, the argument is</span>
+<a name="line-781"></a><span class='comment'>-- converted to a string </span>
+<a name="line-782"></a><span class='definition'>xkey</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-783"></a><span class='definition'>xkey</span> <span class='keyword'>_</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-784"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInKey</span> <span class='layout'>(</span><span class='varid'>getKeyTab</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>strValues</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-785"></a>      <span class='keyword'>where</span>
+<a name="line-786"></a>      <span class='varid'>strValues</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>stringValue</span><span class='layout'>)</span>
+<a name="line-787"></a>
+<a name="line-788"></a><span class='definition'>xkey</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>arg</span><span class='layout'>)</span>
+<a name="line-789"></a>    <span class='comment'>-- = isInKey (getKeyTab env) s  ( (\(XPVString s) -&gt; words s) (xstring c env arg))</span>
+<a name="line-790"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInKey</span> <span class='layout'>(</span><span class='varid'>getKeyTab</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='keyglyph'>[</span><span class='varid'>str</span><span class='keyglyph'>]</span>
+<a name="line-791"></a>      <span class='keyword'>where</span>
+<a name="line-792"></a>        <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>arg</span>
+<a name="line-793"></a>
+<a name="line-794"></a><span class='definition'>xkey</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xkey with a wrong argument"</span>
+<a name="line-795"></a>
+<a name="line-796"></a>
+<a name="line-797"></a><a name="isInKey"></a><span class='definition'>isInKey</span> <span class='keyglyph'>::</span> <span class='conid'>KeyTab</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-798"></a><span class='definition'>isInKey</span> <span class='varid'>kt</span> <span class='varid'>kn</span> <span class='varid'>kv</span>
+<a name="line-799"></a>    <span class='comment'>-- = remDups (XPVNode (map ntree ts) )</span>
+<a name="line-800"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='varid'>ts</span> <span class='comment'>--(map ntree ts)</span>
+<a name="line-801"></a>      <span class='keyword'>where</span>
+<a name="line-802"></a>        <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>unzip3</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>isKeyVal</span> <span class='layout'>(</span><span class='varid'>isKeyName</span> <span class='varid'>kt</span> <span class='varid'>kn</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>kv</span>
+<a name="line-803"></a>
+<a name="line-804"></a><a name="isKeyName"></a><span class='definition'>isKeyName</span> <span class='keyglyph'>::</span> <span class='conid'>KeyTab</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>KeyTab</span>
+<a name="line-805"></a><span class='definition'>isKeyName</span> <span class='varid'>kt</span> <span class='varid'>kn</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isOfKeyName</span> <span class='varid'>kn</span><span class='layout'>)</span> <span class='varid'>kt</span>
+<a name="line-806"></a>
+<a name="line-807"></a><a name="isKeyVal"></a><span class='definition'>isKeyVal</span> <span class='keyglyph'>::</span> <span class='conid'>KeyTab</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>KeyTab</span>
+<a name="line-808"></a><span class='definition'>isKeyVal</span> <span class='varid'>kt</span> <span class='varid'>kv</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isOfKeyValue</span> <span class='varid'>kv</span><span class='layout'>)</span> <span class='varid'>kt</span>
+<a name="line-809"></a>
+<a name="line-810"></a><a name="isOfKeyName"></a><span class='definition'>isOfKeyName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>QName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NavXmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-811"></a><span class='definition'>isOfKeyName</span> <span class='varid'>kn</span> <span class='layout'>(</span><span class='varid'>qn</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>kn</span>
+<a name="line-812"></a>
+<a name="line-813"></a>
+<a name="line-814"></a><a name="isOfKeyValue"></a><span class='definition'>isOfKeyValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>QName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NavXmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-815"></a><span class='definition'>isOfKeyValue</span> <span class='varid'>kv</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>kv</span>
+<a name="line-816"></a>
+<a name="line-817"></a>
+<a name="line-818"></a><span class='comment'>-- |</span>
+<a name="line-819"></a><span class='comment'>-- string format-number(number, string, string?):</span>
+<a name="line-820"></a><span class='comment'>-- converts its first argument to a string using the format pattern string</span>
+<a name="line-821"></a><span class='comment'>-- specified by the second argument and the decimal-format named by the</span>
+<a name="line-822"></a><span class='comment'>-- third argument, or the default decimal-format, if there is no third argument</span>
+<a name="line-823"></a>
+<a name="line-824"></a><a name="xformatNumber"></a><span class='definition'>xformatNumber</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-825"></a><span class='definition'>xformatNumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-826"></a>    <span class='keyglyph'>=</span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='varop'>++</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-827"></a><span class='definition'>xformatNumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-828"></a>    <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xformatNumber with a wrong argument"</span>
+<a name="line-829"></a>
+<a name="line-830"></a>
+<a name="line-831"></a><span class='comment'>-- Poor man's document(...) function. Opens exactly one document. </span>
+<a name="line-832"></a><span class='comment'>-- Does not support "fragment identifiers". "Base-URI" is always current directory.</span>
+<a name="line-833"></a><span class='comment'>-- Should still be good enough for home use.</span>
+<a name="line-834"></a>
+<a name="line-835"></a><a name="xdocument"></a><span class='definition'>xdocument</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-836"></a><span class='definition'>xdocument</span> <span class='varid'>c</span> <span class='varid'>e</span> <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>xdocument'</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>e</span> <span class='varid'>val</span>
+<a name="line-837"></a>
+<a name="line-838"></a><a name="xdocument'"></a><span class='definition'>xdocument'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>
+<a name="line-839"></a><span class='definition'>xdocument'</span> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>ntree</span> <span class='varop'>$</span>
+<a name="line-840"></a>		 <span class='varid'>unsafePerformIO</span> <span class='varop'>$</span>
+<a name="line-841"></a>		 <span class='varid'>runX</span> <span class='layout'>(</span> <span class='varid'>readDocument</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_validate</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varid'>uri</span>
+<a name="line-842"></a>			<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-843"></a>			<span class='varid'>addAttr</span> <span class='str'>"rootId"</span> <span class='layout'>(</span><span class='str'>"doc "</span> <span class='varop'>++</span> <span class='varid'>uri</span><span class='layout'>)</span>
+<a name="line-844"></a>		      <span class='layout'>)</span>
+<a name="line-845"></a>
+<a name="line-846"></a><a name="xgenerateId"></a><span class='comment'>-- generate-id, should be fully compliant with XSLT specification.</span>
+<a name="line-847"></a><span class='definition'>xgenerateId</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>
+<a name="line-848"></a><span class='definition'>xgenerateId</span> <span class='keyword'>_</span>            <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>node</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>xgenerateId'</span> <span class='varid'>node</span>
+<a name="line-849"></a><span class='definition'>xgenerateId</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span>                 <span class='keyglyph'>=</span> <span class='varid'>xgenerateId'</span> <span class='varid'>node</span>
+<a name="line-850"></a><span class='definition'>xgenerateId</span> <span class='keyword'>_</span>            <span class='keyword'>_</span> <span class='keyword'>_</span>                  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal arguments in xgenerateId"</span>
+<a name="line-851"></a>
+<a name="line-852"></a><a name="xgenerateId'"></a><span class='definition'>xgenerateId'</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-853"></a><span class='definition'>xgenerateId'</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"id_"</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>str2XmlId</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>nodeID</span> <span class='varop'>.</span> <span class='conid'>Just</span>
+<a name="line-854"></a>
+<a name="line-855"></a><a name="str2XmlId"></a><span class='definition'>str2XmlId</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-856"></a><span class='definition'>str2XmlId</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>convert</span>
+<a name="line-857"></a>    <span class='keyword'>where</span> <span class='varid'>convert</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isAscii</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>isUpper</span> <span class='varid'>c</span> <span class='varop'>||</span> <span class='varid'>isLower</span> <span class='varid'>c</span> <span class='varop'>||</span> <span class='varid'>isDigit</span> <span class='varid'>c</span><span class='layout'>)</span>
+<a name="line-858"></a>                      <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>
+<a name="line-859"></a>                      <span class='keyword'>else</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'>ord</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"_"</span>
+<a name="line-860"></a>
+<a name="line-861"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-862"></a>
+<a name="line-863"></a><a name="xpNamePart"></a><span class='definition'>xpNamePart</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-864"></a><span class='definition'>xpNamePart</span> <span class='varid'>getNp</span>
+<a name="line-865"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span>
+<a name="line-866"></a>      <span class='varop'>.</span>
+<a name="line-867"></a>      <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='varid'>isRoot</span>
+<a name="line-868"></a>	      <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>""</span><span class='layout'>)</span>
+<a name="line-869"></a>	      <span class='varid'>getNp</span>
+<a name="line-870"></a>	    <span class='layout'>)</span>
+<a name="line-871"></a>
+<a name="line-872"></a><a name="xpLocalPartOf"></a><span class='definition'>xpLocalPartOf</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-873"></a><span class='definition'>xpLocalPartOf</span>	<span class='keyglyph'>=</span> <span class='varid'>xpNamePart</span> <span class='varid'>getLocalPart</span>
+<a name="line-874"></a>
+<a name="line-875"></a><a name="xpNamespaceOf"></a><span class='definition'>xpNamespaceOf</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-876"></a><span class='definition'>xpNamespaceOf</span>	<span class='keyglyph'>=</span> <span class='varid'>xpNamePart</span> <span class='varid'>getNamespaceUri</span>
+<a name="line-877"></a>
+<a name="line-878"></a><a name="xpNameOf"></a><span class='definition'>xpNameOf</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-879"></a><span class='definition'>xpNameOf</span>	<span class='keyglyph'>=</span> <span class='varid'>xpNamePart</span> <span class='varid'>getName</span>
+<a name="line-880"></a>
+<a name="line-881"></a><a name="getValue"></a><span class='definition'>getValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-882"></a><span class='definition'>getValue</span> <span class='varid'>n</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'>getAttrValue</span> <span class='varid'>n</span><span class='layout'>)</span>
+<a name="line-883"></a>
+<a name="line-884"></a><a name="xpTextOf"></a><span class='definition'>xpTextOf</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-885"></a><span class='definition'>xpTextOf</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'>xshow</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>getCmt</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>deep</span> <span class='varid'>isText</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-886"></a>
+<a name="line-887"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathKeywords.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathKeywords.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathKeywords.html
@@ -0,0 +1,67 @@
+<!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'>-- $Id: XPathKeywords.hs,v 1.1 2004/09/02 19:12:05 hxml Exp $</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a><span class='comment'>-- the XPath keywords</span>
+<a name="line-5"></a><span class='comment'>--</span>
+<a name="line-6"></a>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathKeywords</span>
+<a name="line-9"></a><span class='keyword'>where</span>
+<a name="line-10"></a>
+<a name="line-11"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-12"></a><span class='comment'>--</span>
+<a name="line-13"></a><span class='comment'>-- string constants for representing XPath keywords and axis</span>
+<a name="line-14"></a>
+<a name="line-15"></a><a name="a_ancestor"></a><span class='definition'>a_ancestor</span><span class='layout'>,</span>			<span class='comment'>-- axisNames</span>
+<a name="line-16"></a> <span class='varid'>a_ancestor_or_self</span><span class='layout'>,</span>
+<a name="line-17"></a> <span class='varid'>a_attribute</span><span class='layout'>,</span>
+<a name="line-18"></a> <span class='varid'>a_child</span><span class='layout'>,</span>
+<a name="line-19"></a> <span class='varid'>a_descendant</span><span class='layout'>,</span>
+<a name="line-20"></a> <span class='varid'>a_descendant_or_self</span><span class='layout'>,</span>
+<a name="line-21"></a> <span class='varid'>a_following</span><span class='layout'>,</span>
+<a name="line-22"></a> <span class='varid'>a_following_sibling</span><span class='layout'>,</span>
+<a name="line-23"></a> <span class='varid'>a_namespace</span><span class='layout'>,</span>
+<a name="line-24"></a> <span class='varid'>a_parent</span><span class='layout'>,</span>
+<a name="line-25"></a> <span class='varid'>a_preceding</span><span class='layout'>,</span>
+<a name="line-26"></a> <span class='varid'>a_preceding_sibling</span><span class='layout'>,</span>
+<a name="line-27"></a> <span class='varid'>a_self</span>				<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-28"></a>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="n_comment"></a><span class='definition'>n_comment</span><span class='layout'>,</span>			<span class='comment'>-- nodeTypes</span>
+<a name="line-31"></a> <span class='varid'>n_text</span><span class='layout'>,</span>
+<a name="line-32"></a> <span class='varid'>n_processing_instruction</span><span class='layout'>,</span>
+<a name="line-33"></a> <span class='varid'>n_node</span>				<span class='keyglyph'>::</span> <span class='conid'>String</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><span class='definition'>a_ancestor</span>			<span class='keyglyph'>=</span> <span class='str'>"ancestor"</span>  
+<a name="line-38"></a><a name="a_ancestor_or_self"></a><span class='definition'>a_ancestor_or_self</span>		<span class='keyglyph'>=</span> <span class='str'>"ancestor-or-self"</span>  
+<a name="line-39"></a><a name="a_attribute"></a><span class='definition'>a_attribute</span> 			<span class='keyglyph'>=</span> <span class='str'>"attribute"</span>  
+<a name="line-40"></a><a name="a_child"></a><span class='definition'>a_child</span>				<span class='keyglyph'>=</span> <span class='str'>"child"</span>  
+<a name="line-41"></a><a name="a_descendant"></a><span class='definition'>a_descendant</span>			<span class='keyglyph'>=</span> <span class='str'>"descendant"</span>  
+<a name="line-42"></a><a name="a_descendant_or_self"></a><span class='definition'>a_descendant_or_self</span>		<span class='keyglyph'>=</span> <span class='str'>"descendant-or-self"</span>  
+<a name="line-43"></a><a name="a_following"></a><span class='definition'>a_following</span>			<span class='keyglyph'>=</span> <span class='str'>"following"</span>  
+<a name="line-44"></a><a name="a_following_sibling"></a><span class='definition'>a_following_sibling</span>		<span class='keyglyph'>=</span> <span class='str'>"following-sibling"</span>  
+<a name="line-45"></a><a name="a_namespace"></a><span class='definition'>a_namespace</span>			<span class='keyglyph'>=</span> <span class='str'>"namespace"</span>  
+<a name="line-46"></a><a name="a_parent"></a><span class='definition'>a_parent</span>			<span class='keyglyph'>=</span> <span class='str'>"parent"</span>  
+<a name="line-47"></a><a name="a_preceding"></a><span class='definition'>a_preceding</span>			<span class='keyglyph'>=</span> <span class='str'>"preceding"</span>  
+<a name="line-48"></a><a name="a_preceding_sibling"></a><span class='definition'>a_preceding_sibling</span>		<span class='keyglyph'>=</span> <span class='str'>"preceding-sibling"</span>  
+<a name="line-49"></a><a name="a_self"></a><span class='definition'>a_self</span>				<span class='keyglyph'>=</span> <span class='str'>"self"</span> 
+<a name="line-50"></a>
+<a name="line-51"></a>
+<a name="line-52"></a><span class='definition'>n_comment</span> 			<span class='keyglyph'>=</span> <span class='str'>"comment"</span>
+<a name="line-53"></a><a name="n_text"></a><span class='definition'>n_text</span> 				<span class='keyglyph'>=</span> <span class='str'>"text"</span>
+<a name="line-54"></a><a name="n_processing_instruction"></a><span class='definition'>n_processing_instruction</span> 	<span class='keyglyph'>=</span> <span class='str'>"processing-instruction"</span>
+<a name="line-55"></a><a name="n_node"></a><span class='definition'>n_node</span> 				<span class='keyglyph'>=</span> <span class='str'>"node"</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html
@@ -0,0 +1,662 @@
+<!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     : 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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathToNodeSet.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathToNodeSet.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathToNodeSet.html
@@ -0,0 +1,88 @@
+<!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'>-- Convert an XPath result set into a node set</span>
+<a name="line-3"></a><span class='comment'>--</span>
+<a name="line-4"></a>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToNodeSet</span>
+<a name="line-7"></a>    <span class='layout'>(</span> <span class='varid'>xPValue2NodeSet</span>
+<a name="line-8"></a>    <span class='layout'>,</span> <span class='varid'>emptyNodeSet</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'>TypeDefs</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
+<a name="line-14"></a>
+<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-16"></a>
+<a name="line-17"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-18"></a><span class='comment'>-- |</span>
+<a name="line-19"></a><span class='comment'>-- Convert a a XPath-value into a XmlNodeSet represented by a tree structure</span>
+<a name="line-20"></a><span class='comment'>--</span>
+<a name="line-21"></a><span class='comment'>-- The XmlNodeSet can be used to traverse a tree an process all</span>
+<a name="line-22"></a><span class='comment'>-- marked nodes.</span>
+<a name="line-23"></a>
+<a name="line-24"></a><a name="xPValue2NodeSet"></a><span class='definition'>xPValue2NodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-25"></a><span class='definition'>xPValue2NodeSet</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-26"></a>    <span class='keyglyph'>=</span> <span class='varid'>toNodeSet</span> <span class='varid'>ns</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='definition'>xPValue2NodeSet</span> <span class='keyword'>_</span>
+<a name="line-29"></a>    <span class='keyglyph'>=</span> <span class='varid'>emptyNodeSet</span>
+<a name="line-30"></a>
+<a name="line-31"></a><a name="emptyNodeSet"></a><span class='definition'>emptyNodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-32"></a><span class='definition'>emptyNodeSet</span>		<span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>False</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-33"></a>
+<a name="line-34"></a><a name="leafNodeSet"></a><span class='definition'>leafNodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-35"></a><span class='definition'>leafNodeSet</span>		<span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>True</span> <span class='conid'>[]</span> <span class='conid'>[]</span>
+<a name="line-36"></a>
+<a name="line-37"></a><a name="toNodeSet"></a><span class='definition'>toNodeSet</span>		<span class='keyglyph'>::</span> <span class='conid'>NodeSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-38"></a><span class='definition'>toNodeSet</span>
+<a name="line-39"></a>    <span class='keyglyph'>=</span> <span class='varid'>pathListToNodeSet</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>toPath</span>
+<a name="line-40"></a>
+<a name="line-41"></a><a name="toPath"></a><span class='definition'>toPath</span>			<span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-42"></a><span class='definition'>toPath</span>
+<a name="line-43"></a>    <span class='keyglyph'>=</span> <span class='varid'>upTree</span> <span class='varid'>leafNodeSet</span>
+<a name="line-44"></a>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="upTree"></a><span class='definition'>upTree</span>			<span class='keyglyph'>::</span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-47"></a><span class='definition'>upTree</span> <span class='varid'>ps</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_par</span> <span class='varid'>left</span> <span class='sel'>_right</span><span class='layout'>)</span>
+<a name="line-48"></a>    <span class='keyglyph'>=</span> <span class='varid'>up</span> <span class='layout'>(</span><span class='varid'>upNT</span> <span class='varid'>t</span><span class='layout'>)</span>
+<a name="line-49"></a>    <span class='keyword'>where</span>
+<a name="line-50"></a>    <span class='varid'>up</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>pt</span><span class='layout'>)</span>
+<a name="line-51"></a>	<span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>upNT</span> <span class='varop'>$</span> <span class='varid'>pt</span>		<span class='comment'>-- pt is a "real" node</span>
+<a name="line-52"></a>	    <span class='keyglyph'>=</span> <span class='varid'>upTree</span> <span class='layout'>(</span><span class='varid'>pix</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>pt</span>
+<a name="line-53"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='comment'>-- pt is the added root node, stop recursion</span>
+<a name="line-54"></a>	    <span class='keyglyph'>=</span> <span class='varid'>ps</span>
+<a name="line-55"></a>    <span class='varid'>up</span> <span class='conid'>Nothing</span>				<span class='comment'>-- never used recursion should stop earler</span>
+<a name="line-56"></a>	<span class='keyglyph'>=</span> <span class='varid'>ps</span>
+<a name="line-57"></a>
+<a name="line-58"></a>    <span class='varid'>pix</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='conid'>XNS</span> <span class='conid'>False</span> <span class='keyglyph'>[</span><span class='varid'>qn</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>
+<a name="line-59"></a>    <span class='varid'>pix</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>False</span> <span class='conid'>[]</span>   <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>left</span><span class='layout'>,</span> <span class='varid'>ps</span><span class='layout'>)</span><span class='keyglyph'>]</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="pathListToNodeSet"></a><span class='definition'>pathListToNodeSet</span>	<span class='keyglyph'>::</span><span class='keyglyph'>[</span><span class='conid'>XmlNodeSet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>
+<a name="line-62"></a><span class='definition'>pathListToNodeSet</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>mergePaths</span> <span class='varid'>emptyNodeSet</span>
+<a name="line-64"></a>    <span class='keyword'>where</span>
+<a name="line-65"></a>    <span class='varid'>mergePaths</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>p1</span> <span class='varid'>al1</span> <span class='varid'>cl1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>p2</span> <span class='varid'>al2</span> <span class='varid'>cl2</span><span class='layout'>)</span>
+<a name="line-66"></a>	<span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='layout'>(</span><span class='varid'>p1</span> <span class='varop'>||</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>al1</span> <span class='varop'>++</span> <span class='varid'>al2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mergeSubPaths</span> <span class='varid'>cl1</span> <span class='varid'>cl2</span><span class='layout'>)</span>
+<a name="line-67"></a>
+<a name="line-68"></a>    <span class='varid'>mergeSubPaths</span> <span class='conid'>[]</span>       <span class='varid'>sp2</span> <span class='keyglyph'>=</span> <span class='varid'>sp2</span>
+<a name="line-69"></a>    <span class='varid'>mergeSubPaths</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='conop'>:</span><span class='varid'>sp1</span><span class='layout'>)</span> <span class='varid'>sp2</span> <span class='keyglyph'>=</span> <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span> <span class='layout'>(</span><span class='varid'>mergeSubPaths</span> <span class='varid'>sp1</span> <span class='varid'>sp2</span><span class='layout'>)</span>
+<a name="line-70"></a>
+<a name="line-71"></a>    <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span> <span class='conid'>[]</span>
+<a name="line-72"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>s1</span><span class='keyglyph'>]</span>
+<a name="line-73"></a>    <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ix1</span><span class='layout'>,</span><span class='varid'>p1</span><span class='layout'>)</span> <span class='varid'>sl</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>s2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ix2</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sl'</span><span class='layout'>)</span>
+<a name="line-74"></a>	<span class='keyglyph'>|</span> <span class='varid'>ix1</span> <span class='varop'>&lt;</span> <span class='varid'>ix2</span>	<span class='keyglyph'>=</span> <span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>sl</span>
+<a name="line-75"></a>	<span class='keyglyph'>|</span> <span class='varid'>ix1</span> <span class='varop'>&gt;</span> <span class='varid'>ix2</span>	<span class='keyglyph'>=</span> <span class='varid'>s2</span> <span class='conop'>:</span> <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span> <span class='varid'>sl'</span>		<span class='comment'>-- ordered insert of s1 </span>
+<a name="line-76"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>ix1</span><span class='layout'>,</span> <span class='varid'>mergePaths</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sl'</span>		<span class='comment'>-- same ix merge subpaths</span>
+<a name="line-77"></a>
+<a name="line-78"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath-XPathToString.html b/doc/hdoc/src/Text-XML-HXT-XPath-XPathToString.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath-XPathToString.html
@@ -0,0 +1,146 @@
+<!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     : Text.XML.HXT.XPath.XPathToString
+<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  : experimental
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   Format an expression or value in tree- or string-representation
+<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'>XPathToString</span>
+<a name="line-19"></a>    <span class='layout'>(</span> <span class='varid'>expr2XPathTree</span>
+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>xPValue2String</span>
+<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>xPValue2XmlTrees</span>
+<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>nt2XPathTree</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>pred2XPathTree</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>toXPathTree</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>where</span>
+<a name="line-27"></a>
+<a name="line-28"></a><span class='comment'>-- import Text.XML.HXT.DOM.XmlTree</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>
+<a name="line-32"></a>    <span class='layout'>(</span> <span class='varid'>mkText</span>
+<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>
+<a name="line-34"></a>    <span class='layout'>)</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'>FormatXmlTree</span>
+<a name="line-36"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>
+<a name="line-37"></a>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>
+<a name="line-39"></a>
+<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>
+<a name="line-41"></a>    <span class='layout'>(</span> <span class='varid'>toLower</span> <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="XPathTree"></a><span class='keyword'>type</span> <span class='conid'>XPathTree</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='conid'>String</span>
+<a name="line-46"></a>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="toXPathTree"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-49"></a><span class='comment'>-- |</span>
+<a name="line-50"></a><span class='comment'>-- Convert an navigable tree in a xmltree</span>
+<a name="line-51"></a><span class='comment'>--</span>
+<a name="line-52"></a><span class='definition'>toXPathTree</span>			<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>
+<a name="line-53"></a><span class='definition'>toXPathTree</span> <span class='varid'>xs</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='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>subtreeNT</span> <span class='varid'>x</span> <span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>xs</span>
+<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><span class='comment'>-- Format a XPath-value in string representation.</span>
+<a name="line-58"></a><span class='comment'>-- Text output is done by 'formatXmlTree' for node-sets (trees),</span>
+<a name="line-59"></a><span class='comment'>-- all other values are represented as strings.</span>
+<a name="line-60"></a><span class='comment'>--</span>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="xPValue2String"></a><span class='definition'>xPValue2String</span>			<span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-63"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>formatXmlTree</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>toXPathTree</span> <span class='varid'>ns</span><span class='layout'>)</span>
+<a name="line-65"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-66"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>f</span>
+<a name="line-67"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='varid'>s</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>s</span>
+<a name="line-68"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='varid'>s</span>
+<a name="line-69"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>s</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='str'>"Error: "</span> <span class='varop'>++</span> <span class='varid'>s</span>
+<a name="line-70"></a>
+<a name="line-71"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-72"></a><span class='comment'>-- |</span>
+<a name="line-73"></a><span class='comment'>-- Convert a a XPath-value into XmlTrees.</span>
+<a name="line-74"></a><span class='comment'>--</span>
+<a name="line-75"></a>
+<a name="line-76"></a><a name="xPValue2XmlTrees"></a><span class='definition'>xPValue2XmlTrees</span>			<span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-77"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>toXPathTree</span> <span class='varid'>ns</span>
+<a name="line-78"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>b</span><span class='layout'>)</span>
+<a name="line-79"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>f</span><span class='layout'>)</span>
+<a name="line-80"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='varid'>s</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>s</span><span class='layout'>)</span>
+<a name="line-81"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='varid'>s</span>
+<a name="line-82"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVError</span>  <span class='varid'>s</span><span class='layout'>)</span>		<span class='keyglyph'>=</span> <span class='varid'>xerr</span> <span class='varid'>s</span>
+<a name="line-83"></a>
+<a name="line-84"></a><a name="xtext"></a><span class='definition'>xtext</span><span class='layout'>,</span> <span class='varid'>xerr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>
+<a name="line-85"></a><span class='definition'>xtext</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkText</span>
+<a name="line-86"></a><a name="xerr"></a><span class='definition'>xerr</span>  <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span>
+<a name="line-87"></a>
+<a name="line-88"></a>
+<a name="line-89"></a><a name="expr2XPathTree"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-90"></a><span class='comment'>-- |</span>
+<a name="line-91"></a><span class='comment'>-- Format a parsed XPath-expression in tree representation.</span>
+<a name="line-92"></a><span class='comment'>-- Text output is done by 'formatXmlTree'</span>
+<a name="line-93"></a><span class='comment'>--</span>
+<a name="line-94"></a><span class='definition'>expr2XPathTree</span>			<span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathTree</span>
+<a name="line-95"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varid'>ex</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>expr2XPathTree</span> <span class='varid'>ex</span><span class='layout'>)</span>
+<a name="line-96"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>f</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-97"></a><span class='definition'>expr2XPathTree</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='conid'>NTree</span> <span class='varid'>s</span> <span class='conid'>[]</span>
+<a name="line-98"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>name</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"Var: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-99"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>n</span> <span class='varid'>arg</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"Fct: "</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>expr2XPathTree</span> <span class='varid'>arg</span><span class='layout'>)</span>
+<a name="line-100"></a>
+<a name="line-101"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='conid'>[]</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>""</span> <span class='conid'>[]</span>
+<a name="line-102"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>primary</span><span class='conop'>:</span><span class='varid'>predicate</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-103"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"FilterExpr"</span> <span class='keyglyph'>[</span><span class='varid'>expr2XPathTree</span> <span class='varid'>primary</span><span class='layout'>,</span> <span class='varid'>pred2XPathTree</span> <span class='varid'>predicate</span><span class='keyglyph'>]</span>
+<a name="line-104"></a>
+<a name="line-105"></a><span class='definition'>expr2XPathTree</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> <span class='keyglyph'>=</span> <span class='varid'>locpath2XPathTree</span> <span class='varid'>lp</span>
+<a name="line-106"></a><span class='definition'>expr2XPathTree</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'>lp</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-107"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"PathExpr"</span> <span class='keyglyph'>[</span><span class='varid'>expr2XPathTree</span> <span class='varid'>fe</span><span class='layout'>,</span> <span class='varid'>locpath2XPathTree</span> <span class='varid'>lp</span><span class='keyglyph'>]</span>
+<a name="line-108"></a><span class='definition'>expr2XPathTree</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'>NTree</span> <span class='str'>""</span> <span class='conid'>[]</span>
+<a name="line-109"></a>
+<a name="line-110"></a><a name="locpath2XPathTree"></a><span class='definition'>locpath2XPathTree</span>		<span class='keyglyph'>::</span> <span class='conid'>LocationPath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathTree</span>
+<a name="line-111"></a><span class='definition'>locpath2XPathTree</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='varid'>rel</span> <span class='varid'>steps</span><span class='layout'>)</span>
+<a name="line-112"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>rel</span> <span class='varop'>++</span> <span class='str'>"LocationPath"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>step2XPathTree</span> <span class='varid'>steps</span><span class='layout'>)</span>
+<a name="line-113"></a>
+<a name="line-114"></a>
+<a name="line-115"></a><a name="step2XPathTree"></a><span class='definition'>step2XPathTree</span> 			<span class='keyglyph'>::</span> <span class='conid'>XStep</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathTree</span>
+<a name="line-116"></a><span class='definition'>step2XPathTree</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='varid'>axis</span> <span class='varid'>nt</span> <span class='conid'>[]</span><span class='layout'>)</span>
+<a name="line-117"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>axis</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>nt2XPathTree</span> <span class='varid'>nt</span><span class='keyglyph'>]</span>
+<a name="line-118"></a><span class='definition'>step2XPathTree</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='varid'>axis</span> <span class='varid'>nt</span> <span class='varid'>expr</span><span class='layout'>)</span>
+<a name="line-119"></a>    <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>axis</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>nt2XPathTree</span> <span class='varid'>nt</span><span class='layout'>,</span> <span class='varid'>pred2XPathTree</span> <span class='varid'>expr</span><span class='keyglyph'>]</span>
+<a name="line-120"></a>
+<a name="line-121"></a><a name="nt2XPathTree"></a><span class='definition'>nt2XPathTree</span> 			<span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathTree</span>
+<a name="line-122"></a><span class='definition'>nt2XPathTree</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>s</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"TypeTest: "</span><span class='varop'>++</span> <span class='varid'>typeTest2String</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-123"></a><span class='definition'>nt2XPathTree</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>s</span><span class='layout'>)</span> 		<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"TypeTest: processing-instruction("</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='conid'>[]</span>
+<a name="line-124"></a><span class='definition'>nt2XPathTree</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>s</span><span class='layout'>)</span> 	<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"NameTest: "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>[]</span>
+<a name="line-125"></a>
+<a name="line-126"></a>
+<a name="line-127"></a><a name="pred2XPathTree"></a><span class='definition'>pred2XPathTree</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'>XPathTree</span>
+<a name="line-128"></a><span class='definition'>pred2XPathTree</span> <span class='varid'>exprL</span> 		<span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"Predicates"</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>expr2XPathTree</span> <span class='varid'>exprL</span><span class='layout'>)</span>
+<a name="line-129"></a>
+<a name="line-130"></a><a name="typeTest2String"></a><span class='definition'>typeTest2String</span> 		<span class='keyglyph'>::</span> <span class='conid'>XPathNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-131"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPNode</span> 		<span class='keyglyph'>=</span> <span class='str'>"node()"</span>
+<a name="line-132"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPCommentNode</span>	<span class='keyglyph'>=</span> <span class='str'>"comment()"</span>
+<a name="line-133"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPPINode</span> 	<span class='keyglyph'>=</span> <span class='str'>"processing-instruction()"</span>
+<a name="line-134"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPTextNode</span> 	<span class='keyglyph'>=</span> <span class='str'>"text()"</span>
+<a name="line-135"></a>
+<a name="line-136"></a><span class='comment'>-- ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XPath.html b/doc/hdoc/src/Text-XML-HXT-XPath.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XPath.html
@@ -0,0 +1,27 @@
+<!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'>-- This helper module exports elements from the basic libraries:</span>
+<a name="line-3"></a><span class='comment'>-- XPathEval, XPathToString and XPathParser</span>
+<a name="line-4"></a><span class='comment'>--</span>
+<a name="line-5"></a><span class='comment'>-- Author : Torben Kuseler</span>
+<a name="line-6"></a>
+<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'>XPath</span>
+<a name="line-9"></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-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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
+<a name="line-12"></a>    <span class='layout'>)</span> 
+<a name="line-13"></a><span class='keyword'>where</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>
+<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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XSLT-Application.html b/doc/hdoc/src/Text-XML-HXT-XSLT-Application.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-Application.html
@@ -0,0 +1,650 @@
+<!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     : Text.XML.HXT.XSLT.Application
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006 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: Application.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   The transformation functions for XSLT transformation of XML documents
+<a name="line-14"></a>
+<a name="line-15"></a>   Exports only two pure functions 'applyStylesheet' and 'applyStylesheetWParams'
+<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'>XSLT</span><span class='varop'>.</span><span class='conid'>Application</span> 
+<a name="line-22"></a>    <span class='layout'>(</span> <span class='varid'>applyStylesheet</span>        <span class='comment'>-- CompiledStylesheet -&gt; XmlTree -&gt; [XmlTree]</span>
+<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>applyStylesheetWParams</span> <span class='comment'>-- Map ExName Expr -&gt; CompiledStylesheet -&gt; XmlTree -&gt; [XmlTree]</span>
+<a name="line-24"></a>    <span class='layout'>,</span> <span class='conid'>XPathParams</span>
+<a name="line-25"></a>    <span class='layout'>)</span>
+<a name="line-26"></a><span class='keyword'>where</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'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</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'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>
+<a name="line-30"></a>
+<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>
+<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-34"></a>
+<a name="line-35"></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-36"></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-37"></a>
+<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</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="XPathParams"></a><span class='keyword'>type</span> <span class='conid'>XPathParams</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Expr</span>
+<a name="line-43"></a>
+<a name="line-44"></a><a name="VariableSet"></a><span class='keyword'>type</span> <span class='conid'>VariableSet</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>XPathValue</span>
+<a name="line-45"></a>
+<a name="line-46"></a><a name="ParamSet"></a><span class='keyword'>type</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>=</span> <span class='conid'>VariableSet</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="Context"></a><span class='keyword'>data</span> <span class='conid'>Context</span> <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='conid'>NavXmlTree</span>               <span class='comment'>-- current node</span>
+<a name="line-49"></a>                   <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>             <span class='comment'>-- current node list </span>
+<a name="line-50"></a>                   <span class='conid'>Int</span>                      <span class='comment'>-- pos. of curr-node 1..length</span>
+<a name="line-51"></a>                   <span class='conid'>Int</span>                      <span class='comment'>-- length of node list</span>
+<a name="line-52"></a>                   <span class='conid'>VariableSet</span>              <span class='comment'>-- glob. Var</span>
+<a name="line-53"></a>                   <span class='conid'>VariableSet</span>              <span class='comment'>-- loc. Var</span>
+<a name="line-54"></a>                   <span class='conid'>CompiledStylesheet</span>       <span class='comment'>-- The stylesheet which is being applied</span>
+<a name="line-55"></a>                   <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>MatchRule</span><span class='layout'>)</span>        <span class='comment'>-- Just the last applied match rule, Nothing within xsl:for-each</span>
+<a name="line-56"></a>                   <span class='conid'>Int</span>                      <span class='comment'>-- recursion depth, needed for the creation of rtf-ids</span>
+<a name="line-57"></a>               <span class='keyglyph'>|</span> <span class='conid'>CtxEmpty</span>        <span class='comment'>-- The empty-context, indicates that a branch of a transformation has been finished</span>
+<a name="line-58"></a>
+<a name="line-59"></a><a name="ctxGetNode"></a><span class='definition'>ctxGetNode</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTree</span>
+<a name="line-60"></a><span class='definition'>ctxGetNode</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxGetNode: Internal error attempt to access the empty context"</span>
+<a name="line-61"></a><span class='definition'>ctxGetNode</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>node</span>
+<a name="line-62"></a>
+<a name="line-63"></a><a name="ctxGetStylesheet"></a><span class='definition'>ctxGetStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-64"></a><span class='definition'>ctxGetStylesheet</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxGetStylesheet: Internal error attempt to access the empty context"</span>
+<a name="line-65"></a><span class='definition'>ctxGetStylesheet</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>stylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>stylesheet</span>
+<a name="line-66"></a>
+<a name="line-67"></a><a name="ctxGetRule"></a><span class='definition'>ctxGetRule</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>MatchRule</span>
+<a name="line-68"></a><span class='definition'>ctxGetRule</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>
+<a name="line-69"></a><span class='definition'>ctxGetRule</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>rule</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rule</span>
+<a name="line-70"></a>
+<a name="line-71"></a><a name="ctxSetNodes"></a><span class='definition'>ctxSetNodes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-72"></a><span class='definition'>ctxSetNodes</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxSetNodes: Internal error attempt to access the empty context"</span>
+<a name="line-73"></a><span class='definition'>ctxSetNodes</span> <span class='conid'>[]</span> <span class='keyword'>_</span>       <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>
+<a name="line-74"></a><span class='definition'>ctxSetNodes</span> <span class='varid'>nodes</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span>
+<a name="line-75"></a>  <span class='conid'>Ctx</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='varid'>nodes</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span>
+<a name="line-76"></a>
+<a name="line-77"></a><a name="ctxSetRule"></a><span class='definition'>ctxSetRule</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-78"></a><span class='definition'>ctxSetRule</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxSetRule: Internal error attempt to access the empty context"</span>
+<a name="line-79"></a><span class='definition'>ctxSetRule</span> <span class='varid'>rule</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='keyword'>_</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span>
+<a name="line-80"></a>  <span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rule</span> <span class='varid'>rd</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="addVariableBinding"></a><span class='definition'>addVariableBinding</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-83"></a><span class='definition'>addVariableBinding</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span>
+<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVarsNew</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span>
+<a name="line-85"></a>    <span class='keyword'>where</span>
+<a name="line-86"></a>    <span class='varid'>locVarsNew</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'>errF</span><span class='layout'>)</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>locVars</span>
+<a name="line-87"></a>    <span class='varid'>errF</span>       <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Local variable or parameter "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is already bound in this context"</span>
+<a name="line-88"></a>
+<a name="line-89"></a><span class='definition'>addVariableBinding</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>
+<a name="line-90"></a>
+<a name="line-91"></a><a name="clearLocalVariables"></a><span class='definition'>clearLocalVariables</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-92"></a><span class='definition'>clearLocalVariables</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>
+<a name="line-93"></a><span class='definition'>clearLocalVariables</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='keyword'>_</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span>
+<a name="line-94"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="processContext"></a><span class='definition'>processContext</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Context</span><span class='keyglyph'>-&gt;</span><span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-97"></a><span class='definition'>processContext</span> <span class='conid'>CtxEmpty</span> <span class='sel'>_f</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-98"></a><span class='definition'>processContext</span> <span class='varid'>ctx</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Ctx</span> <span class='sel'>_node</span> <span class='varid'>nodeList</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVar</span> <span class='varid'>locVar</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-99"></a>    <span class='keyglyph'>|</span> <span class='varid'>pos</span> <span class='varop'>&gt;</span> <span class='varid'>len</span>
+<a name="line-100"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-101"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-102"></a>	<span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>processContext</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='layout'>(</span><span class='varid'>nodeList</span><span class='varop'>!!</span><span class='varid'>pos</span><span class='layout'>)</span> <span class='varid'>nodeList</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>len</span> <span class='varid'>globVar</span> <span class='varid'>locVar</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='varid'>f</span>
+<a name="line-103"></a>                 
+<a name="line-104"></a><a name="incRecDepth"></a><span class='definition'>incRecDepth</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-105"></a><span class='definition'>incRecDepth</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>
+<a name="line-106"></a><span class='definition'>incRecDepth</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>n</span> <span class='varid'>nl</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>gl</span> <span class='varid'>lc</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='varid'>n</span> <span class='varid'>nl</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>gl</span> <span class='varid'>lc</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='layout'>(</span><span class='varid'>rd</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span>
+<a name="line-107"></a>
+<a name="line-108"></a><a name="recDepth"></a><span class='definition'>recDepth</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>
+<a name="line-109"></a><span class='definition'>recDepth</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rd</span>
+<a name="line-110"></a><span class='definition'>recDepth</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='num'>0</span>
+<a name="line-111"></a>                 
+<a name="line-112"></a><span class='comment'>-- ----------------</span>
+<a name="line-113"></a>
+<a name="line-114"></a><a name="evalXPathExpr"></a><span class='definition'>evalXPathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-115"></a><span class='definition'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='keyword'>_</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-116"></a>    <span class='keyglyph'>=</span> <span class='varid'>filterXPath</span> <span class='varop'>$</span> <span class='varid'>evalExpr</span> <span class='layout'>(</span><span class='varid'>vars</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='varid'>len</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>
+<a name="line-117"></a>    <span class='keyword'>where</span> 
+<a name="line-118"></a>    <span class='varid'>filterXPath</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>err</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varid'>err</span>
+<a name="line-119"></a>    <span class='varid'>filterXPath</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>nodes</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='conid'>XPVNode</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'>fst</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='varid'>snd</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isAttr</span><span class='varop'>.</span><span class='varid'>subtreeNT</span><span class='layout'>)</span> <span class='varid'>nodes</span>
+<a name="line-120"></a>    <span class='comment'>-- line above: complicated issue: consider: &lt;lre&gt;&lt;xsl:copy-of select="a/@*|a/*|b/@*"/&gt;&lt;/lre&gt;</span>
+<a name="line-121"></a>    <span class='comment'>-- assume a is in document order before b. Shall b's attributes be added to lre or be ignored?!</span>
+<a name="line-122"></a>    <span class='varid'>filterXPath</span> <span class='varid'>xpv</span>               <span class='keyglyph'>=</span> <span class='varid'>xpv</span>
+<a name="line-123"></a>    <span class='varid'>vars</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'>name</span><span class='layout'>,</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>exUri</span> <span class='varid'>name</span><span class='layout'>,</span> <span class='varid'>exLocal</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>val</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>varList</span>
+<a name="line-124"></a>    <span class='varid'>varList</span>                       <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span> <span class='varop'>$</span> <span class='varid'>locVars</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'>globVars</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='definition'>evalXPathExpr</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span>
+<a name="line-127"></a>    <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"internal error in evalXPathExpr in XSLT module"</span>
+<a name="line-128"></a>
+<a name="line-129"></a><a name="evalRtf"></a><span class='definition'>evalRtf</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-130"></a><span class='definition'>evalRtf</span> <span class='varid'>template</span> <span class='varid'>rtfId</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>ntree</span> <span class='varid'>rtfRoot</span><span class='keyglyph'>]</span>
+<a name="line-131"></a>  <span class='keyword'>where</span>
+<a name="line-132"></a>    <span class='varid'>rtfRoot</span> <span class='keyglyph'>=</span> <span class='varid'>setAttribute</span> <span class='varid'>rootIdName</span> <span class='layout'>(</span><span class='str'>"rtf "</span> <span class='varop'>++</span> <span class='varid'>rtfId</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>mkRoot</span> <span class='conid'>[]</span> <span class='varop'>$</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>
+<a name="line-133"></a>    <span class='varid'>rootIdName</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='str'>"rootId"</span> <span class='str'>""</span>
+<a name="line-134"></a>
+<a name="line-135"></a><a name="applySelect"></a><span class='definition'>applySelect</span> <span class='keyglyph'>::</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>
+<a name="line-136"></a><span class='definition'>applySelect</span> <span class='layout'>(</span><span class='conid'>SelectExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> 
+<a name="line-137"></a>    <span class='varid'>extractNodes</span> <span class='varid'>xpathResult</span>
+<a name="line-138"></a>  <span class='keyword'>where</span> 
+<a name="line-139"></a>    <span class='varid'>xpathResult</span>                  <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-140"></a>    <span class='varid'>extractNodes</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nodes</span>
+<a name="line-141"></a>    <span class='varid'>extractNodes</span> <span class='varid'>r</span>               <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"XPATH-Expression in select or match attribute returned a value of the wrong type ("</span>              
+<a name="line-142"></a>                                           <span class='varop'>++</span> <span class='varid'>take</span> <span class='num'>15</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>r</span><span class='layout'>)</span>  <span class='varop'>++</span> <span class='str'>"...)"</span>
+<a name="line-143"></a>
+<a name="line-144"></a><a name="applyTest"></a><span class='definition'>applyTest</span> <span class='keyglyph'>::</span> <span class='conid'>TestExpr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-145"></a><span class='definition'>applyTest</span> <span class='layout'>(</span><span class='conid'>TestExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>bool</span>
+<a name="line-146"></a>  <span class='keyword'>where</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>bool</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-147"></a>
+<a name="line-148"></a><a name="applyStringExpr"></a><span class='definition'>applyStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>StringExpr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>
+<a name="line-149"></a><span class='definition'>applyStringExpr</span> <span class='layout'>(</span><span class='conid'>StringExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>string</span>
+<a name="line-150"></a>  <span class='keyword'>where</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>string</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-151"></a>
+<a name="line-152"></a><a name="applyMatch"></a><span class='definition'>applyMatch</span> <span class='keyglyph'>::</span> <span class='conid'>MatchExpr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-153"></a><span class='definition'>applyMatch</span> <span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-154"></a>    <span class='keyglyph'>=</span> <span class='varid'>matchBySelect</span> <span class='layout'>(</span><span class='conid'>SelectExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-155"></a>    <span class='keyword'>where</span>
+<a name="line-156"></a>    <span class='varid'>matchBySelect</span> <span class='keyglyph'>::</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-157"></a>    <span class='varid'>matchBySelect</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>
+<a name="line-158"></a>    <span class='varid'>matchBySelect</span> <span class='varid'>expr'</span> <span class='varid'>matchNode</span> <span class='varid'>ctx'</span>  
+<a name="line-159"></a>	<span class='keyglyph'>|</span> <span class='varid'>matchNode</span> <span class='varop'>`isNotInNodeList`</span> <span class='varid'>applySelect</span> <span class='varid'>expr'</span> <span class='varid'>ctx'</span>
+<a name="line-160"></a>	    <span class='keyglyph'>=</span> <span class='varid'>matchBySelect</span> <span class='varid'>expr'</span> <span class='varid'>matchNode</span> <span class='varop'>$</span> <span class='varid'>ctxSetNodes</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>$</span> <span class='varid'>upNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx'</span><span class='layout'>)</span> <span class='varid'>ctx'</span>
+<a name="line-161"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-162"></a>	    <span class='keyglyph'>=</span> <span class='conid'>True</span>   
+<a name="line-163"></a>
+<a name="line-164"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-165"></a>
+<a name="line-166"></a><a name="applyComputedQName"></a><span class='definition'>applyComputedQName</span> <span class='keyglyph'>::</span> <span class='conid'>ComputedQName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-167"></a>
+<a name="line-168"></a><span class='definition'>applyComputedQName</span> <span class='layout'>(</span><span class='conid'>LiteralQName</span> <span class='varid'>qName</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> 
+<a name="line-169"></a>    <span class='varid'>lookupAlias</span> <span class='layout'>(</span><span class='varid'>getAliases</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>qName</span>
+<a name="line-170"></a>
+<a name="line-171"></a><span class='definition'>applyComputedQName</span> <span class='layout'>(</span><span class='conid'>CompQName</span> <span class='varid'>uris</span> <span class='varid'>nameATV</span> <span class='varid'>nsATV</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-172"></a>    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>nsuri</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>pref</span><span class='layout'>)</span>
+<a name="line-173"></a>    <span class='keyword'>then</span> <span class='varid'>mkQName</span> <span class='varid'>pref</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>pref</span>
+<a name="line-174"></a>    <span class='keyword'>else</span> <span class='varid'>mkQName</span> <span class='varid'>pref</span> <span class='varid'>loc</span> <span class='varid'>nsuri</span>
+<a name="line-175"></a>  <span class='keyword'>where</span>       
+<a name="line-176"></a>    <span class='varid'>nsuri</span>         <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>nsATV</span> <span class='varid'>ctx</span>   
+<a name="line-177"></a>    <span class='layout'>(</span><span class='varid'>pref</span><span class='layout'>,</span> <span class='varid'>loc</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>loc'</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>pref'</span><span class='layout'>)</span> 
+<a name="line-178"></a>                                 <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>pref'</span><span class='layout'>,</span> <span class='varid'>tail</span> <span class='varid'>loc'</span><span class='layout'>)</span>
+<a name="line-179"></a>    <span class='layout'>(</span><span class='varid'>pref'</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='varop'>$</span> <span class='varid'>applyStringExpr</span> <span class='varid'>nameATV</span> <span class='varid'>ctx</span>
+<a name="line-180"></a>
+<a name="line-181"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-182"></a> 
+<a name="line-183"></a><a name="applyComposite"></a><span class='definition'>applyComposite</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-184"></a><span class='definition'>applyComposite</span> <span class='layout'>(</span><span class='conid'>TemplComposite</span> <span class='varid'>templates</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-185"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>fst</span> <span class='varop'>$</span> <span class='varid'>foldl</span> <span class='varid'>applyElem</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>templates</span>
+<a name="line-186"></a>    <span class='keyword'>where</span> 
+<a name="line-187"></a>    <span class='varid'>applyElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>Context</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>Context</span><span class='layout'>)</span>
+<a name="line-188"></a>    <span class='varid'>applyElem</span> <span class='layout'>(</span><span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>ctx'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>TemplVariable</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>processLocalVariable</span> <span class='varid'>v</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>ctx'</span><span class='layout'>)</span>
+<a name="line-189"></a>    <span class='varid'>applyElem</span> <span class='layout'>(</span><span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>ctx'</span><span class='layout'>)</span> <span class='varid'>t</span>                 <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>applyTemplate</span> <span class='varid'>t</span> <span class='varid'>ctx'</span> <span class='conop'>:</span> <span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>ctx'</span><span class='layout'>)</span>
+<a name="line-190"></a>
+<a name="line-191"></a><span class='definition'>applyComposite</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-192"></a>
+<a name="line-193"></a>
+<a name="line-194"></a><a name="applyForEach"></a><span class='definition'>applyForEach</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-195"></a><span class='definition'>applyForEach</span> <span class='layout'>(</span><span class='conid'>TemplForEach</span> <span class='varid'>expr</span> <span class='varid'>sorting</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-196"></a>    <span class='keyglyph'>=</span> <span class='varid'>processContext</span> <span class='varid'>sortedCtx</span> <span class='varop'>$</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span>
+<a name="line-197"></a>    <span class='keyword'>where</span> 
+<a name="line-198"></a>    <span class='varid'>sortedCtx</span> <span class='keyglyph'>=</span> <span class='varid'>applySorting</span> <span class='varid'>sorting</span> <span class='varid'>ctxWOrule</span> <span class='varid'>nodes</span>
+<a name="line-199"></a>    <span class='varid'>ctxWOrule</span> <span class='keyglyph'>=</span> <span class='varid'>ctxSetRule</span> <span class='conid'>Nothing</span> <span class='varop'>$</span> <span class='varid'>ctx</span>
+<a name="line-200"></a>    <span class='varid'>nodes</span>     <span class='keyglyph'>=</span> <span class='varid'>applySelect</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-201"></a>
+<a name="line-202"></a><span class='definition'>applyForEach</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-203"></a>
+<a name="line-204"></a>         
+<a name="line-205"></a><a name="applyChoose"></a><span class='definition'>applyChoose</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-206"></a><span class='definition'>applyChoose</span> <span class='layout'>(</span><span class='conid'>TemplChoose</span> <span class='varid'>whenList</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-207"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyWhenList</span> <span class='varid'>whenList</span> <span class='varid'>ctx</span>
+<a name="line-208"></a>
+<a name="line-209"></a><span class='definition'>applyChoose</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-210"></a>
+<a name="line-211"></a>
+<a name="line-212"></a><a name="applyWhenList"></a><span class='definition'>applyWhenList</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>When</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-213"></a><span class='definition'>applyWhenList</span> <span class='conid'>[]</span>  <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-214"></a><span class='definition'>applyWhenList</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>WhenPart</span> <span class='varid'>expr</span> <span class='varid'>template</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-215"></a>    <span class='keyglyph'>|</span> <span class='varid'>applyTest</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-216"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</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='varid'>applyWhenList</span> <span class='varid'>xs</span> <span class='varid'>ctx</span>
+<a name="line-219"></a>
+<a name="line-220"></a><a name="applyMessage"></a><span class='definition'>applyMessage</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-221"></a><span class='definition'>applyMessage</span> <span class='layout'>(</span><span class='conid'>TemplMessage</span> <span class='varid'>halt</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-222"></a>    <span class='keyglyph'>|</span> <span class='varid'>halt</span>
+<a name="line-223"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Message(fatal): "</span> <span class='varop'>++</span> <span class='varid'>msg</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='conid'>[]</span>	<span class='comment'>-- trace ("Message(trace): " ++ msg) []</span>
+<a name="line-226"></a>    <span class='keyword'>where</span>
+<a name="line-227"></a>    <span class='varid'>msg</span>     <span class='keyglyph'>=</span> <span class='varid'>showTrees</span> <span class='varid'>content</span>
+<a name="line-228"></a>    <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>
+<a name="line-229"></a>
+<a name="line-230"></a><span class='definition'>applyMessage</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</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="applyElement"></a><span class='definition'>applyElement</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-235"></a><span class='definition'>applyElement</span> <span class='layout'>(</span><span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='varid'>uris</span> <span class='varid'>attribSets</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-236"></a>    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>createElement</span> <span class='varid'>name</span> <span class='varid'>uris</span> <span class='varid'>aliases</span> <span class='varid'>fullcontent</span>
+<a name="line-237"></a>  <span class='keyword'>where</span> 
+<a name="line-238"></a>    <span class='varid'>aliases</span>     <span class='keyglyph'>=</span> <span class='varid'>getAliases</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>
+<a name="line-239"></a>    <span class='varid'>name</span>        <span class='keyglyph'>=</span> <span class='varid'>applyComputedQName</span> <span class='varid'>compQName</span> <span class='varid'>ctx</span>
+<a name="line-240"></a>    <span class='varid'>fullcontent</span> <span class='keyglyph'>=</span> <span class='varid'>applyAttribSets</span> <span class='conid'>[]</span> <span class='varid'>attribSets</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>
+<a name="line-241"></a>
+<a name="line-242"></a><span class='definition'>applyElement</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-243"></a>
+<a name="line-244"></a>
+<a name="line-245"></a><span class='comment'>-- create an element from a list of attributes followed by content</span>
+<a name="line-246"></a>
+<a name="line-247"></a><a name="createElement"></a><span class='definition'>createElement</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</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='conid'>XmlTree</span>
+<a name="line-248"></a><span class='definition'>createElement</span> <span class='varid'>name</span> <span class='varid'>uris</span> <span class='varid'>aliases</span> <span class='varid'>fullcontent</span> <span class='keyglyph'>=</span>
+<a name="line-249"></a>    <span class='varid'>mkElement</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>nsAttrs</span> <span class='varop'>++</span> <span class='varid'>distinctAttribs</span><span class='layout'>)</span> <span class='varid'>content</span>
+<a name="line-250"></a>  <span class='keyword'>where</span> 
+<a name="line-251"></a>    <span class='varid'>nsAttrs</span>            <span class='keyglyph'>=</span> <span class='varid'>uriMap2Attrs</span> <span class='varop'>$</span> <span class='varid'>aliasUriMapping</span> <span class='varid'>aliases</span> <span class='varid'>uris</span>
+<a name="line-252"></a>    <span class='varid'>distinctAttribs</span>    <span class='keyglyph'>=</span> <span class='varid'>nubBy</span> <span class='varid'>eqAttr</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varid'>attribs</span> 
+<a name="line-253"></a>    <span class='layout'>(</span><span class='varid'>attribs</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varid'>isAttr</span><span class='layout'>)</span> <span class='varid'>fullcontent</span>
+<a name="line-254"></a>    <span class='varid'>eqAttr</span> <span class='varid'>node1</span> <span class='varid'>node2</span> <span class='keyglyph'>=</span> <span class='varid'>equivQName</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node2</span><span class='layout'>)</span>  
+<a name="line-255"></a>
+<a name="line-256"></a>
+<a name="line-257"></a><a name="applyAttribute"></a><span class='definition'>applyAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-258"></a><span class='definition'>applyAttribute</span> <span class='layout'>(</span><span class='conid'>TemplAttribute</span> <span class='varid'>compQName</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-259"></a>    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkAttr</span> <span class='varid'>qName</span> <span class='varid'>content</span>
+<a name="line-260"></a>  <span class='keyword'>where</span> 
+<a name="line-261"></a>    <span class='varid'>qName</span>   <span class='keyglyph'>=</span> <span class='varid'>applyComputedQName</span> <span class='varid'>compQName</span> <span class='varid'>ctx</span>
+<a name="line-262"></a>    <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>
+<a name="line-263"></a>
+<a name="line-264"></a><span class='definition'>applyAttribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-265"></a>
+<a name="line-266"></a>  
+<a name="line-267"></a><a name="applyText"></a><span class='definition'>applyText</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-268"></a><span class='definition'>applyText</span> <span class='layout'>(</span><span class='conid'>TemplText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span>
+<a name="line-269"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>s</span><span class='keyglyph'>]</span>
+<a name="line-270"></a>
+<a name="line-271"></a><span class='definition'>applyText</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-272"></a>
+<a name="line-273"></a>
+<a name="line-274"></a><a name="applyValueOf"></a><span class='definition'>applyValueOf</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-275"></a><span class='definition'>applyValueOf</span> <span class='layout'>(</span><span class='conid'>TemplValueOf</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-276"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>applyStringExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span><span class='keyglyph'>]</span>
+<a name="line-277"></a>
+<a name="line-278"></a><span class='definition'>applyValueOf</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-279"></a>
+<a name="line-280"></a>
+<a name="line-281"></a><a name="applyComment"></a><span class='definition'>applyComment</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-282"></a><span class='definition'>applyComment</span> <span class='layout'>(</span><span class='conid'>TemplComment</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> 
+<a name="line-283"></a>    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkCmt</span> <span class='varop'>$</span> <span class='varid'>format</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctx</span>
+<a name="line-284"></a>  <span class='keyword'>where</span>
+<a name="line-285"></a>    <span class='varid'>format</span> <span class='str'>""</span>           <span class='keyglyph'>=</span> <span class='str'>""</span>               <span class='comment'>-- could probably move to hxt...?</span>
+<a name="line-286"></a>    <span class='varid'>format</span> <span class='str'>"-"</span>          <span class='keyglyph'>=</span> <span class='str'>"- "</span>
+<a name="line-287"></a>    <span class='varid'>format</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='keyglyph'>=</span> <span class='chr'>'-'</span><span class='conop'>:</span><span class='chr'>' '</span><span class='conop'>:</span><span class='varid'>format</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>
+<a name="line-288"></a>    <span class='varid'>format</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'>x</span><span class='conop'>:</span><span class='varid'>format</span> <span class='varid'>xs</span>
+<a name="line-289"></a>
+<a name="line-290"></a><span class='definition'>applyComment</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-291"></a>
+<a name="line-292"></a><a name="applyProcInstr"></a><span class='definition'>applyProcInstr</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-293"></a><span class='definition'>applyProcInstr</span> <span class='layout'>(</span><span class='conid'>TemplProcInstr</span> <span class='varid'>nameExpr</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-294"></a>    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varop'>.</span> <span class='varid'>format</span> <span class='varop'>.</span> <span class='varid'>collectTextnodes</span> <span class='varop'>.</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varop'>$</span> <span class='varid'>ctx</span><span class='keyglyph'>]</span>
+<a name="line-295"></a>  <span class='keyword'>where</span>
+<a name="line-296"></a>    <span class='varid'>name</span>      <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>nameExpr</span> <span class='varid'>ctx</span>      
+<a name="line-297"></a>    <span class='varid'>format</span> <span class='str'>""</span>           <span class='keyglyph'>=</span> <span class='str'>""</span>                       <span class='comment'>-- In a better Haskell: format = replaceAll "?&gt;" "? &gt;"</span>
+<a name="line-298"></a>    <span class='varid'>format</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='conop'>:</span><span class='chr'>'&gt;'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='chr'>'?'</span><span class='conop'>:</span><span class='chr'>' '</span><span class='conop'>:</span><span class='chr'>'&gt;'</span><span class='conop'>:</span><span class='varid'>format</span> <span class='varid'>xs</span>    <span class='comment'>-- could probably move to hxt...?</span>
+<a name="line-299"></a>    <span class='varid'>format</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'>x</span><span class='conop'>:</span><span class='varid'>format</span> <span class='varid'>xs</span>
+<a name="line-300"></a>
+<a name="line-301"></a><span class='definition'>applyProcInstr</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-302"></a>
+<a name="line-303"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-304"></a>
+<a name="line-305"></a><a name="applyApplTempl"></a><span class='definition'>applyApplTempl</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-306"></a><span class='definition'>applyApplTempl</span> <span class='layout'>(</span><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><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-307"></a>    <span class='varid'>applyMatchRulesToEntireContext</span> <span class='varid'>params</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>sortedCtx</span>
+<a name="line-308"></a>  <span class='keyword'>where</span> 
+<a name="line-309"></a>    <span class='varid'>params</span>      <span class='keyglyph'>=</span> <span class='varid'>createParamSet</span> <span class='varid'>args</span> <span class='varid'>ctx</span>
+<a name="line-310"></a>    <span class='varid'>sortedCtx</span>   <span class='keyglyph'>=</span> <span class='varid'>applySorting</span> <span class='varid'>sorting</span> <span class='varid'>ctx</span> <span class='varid'>nodes</span>
+<a name="line-311"></a>    <span class='varid'>nodes</span>       <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>getChildrenNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span><span class='layout'>)</span>
+<a name="line-312"></a>                        <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>applySelect</span> <span class='varid'>ctx</span><span class='layout'>)</span>
+<a name="line-313"></a>                        <span class='varid'>expr</span>
+<a name="line-314"></a>    <span class='varid'>rules</span>       <span class='keyglyph'>=</span> <span class='varid'>getMatchRules</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>
+<a name="line-315"></a>
+<a name="line-316"></a><span class='definition'>applyApplTempl</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-317"></a>
+<a name="line-318"></a>
+<a name="line-319"></a><a name="applyImports"></a><span class='definition'>applyImports</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-320"></a><span class='definition'>applyImports</span> <span class='layout'>(</span><span class='conid'>TemplApplyImports</span><span class='layout'>)</span> <span class='varid'>ctx</span><span class='keyglyph'>=</span> 
+<a name="line-321"></a>    <span class='varid'>applyMatchRules</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span>
+<a name="line-322"></a>  <span class='keyword'>where</span>
+<a name="line-323"></a>    <span class='varid'>rules</span>    <span class='keyglyph'>=</span> <span class='varid'>getRuleImports</span> <span class='varid'>currRule</span>
+<a name="line-324"></a>    <span class='varid'>mode</span>     <span class='keyglyph'>=</span> <span class='varid'>getRuleMode</span> <span class='varid'>currRule</span>
+<a name="line-325"></a>    <span class='varid'>currRule</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='str'>"apply-imports must not be called during xsl:for-each"</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='varid'>ctxGetRule</span> <span class='varid'>ctx</span>
+<a name="line-326"></a>
+<a name="line-327"></a><span class='definition'>applyImports</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-328"></a>
+<a name="line-329"></a>
+<a name="line-330"></a><a name="applyCallTempl"></a><span class='definition'>applyCallTempl</span>  <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-331"></a><span class='definition'>applyCallTempl</span> <span class='layout'>(</span><span class='conid'>TemplCall</span> <span class='varid'>name</span> <span class='varid'>args</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-332"></a>    <span class='varid'>instantiateNamedRule</span> <span class='varid'>params</span> <span class='varid'>rule</span> <span class='varid'>ctx</span>
+<a name="line-333"></a>  <span class='keyword'>where</span>
+<a name="line-334"></a>    <span class='varid'>params</span>      <span class='keyglyph'>=</span> <span class='varid'>createParamSet</span> <span class='varid'>args</span> <span class='varid'>ctx</span>
+<a name="line-335"></a>    <span class='varid'>rule</span>        <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>errNoRule</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>rules</span>
+<a name="line-336"></a>    <span class='varid'>rules</span>       <span class='keyglyph'>=</span> <span class='varid'>getNamedRules</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>
+<a name="line-337"></a>    <span class='varid'>errNoRule</span>   <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"No rule with qualified name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>
+<a name="line-338"></a>
+<a name="line-339"></a><span class='definition'>applyCallTempl</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</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><a name="applyCopy"></a><span class='definition'>applyCopy</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-344"></a><span class='definition'>applyCopy</span> <span class='layout'>(</span><span class='conid'>TemplCopy</span> <span class='varid'>attrsets</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-345"></a>    <span class='keyglyph'>|</span> <span class='varid'>isRoot</span> <span class='varid'>currNode</span>			<span class='comment'>-- Case 1: Root node =&gt; just use the content template</span>
+<a name="line-346"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>
+<a name="line-347"></a>    <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>currNode</span>			<span class='comment'>-- Case 2: Any other element-node</span>
+<a name="line-348"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>createElement</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>getUriMap</span> <span class='varid'>currNode</span><span class='layout'>)</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>fullcontent</span>
+<a name="line-349"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>				<span class='comment'>-- Just return the current node as result</span>
+<a name="line-350"></a>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>currNode</span>        
+<a name="line-351"></a>  <span class='keyword'>where</span>
+<a name="line-352"></a>    <span class='varid'>currNode</span>    <span class='keyglyph'>=</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span>
+<a name="line-353"></a>    <span class='varid'>name</span>        <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>currNode</span>
+<a name="line-354"></a>    <span class='varid'>fullcontent</span> <span class='keyglyph'>=</span> <span class='varid'>applyAttribSets</span> <span class='conid'>[]</span> <span class='varid'>attrsets</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>
+<a name="line-355"></a>
+<a name="line-356"></a><span class='definition'>applyCopy</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-357"></a>
+<a name="line-358"></a><a name="applyCopyOf"></a><span class='definition'>applyCopyOf</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-359"></a><span class='definition'>applyCopyOf</span> <span class='layout'>(</span><span class='conid'>TemplCopyOf</span> <span class='varid'>expr</span><span class='layout'>)</span>
+<a name="line-360"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>expandRoot</span> <span class='varop'>.</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varop'>.</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span>
+<a name="line-361"></a>    <span class='keyword'>where</span>
+<a name="line-362"></a>    <span class='varid'>expandRoot</span> <span class='varid'>node</span>
+<a name="line-363"></a>	<span class='keyglyph'>|</span> <span class='varid'>isRoot</span> <span class='varid'>node</span>	<span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>
+<a name="line-364"></a>        <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>node</span>
+<a name="line-365"></a>
+<a name="line-366"></a><span class='definition'>applyCopyOf</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</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="applyTemplate"></a><span class='definition'>applyTemplate</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-371"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplComposite</span> <span class='keyword'>_</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>applyComposite</span> <span class='varid'>t</span>
+<a name="line-372"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplMessage</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>     <span class='keyglyph'>=</span> <span class='varid'>applyMessage</span> <span class='varid'>t</span>
+<a name="line-373"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplForEach</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>applyForEach</span> <span class='varid'>t</span>
+<a name="line-374"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplChoose</span> <span class='keyword'>_</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>applyChoose</span> <span class='varid'>t</span>
+<a name="line-375"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplElement</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyElement</span> <span class='varid'>t</span>
+<a name="line-376"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplAttribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>applyAttribute</span> <span class='varid'>t</span>
+<a name="line-377"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplText</span> <span class='keyword'>_</span><span class='layout'>)</span>          <span class='keyglyph'>=</span> <span class='varid'>applyText</span> <span class='varid'>t</span>
+<a name="line-378"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplValueOf</span> <span class='keyword'>_</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>applyValueOf</span> <span class='varid'>t</span>
+<a name="line-379"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplComment</span> <span class='keyword'>_</span><span class='layout'>)</span>       <span class='keyglyph'>=</span> <span class='varid'>applyComment</span> <span class='varid'>t</span>
+<a name="line-380"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplProcInstr</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>applyProcInstr</span> <span class='varid'>t</span>
+<a name="line-381"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplApply</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>   <span class='keyglyph'>=</span> <span class='varid'>applyApplTempl</span> <span class='varid'>t</span>
+<a name="line-382"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplApplyImports</span><span class='layout'>)</span>    <span class='keyglyph'>=</span> <span class='varid'>applyImports</span> <span class='varid'>t</span>
+<a name="line-383"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplCall</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>applyCallTempl</span> <span class='varid'>t</span>
+<a name="line-384"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplCopy</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>applyCopy</span> <span class='varid'>t</span>
+<a name="line-385"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplCopyOf</span> <span class='keyword'>_</span><span class='layout'>)</span>        <span class='keyglyph'>=</span> <span class='varid'>applyCopyOf</span> <span class='varid'>t</span>
+<a name="line-386"></a><span class='definition'>applyTemplate</span>   <span class='layout'>(</span><span class='conid'>TemplVariable</span> <span class='keyword'>_</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>	<span class='comment'>-- trace ("Warning: Unreacheable variable: " ++ show (getVarName v)) const []</span>
+<a name="line-387"></a>
+<a name="line-388"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-389"></a><span class='comment'>-- "Main" :</span>
+<a name="line-390"></a>
+<a name="line-391"></a><a name="applyStylesheetWParams"></a><span class='definition'>applyStylesheetWParams</span> <span class='keyglyph'>::</span> <span class='conid'>XPathParams</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-392"></a><span class='definition'>applyStylesheetWParams</span> <span class='varid'>inputParams</span> <span class='varid'>cs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='keyword'>_</span> <span class='varid'>vars</span> <span class='keyword'>_</span> <span class='varid'>strips</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>rawDoc</span> <span class='keyglyph'>=</span> 
+<a name="line-393"></a>    <span class='varid'>map</span> <span class='varid'>fixupNS</span> <span class='varop'>$</span> <span class='varid'>applyMatchRules</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>matchRules</span> <span class='conid'>Nothing</span> <span class='varid'>ctxRoot</span>
+<a name="line-394"></a>  <span class='keyword'>where</span>
+<a name="line-395"></a>    <span class='varid'>ctxRoot</span>   <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='varid'>docNode</span> <span class='keyglyph'>[</span><span class='varid'>docNode</span><span class='keyglyph'>]</span> <span class='num'>1</span> <span class='num'>1</span> <span class='varid'>gloVars</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>cs</span> <span class='conid'>Nothing</span> <span class='num'>0</span>
+<a name="line-396"></a>    <span class='varid'>gloVars</span>   <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>evalVariableWParamSet</span> <span class='varid'>extParams</span> <span class='varid'>ctxRoot</span><span class='layout'>)</span> <span class='varid'>vars</span>
+<a name="line-397"></a>    <span class='varid'>extParams</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>ctxRoot</span><span class='layout'>)</span> <span class='varid'>inputParams</span>
+<a name="line-398"></a>    <span class='varid'>docNode</span>   <span class='keyglyph'>=</span> <span class='varid'>ntree</span> <span class='varop'>$</span> <span class='varid'>expandNSDecls</span> <span class='varop'>$</span> <span class='varid'>stripDocument</span> <span class='varid'>strips</span> <span class='varid'>rawDoc</span>
+<a name="line-399"></a>
+<a name="line-400"></a><a name="applyStylesheet"></a><span class='definition'>applyStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-401"></a><span class='definition'>applyStylesheet</span>  <span class='keyglyph'>=</span> <span class='varid'>applyStylesheetWParams</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>
+<a name="line-402"></a>
+<a name="line-403"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-404"></a><span class='comment'>-- calling named- and applying match-rules</span>
+<a name="line-405"></a>
+<a name="line-406"></a><a name="applyMatchRulesToChildren"></a><span class='definition'>applyMatchRulesToChildren</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</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='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-407"></a><span class='definition'>applyMatchRulesToChildren</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> 
+<a name="line-408"></a>    <span class='varid'>applyMatchRulesToEntireContext</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>childCtx</span>
+<a name="line-409"></a>  <span class='keyword'>where</span>
+<a name="line-410"></a>    <span class='varid'>childCtx</span> <span class='keyglyph'>=</span> <span class='varid'>ctxSetNodes</span> <span class='layout'>(</span><span class='varid'>getChildrenNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-411"></a>
+<a name="line-412"></a><a name="applyMatchRulesToEntireContext"></a><span class='definition'>applyMatchRulesToEntireContext</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</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='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-413"></a><span class='definition'>applyMatchRulesToEntireContext</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>processContext</span> <span class='varid'>ctx</span> <span class='layout'>(</span><span class='varid'>applyMatchRules</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span><span class='layout'>)</span>
+<a name="line-414"></a>
+<a name="line-415"></a><a name="applyMatchRules"></a><span class='definition'>applyMatchRules</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</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='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-416"></a><span class='definition'>applyMatchRules</span> <span class='keyword'>_</span>    <span class='conid'>[]</span>           <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>matchDefaultRules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span>
+<a name="line-417"></a><span class='definition'>applyMatchRules</span> <span class='varid'>args</span> <span class='layout'>(</span><span class='varid'>rule</span><span class='conop'>:</span><span class='varid'>rules</span><span class='layout'>)</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> 
+<a name="line-418"></a>    <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>applyMatchRules</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span><span class='layout'>)</span> 
+<a name="line-419"></a>          <span class='varid'>id</span>
+<a name="line-420"></a>          <span class='layout'>(</span><span class='varid'>applyMatchRule</span> <span class='varid'>args</span> <span class='varid'>rule</span> <span class='varid'>mode</span> <span class='varid'>ctx</span><span class='layout'>)</span>
+<a name="line-421"></a>
+<a name="line-422"></a><a name="applyMatchRule"></a><span class='definition'>applyMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-423"></a><span class='definition'>applyMatchRule</span> <span class='varid'>args</span> <span class='varid'>rule</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MatRule</span> <span class='varid'>expr</span> <span class='keyword'>_</span> <span class='varid'>ruleMode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-424"></a>  <span class='keyword'>if</span> <span class='varid'>mode</span><span class='varop'>==</span><span class='varid'>ruleMode</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>applyMatch</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-425"></a>    <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>instantiateMatchRule</span> <span class='varid'>args</span> <span class='varid'>rule</span> <span class='varop'>$</span> <span class='varid'>ctxSetRule</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-426"></a>    <span class='keyword'>else</span> <span class='conid'>Nothing</span>
+<a name="line-427"></a>
+<a name="line-428"></a>
+<a name="line-429"></a><a name="instantiateMatchRule"></a><span class='definition'>instantiateMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-430"></a><span class='definition'>instantiateMatchRule</span> <span class='varid'>args</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>params</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-431"></a>    <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctxNew</span>
+<a name="line-432"></a>  <span class='keyword'>where</span> 
+<a name="line-433"></a>    <span class='varid'>ctxNew</span> <span class='keyglyph'>=</span> <span class='varid'>incRecDepth</span> <span class='varop'>$</span> <span class='varid'>processParameters</span> <span class='varid'>params</span> <span class='varid'>args</span> <span class='varop'>$</span> <span class='varid'>clearLocalVariables</span> <span class='varid'>ctx</span>
+<a name="line-434"></a>
+<a name="line-435"></a><a name="instantiateNamedRule"></a><span class='definition'>instantiateNamedRule</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NamedRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-436"></a><span class='definition'>instantiateNamedRule</span> <span class='varid'>args</span> <span class='layout'>(</span><span class='conid'>NamRule</span> <span class='keyword'>_</span> <span class='varid'>params</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-437"></a>    <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctxNew</span>
+<a name="line-438"></a>  <span class='keyword'>where</span> 
+<a name="line-439"></a>    <span class='varid'>ctxNew</span> <span class='keyglyph'>=</span> <span class='varid'>incRecDepth</span> <span class='varop'>$</span> <span class='varid'>processParameters</span> <span class='varid'>params</span> <span class='varid'>args</span> <span class='varop'>$</span> <span class='varid'>clearLocalVariables</span> <span class='varid'>ctx</span>
+<a name="line-440"></a>
+<a name="line-441"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-442"></a>    
+<a name="line-443"></a><a name="matchDefaultRules"></a><span class='definition'>matchDefaultRules</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-444"></a><span class='definition'>matchDefaultRules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>ctxNavNode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>stylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>
+<a name="line-445"></a>    <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>ctxNode</span>				<span class='comment'>-- rules for match="*|/"</span>
+<a name="line-446"></a>	<span class='keyglyph'>=</span> <span class='varid'>applyMatchRulesToChildren</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> 
+<a name="line-447"></a>    <span class='keyglyph'>|</span> <span class='varid'>isText</span> <span class='varid'>ctxNode</span>				<span class='comment'>-- rule for match="text()"</span>
+<a name="line-448"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ctxNode</span><span class='keyglyph'>]</span>
+<a name="line-449"></a>    <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>ctxNode</span>				<span class='comment'>-- rule for match="@*"</span>
+<a name="line-450"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>ctxNode</span><span class='keyglyph'>]</span>
+<a name="line-451"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>					<span class='comment'>-- the glorious rest (PIs and comments):</span>
+<a name="line-452"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-453"></a>    <span class='keyword'>where</span> 
+<a name="line-454"></a>    <span class='varid'>rules</span>   <span class='keyglyph'>=</span> <span class='varid'>getMatchRules</span> <span class='varid'>stylesheet</span>
+<a name="line-455"></a>    <span class='varid'>ctxNode</span> <span class='keyglyph'>=</span> <span class='varid'>subtreeNT</span> <span class='varid'>ctxNavNode</span>
+<a name="line-456"></a>
+<a name="line-457"></a><span class='definition'>matchDefaultRules</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-458"></a>  
+<a name="line-459"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-460"></a>
+<a name="line-461"></a><span class='comment'>-- Variables and Parameters</span>
+<a name="line-462"></a>
+<a name="line-463"></a><span class='comment'>-- Evaluate a xsl:variable or xsl:param element and add the newly</span>
+<a name="line-464"></a><span class='comment'>-- created local variable to the context</span>
+<a name="line-465"></a>
+<a name="line-466"></a><a name="processLocalVariable"></a><span class='definition'>processLocalVariable</span> <span class='keyglyph'>::</span> <span class='conid'>Variable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-467"></a><span class='definition'>processLocalVariable</span> <span class='varid'>var</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MkVar</span> <span class='keyword'>_</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>arguments</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>    
+<a name="line-468"></a>    <span class='varid'>addVariableBinding</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>ctx</span>
+<a name="line-469"></a>  <span class='keyword'>where</span>
+<a name="line-470"></a>    <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='varid'>evalVariableWParamSet</span> <span class='varid'>arguments</span> <span class='varid'>ctx</span> <span class='varid'>var</span>
+<a name="line-471"></a>
+<a name="line-472"></a><a name="processParameters"></a><span class='definition'>processParameters</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-473"></a><span class='definition'>processParameters</span> <span class='varid'>params</span> <span class='varid'>arguments</span> <span class='varid'>ctx</span>
+<a name="line-474"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>c</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>processLocalVariable</span> <span class='varid'>v</span> <span class='varid'>arguments</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='varid'>params</span>
+<a name="line-475"></a>
+<a name="line-476"></a><a name="evalVariableWParamSet"></a><span class='definition'>evalVariableWParamSet</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Variable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>
+<a name="line-477"></a><span class='definition'>evalVariableWParamSet</span> <span class='varid'>ps</span> <span class='varid'>ctx</span> <span class='layout'>(</span><span class='conid'>MkVar</span> <span class='varid'>isPar</span> <span class='varid'>name</span> <span class='varid'>exprOrRtf</span><span class='layout'>)</span>
+<a name="line-478"></a>    <span class='keyglyph'>|</span> <span class='varid'>isPar</span>
+<a name="line-479"></a>	<span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>resultFromVar</span> <span class='varid'>exprOrRtf</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>ps</span> 
+<a name="line-480"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-481"></a>	<span class='keyglyph'>=</span> <span class='varid'>resultFromVar</span> <span class='varid'>exprOrRtf</span>
+<a name="line-482"></a>  <span class='keyword'>where</span>
+<a name="line-483"></a>    <span class='varid'>resultFromVar</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>
+<a name="line-484"></a>    <span class='varid'>resultFromVar</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>rtf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalRtf</span> <span class='varid'>rtf</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>recDepth</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-485"></a>
+<a name="line-486"></a><a name="createParamSet"></a><span class='comment'>-- create a set of parameters (Names refering to XPath-values) from a set of Variable-placeholders (unevaluated expressions)</span>
+<a name="line-487"></a><span class='definition'>createParamSet</span> <span class='keyglyph'>::</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamSet</span>
+<a name="line-488"></a><span class='definition'>createParamSet</span> <span class='varid'>wParamList</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>evalVariableWParamSet</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>wParamList</span>
+<a name="line-489"></a>
+<a name="line-490"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-491"></a><span class='comment'>-- handling of imported attributes</span>
+<a name="line-492"></a>
+<a name="line-493"></a><a name="applyAttribSets"></a><span class='definition'>applyAttribSets</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UsedAttribSets</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-494"></a><span class='definition'>applyAttribSets</span> <span class='varid'>callstack</span> <span class='layout'>(</span><span class='conid'>UsedAttribSets</span> <span class='varid'>sets</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>applyAllAttrSetForName</span> <span class='varid'>callstack</span> <span class='varid'>name</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>sets</span>
+<a name="line-495"></a>
+<a name="line-496"></a><a name="applyAllAttrSetForName"></a><span class='definition'>applyAllAttrSetForName</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-497"></a><span class='definition'>applyAllAttrSetForName</span> <span class='varid'>callstack</span> <span class='varid'>name</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>
+<a name="line-498"></a>
+<a name="line-499"></a>    <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>callstack</span>
+<a name="line-500"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Attribute-Set "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is recursively used."</span> <span class='varop'>++</span>
+<a name="line-501"></a>                 <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"\n  used in "</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>callstack</span>
+<a name="line-502"></a>    
+<a name="line-503"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varid'>attrset</span>
+<a name="line-504"></a>    <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"No attribute set with name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>
+<a name="line-505"></a>    
+<a name="line-506"></a>    <span class='keyword'>else</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='layout'>(</span><span class='varid'>applyAttribSet</span> <span class='layout'>(</span><span class='varid'>name</span><span class='conop'>:</span><span class='varid'>callstack</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varid'>attrset</span>
+<a name="line-507"></a>
+<a name="line-508"></a>  <span class='keyword'>where</span>
+<a name="line-509"></a>    <span class='varid'>attrset</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>getAttributeSets</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>
+<a name="line-510"></a>
+<a name="line-511"></a><a name="applyAttribSet"></a><span class='definition'>applyAttribSet</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AttributeSet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>
+<a name="line-512"></a><span class='definition'>applyAttribSet</span> <span class='varid'>callstack</span> <span class='layout'>(</span><span class='conid'>AttribSet</span> <span class='keyword'>_</span> <span class='varid'>usedSets</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> 
+<a name="line-513"></a>    <span class='varid'>applyAttribSets</span> <span class='varid'>callstack</span> <span class='varid'>usedSets</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctx</span>
+<a name="line-514"></a>    
+<a name="line-515"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-516"></a><span class='comment'>-- Sorting</span>
+<a name="line-517"></a>
+<a name="line-518"></a><a name="applySorting"></a><span class='definition'>applySorting</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>SortKey</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span>
+<a name="line-519"></a><span class='definition'>applySorting</span> <span class='conid'>[]</span> <span class='varid'>ctx</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span> <span class='varid'>ctxSetNodes</span> <span class='varid'>nodes</span> <span class='varid'>ctx</span>
+<a name="line-520"></a><span class='definition'>applySorting</span> <span class='varid'>sortKeys</span> <span class='varid'>ctx</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span> 
+<a name="line-521"></a>    <span class='varid'>ctxSetNodes</span> <span class='varid'>resultOrder</span> <span class='varid'>ctx</span>
+<a name="line-522"></a>  <span class='keyword'>where</span>
+<a name="line-523"></a>    <span class='varid'>resultOrder</span>          <span class='keyglyph'>=</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>unzip</span> <span class='varid'>sortedKVs</span>
+<a name="line-524"></a>    <span class='varid'>sortedKVs</span>            <span class='keyglyph'>=</span> <span class='varid'>sortBy</span> <span class='varid'>compKV</span> <span class='varid'>keysWVals</span>
+<a name="line-525"></a>    <span class='varid'>keysWVals</span>            <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>keys</span> <span class='varid'>nodes</span>
+<a name="line-526"></a>    <span class='varid'>keys</span>                 <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>extract</span> <span class='varid'>nodes</span>
+<a name="line-527"></a>    <span class='layout'>(</span><span class='varid'>extrFs</span><span class='layout'>,</span> <span class='varid'>cmpFs</span><span class='layout'>)</span>      <span class='keyglyph'>=</span> <span class='varid'>unzip</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>applySortKey</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>sortKeys</span>
+<a name="line-528"></a>
+<a name="line-529"></a>    <span class='comment'>-- helper functions:</span>
+<a name="line-530"></a>    <span class='varid'>extract</span> <span class='varid'>node</span>         <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varop'>$</span> <span class='varid'>ctxSetNodes</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>extrFs</span>
+<a name="line-531"></a>    <span class='varid'>compKV</span> <span class='layout'>(</span><span class='varid'>k1</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>k2</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>compressOrds</span> <span class='varop'>$</span> <span class='varid'>compares</span> <span class='varid'>k1</span> <span class='varid'>k2</span>
+<a name="line-532"></a>    <span class='varid'>compares</span>             <span class='keyglyph'>=</span> <span class='varid'>zipWith3</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>$</span><span class='layout'>)</span> <span class='varop'>$</span><span class='layout'>)</span> <span class='varid'>cmpFs</span>
+<a name="line-533"></a>    <span class='varid'>compressOrds</span>         <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>EQ</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>find</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='conid'>EQ</span><span class='layout'>)</span>
+<a name="line-534"></a>
+<a name="line-535"></a><a name="SortVal"></a><span class='keyword'>type</span> <span class='conid'>SortVal</span> <span class='keyglyph'>=</span> <span class='conid'>Either</span> <span class='conid'>Float</span> <span class='conid'>String</span>
+<a name="line-536"></a>
+<a name="line-537"></a><a name="applySortKey"></a><span class='definition'>applySortKey</span> <span class='keyglyph'>::</span> <span class='conid'>SortKey</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SortVal</span>
+<a name="line-538"></a>                                      <span class='layout'>,</span> <span class='conid'>SortVal</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SortVal</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Ordering</span><span class='layout'>)</span>
+<a name="line-539"></a><span class='definition'>applySortKey</span> <span class='layout'>(</span><span class='conid'>SortK</span> <span class='varid'>expr</span> <span class='varid'>typeATV</span> <span class='varid'>orderATV</span><span class='layout'>)</span> <span class='varid'>ctx</span>
+<a name="line-540"></a>    <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>/=</span> <span class='str'>"number"</span>
+<a name="line-541"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-542"></a>      <span class='varid'>typ</span> <span class='varop'>/=</span> <span class='str'>"text"</span> 
+<a name="line-543"></a>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"unsupported type in xsl:sort: "</span> <span class='varop'>++</span> <span class='varid'>typ</span>
+<a name="line-544"></a>    <span class='keyglyph'>|</span> <span class='varid'>ordering</span> <span class='varop'>/=</span><span class='str'>"ascending"</span>
+<a name="line-545"></a>      <span class='varop'>&amp;&amp;</span>
+<a name="line-546"></a>      <span class='varid'>ordering</span> <span class='varop'>/=</span><span class='str'>"descending"</span>
+<a name="line-547"></a>	  <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"order in xsl:sort element must be ascending or descending. Found: "</span> <span class='varop'>++</span> <span class='varid'>ordering</span>
+<a name="line-548"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-549"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>extractFct</span><span class='layout'>,</span> <span class='varid'>cmpFct</span><span class='layout'>)</span>
+<a name="line-550"></a>    <span class='keyword'>where</span>
+<a name="line-551"></a>    <span class='varid'>isNum</span>          <span class='keyglyph'>=</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='str'>"number"</span>
+<a name="line-552"></a>    <span class='varid'>isDesc</span>         <span class='keyglyph'>=</span> <span class='varid'>ordering</span> <span class='varop'>==</span> <span class='str'>"descending"</span>
+<a name="line-553"></a>    <span class='varid'>ordering</span>       <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>orderATV</span> <span class='varid'>ctx</span>
+<a name="line-554"></a>    <span class='varid'>typ</span>            <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>typeATV</span> <span class='varid'>ctx</span>
+<a name="line-555"></a>
+<a name="line-556"></a>    <span class='varid'>extractFct</span> <span class='varid'>ctx'</span>
+<a name="line-557"></a>	<span class='keyglyph'>=</span> <span class='keyword'>let</span>
+<a name="line-558"></a>	  <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx'</span>
+<a name="line-559"></a>	  <span class='keyword'>in</span>
+<a name="line-560"></a>          <span class='keyword'>if</span> <span class='varid'>isNum</span>
+<a name="line-561"></a>          <span class='keyword'>then</span> <span class='conid'>Left</span> <span class='varop'>$</span> <span class='varid'>readWDefault</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1.0</span> <span class='varop'>/</span> <span class='num'>0.0</span><span class='layout'>)</span> <span class='varid'>val</span>
+<a name="line-562"></a>          <span class='keyword'>else</span> <span class='conid'>Right</span> <span class='varid'>val</span>
+<a name="line-563"></a>
+<a name="line-564"></a>    <span class='varid'>cmpFct</span> <span class='varid'>a</span>
+<a name="line-565"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isDesc</span> <span class='keyword'>then</span> <span class='varid'>invertOrd</span> <span class='keyword'>else</span> <span class='varid'>id</span> <span class='layout'>)</span> 
+<a name="line-566"></a>          <span class='varop'>.</span>
+<a name="line-567"></a>          <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isNum</span> <span class='keyword'>then</span> <span class='varid'>cmpNum</span> <span class='varid'>a</span> <span class='keyword'>else</span> <span class='varid'>cmpString</span> <span class='varid'>a</span> <span class='layout'>)</span>
+<a name="line-568"></a>
+<a name="line-569"></a>    <span class='varid'>cmpNum</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varid'>n1</span><span class='layout'>)</span>  <span class='layout'>(</span><span class='conid'>Left</span> <span class='varid'>n2</span><span class='layout'>)</span>
+<a name="line-570"></a>	<span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='varid'>n1</span> <span class='varid'>n2</span>
+<a name="line-571"></a>    <span class='varid'>cmpNum</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-572"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"internal error in cmpNum in applySortKey"</span>
+<a name="line-573"></a>
+<a name="line-574"></a>    <span class='varid'>cmpString</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>s2</span><span class='layout'>)</span>
+<a name="line-575"></a>	<span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>s2</span><span class='layout'>)</span>      <span class='comment'>-- The text comparison still needs to be improved...</span>
+<a name="line-576"></a>    <span class='varid'>cmpString</span> <span class='keyword'>_</span> <span class='keyword'>_</span>
+<a name="line-577"></a>	<span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"internal error in cmpString in applySortKey"</span>
+<a name="line-578"></a>
+<a name="line-579"></a><a name="invertOrd"></a><span class='definition'>invertOrd</span> <span class='keyglyph'>::</span> <span class='conid'>Ordering</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Ordering</span>
+<a name="line-580"></a><span class='definition'>invertOrd</span> <span class='conid'>EQ</span> <span class='keyglyph'>=</span> <span class='conid'>EQ</span>
+<a name="line-581"></a><span class='definition'>invertOrd</span> <span class='conid'>LT</span> <span class='keyglyph'>=</span> <span class='conid'>GT</span>
+<a name="line-582"></a><span class='definition'>invertOrd</span> <span class='conid'>GT</span> <span class='keyglyph'>=</span> <span class='conid'>LT</span>
+<a name="line-583"></a>
+<a name="line-584"></a><span class='comment'>-- ------------------------------------</span>
+<a name="line-585"></a><span class='comment'>-- Namespace FIXUP</span>
+<a name="line-586"></a>
+<a name="line-587"></a><a name="fixupNS"></a><span class='definition'>fixupNS</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-588"></a><span class='definition'>fixupNS</span> <span class='keyglyph'>=</span> <span class='varid'>compressNS</span> <span class='varop'>.</span> <span class='varid'>disambigNS</span>
+<a name="line-589"></a>
+<a name="line-590"></a><a name="compressNS"></a><span class='definition'>compressNS</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-591"></a><span class='definition'>compressNS</span> <span class='keyglyph'>=</span> 
+<a name="line-592"></a>    <span class='varid'>mapTreeCtx</span> <span class='varid'>compressElem</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-593"></a>  
+<a name="line-594"></a><a name="compressElem"></a><span class='definition'>compressElem</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-595"></a><span class='definition'>compressElem</span> <span class='varid'>uris</span> <span class='varid'>node</span>
+<a name="line-596"></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'>newUris</span><span class='layout'>,</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='varop'>$</span> <span class='varid'>isImportant</span><span class='layout'>)</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-597"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>uris</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-598"></a>  <span class='keyword'>where</span>
+<a name="line-599"></a>    <span class='varid'>newUris</span>       <span class='keyglyph'>=</span> <span class='varid'>uris</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'>getUriMap</span> <span class='varid'>node</span>
+<a name="line-600"></a>    <span class='varid'>isImportant</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isNsAttr</span> <span class='varid'>n</span><span class='layout'>)</span> 
+<a name="line-601"></a>                         <span class='varop'>||</span> <span class='varid'>not</span> <span class='layout'>(</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'>n</span><span class='layout'>)</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>member</span><span class='varop'>`</span> <span class='varid'>uris</span><span class='layout'>)</span>
+<a name="line-602"></a>
+<a name="line-603"></a><a name="disambigNS"></a><span class='definition'>disambigNS</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-604"></a><span class='definition'>disambigNS</span> <span class='keyglyph'>=</span> 
+<a name="line-605"></a>    <span class='varid'>mapTreeCtx</span> <span class='varid'>step</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-606"></a>  <span class='keyword'>where</span>
+<a name="line-607"></a>    <span class='varid'>step</span> <span class='varid'>uris</span> <span class='varid'>node</span>
+<a name="line-608"></a>      <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='varid'>uris'</span>               <span class='keyglyph'>=</span> <span class='varid'>uris</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'>getUriMap</span> <span class='varid'>node</span>
+<a name="line-609"></a>                          <span class='layout'>(</span><span class='varid'>newUris</span><span class='layout'>,</span> <span class='varid'>newNode'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>disambigElem</span> <span class='varid'>uris'</span> <span class='varid'>node</span> <span class='keyword'>in</span>
+<a name="line-610"></a>                        <span class='layout'>(</span><span class='varid'>newUris</span><span class='layout'>,</span> <span class='varid'>setUriMap</span> <span class='varid'>newUris</span> <span class='varid'>newNode'</span><span class='layout'>)</span>
+<a name="line-611"></a>      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>uris</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-612"></a>
+<a name="line-613"></a><a name="disambigElem"></a><span class='definition'>disambigElem</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-614"></a><span class='definition'>disambigElem</span> <span class='varid'>nsMap</span> <span class='varid'>element</span> <span class='keyglyph'>=</span>    
+<a name="line-615"></a>    <span class='layout'>(</span><span class='varid'>newNsMap</span><span class='layout'>,</span> <span class='conid'>XTag</span>                  
+<a name="line-616"></a>                 <span class='layout'>(</span><span class='varid'>remapNsName</span> <span class='varid'>newNsMap</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>element</span><span class='layout'>)</span>
+<a name="line-617"></a>                 <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>changeName</span> <span class='varop'>$</span> <span class='varid'>remapNsName</span> <span class='varid'>newNsMap</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'>element</span> <span class='layout'>)</span>
+<a name="line-618"></a>  <span class='keyword'>where</span>
+<a name="line-619"></a>    <span class='varid'>newNsMap</span>   <span class='keyglyph'>=</span> <span class='varid'>nsMap</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='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='varid'>newTuples</span>
+<a name="line-620"></a>    <span class='varid'>newTuples</span>  <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>newPrefs</span> <span class='varop'>$</span> <span class='varid'>nub</span> <span class='varid'>newUris</span>
+<a name="line-621"></a>    <span class='varid'>newUris</span>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>oldUris</span><span class='layout'>)</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='varop'>$</span> <span class='varid'>map</span> <span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='varid'>getName</span>
+<a name="line-622"></a>                   <span class='layout'>(</span><span class='varid'>element</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>getNode</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>element</span><span class='layout'>)</span><span class='layout'>)</span>
+<a name="line-623"></a>    <span class='varid'>newPrefs</span>   <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>oldPrefs</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='str'>"ns"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='keyglyph'>&lt;-</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>1</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>
+<a name="line-624"></a>    <span class='varid'>oldPrefs</span>   <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>keys</span> <span class='varid'>nsMap</span>
+<a name="line-625"></a>    <span class='varid'>oldUris</span>    <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>elems</span> <span class='varid'>nsMap</span>  
+<a name="line-626"></a>
+<a name="line-627"></a><a name="remapNsName"></a><span class='definition'>remapNsName</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-628"></a><span class='definition'>remapNsName</span> <span class='varid'>nsMap</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> 
+<a name="line-629"></a>
+<a name="line-630"></a>    <span class='keyword'>if</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>nsUri</span><span class='varop'>==</span><span class='str'>""</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nsUri</span><span class='layout'>)</span> <span class='varid'>luUri</span>
+<a name="line-631"></a>    <span class='keyword'>then</span> <span class='varid'>name</span>
+<a name="line-632"></a>
+<a name="line-633"></a>    <span class='keyword'>else</span> <span class='varid'>mkQName</span> <span class='varid'>newPref</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>nsUri</span>
+<a name="line-634"></a>
+<a name="line-635"></a>  <span class='keyword'>where</span>
+<a name="line-636"></a>    <span class='varid'>luUri</span>   <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>nsMap</span>
+<a name="line-637"></a>    <span class='varid'>newPref</span> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"int. error: No prefix for "</span> <span class='varop'>++</span> <span class='varid'>nsUri</span><span class='layout'>)</span><span class='layout'>)</span> 
+<a name="line-638"></a>                <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>keys</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>namespaceUri</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>nsMap</span>
+<a name="line-639"></a>    <span class='varid'>nsUri</span>   <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>name</span>
+<a name="line-640"></a>
+</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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-Common.html
@@ -0,0 +1,413 @@
+<!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     : Text.XML.HXT.XSLT.Application
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006 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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-402"></a>
+<a name="line-403"></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
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html
@@ -0,0 +1,512 @@
+<!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     : Text.XML.HXT.XSLT.Application
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006 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: 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-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>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XSLT-CompiledStylesheet.html b/doc/hdoc/src/Text-XML-HXT-XSLT-CompiledStylesheet.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-CompiledStylesheet.html
@@ -0,0 +1,277 @@
+<!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     : Text.XML.HXT.XSLT.Application
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006 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: CompiledStylesheet.hs,v 1.3 2007/05/02 06:41:05 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Types for compiled 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'>CompiledStylesheet</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'>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-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'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</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><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>
+<a name="line-27"></a>
+<a name="line-28"></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-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>
+<a name="line-31"></a><span class='comment'>-- -------------------</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='comment'>-- compiled-Stylesheet:</span>
+<a name="line-34"></a>
+<a name="line-35"></a><a name="CompiledStylesheet"></a><span class='keyword'>data</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>=</span> 
+<a name="line-36"></a>  <span class='conid'>CompStylesheet</span>
+<a name="line-37"></a>    <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>                
+<a name="line-38"></a>    <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='layout'>)</span>
+<a name="line-39"></a>    <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-40"></a>    <span class='layout'>(</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='layout'>)</span> 
+<a name="line-41"></a>    <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>                   
+<a name="line-42"></a>    <span class='conid'>NSAliasing</span>                  
+<a name="line-43"></a>  <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-44"></a>
+<a name="line-45"></a><a name="getMatchRules"></a><span class='definition'>getMatchRules</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>
+<a name="line-46"></a><span class='definition'>getMatchRules</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>matchRules</span>
+<a name="line-47"></a>
+<a name="line-48"></a><a name="getNamedRules"></a><span class='definition'>getNamedRules</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</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>
+<a name="line-49"></a><span class='definition'>getNamedRules</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='varid'>namedRules</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>namedRules</span>
+<a name="line-50"></a>
+<a name="line-51"></a><a name="getVariables"></a><span class='definition'>getVariables</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</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-52"></a><span class='definition'>getVariables</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>variables</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>variables</span>
+<a name="line-53"></a>
+<a name="line-54"></a><a name="getAttributeSets"></a><span class='definition'>getAttributeSets</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</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-55"></a><span class='definition'>getAttributeSets</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>attrSets</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>attrSets</span>
+<a name="line-56"></a>
+<a name="line-57"></a><a name="getStrips"></a><span class='definition'>getStrips</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>
+<a name="line-58"></a><span class='definition'>getStrips</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>strips</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>strips</span>
+<a name="line-59"></a>
+<a name="line-60"></a><a name="getAliases"></a><span class='definition'>getAliases</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</span>
+<a name="line-61"></a><span class='definition'>getAliases</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>aliases</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>aliases</span>
+<a name="line-62"></a>
+<a name="line-63"></a><span class='comment'>-- -------------------</span>
+<a name="line-64"></a><span class='comment'>-- Match-Rules:</span>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="MatchRule"></a><span class='keyword'>data</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>=</span> 
+<a name="line-67"></a>  <span class='conid'>MatRule</span> <span class='conid'>MatchExpr</span>
+<a name="line-68"></a>          <span class='conid'>Float</span>           <span class='comment'>-- priority</span>
+<a name="line-69"></a>          <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span>  <span class='comment'>-- mode</span>
+<a name="line-70"></a>          <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>     <span class='comment'>-- Imported rules only for xsl:apply-imports</span>
+<a name="line-71"></a>          <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span>      <span class='comment'>-- xsl:param list</span>
+<a name="line-72"></a>          <span class='conid'>Template</span>        <span class='comment'>-- content</span>
+<a name="line-73"></a>  <span class='comment'>--deriving Show         -- output of imported Rules makes it unreadable</span>
+<a name="line-74"></a>
+<a name="line-75"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>MatchRule</span> <span class='keyword'>where</span>
+<a name="line-76"></a>    <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='varid'>expr</span> <span class='varid'>prio</span> <span class='varid'>mode</span> <span class='varid'>imprules</span> <span class='varid'>params</span> <span class='varid'>content</span><span class='layout'>)</span>
+<a name="line-77"></a>	<span class='keyglyph'>=</span> <span class='str'>"MkRule expr: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>expr</span> <span class='varop'>++</span> <span class='str'>"\n  prio: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>prio</span> <span class='varop'>++</span> <span class='str'>"\n  mode: "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>mode</span> 
+<a name="line-78"></a>	  <span class='varop'>++</span> <span class='str'>"\n  no. imported rules: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>imprules</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"\n  xsl-params: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>params</span> 
+<a name="line-79"></a>          <span class='varop'>++</span> <span class='str'>"\n  content: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>content</span> <span class='varop'>++</span><span class='str'>"\n"</span>
+<a name="line-80"></a>
+<a name="line-81"></a><a name="getRulePrio"></a><span class='definition'>getRulePrio</span> <span class='keyglyph'>::</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>
+<a name="line-82"></a><span class='definition'>getRulePrio</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='varid'>prio</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>prio</span>
+<a name="line-83"></a>
+<a name="line-84"></a><a name="getRuleMode"></a><span class='definition'>getRuleMode</span> <span class='keyglyph'>::</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span>
+<a name="line-85"></a><span class='definition'>getRuleMode</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>mode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mode</span>
+<a name="line-86"></a>
+<a name="line-87"></a><a name="getRuleImports"></a><span class='definition'>getRuleImports</span> <span class='keyglyph'>::</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>
+<a name="line-88"></a><span class='definition'>getRuleImports</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>imports</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>imports</span>
+<a name="line-89"></a>
+<a name="line-90"></a><span class='comment'>-- -------------------</span>
+<a name="line-91"></a><span class='comment'>-- Named-Rules:</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="NamedRule"></a><span class='keyword'>data</span> <span class='conid'>NamedRule</span> <span class='keyglyph'>=</span> <span class='conid'>NamRule</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='conid'>Template</span>
+<a name="line-94"></a>  <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-95"></a>
+<a name="line-96"></a><a name="getRuleName"></a><span class='definition'>getRuleName</span> <span class='keyglyph'>::</span> <span class='conid'>NamedRule</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>
+<a name="line-97"></a><span class='definition'>getRuleName</span> <span class='layout'>(</span><span class='conid'>NamRule</span> <span class='varid'>name</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>  <span class='keyglyph'>=</span> <span class='varid'>name</span>
+<a name="line-98"></a>
+<a name="line-99"></a><span class='comment'>-- -------------------</span>
+<a name="line-100"></a><span class='comment'>-- Variables </span>
+<a name="line-101"></a>
+<a name="line-102"></a><a name="Variable"></a><span class='keyword'>data</span> <span class='conid'>Variable</span> <span class='keyglyph'>=</span> <span class='conid'>MkVar</span> 
+<a name="line-103"></a>                  <span class='conid'>Bool</span>                   <span class='comment'>-- modus: False =&gt; xsl:variable, True =&gt; xsl:param</span>
+<a name="line-104"></a>                  <span class='conid'>ExName</span>                 <span class='comment'>-- name</span>
+<a name="line-105"></a>                  <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Expr</span> <span class='conid'>Template</span><span class='layout'>)</span> <span class='comment'>-- select-expression or result tree fragment</span>
+<a name="line-106"></a>		<span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-107"></a>
+<a name="line-108"></a><a name="getVarName"></a><span class='definition'>getVarName</span> <span class='keyglyph'>::</span> <span class='conid'>Variable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>
+<a name="line-109"></a><span class='definition'>getVarName</span> <span class='layout'>(</span><span class='conid'>MkVar</span> <span class='keyword'>_</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>name</span>
+<a name="line-110"></a>
+<a name="line-111"></a><a name="isParam"></a><span class='definition'>isParam</span> <span class='keyglyph'>::</span> <span class='conid'>Variable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>
+<a name="line-112"></a><span class='definition'>isParam</span> <span class='layout'>(</span><span class='conid'>MkVar</span> <span class='varid'>isP</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isP</span>
+<a name="line-113"></a>
+<a name="line-114"></a><span class='comment'>-- -------------------</span>
+<a name="line-115"></a><span class='comment'>-- Attribute sets:</span>
+<a name="line-116"></a>
+<a name="line-117"></a><a name="UsedAttribSets"></a><span class='keyword'>newtype</span> <span class='conid'>UsedAttribSets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span>
+<a name="line-118"></a>  <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-119"></a>
+<a name="line-120"></a><a name="AttributeSet"></a><span class='keyword'>data</span> <span class='conid'>AttributeSet</span> <span class='keyglyph'>=</span> <span class='conid'>AttribSet</span> <span class='conid'>ExName</span> <span class='conid'>UsedAttribSets</span> <span class='conid'>Template</span>
+<a name="line-121"></a>  <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-122"></a>
+<a name="line-123"></a><span class='comment'>-- -------------------</span>
+<a name="line-124"></a><span class='comment'>-- Whitespace-stripping</span>
+<a name="line-125"></a>
+<a name="line-126"></a><a name="NTest"></a><span class='keyword'>type</span> <span class='conid'>NTest</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> 
+<a name="line-127"></a>
+<a name="line-128"></a><a name="parseNTest"></a><span class='definition'>parseNTest</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'>NTest</span>
+<a name="line-129"></a><span class='definition'>parseNTest</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span>
+<a name="line-130"></a>
+<a name="line-131"></a><a name="Strips"></a><span class='keyword'>type</span> <span class='conid'>Strips</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>NTest</span> <span class='conid'>Bool</span>
+<a name="line-132"></a>
+<a name="line-133"></a><span class='comment'>-- Lookup whether an element of the source document must be stripped.</span>
+<a name="line-134"></a><span class='comment'>-- Strip descriptions are ordered by descending import precedence:</span>
+<a name="line-135"></a>
+<a name="line-136"></a><a name="lookupStrip"></a><span class='definition'>lookupStrip</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</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='conid'>Bool</span>
+<a name="line-137"></a><span class='definition'>lookupStrip</span> <span class='varid'>name</span>
+<a name="line-138"></a>    <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='keyglyph'>[</span><span class='conid'>False</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>lookupStrip1</span> <span class='varid'>name</span><span class='layout'>)</span>
+<a name="line-139"></a>
+<a name="line-140"></a><span class='comment'>-- Try to match a qualified name with a set of strip- and preserve-space attributes of the same import precedence:</span>
+<a name="line-141"></a>
+<a name="line-142"></a><a name="lookupStrip1"></a><span class='definition'>lookupStrip1</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Strips</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Bool</span>
+<a name="line-143"></a><span class='definition'>lookupStrip1</span> <span class='varid'>name</span> <span class='varid'>spec</span> <span class='keyglyph'>=</span> 
+<a name="line-144"></a>    <span class='keyword'>if</span>      <span class='varid'>isJust</span> <span class='varid'>nameMatch</span> <span class='keyword'>then</span> <span class='varid'>nameMatch</span>
+<a name="line-145"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>prefMatch</span> <span class='keyword'>then</span> <span class='varid'>prefMatch</span>
+<a name="line-146"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>globMatch</span> <span class='keyword'>then</span> <span class='varid'>globMatch</span>
+<a name="line-147"></a>    <span class='keyword'>else</span> <span class='conid'>Nothing</span>
+<a name="line-148"></a>  <span class='keyword'>where</span>
+<a name="line-149"></a>    <span class='varid'>nameMatch</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span>       <span class='varid'>name</span>             <span class='layout'>)</span> <span class='varid'>spec</span>
+<a name="line-150"></a>    <span class='varid'>prefMatch</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='str'>"*"</span>  <span class='varop'>$</span> <span class='varid'>exUri</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>spec</span>
+<a name="line-151"></a>    <span class='varid'>globMatch</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='str'>"*"</span>  <span class='str'>""</span>          <span class='layout'>)</span> <span class='varid'>spec</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="feedSpaces"></a><span class='definition'>feedSpaces</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Strips</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Strips</span>
+<a name="line-154"></a><span class='definition'>feedSpaces</span> <span class='varid'>strip</span> <span class='varid'>tests</span> <span class='keyglyph'>=</span> 
+<a name="line-155"></a>    <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unionWithKey</span> <span class='varid'>feedErr</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromListWithKey</span> <span class='varid'>feedErr</span> <span class='varop'>$</span> <span class='varid'>zip</span> <span class='varid'>tests</span> <span class='varop'>$</span> <span class='varid'>repeat</span> <span class='varid'>strip</span>
+<a name="line-156"></a>  <span class='keyword'>where</span>
+<a name="line-157"></a>    <span class='varid'>feedErr</span> <span class='varid'>k</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Ambiguous strip- or preserve-space rules for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>k</span>
+<a name="line-158"></a>
+<a name="line-159"></a><a name="feedStrips"></a><span class='definition'>feedStrips</span><span class='layout'>,</span> <span class='varid'>feedPreserves</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Strips</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Strips</span>
+<a name="line-160"></a><span class='definition'>feedStrips</span>    <span class='keyglyph'>=</span> <span class='varid'>feedSpaces</span> <span class='conid'>True</span>
+<a name="line-161"></a><a name="feedPreserves"></a><span class='definition'>feedPreserves</span> <span class='keyglyph'>=</span> <span class='varid'>feedSpaces</span> <span class='conid'>False</span>
+<a name="line-162"></a>
+<a name="line-163"></a><a name="stripDocument"></a><span class='definition'>stripDocument</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-164"></a><span class='definition'>stripDocument</span> <span class='varid'>strips</span>
+<a name="line-165"></a>    <span class='keyglyph'>=</span> <span class='varid'>stripSpaces</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='keyword'>_</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>lookupStrip</span> <span class='layout'>(</span><span class='varid'>mkExName</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>strips</span><span class='layout'>)</span> <span class='conid'>False</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="stripStylesheet"></a><span class='definition'>stripStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-168"></a><span class='definition'>stripStylesheet</span>
+<a name="line-169"></a>    <span class='keyglyph'>=</span> <span class='varid'>stripSpaces</span> <span class='varid'>isStrip</span> <span class='conid'>True</span>
+<a name="line-170"></a>    <span class='keyword'>where</span>
+<a name="line-171"></a>    <span class='varid'>isStrip</span> <span class='varid'>strip'</span> <span class='varid'>node</span>
+<a name="line-172"></a>	<span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltText</span> <span class='varid'>node</span><span class='layout'>)</span>
+<a name="line-173"></a>	  <span class='varop'>&amp;&amp;</span>
+<a name="line-174"></a>	  <span class='layout'>(</span> <span class='varid'>maybe</span> <span class='varid'>strip'</span> <span class='layout'>(</span><span class='varop'>==</span><span class='str'>"default"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xmlSpace</span> <span class='layout'>)</span>
+<a name="line-175"></a>
+<a name="line-176"></a><a name="stripSpaces"></a><span class='definition'>stripSpaces</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>
+<a name="line-177"></a><span class='definition'>stripSpaces</span> <span class='varid'>f</span> <span class='varid'>def</span> <span class='keyglyph'>=</span> 
+<a name="line-178"></a>    <span class='varid'>fromJustErr</span> <span class='str'>"stripSpaces (internal error)"</span> <span class='varop'>.</span> <span class='varid'>filterTreeCtx</span> <span class='varid'>step</span> <span class='varid'>def</span>
+<a name="line-179"></a>  <span class='keyword'>where</span>
+<a name="line-180"></a>    <span class='varid'>step</span> <span class='varid'>strip</span> <span class='varid'>node</span> 
+<a name="line-181"></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'>f</span> <span class='varid'>strip</span> <span class='varid'>node</span><span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>
+<a name="line-182"></a>     <span class='keyglyph'>|</span> <span class='varid'>isWhitespaceNode</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>strip</span>       <span class='layout'>,</span> <span class='varid'>not</span> <span class='varid'>strip</span><span class='layout'>)</span>
+<a name="line-183"></a>     <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>             <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>strip</span>       <span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>
+<a name="line-184"></a>
+<a name="line-185"></a><span class='comment'>-- -------------------</span>
+<a name="line-186"></a><span class='comment'>-- Namespace aliases and exclusion</span>
+<a name="line-187"></a>
+<a name="line-188"></a><span class='comment'>-- Map a namespace URI to a new URI tuple,</span>
+<a name="line-189"></a>
+<a name="line-190"></a><a name="NSAliasing"></a><span class='keyword'>type</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>
+<a name="line-191"></a>
+<a name="line-192"></a><a name="addAlias"></a><span class='definition'>addAlias</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> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</span>
+<a name="line-193"></a><span class='definition'>addAlias</span> <span class='varid'>uris</span> <span class='varid'>oldPr</span> <span class='varid'>newPr</span>
+<a name="line-194"></a>    <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'>"duplicate mapping for "</span> <span class='varop'>++</span> <span class='varid'>old</span><span class='layout'>)</span> <span class='varid'>old</span> <span class='varid'>new</span>
+<a name="line-195"></a>    <span class='keyword'>where</span>
+<a name="line-196"></a>    <span class='varid'>old</span> <span class='keyglyph'>=</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>oldPr</span>
+<a name="line-197"></a>    <span class='varid'>new</span> <span class='keyglyph'>=</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>newPr</span>
+<a name="line-198"></a>
+<a name="line-199"></a><span class='comment'>-- lookup an alias in a namespace-mapping.</span>
+<a name="line-200"></a><span class='comment'>-- returns the original name, if there is no alias for that name.</span>
+<a name="line-201"></a>
+<a name="line-202"></a><a name="lookupAlias"></a><span class='definition'>lookupAlias</span> <span class='keyglyph'>::</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-203"></a><span class='definition'>lookupAlias</span> <span class='varid'>nsm</span> <span class='varid'>qn</span>
+<a name="line-204"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkQName</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'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> 
+<a name="line-205"></a>      <span class='varop'>$</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>id</span>
+<a name="line-206"></a>      <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>nsm</span>
+<a name="line-207"></a> 
+<a name="line-208"></a><a name="aliasUriMapping"></a><span class='definition'>aliasUriMapping</span> <span class='keyglyph'>::</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>
+<a name="line-209"></a><span class='definition'>aliasUriMapping</span> <span class='varid'>nsm</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>uri</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>findWithDefault</span> <span class='varid'>uri</span> <span class='varid'>uri</span> <span class='varid'>nsm</span><span class='layout'>)</span>
+<a name="line-210"></a>
+<a name="line-211"></a><span class='comment'>-- -------------------</span>
+<a name="line-212"></a><span class='comment'>-- Templates:</span>
+<a name="line-213"></a>
+<a name="line-214"></a><a name="Template"></a><span class='keyword'>data</span> <span class='conid'>Template</span>
+<a name="line-215"></a>    <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='keyglyph'>[</span><span class='conid'>Template</span><span class='keyglyph'>]</span>   
+<a name="line-216"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplForEach</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>[</span><span class='conid'>SortKey</span><span class='keyglyph'>]</span> <span class='conid'>Template</span>
+<a name="line-217"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplChoose</span> <span class='keyglyph'>[</span><span class='conid'>When</span><span class='keyglyph'>]</span>    <span class='comment'>-- otherwise will be represented by &lt;xsl:when test="true()"/&gt; in the abstract Syntax</span>
+<a name="line-218"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplMessage</span> <span class='conid'>Bool</span>     <span class='comment'>-- halt?</span>
+<a name="line-219"></a>                   <span class='conid'>Template</span> <span class='comment'>-- content            </span>
+<a name="line-220"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplElement</span> <span class='conid'>ComputedQName</span>
+<a name="line-221"></a>                   <span class='conid'>UriMapping</span>              <span class='comment'>-- Namespaces which *must* be added</span>
+<a name="line-222"></a>                   <span class='conid'>UsedAttribSets</span>          <span class='comment'>-- </span>
+<a name="line-223"></a>                   <span class='conid'>Template</span>                <span class='comment'>-- content</span>
+<a name="line-224"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplAttribute</span> <span class='conid'>ComputedQName</span>
+<a name="line-225"></a>                     <span class='conid'>Template</span>              <span class='comment'>-- content</span>
+<a name="line-226"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplText</span>      <span class='conid'>String</span>
+<a name="line-227"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplValueOf</span> <span class='conid'>StringExpr</span>  <span class='comment'>-- select</span>
+<a name="line-228"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplComment</span> <span class='conid'>Template</span>
+<a name="line-229"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplProcInstr</span> <span class='conid'>StringExpr</span>       <span class='comment'>-- name</span>
+<a name="line-230"></a>                     <span class='conid'>Template</span>               <span class='comment'>-- content</span>
+<a name="line-231"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplApply</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>SelectExpr</span><span class='layout'>)</span> 
+<a name="line-232"></a>                 <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span>  <span class='comment'>-- mode</span>
+<a name="line-233"></a>                 <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='comment'>-- passed arguments</span>
+<a name="line-234"></a>                 <span class='keyglyph'>[</span><span class='conid'>SortKey</span><span class='keyglyph'>]</span>
+<a name="line-235"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplApplyImports</span>
+<a name="line-236"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplVariable</span> <span class='conid'>Variable</span>
+<a name="line-237"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplCall</span> <span class='conid'>ExName</span>                 <span class='comment'>-- name</span>
+<a name="line-238"></a>               <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='comment'>-- passed arguments</span>
+<a name="line-239"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplCopy</span> <span class='conid'>UsedAttribSets</span>
+<a name="line-240"></a>                <span class='conid'>Template</span>
+<a name="line-241"></a>    <span class='keyglyph'>|</span> <span class='conid'>TemplCopyOf</span> <span class='conid'>Expr</span>
+<a name="line-242"></a>    <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-243"></a>
+<a name="line-244"></a><a name="SortKey"></a><span class='keyword'>data</span> <span class='conid'>SortKey</span>
+<a name="line-245"></a>    <span class='keyglyph'>=</span> <span class='conid'>SortK</span> <span class='conid'>StringExpr</span> <span class='comment'>-- select</span>
+<a name="line-246"></a>            <span class='conid'>StringExpr</span> <span class='comment'>-- data-type: number or text(default)</span>
+<a name="line-247"></a>            <span class='conid'>StringExpr</span> <span class='comment'>-- order: ascending(default) or descending</span>
+<a name="line-248"></a>    <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-249"></a>
+<a name="line-250"></a><a name="When"></a><span class='keyword'>data</span> <span class='conid'>When</span>
+<a name="line-251"></a>    <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='conid'>TestExpr</span> <span class='conid'>Template</span> 
+<a name="line-252"></a>    <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-253"></a>
+<a name="line-254"></a><a name="ComputedQName"></a><span class='keyword'>data</span> <span class='conid'>ComputedQName</span>
+<a name="line-255"></a>    <span class='keyglyph'>=</span> <span class='conid'>LiteralQName</span> <span class='conid'>QName</span>
+<a name="line-256"></a>    <span class='keyglyph'>|</span> <span class='conid'>CompQName</span> <span class='conid'>UriMapping</span> <span class='comment'>-- namespace-env</span>
+<a name="line-257"></a>                <span class='conid'>StringExpr</span> <span class='comment'>-- name</span>
+<a name="line-258"></a>                <span class='conid'>StringExpr</span> <span class='comment'>-- namespace</span>
+<a name="line-259"></a>    <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-260"></a>
+<a name="line-261"></a><span class='comment'>-- -------------------</span>
+<a name="line-262"></a><span class='comment'>-- different kinds of expressions</span>
+<a name="line-263"></a>
+<a name="line-264"></a><a name="SelectExpr"></a><span class='keyword'>newtype</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>=</span> <span class='conid'>SelectExpr</span> <span class='conid'>Expr</span>   <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-265"></a><a name="TestExpr"></a><span class='keyword'>newtype</span> <span class='conid'>TestExpr</span>   <span class='keyglyph'>=</span> <span class='conid'>TestExpr</span>   <span class='conid'>Expr</span>   <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-266"></a><a name="StringExpr"></a><span class='keyword'>newtype</span> <span class='conid'>StringExpr</span> <span class='keyglyph'>=</span> <span class='conid'>StringExpr</span> <span class='conid'>Expr</span>   <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+<a name="line-267"></a><a name="MatchExpr"></a><span class='keyword'>newtype</span> <span class='conid'>MatchExpr</span>  <span class='keyglyph'>=</span> <span class='conid'>MatchExpr</span>  <span class='conid'>Expr</span>   <span class='keyword'>deriving</span> <span class='conid'>Show</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XSLT-Names.html b/doc/hdoc/src/Text-XML-HXT-XSLT-Names.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-Names.html
@@ -0,0 +1,162 @@
+<!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     : Text.XML.HXT.XSLT.Application
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006 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: Names.hs,v 1.2 2006/11/11 15:36:05 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   Names and constants 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'>Names</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'>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-23"></a>
+<a name="line-24"></a><a name="xsltPrefix"></a><span class='definition'>xsltPrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-25"></a><span class='definition'>xsltPrefix</span>	<span class='keyglyph'>=</span> <span class='str'>"xsl"</span>
+<a name="line-26"></a>
+<a name="line-27"></a><a name="xsltUri"></a><span class='definition'>xsltUri</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>
+<a name="line-28"></a><span class='definition'>xsltUri</span>		<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/1999/XSL/Transform"</span>
+<a name="line-29"></a>
+<a name="line-30"></a><a name="mkXsltName"></a><span class='definition'>mkXsltName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-31"></a><span class='definition'>mkXsltName</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='varid'>xsltPrefix</span> <span class='varid'>name</span> <span class='varid'>xsltUri</span>
+<a name="line-32"></a>
+<a name="line-33"></a><a name="mkXsltAttribName"></a><span class='definition'>mkXsltAttribName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>
+<a name="line-34"></a><span class='definition'>mkXsltAttribName</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>name</span> <span class='str'>""</span>
+<a name="line-35"></a>
+<a name="line-36"></a><a name="xsltTransform"></a><span class='comment'>-- XSLT-Element QNames</span>
+<a name="line-37"></a><span class='definition'>xsltTransform</span>
+<a name="line-38"></a>  <span class='layout'>,</span> <span class='varid'>xsltStylesheet</span>
+<a name="line-39"></a>  <span class='layout'>,</span> <span class='varid'>xsltMessage</span>
+<a name="line-40"></a>  <span class='layout'>,</span> <span class='varid'>xsltForEach</span>
+<a name="line-41"></a>  <span class='layout'>,</span> <span class='varid'>xsltChoose</span>
+<a name="line-42"></a>  <span class='layout'>,</span> <span class='varid'>xsltWhen</span>
+<a name="line-43"></a>  <span class='layout'>,</span> <span class='varid'>xsltOtherwise</span>
+<a name="line-44"></a>  <span class='layout'>,</span> <span class='varid'>xsltIf</span>
+<a name="line-45"></a>  <span class='layout'>,</span> <span class='varid'>xsltElement</span>
+<a name="line-46"></a>  <span class='layout'>,</span> <span class='varid'>xsltAttribute</span>
+<a name="line-47"></a>  <span class='layout'>,</span> <span class='varid'>xsltText</span>
+<a name="line-48"></a>  <span class='layout'>,</span> <span class='varid'>xsltValueOf</span>
+<a name="line-49"></a>  <span class='layout'>,</span> <span class='varid'>xsltComment</span>
+<a name="line-50"></a>  <span class='layout'>,</span> <span class='varid'>xsltProcInstr</span>
+<a name="line-51"></a>  <span class='layout'>,</span> <span class='varid'>xsltInclude</span>
+<a name="line-52"></a>  <span class='layout'>,</span> <span class='varid'>xsltImport</span>
+<a name="line-53"></a>  <span class='layout'>,</span> <span class='varid'>xsltTemplate</span>
+<a name="line-54"></a>  <span class='layout'>,</span> <span class='varid'>xsltApplyTemplates</span>
+<a name="line-55"></a>  <span class='layout'>,</span> <span class='varid'>xsltApplyImports</span>
+<a name="line-56"></a>  <span class='layout'>,</span> <span class='varid'>xsltCallTemplate</span>
+<a name="line-57"></a>  <span class='layout'>,</span> <span class='varid'>xsltVariable</span>
+<a name="line-58"></a>  <span class='layout'>,</span> <span class='varid'>xsltParam</span>
+<a name="line-59"></a>  <span class='layout'>,</span> <span class='varid'>xsltWithParam</span>
+<a name="line-60"></a>  <span class='layout'>,</span> <span class='varid'>xsltAttributeSet</span>
+<a name="line-61"></a>  <span class='layout'>,</span> <span class='varid'>xsltCopy</span>
+<a name="line-62"></a>  <span class='layout'>,</span> <span class='varid'>xsltCopyOf</span>
+<a name="line-63"></a>  <span class='layout'>,</span> <span class='varid'>xsltSort</span>
+<a name="line-64"></a>  <span class='layout'>,</span> <span class='varid'>xsltStripSpace</span>
+<a name="line-65"></a>  <span class='layout'>,</span> <span class='varid'>xsltPreserveSpace</span>
+<a name="line-66"></a>  <span class='layout'>,</span> <span class='varid'>xsltNamespaceAlias</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-67"></a>
+<a name="line-68"></a><span class='definition'>xsltTransform</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"transform"</span>
+<a name="line-69"></a><a name="xsltStylesheet"></a><span class='definition'>xsltStylesheet</span>                  <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"stylesheet"</span>
+<a name="line-70"></a><a name="xsltMessage"></a><span class='definition'>xsltMessage</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"message"</span>
+<a name="line-71"></a><a name="xsltForEach"></a><span class='definition'>xsltForEach</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"for-each"</span>
+<a name="line-72"></a><a name="xsltChoose"></a><span class='definition'>xsltChoose</span>                      <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"choose"</span>
+<a name="line-73"></a><a name="xsltWhen"></a><span class='definition'>xsltWhen</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"when"</span>
+<a name="line-74"></a><a name="xsltOtherwise"></a><span class='definition'>xsltOtherwise</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"otherwise"</span>
+<a name="line-75"></a><a name="xsltIf"></a><span class='definition'>xsltIf</span>                          <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"if"</span>
+<a name="line-76"></a><a name="xsltElement"></a><span class='definition'>xsltElement</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"element"</span>
+<a name="line-77"></a><a name="xsltAttribute"></a><span class='definition'>xsltAttribute</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"attribute"</span>
+<a name="line-78"></a><a name="xsltText"></a><span class='definition'>xsltText</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"text"</span>
+<a name="line-79"></a><a name="xsltValueOf"></a><span class='definition'>xsltValueOf</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"value-of"</span>
+<a name="line-80"></a><a name="xsltComment"></a><span class='definition'>xsltComment</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"comment"</span>
+<a name="line-81"></a><a name="xsltProcInstr"></a><span class='definition'>xsltProcInstr</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"processing-instruction"</span>
+<a name="line-82"></a><a name="xsltInclude"></a><span class='definition'>xsltInclude</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"include"</span>
+<a name="line-83"></a><a name="xsltImport"></a><span class='definition'>xsltImport</span>                      <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"import"</span>
+<a name="line-84"></a><a name="xsltTemplate"></a><span class='definition'>xsltTemplate</span>                    <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"template"</span>
+<a name="line-85"></a><a name="xsltApplyTemplates"></a><span class='definition'>xsltApplyTemplates</span>              <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"apply-templates"</span>
+<a name="line-86"></a><a name="xsltApplyImports"></a><span class='definition'>xsltApplyImports</span>                <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"apply-imports"</span>
+<a name="line-87"></a><a name="xsltCallTemplate"></a><span class='definition'>xsltCallTemplate</span>                <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"call-template"</span>
+<a name="line-88"></a><a name="xsltVariable"></a><span class='definition'>xsltVariable</span>                    <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"variable"</span>
+<a name="line-89"></a><a name="xsltParam"></a><span class='definition'>xsltParam</span>                       <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"param"</span>
+<a name="line-90"></a><a name="xsltWithParam"></a><span class='definition'>xsltWithParam</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"with-param"</span>
+<a name="line-91"></a><a name="xsltAttributeSet"></a><span class='definition'>xsltAttributeSet</span>                <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"attribute-set"</span>
+<a name="line-92"></a><a name="xsltCopy"></a><span class='definition'>xsltCopy</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"copy"</span>
+<a name="line-93"></a><a name="xsltCopyOf"></a><span class='definition'>xsltCopyOf</span>                      <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"copy-of"</span>
+<a name="line-94"></a><a name="xsltSort"></a><span class='definition'>xsltSort</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"sort"</span>
+<a name="line-95"></a><a name="xsltStripSpace"></a><span class='definition'>xsltStripSpace</span>                  <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"strip-space"</span>
+<a name="line-96"></a><a name="xsltPreserveSpace"></a><span class='definition'>xsltPreserveSpace</span>               <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"preserve-space"</span>
+<a name="line-97"></a><a name="xsltNamespaceAlias"></a><span class='definition'>xsltNamespaceAlias</span>              <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"namespace-alias"</span>
+<a name="line-98"></a>
+<a name="line-99"></a><a name="xsltTerminate"></a><span class='comment'>-- XSLT-Attribute QNames</span>
+<a name="line-100"></a><span class='definition'>xsltTerminate</span>
+<a name="line-101"></a>  <span class='layout'>,</span> <span class='varid'>xsltSelect</span>
+<a name="line-102"></a>  <span class='layout'>,</span> <span class='varid'>xsltTest</span>
+<a name="line-103"></a>  <span class='layout'>,</span> <span class='varid'>xsltName</span>
+<a name="line-104"></a>  <span class='layout'>,</span> <span class='varid'>xsltNamespace</span>
+<a name="line-105"></a>  <span class='layout'>,</span> <span class='varid'>xsltUseAttributeSets</span>
+<a name="line-106"></a>  <span class='layout'>,</span> <span class='varid'>xsltHRef</span>
+<a name="line-107"></a>  <span class='layout'>,</span> <span class='varid'>xsltMatch</span>
+<a name="line-108"></a>  <span class='layout'>,</span> <span class='varid'>xsltPriority</span>
+<a name="line-109"></a>  <span class='layout'>,</span> <span class='varid'>xsltMode</span>
+<a name="line-110"></a>  <span class='layout'>,</span> <span class='varid'>xsltDataType</span>
+<a name="line-111"></a>  <span class='layout'>,</span> <span class='varid'>xsltOrder</span>
+<a name="line-112"></a>  <span class='layout'>,</span> <span class='varid'>xsltElements</span>
+<a name="line-113"></a>  <span class='layout'>,</span> <span class='varid'>xsltStylesheetPrefix</span>
+<a name="line-114"></a>  <span class='layout'>,</span> <span class='varid'>xsltResultPrefix</span>
+<a name="line-115"></a>  <span class='layout'>,</span> <span class='varid'>xsltVersion</span>
+<a name="line-116"></a>  <span class='layout'>,</span> <span class='varid'>xsltExlcudeResultPrefixes</span>
+<a name="line-117"></a>  <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixes</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-118"></a>
+<a name="line-119"></a><span class='definition'>xsltTerminate</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"terminate"</span> 
+<a name="line-120"></a><a name="xsltSelect"></a><span class='definition'>xsltSelect</span>                      <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"select"</span> 
+<a name="line-121"></a><a name="xsltTest"></a><span class='definition'>xsltTest</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"test"</span> 
+<a name="line-122"></a><a name="xsltName"></a><span class='definition'>xsltName</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"name"</span>
+<a name="line-123"></a><a name="xsltNamespace"></a><span class='definition'>xsltNamespace</span>                   <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"namespace"</span>
+<a name="line-124"></a><a name="xsltUseAttributeSets"></a><span class='definition'>xsltUseAttributeSets</span>            <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"use-attribute-sets"</span>
+<a name="line-125"></a><a name="xsltHRef"></a><span class='definition'>xsltHRef</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"href"</span>
+<a name="line-126"></a><a name="xsltMatch"></a><span class='definition'>xsltMatch</span>                       <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"match"</span>
+<a name="line-127"></a><a name="xsltPriority"></a><span class='definition'>xsltPriority</span>                    <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"priority"</span>
+<a name="line-128"></a><a name="xsltMode"></a><span class='definition'>xsltMode</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"mode"</span>
+<a name="line-129"></a><a name="xsltDataType"></a><span class='definition'>xsltDataType</span>                    <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"data-type"</span>
+<a name="line-130"></a><a name="xsltOrder"></a><span class='definition'>xsltOrder</span>                       <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"order"</span>
+<a name="line-131"></a><a name="xsltElements"></a><span class='definition'>xsltElements</span>                    <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"elements"</span>
+<a name="line-132"></a><a name="xsltStylesheetPrefix"></a><span class='definition'>xsltStylesheetPrefix</span>            <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"stylesheet-prefix"</span>
+<a name="line-133"></a><a name="xsltResultPrefix"></a><span class='definition'>xsltResultPrefix</span>                <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"result-prefix"</span>
+<a name="line-134"></a><a name="xsltVersion"></a><span class='definition'>xsltVersion</span>                     <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"version"</span>
+<a name="line-135"></a><a name="xsltExlcudeResultPrefixes"></a><span class='definition'>xsltExlcudeResultPrefixes</span>       <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"exclude-result-prefixes"</span>
+<a name="line-136"></a><a name="xsltExtensionElementPrefixes"></a><span class='definition'>xsltExtensionElementPrefixes</span>    <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"extension-element-prefixes"</span>
+<a name="line-137"></a>
+<a name="line-138"></a><a name="xsltUseAttributeSetsLRE"></a><span class='comment'>-- XSLT-Attribute QNames for special Literal result element attributes</span>
+<a name="line-139"></a><span class='definition'>xsltUseAttributeSetsLRE</span>
+<a name="line-140"></a>  <span class='layout'>,</span> <span class='varid'>xsltVersionLRE</span>
+<a name="line-141"></a>  <span class='layout'>,</span> <span class='varid'>xsltExlcudeResultPrefixesLRE</span>
+<a name="line-142"></a>  <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixesLRE</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-143"></a>
+<a name="line-144"></a><span class='definition'>xsltUseAttributeSetsLRE</span>         <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"use-attribute-sets"</span> 
+<a name="line-145"></a><a name="xsltVersionLRE"></a><span class='definition'>xsltVersionLRE</span>                  <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"version"</span>
+<a name="line-146"></a><a name="xsltExlcudeResultPrefixesLRE"></a><span class='definition'>xsltExlcudeResultPrefixesLRE</span>    <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"exclude-result-prefixes"</span>
+<a name="line-147"></a><a name="xsltExtensionElementPrefixesLRE"></a><span class='definition'>xsltExtensionElementPrefixesLRE</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"extension-element-prefixes"</span>
+<a name="line-148"></a>
+<a name="line-149"></a><a name="xmlSpace"></a><span class='comment'>-- xml:space attribute-name</span>
+<a name="line-150"></a><span class='definition'>xmlSpace</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='definition'>xmlSpace</span>                        <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>"xml"</span> <span class='str'>"space"</span> <span class='varid'>xmlNamespace</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/Text-XML-HXT-XSLT-XsltArrows.html b/doc/hdoc/src/Text-XML-HXT-XSLT-XsltArrows.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/Text-XML-HXT-XSLT-XsltArrows.html
@@ -0,0 +1,314 @@
+<!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     : Text.XML.HXT.XSLT.XsltArrows
+<a name="line-5"></a>   Copyright  : Copyright (C) 2006 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: XsltArrows.hs,v 1.1 2006/11/11 15:36:05 hxml Exp $
+<a name="line-12"></a>
+<a name="line-13"></a>   The HXT arrow interface for the XSLT module
+<a name="line-14"></a>
+<a name="line-15"></a>   The application programming interface to the arrow modules of the Haskell XML Toolbox.
+<a name="line-16"></a>   This module exports all important arrows for input, output, parsing, validating and transforming XML.
+<a name="line-17"></a>   It also exports all basic datatypes and functions of the toolbox.
+<a name="line-18"></a>
+<a name="line-19"></a>-}</span>
+<a name="line-20"></a>
+<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-22"></a>
+<a name="line-23"></a>
+<a name="line-24"></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'>XsltArrows</span>
+<a name="line-25"></a>    <span class='layout'>(</span> <span class='varid'>xsltCompileStylesheet</span>
+<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>xsltCompileStylesheetFromURI</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>xsltApplyStylesheet</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>xsltApplyStylesheetFromURI</span>
+<a name="line-29"></a>    <span class='layout'>,</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-30"></a>    <span class='layout'>)</span>
+<a name="line-31"></a><span class='keyword'>where</span>
+<a name="line-32"></a>
+<a name="line-33"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Exception</span> <span class='keyword'>as</span> <span class='conid'>E</span>
+<a name="line-34"></a>    <span class='layout'>(</span> <span class='varid'>catch</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>evaluate</span> <span class='layout'>)</span>
+<a name="line-36"></a>
+<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'>ListArrows</span>
+<a name="line-38"></a>
+<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>
+<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</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><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>
+<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'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</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'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>
+<a name="line-47"></a>    <span class='layout'>(</span> <span class='conid'>CompiledStylesheet</span> <span class='layout'>)</span>
+<a name="line-48"></a>
+<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'>XSLT</span><span class='varop'>.</span><span class='conid'>Compilation</span>
+<a name="line-50"></a>    <span class='layout'>(</span> <span class='varid'>prepareXSLTDocument</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span>
+<a name="line-52"></a>    <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'>XSLT</span><span class='varop'>.</span><span class='conid'>Application</span>
+<a name="line-55"></a>    <span class='layout'>(</span> <span class='varid'>applyStylesheet</span> <span class='layout'>)</span>
+<a name="line-56"></a>
+<a name="line-57"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-58"></a>
+<a name="line-59"></a><span class='comment'>-- | arrow for applying a pure partial function, catch the error case and issue the error</span>
+<a name="line-60"></a>
+<a name="line-61"></a><a name="arrWithCatch"></a><span class='definition'>arrWithCatch</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'>IOSArrow</span> <span class='varid'>a</span> <span class='varid'>b</span>
+<a name="line-62"></a><span class='definition'>arrWithCatch</span> <span class='varid'>f</span>
+<a name="line-63"></a>    <span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='varid'>applyf</span>
+<a name="line-64"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-65"></a>      <span class='layout'>(</span> <span class='layout'>(</span><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='varop'>&gt;&gt;&gt;</span> <span class='varid'>none</span><span class='layout'>)</span>
+<a name="line-66"></a>	<span class='varop'>|||</span>
+<a name="line-67"></a>	<span class='varid'>this</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='comment'>-- applyf	:: a -&gt; IO (Either String b)</span>
+<a name="line-71"></a>    <span class='varid'>applyf</span> <span class='varid'>x</span>
+<a name="line-72"></a>	<span class='keyglyph'>=</span> <span class='conid'>E</span><span class='varop'>.</span><span class='varid'>catch</span> <span class='layout'>(</span> <span class='keyword'>do</span>
+<a name="line-73"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>E</span><span class='varop'>.</span><span class='varid'>evaluate</span> <span class='layout'>(</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='layout'>)</span>
+<a name="line-74"></a>		    <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>Right</span> <span class='varop'>$</span> <span class='varid'>res</span>
+<a name="line-75"></a>		  <span class='layout'>)</span>
+<a name="line-76"></a>	  <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>Left</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"XSLT: "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>e</span><span class='layout'>)</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'>-- | lift prepareXSLTDocument</span>
+<a name="line-81"></a>
+<a name="line-82"></a><a name="prepareXSLTDoc"></a><span class='definition'>prepareXSLTDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-83"></a><span class='definition'>prepareXSLTDoc</span>
+<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arrWithCatch</span> <span class='varid'>prepareXSLTDocument</span>
+<a name="line-85"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-86"></a>	<span class='varid'>traceDoc</span> <span class='str'>"prepareXSLTDocument"</span>
+<a name="line-87"></a>      <span class='layout'>)</span>
+<a name="line-88"></a>      <span class='varop'>`when`</span>
+<a name="line-89"></a>      <span class='varid'>documentStatusOk</span>
+<a name="line-90"></a>
+<a name="line-91"></a><span class='comment'>-- | read an XSLT stylesheet</span>
+<a name="line-92"></a>
+<a name="line-93"></a><a name="readXSLTDoc"></a><span class='definition'>readXSLTDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-94"></a><span class='definition'>readXSLTDoc</span> <span class='varid'>options</span>
+<a name="line-95"></a>    <span class='keyglyph'>=</span> <span class='varid'>readFromDocument</span> <span class='layout'>(</span><span class='varid'>options</span> <span class='varop'>++</span> <span class='varid'>defaultOptions</span><span class='layout'>)</span>
+<a name="line-96"></a>    <span class='keyword'>where</span>
+<a name="line-97"></a>    <span class='varid'>defaultOptions</span>
+<a name="line-98"></a>	<span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_check_namespaces</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span>
+<a name="line-99"></a>	  <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_validate</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span>
+<a name="line-100"></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-101"></a>	  <span class='keyglyph'>]</span>
+<a name="line-102"></a>
+<a name="line-103"></a><span class='comment'>-- | Normalize stylesheet, expand includes, select imports and assemble the rules</span>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="compileSSTWithIncludeStack"></a><span class='definition'>compileSSTWithIncludeStack</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='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-106"></a><span class='definition'>compileSSTWithIncludeStack</span> <span class='varid'>incStack</span>
+<a name="line-107"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"compile stylesheet"</span>
+<a name="line-108"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-109"></a>      <span class='varid'>getChildren</span>					<span class='comment'>-- remove document root</span>
+<a name="line-110"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-111"></a>      <span class='varid'>isElem</span>						<span class='comment'>-- select XSLT root element</span>
+<a name="line-112"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-113"></a>      <span class='varid'>choiceA</span>
+<a name="line-114"></a>      <span class='keyglyph'>[</span> <span class='varid'>isXsltLREstylesheet</span>				<span class='comment'>-- simplified syntax</span>
+<a name="line-115"></a>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>xsltlre2stylesheet</span>
+<a name="line-116"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-117"></a>	      <span class='varid'>assStylesheet</span> <span class='conid'>[]</span>
+<a name="line-118"></a>	    <span class='layout'>)</span>
+<a name="line-119"></a>      <span class='layout'>,</span> <span class='varid'>isXsltStylesheetElem</span>				<span class='comment'>-- xsl:stylesheet or xsl:transform</span>
+<a name="line-120"></a>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>expStylesheet</span>
+<a name="line-121"></a>	      <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>			<span class='comment'>-- take contents and expand includes</span>
+<a name="line-122"></a>			   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-123"></a>			   <span class='varid'>expandIncludes</span> <span class='varid'>incStack</span>
+<a name="line-124"></a>			 <span class='layout'>)</span>
+<a name="line-125"></a>		   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-126"></a>		   <span class='varid'>partitionA</span> <span class='varid'>isXsltImport</span>		<span class='comment'>-- separate imports from normal rules</span>
+<a name="line-127"></a>		 <span class='layout'>)</span>
+<a name="line-128"></a>	    <span class='layout'>)</span>
+<a name="line-129"></a>      <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-130"></a>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>issueErr</span> <span class='str'>"XSLT: Either xsl:stylesheet/xsl:transform or simplified syntax expected"</span>
+<a name="line-131"></a>	      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-132"></a>	      <span class='varid'>none</span>
+<a name="line-133"></a>	    <span class='layout'>)</span>
+<a name="line-134"></a>      <span class='keyglyph'>]</span>
+<a name="line-135"></a>    <span class='keyword'>where</span>
+<a name="line-136"></a>    <span class='varid'>assStylesheet</span> <span class='varid'>imports</span>				<span class='comment'>-- do the assembly, the compilation</span>
+<a name="line-137"></a>	<span class='keyglyph'>=</span> <span class='varid'>arrWithCatch</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>assembleStylesheet</span> <span class='varop'>$</span> <span class='varid'>imports</span><span class='layout'>)</span>
+<a name="line-138"></a>
+<a name="line-139"></a>    <span class='varid'>expStylesheet</span> <span class='layout'>(</span><span class='varid'>imports</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>
+<a name="line-140"></a>	<span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"expandStylesheet"</span>
+<a name="line-141"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-142"></a>	  <span class='varid'>setChildren</span> <span class='varid'>rest</span>				<span class='comment'>-- remove import rules from stylesheet</span>
+<a name="line-143"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-144"></a>	  <span class='varid'>assStylesheet</span> <span class='varop'>$&lt;</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>constL</span> <span class='varid'>imports</span>	<span class='comment'>-- read the imports and assemble the stylesheet</span>
+<a name="line-145"></a>				   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-146"></a>				   <span class='varid'>getXsltAttrValue</span> <span class='varid'>xsltHRef</span>
+<a name="line-147"></a>				   <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-148"></a>				   <span class='varid'>compileSSTFromUriWithIncludeStack</span> <span class='varid'>incStack</span>
+<a name="line-149"></a>				 <span class='layout'>)</span>
+<a name="line-150"></a>
+<a name="line-151"></a><span class='comment'>-- | read an include and check for recursive includes</span>
+<a name="line-152"></a>
+<a name="line-153"></a><a name="readSSTWithIncludeStack"></a><span class='definition'>readSSTWithIncludeStack</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='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>
+<a name="line-154"></a><span class='definition'>readSSTWithIncludeStack</span> <span class='varid'>incStack</span>
+<a name="line-155"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>incStack</span><span class='layout'>)</span>
+<a name="line-156"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>issueErr</span> <span class='varop'>$&lt;</span> <span class='varid'>arr</span> <span class='varid'>recursiveInclude</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>none</span> <span class='layout'>)</span>
+<a name="line-157"></a>      <span class='layout'>(</span> <span class='varid'>readXSLTDoc</span> <span class='conid'>[]</span>
+<a name="line-158"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-159"></a>	<span class='varid'>prepareXSLTDoc</span>
+<a name="line-160"></a>      <span class='layout'>)</span> 
+<a name="line-161"></a>    <span class='keyword'>where</span>
+<a name="line-162"></a>    <span class='varid'>recursiveInclude</span> <span class='varid'>uri</span>
+<a name="line-163"></a>	<span class='keyglyph'>=</span> <span class='str'>"XSLT error: "</span>
+<a name="line-164"></a>	  <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>" is recursively imported/included."</span> 
+<a name="line-165"></a>          <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"\n  imported/included from: "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>incStack</span>
+<a name="line-166"></a>
+<a name="line-167"></a><a name="compileSSTFromUriWithIncludeStack"></a><span class='definition'>compileSSTFromUriWithIncludeStack</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='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-168"></a><span class='definition'>compileSSTFromUriWithIncludeStack</span> <span class='varid'>incStack</span>
+<a name="line-169"></a>    <span class='keyglyph'>=</span> <span class='varid'>comp</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>
+<a name="line-170"></a>    <span class='keyword'>where</span>
+<a name="line-171"></a>    <span class='varid'>comp</span> <span class='varid'>uri</span>
+<a name="line-172"></a>	<span class='keyglyph'>=</span> <span class='varid'>readSSTWithIncludeStack</span> <span class='varid'>incStack</span>
+<a name="line-173"></a>	  <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-174"></a>	  <span class='varid'>compileSSTWithIncludeStack</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='conop'>:</span><span class='varid'>incStack</span><span class='layout'>)</span>
+<a name="line-175"></a>
+<a name="line-176"></a><a name="expandIncludes"></a><span class='definition'>expandIncludes</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='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-177"></a><span class='definition'>expandIncludes</span> <span class='varid'>incStack</span>
+<a name="line-178"></a>    <span class='keyglyph'>=</span> <span class='varid'>isElem</span>
+<a name="line-179"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-180"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>expandInclude</span> <span class='varop'>$&lt;</span> <span class='varid'>getXsltAttrValue</span> <span class='varid'>xsltHRef</span> <span class='layout'>)</span>
+<a name="line-181"></a>        <span class='varop'>`when`</span>
+<a name="line-182"></a>	<span class='varid'>isXsltInclude</span>
+<a name="line-183"></a>      <span class='layout'>)</span>
+<a name="line-184"></a>    <span class='keyword'>where</span>
+<a name="line-185"></a>    <span class='varid'>expandInclude</span> <span class='varid'>href</span>
+<a name="line-186"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>href</span>
+<a name="line-187"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-188"></a>	    <span class='varid'>readSSTWithIncludeStack</span> <span class='varid'>incStack</span>
+<a name="line-189"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-190"></a>	    <span class='varid'>getChildren</span>
+<a name="line-191"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-192"></a>	    <span class='varid'>isElem</span>
+<a name="line-193"></a>	    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-194"></a>	    <span class='varid'>choiceA</span>
+<a name="line-195"></a>	    <span class='keyglyph'>[</span> <span class='varid'>isXsltLREstylesheet</span>
+<a name="line-196"></a>	      <span class='conop'>:-&gt;</span> <span class='varid'>xsltlre2template</span>
+<a name="line-197"></a>
+<a name="line-198"></a>	    <span class='layout'>,</span> <span class='varid'>isXsltStylesheetElem</span>
+<a name="line-199"></a>	      <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>
+<a name="line-200"></a>		    <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-201"></a>		    <span class='varid'>expandIncludes</span> <span class='layout'>(</span><span class='varid'>href</span><span class='conop'>:</span><span class='varid'>incStack</span><span class='layout'>)</span>
+<a name="line-202"></a>		  <span class='layout'>)</span>
+<a name="line-203"></a>
+<a name="line-204"></a>	    <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-205"></a>              <span class='conop'>:-&gt;</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"XSLT error: Included file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> <span class='str'>" is not a stylesheet"</span><span class='layout'>)</span>
+<a name="line-206"></a>	    <span class='keyglyph'>]</span>
+<a name="line-207"></a>	  <span class='layout'>)</span>
+<a name="line-208"></a>
+<a name="line-209"></a><a name="isXsltElem"></a><span class='definition'>isXsltElem</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-210"></a><span class='definition'>isXsltElem</span> <span class='varid'>qn</span>		<span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasNameWith</span> <span class='layout'>(</span><span class='varid'>equivQName</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-211"></a>
+<a name="line-212"></a><a name="isXsltAttr"></a><span class='definition'>isXsltAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-213"></a><span class='definition'>isXsltAttr</span> <span class='varid'>qn</span>		<span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasNameWith</span> <span class='layout'>(</span><span class='varid'>equivQName</span> <span class='varid'>qn</span><span class='layout'>)</span>
+<a name="line-214"></a>
+<a name="line-215"></a><a name="hasXsltAttr"></a><span class='definition'>hasXsltAttr</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-216"></a><span class='definition'>hasXsltAttr</span> <span class='varid'>qn</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isXsltAttr</span> <span class='varid'>qn</span> <span class='layout'>)</span>
+<a name="line-217"></a>			  <span class='varop'>`guards`</span>
+<a name="line-218"></a>			  <span class='varid'>this</span>
+<a name="line-219"></a>
+<a name="line-220"></a><a name="isXsltInclude"></a><span class='definition'>isXsltInclude</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-221"></a><span class='definition'>isXsltInclude</span>		<span class='keyglyph'>=</span> <span class='varid'>isXsltElem</span> <span class='varid'>xsltInclude</span>
+<a name="line-222"></a>
+<a name="line-223"></a><a name="isXsltImport"></a><span class='definition'>isXsltImport</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-224"></a><span class='definition'>isXsltImport</span>		<span class='keyglyph'>=</span> <span class='varid'>isXsltElem</span> <span class='varid'>xsltImport</span>
+<a name="line-225"></a>
+<a name="line-226"></a><a name="isXsltLREstylesheet"></a><span class='definition'>isXsltLREstylesheet</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-227"></a><span class='definition'>isXsltLREstylesheet</span>	<span class='keyglyph'>=</span> <span class='varid'>hasXsltAttr</span> <span class='varid'>xsltVersionLRE</span>
+<a name="line-228"></a>
+<a name="line-229"></a><a name="isXsltStylesheetElem"></a><span class='definition'>isXsltStylesheetElem</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-230"></a><span class='definition'>isXsltStylesheetElem</span>	<span class='keyglyph'>=</span>  <span class='layout'>(</span> <span class='varid'>isXsltElem</span> <span class='varid'>xsltTransform</span>
+<a name="line-231"></a>			     <span class='varop'>&lt;+&gt;</span>
+<a name="line-232"></a>			     <span class='varid'>isXsltElem</span> <span class='varid'>xsltStylesheet</span>
+<a name="line-233"></a>			   <span class='layout'>)</span>
+<a name="line-234"></a>                           <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-235"></a>			   <span class='varid'>hasXsltAttr</span> <span class='varid'>xsltVersion</span>
+<a name="line-236"></a>
+<a name="line-237"></a><a name="getXsltAttrValue"></a><span class='definition'>getXsltAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>
+<a name="line-238"></a><span class='definition'>getXsltAttrValue</span> <span class='varid'>qn</span>	<span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isXsltAttr</span> <span class='varid'>qn</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>
+<a name="line-239"></a>
+<a name="line-240"></a><a name="xsltlre2template"></a><span class='definition'>xsltlre2template</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-241"></a><span class='definition'>xsltlre2template</span>	<span class='keyglyph'>=</span> <span class='varid'>mkqelem</span> <span class='varid'>xsltTemplate</span> <span class='keyglyph'>[</span><span class='varid'>sqattr</span> <span class='varid'>xsltMatch</span> <span class='str'>"/"</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span>
+<a name="line-242"></a>
+<a name="line-243"></a><a name="xsltlre2stylesheet"></a><span class='definition'>xsltlre2stylesheet</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-244"></a><span class='definition'>xsltlre2stylesheet</span>	<span class='keyglyph'>=</span> <span class='varid'>mkqelem</span> <span class='varid'>xsltTransform</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span> <span class='varid'>this</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xsltlre2template</span> <span class='keyglyph'>]</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="checkApplySST"></a><span class='definition'>checkApplySST</span>	<span class='keyglyph'>::</span>  <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-249"></a><span class='definition'>checkApplySST</span> <span class='varid'>appl</span>
+<a name="line-250"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isRoot</span>
+<a name="line-251"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-252"></a>	<span class='varid'>replaceChildren</span> <span class='varid'>appl</span>
+<a name="line-253"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-254"></a>	<span class='varid'>traceDoc</span> <span class='str'>"XSLT stylesheet applied"</span>
+<a name="line-255"></a>	<span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-256"></a>	<span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"applying XSLT styleshhet"</span>
+<a name="line-257"></a>      <span class='layout'>)</span>
+<a name="line-258"></a>      <span class='varop'>`orElse`</span>
+<a name="line-259"></a>      <span class='varid'>issueErr</span> <span class='str'>"XSLT: complete document with root node required for stylesheet application"</span>
+<a name="line-260"></a>
+<a name="line-261"></a><span class='comment'>-- | Compile a document representing an XSLT stylesheet into an internal representation</span>
+<a name="line-262"></a><span class='comment'>--</span>
+<a name="line-263"></a><span class='comment'>-- The internal representation is an abstract syntax tree for the XSLT rules.</span>
+<a name="line-264"></a><span class='comment'>-- XSLT imports and includes are evaluated and the rules are normalized and prepared</span>
+<a name="line-265"></a><span class='comment'>-- for easy application.</span>
+<a name="line-266"></a>
+<a name="line-267"></a><a name="xsltCompileStylesheet"></a><span class='definition'>xsltCompileStylesheet</span>		<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-268"></a><span class='definition'>xsltCompileStylesheet</span>
+<a name="line-269"></a>    <span class='keyglyph'>=</span> <span class='varid'>prepareXSLTDoc</span>
+<a name="line-270"></a>      <span class='varop'>&gt;&gt;&gt;</span>
+<a name="line-271"></a>      <span class='varid'>compileSSTWithIncludeStack</span> <span class='conid'>[]</span>
+<a name="line-272"></a>
+<a name="line-273"></a><span class='comment'>-- | A convinient function for combining reading a stylesheet and compilation.</span>
+<a name="line-274"></a><span class='comment'>--</span>
+<a name="line-275"></a><span class='comment'>-- Reading an XSLT stylesheet is always done without validation but with</span>
+<a name="line-276"></a><span class='comment'>-- namespace propagation. Comments are removed from the stylesheet.</span>
+<a name="line-277"></a>
+<a name="line-278"></a><a name="xsltCompileStylesheetFromURI"></a><span class='definition'>xsltCompileStylesheetFromURI</span>	<span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>CompiledStylesheet</span>
+<a name="line-279"></a><span class='definition'>xsltCompileStylesheetFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>compileSSTFromUriWithIncludeStack</span> <span class='conid'>[]</span>
+<a name="line-280"></a>
+<a name="line-281"></a><span class='comment'>-- | apply a compiled XSLT stylesheet to a whole document tree</span>
+<a name="line-282"></a><span class='comment'>--</span>
+<a name="line-283"></a><span class='comment'>-- The compiled stylesheet must have been created with 'xsltCompileStylesheet'</span>
+<a name="line-284"></a><span class='comment'>-- or 'xsltCompileStylesheetFromURI'</span>
+<a name="line-285"></a>
+<a name="line-286"></a><a name="xsltApplyStylesheet"></a><span class='definition'>xsltApplyStylesheet</span>		<span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>
+<a name="line-287"></a><span class='definition'>xsltApplyStylesheet</span> <span class='varid'>css</span>
+<a name="line-288"></a>    <span class='keyglyph'>=</span> <span class='varid'>checkApplySST</span> <span class='layout'>(</span><span class='varid'>arrWithCatch</span> <span class='layout'>(</span><span class='varid'>applyStylesheet</span> <span class='varid'>css</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>concat</span><span class='layout'>)</span>
+<a name="line-289"></a>
+<a name="line-290"></a><span class='comment'>-- | apply an XSLT stylesheet given by an URI to a whole document tree</span>
+<a name="line-291"></a><span class='comment'>--</span>
+<a name="line-292"></a><span class='comment'>-- The string parameter is the URI of the XSLT stylesheet.</span>
+<a name="line-293"></a><span class='comment'>-- In case of an error during stylesheet compilation or stylesheet application</span>
+<a name="line-294"></a><span class='comment'>-- all children of the root node are removed and</span>
+<a name="line-295"></a><span class='comment'>-- the error status is set in the attribute list of the root node of the input document.</span>
+<a name="line-296"></a>
+<a name="line-297"></a><a name="xsltApplyStylesheetFromURI"></a><span class='definition'>xsltApplyStylesheetFromURI</span>	<span class='keyglyph'>::</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-298"></a><span class='definition'>xsltApplyStylesheetFromURI</span> <span class='varid'>uri</span>
+<a name="line-299"></a>    <span class='keyglyph'>=</span> <span class='varid'>xsltApplyStylesheet</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>uri</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xsltCompileStylesheetFromURI</span><span class='layout'>)</span>
+<a name="line-300"></a>
+<a name="line-301"></a><span class='comment'>{-
+<a name="line-302"></a>xsltApplyStylesheetWParams	:: Map ExName Expr -&gt; CompiledStylesheet -&gt; IOSArrow XmlTree XmlTree
+<a name="line-303"></a>xsltApplyStylesheetWParams wp css	= arrL (applyStylesheetWParams wp css)
+<a name="line-304"></a>-}</span>
+</pre></body>
+</html>
diff --git a/doc/hdoc/src/hscolour.css b/doc/hdoc/src/hscolour.css
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/src/hscolour.css
@@ -0,0 +1,5 @@
+.keyglyph, .layout {color: red;}
+.keyword {color: blue;}
+.comment, .comment a {color: green;}
+.str, .chr {color: teal;}
+.keyword,.conid, .varid, .conop, .varop, .num, .cpp, .sel, .definition {}
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowIO.html b/doc/hdoc_arrow/Control-Arrow-ArrowIO.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ArrowIO.html
+++ /dev/null
@@ -1,472 +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
->Control.Arrow.ArrowIO</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ArrowIO</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ArrowIO.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Lifting of IO actions to arrows
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> Arrow a =&gt; <A HREF="#t%3AArrowIO"
->ArrowIO</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AarrIO"
->arrIO</A
-> :: (b -&gt; IO c) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AarrIO0"
->arrIO0</A
-> :: IO c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AarrIO2"
->arrIO2</A
-> :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AarrIO3"
->arrIO3</A
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AarrIO4"
->arrIO4</A
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->ArrowIO</A
-> a) =&gt; <A HREF="#t%3AArrowIOIf"
->ArrowIOIf</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIOA"
->isIOA</A
-> :: (b -&gt; IO Bool) -&gt; a b b</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> Arrow a =&gt; <A NAME="t%3AArrowIO"
-></A
-><B
->ArrowIO</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->the interface for converting an IO action into an arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AarrIO"
-></A
-><B
->arrIO</B
-> :: (b -&gt; IO c) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construct an arrow from an IO action
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AarrIO0"
-></A
-><B
->arrIO0</B
-> :: IO c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construct an arrow from an IO action without any parameter
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AarrIO2"
-></A
-><B
->arrIO2</B
-> :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 2 argument arrow from a binary IO action
- |
- | example: <TT
-> a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AarrIO3"
-></A
-><B
->arrIO3</B
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 3 argument arrow from a 3-ary IO action
- |
- | example: <TT
-> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AarrIO4"
-></A
-><B
->arrIO4</B
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 4 argument arrow from a 4-ary IO action
- |
- | example: <TT
-> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f </TT
->
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIO')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowIO" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->ArrowIO</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->ArrowIO</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->ArrowIO</A
-> a) =&gt; <A NAME="t%3AArrowIOIf"
-></A
-><B
->ArrowIOIf</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->the interface for converting an IO predicate into a list arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisIOA"
-></A
-><B
->isIOA</B
-> :: (b -&gt; IO Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->builds an arrow from an IO predicate
-</P
-><P
->if the predicate holds, the single list containing the input is returned, else the empty list,
- similar to <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
->isA</A
-></TT
->
-</P
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIOIf')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowIOIf" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
->ArrowIOIf</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
->ArrowIOIf</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowIf.html b/doc/hdoc_arrow/Control-Arrow-ArrowIf.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ArrowIf.html
+++ /dev/null
@@ -1,772 +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
->Control.Arrow.ArrowIf</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIf.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ArrowIf</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ArrowIf.hs,v 1.8 2006<EM
->05</EM
->04 14:17:53 hxml Exp $
-</P
-><P
->Conditionals for List Arrows
-</P
-><P
->This module defines conditional combinators for list arrows.
-</P
-><P
->The empty list as result represents False, none empty lists True.
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="#t%3AArrowIf"
->ArrowIf</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AifA"
->ifA</A
-> :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AifP"
->ifP</A
-> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aneg"
->neg</A
-> :: a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awhen"
->when</A
-> :: a b b -&gt; a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwhenP"
->whenP</A
-> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwhenNot"
->whenNot</A
-> :: a b b -&gt; a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwhenNotP"
->whenNotP</A
-> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aguards"
->guards</A
-> :: a b c -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AguardsP"
->guardsP</A
-> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acontaining"
->containing</A
-> :: a b c -&gt; a c d -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotContaining"
->notContaining</A
-> :: a b c -&gt; a c d -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AorElse"
->orElse</A
-> :: a b c -&gt; a b c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchoiceA"
->choiceA</A
-> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->IfThen</A
-> (a b c) (a b d)] -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtagA"
->tagA</A
-> :: a b c -&gt; a b (Either b b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AspanA"
->spanA</A
-> :: a b b -&gt; a [b] ([b], [b])</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApartitionA"
->partitionA</A
-> :: a b b -&gt; a [b] ([b], [b])</TD
-></TR
-></TABLE
-></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 HREF="#v%3A%3A-%3E"
->(:-&gt;)</A
-> a b</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A NAME="t%3AArrowIf"
-></A
-><B
->ArrowIf</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->The interface for arrows as conditionals.
-</P
-><P
->Requires list arrows because False is represented as empty list, True as none empty lists.
-</P
-><P
->Only <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"
->ifA</A
-></TT
-> and <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
->orElse</A
-></TT
-> don't have default implementations
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AifA"
-></A
-><B
->ifA</B
-> :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
->if lifted to arrows
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AifP"
-></A
-><B
->ifP</B
-> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut: <TT
-> ifP p = ifA (isA p) </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aneg"
-></A
-><B
->neg</B
-> :: a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->negation: <TT
-> neg f = ifA f none this </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Awhen"
-></A
-><B
->when</B
-> :: a b b -&gt; a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><TT
-> f `when` g </TT
-> : when the predicate g holds, f is applied, else the identity filter this
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwhenP"
-></A
-><B
->whenP</B
-> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut: <TT
-> f `whenP` p = f `when` (isA p) </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwhenNot"
-></A
-><B
->whenNot</B
-> :: a b b -&gt; a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><TT
-> f `whenNot` g </TT
-> : when the predicate g does not hold, f is applied, else the identity filter this
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwhenNotP"
-></A
-><B
->whenNotP</B
-> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"
->whenP</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aguards"
-></A
-><B
->guards</B
-> :: a b c -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><TT
-> g `guards` f </TT
-> : when the predicate g holds, f is applied, else none
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AguardsP"
-></A
-><B
->guardsP</B
-> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"
->whenP</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acontaining"
-></A
-><B
->containing</B
-> :: a b c -&gt; a c d -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
-><TT
-> f `containing` g </TT
-> : keep only those results from f for which g holds
-</P
-><P
->definition: <TT
-> f `containing` g = f &gt;&gt;&gt; g `guards` this </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnotContaining"
-></A
-><B
->notContaining</B
-> :: a b c -&gt; a c d -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
-><TT
-> f `notContaining` g </TT
-> : keep only those results from f for which g does not hold
-</P
-><P
->definition: <TT
-> f `notContaining` g = f &gt;&gt;&gt; ifA g none this </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AorElse"
-></A
-><B
->orElse</B
-> :: a b c -&gt; a b c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><TT
-> f `orElse` g </TT
-> : directional choice: if f succeeds, the result of f is the result, else g is applied
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchoiceA"
-></A
-><B
->choiceA</B
-> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->IfThen</A
-> (a b c) (a b d)] -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->generalisation of <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
->orElse</A
-></TT
-> for multi way branches like in case expressions.
-</P
-><P
->An auxiliary data type <TT
-><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->IfThen</A
-></TT
-> with an infix constructor ':-&gt;' is used for writing multi way branches
-</P
-><P
->example: <TT
-> choiceA [ p1 :-&gt; e1, p2 :-&gt; e2, this :-&gt; default ] </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtagA"
-></A
-><B
->tagA</B
-> :: a b c -&gt; a b (Either b b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AspanA"
-></A
-><B
->spanA</B
-> :: a b b -&gt; a [b] ([b], [b])</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->split a list value with an arrow and returns a pair of lists.
- This is the arrow version of span. The arrow is deterministic.
-</P
-><P
->example: <TT
-> runLA (spanA (isA (/= '-'))) &quot;abc-def&quot; </TT
-> gives <TT
-> [(&quot;abc&quot;,&quot;-def&quot;)] </TT
-> as result
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApartitionA"
-></A
-><B
->partitionA</B
-> :: a b b -&gt; a [b] ([b], [b])</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->partition a list of values into a pair of lists
-</P
-><P
->This is the arrow Version of <TT
-><A HREF="Data-List.html#v%3Apartition"
->partition</A
-></TT
->
-</P
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIf')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowIf" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AIfThen"
-></A
-><B
->IfThen</B
-> a b</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->an auxiliary data type for <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"
->choiceA</A
-></TT
->
-</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 NAME="v%3A%3A-%3E"
-></A
-><B
->(:-&gt;)</B
-> a b</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowList.html b/doc/hdoc_arrow/Control-Arrow-ArrowList.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ArrowList.html
+++ /dev/null
@@ -1,1278 +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
->Control.Arrow.ArrowList</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowList.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ArrowList</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ArrowList.hs,v 1.11 2006<EM
->06</EM
->01 12:59:04 hxml Exp $
-</P
-><P
->The List Arrow Class
-</P
-><P
->This module defines the interface for list arrows.
-</P
-><P
->A list arrow is a function, that gives a list of results
-for a given argument. A single element result represents a normal function.
-An empty list oven indicates, the function is undefined for the given argument.
-The empty list may also represent False, none empty lists True.
-A list with more than one element gives all results for a nondeterministic function.
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A HREF="#t%3AArrowList"
->ArrowList</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aarr2"
->arr2</A
-> :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aarr3"
->arr3</A
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aarr4"
->arr4</A
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aarr2A"
->arr2A</A
-> :: (b -&gt; a c d) -&gt; a (b, c) d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AarrL"
->arrL</A
-> :: (b -&gt; [c]) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aarr2L"
->arr2L</A
-> :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AconstA"
->constA</A
-> :: c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AconstL"
->constL</A
-> :: [c] -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisA"
->isA</A
-> :: (b -&gt; Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%3E%3E."
->(&gt;&gt;.)</A
-> :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%3E."
->(&gt;.)</A
-> :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AlistA"
->listA</A
-> :: a b c -&gt; a b [c]</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunlistA"
->unlistA</A
-> :: a [b] b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Athis"
->this</A
-> :: a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Anone"
->none</A
-> :: a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwithDefault"
->withDefault</A
-> :: a b c -&gt; c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asingle"
->single</A
-> :: a b c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AapplyA"
->applyA</A
-> :: a b (a b c) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%3C"
->($&lt;)</A
-> :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%3C%3C"
->($&lt;&lt;)</A
-> :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%3C%3C%3C"
->($&lt;&lt;&lt;)</A
-> :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%3C%3C%3C%3C"
->($&lt;&lt;&lt;&lt;)</A
-> :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%24%3C%24"
->($&lt;$)</A
-> :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmergeA"
->mergeA</A
-> :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aperform"
->perform</A
-> :: a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcatA"
->catA</A
-> :: [a b c] -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AseqA"
->seqA</A
-> :: [a b b] -&gt; a b b</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A NAME="t%3AArrowList"
-></A
-><B
->ArrowList</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->The interface for list arrows
-</P
-><P
->Only mkA, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"
->arr2A</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
->isA</A
-></TT
-> '(&gt;&gt;.)' don't have default implementations
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aarr2"
-></A
-><B
->arr2</B
-> :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 2 argument arrow from a binary function
- |
- | example: <TT
-> a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aarr3"
-></A
-><B
->arr3</B
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 3 argument arrow from a 3-ary function
- |
- | example: <TT
-> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aarr4"
-></A
-><B
->arr4</B
-> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 4 argument arrow from a 4-ary function
- |
- | example: <TT
-> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aarr2A"
-></A
-><B
->arr2A</B
-> :: (b -&gt; a c d) -&gt; a (b, c) d</TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of a 2 argument arrow from a singe argument arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AarrL"
-></A
-><B
->arrL</B
-> :: (b -&gt; [c]) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor for a list arrow from a function with a list as result
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aarr2L"
-></A
-><B
->arr2L</B
-> :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor for a list arrow with 2 arguments
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AconstA"
-></A
-><B
->constA</B
-> :: c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor for a const arrow: <TT
-> constA = arr . const </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AconstL"
-></A
-><B
->constL</B
-> :: [c] -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor for a const arrow: <TT
-> constL = arrL . const </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisA"
-></A
-><B
->isA</B
-> :: (b -&gt; Bool) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds an arrow from a predicate.
- If the predicate holds, the single list containing the input is returned, else the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%3E%3E."
-></A
-><B
->(&gt;&gt;.)</B
-> :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->combinator for converting the result of a list arrow into another list
-</P
-><P
->example: <TT
-> foo &gt;&gt;. reverse </TT
-> reverses the the result of foo
-</P
-><P
->example: <TT
-> foo &gt;&gt;. take 1 </TT
-> constructs a deterministic version of foo by deleting all further results
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%3E."
-></A
-><B
->(&gt;.)</B
-> :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
->combinator for converting the result of an arrow into a single element result
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlistA"
-></A
-><B
->listA</B
-> :: a b c -&gt; a b [c]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->combinator for converting an arrow into a determinstic version with all results collected in a single element list
-</P
-><PRE
-> listA af = af &gt;&gt;. (:[]) </PRE
-><P
->this is useful when the list of results computed by an arrow must be manipulated (e.g. sorted)
-</P
-><P
->example for sorting the results of a filter
-</P
-><PRE
-> collectAndSort         :: a b c -&gt; a b c
-
- collectAndSort collect = listA collect &gt;&gt;&gt; arrL sort
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunlistA"
-></A
-><B
->unlistA</B
-> :: a [b] b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the inverse of <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
->listA</A
-></TT
->
-</P
-><PRE
-> listA af &gt;&gt;&gt; unlistA = af </PRE
-><P
->unlistA is defined as <TT
-> arrL id </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Athis"
-></A
-><B
->this</B
-> :: a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->the identity arrow, alias for returnA
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Anone"
-></A
-><B
->none</B
-> :: a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->the zero arrow, alias for zeroArrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwithDefault"
-></A
-><B
->withDefault</B
-> :: a b c -&gt; c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->converts an arrow, that may fail, into an arrow that always succeeds
-</P
-><P
->example: <TT
-> withDefault none &quot;abc&quot; </TT
-> is equivalent to <TT
-> constA &quot;abc&quot; </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asingle"
-></A
-><B
->single</B
-> :: a b c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->makes a list arrow deterministic, the number of results is at most 1
-</P
-><P
->definition
-</P
-><PRE
-> single f = f &gt;&gt;. take 1
-</PRE
-><P
->examples with strings:
-</P
-><PRE
-> runLA ( single none ) &quot;x&quot; == []
- runLA ( single this ) &quot;x&quot; == [&quot;x&quot;]
- runLA ( single
-         (constA &quot;y&quot;
-          &lt;+&gt; this ) ) &quot;x&quot; == [&quot;y&quot;]
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AapplyA"
-></A
-><B
->applyA</B
-> :: a b (a b c) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->compute an arrow from the input and apply the arrow to this input
-</P
-><P
->definition: <TT
-> (f &amp;&amp;&amp; this) &gt;&gt;&gt; app </TT
->
-</P
-><P
->in a point free style, there is no way to use an argument in 2 places,
- this is a combinator for simulating this. first the argument is used to compute an arrow,
- then this new arrow is applied to the input
-</P
-><P
->applyA coresponds to: <TT
-> apply f x = let g = f x in g x </TT
->
-</P
-><P
->see also: <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->$&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"
->$&lt;&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"
->$&lt;&lt;&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"
->$&lt;&lt;&lt;&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"
->$&lt;$</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%3C"
-></A
-><B
->($&lt;)</B
-> :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->compute the parameter for an arrow with extra parameters from the input
- and apply the arrow for all parameter values to the input
-</P
-><P
->a kind of &quot;function call&quot; for arrows, useful for joining arrows
-</P
-><PRE
-> infixl 2 ($&lt;)
-</PRE
-><P
->definition:
-</P
-><PRE
-> g $&lt; f = applyA (f &gt;&gt;&gt; arr g)
-</PRE
-><P
->if <TT
->f</TT
-> fails, the whole arrow fails, e.g. <TT
-> g $&lt; none == none </TT
->
-</P
-><P
->if <TT
->f</TT
-> computes n values and <TT
->g</TT
-> is deterministic, the whole arrow computes n values
-</P
-><P
->examples with simple list arrows with strings
-</P
-><PRE
-> prefixString   :: String -&gt; a String String
- prefixString s =  arr (s++)
-
- runLA ( prefixString $&lt; none           ) &quot;x&quot; == []
- runLA ( prefixString $&lt; constA &quot;y&quot;     ) &quot;x&quot; == [&quot;yx&quot;]
- runLA ( prefixString $&lt; this           ) &quot;x&quot; == [&quot;xx&quot;]
- runLA ( prefixString $&lt; constA &quot;y&quot;
-                         &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;yx&quot;,&quot;zx&quot;]
- runLA ( prefixString $&lt; constA &quot;y&quot;
-                         &lt;+&gt; this
-                         &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;yx&quot;,&quot;xx&quot;,&quot;zx&quot;]
-</PRE
-><P
->see also: <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
->applyA</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"
->$&lt;&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"
->$&lt;&lt;&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"
->$&lt;&lt;&lt;&lt;</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"
->$&lt;$</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%3C%3C"
-></A
-><B
->($&lt;&lt;)</B
-> :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->binary version of <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->$&lt;</A
-></TT
->
-</P
-><P
->example with simple list arrows with strings
-</P
-><PRE
-> infixString    :: String -&gt; String -&gt; a String String
- infixString s1 s2
-                = arr (\ s -&gt; s1 ++ s ++ s2)
-
- runLA ( infixString $&lt;&lt; constA &quot;y&quot; &amp;&amp;&amp; constA &quot;z&quot; ) &quot;x&quot; = [&quot;yxz&quot;]
- runLA ( infixString $&lt;&lt; this &amp;&amp;&amp; this             ) &quot;x&quot; = [&quot;xxx&quot;]
- runLA ( infixString $&lt;&lt; constA &quot;y&quot;
-                         &amp;&amp;&amp; (constA &quot;z&quot; &lt;+&gt; this) ) &quot;x&quot; = [&quot;yxz&quot;, &quot;yxx&quot;]
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%3C%3C%3C"
-></A
-><B
->($&lt;&lt;&lt;)</B
-> :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->version of <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->$&lt;</A
-></TT
-> for arrows with 3 extra parameters
-</P
-><P
->typical usage
-</P
-><PRE
-> f $&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%3C%3C%3C%3C"
-></A
-><B
->($&lt;&lt;&lt;&lt;)</B
-> :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->version of <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->$&lt;</A
-></TT
-> for arrows with 4 extra parameters
-</P
-><P
->typical usage
-</P
-><PRE
-> f $&lt;&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3 &amp;&amp;&amp; g4
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%3C%24"
-></A
-><B
->($&lt;$)</B
-> :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->compute the parameter for an arrow <TT
->f</TT
-> with an extra parameter by an arrow <TT
->g</TT
->
- and apply all the results from <TT
->g</TT
-> sequentially to the input
-</P
-><PRE
-> infixl 2 ($&lt;$)
-</PRE
-><P
->typical usage:
-</P
-><PRE
-> g :: a b c
- g = ...
-
- f :: c -&gt; a b b
- f x = ... x ...
-
- f $&lt;$ g
-</PRE
-><P
-><TT
->f</TT
-> computes the extra parameters for <TT
->g</TT
-> from the input of type <TT
->b</TT
-> and <TT
->g</TT
-> is applied with this
- parameter to the input. This allows programming in a point wise style in <TT
->g</TT
->, which becomes
- neccessary, when a value is needed more than once.
-</P
-><P
->this combinator is useful, when transforming a single value (document) step by step,
- with <TT
->g</TT
-> for collecting the data for all steps, and <TT
->f</TT
-> for transforming the input step by step
-</P
-><P
->if <TT
->g</TT
-> is deterministic (computes exactly one result),
- <TT
-> g $&lt;$ f == g $&lt; f </TT
-> holds
-</P
-><P
->if <TT
->g</TT
-> fails, <TT
-> f $&lt;$ g == this </TT
->
-</P
-><P
->if <TT
->g</TT
-> computes more than one result, <TT
->f</TT
-> is applied sequentially to the input for every result from <TT
->g</TT
->
-</P
-><P
->examples with simple list arrows with strings
-</P
-><PRE
-> prefixString   :: String -&gt; a String String
- prefixString s =  arr (s++)
-
- runLA ( prefixString $&lt;$ none                      ) &quot;x&quot; == [&quot;x&quot;]
- runLA ( prefixString $&lt;$ constA &quot;y&quot;                ) &quot;x&quot; == [&quot;yx&quot;]
- runLA ( prefixString $&lt;$ constA &quot;y&quot; &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;zyx&quot;]
- runLA ( prefixString $&lt;$ constA &quot;y&quot; &lt;+&gt; this
-                          &lt;+&gt; constA &quot;z&quot;            ) &quot;x&quot; == [&quot;zxyx&quot;]
-</PRE
-><P
->example with two extra parameter
-</P
-><PRE
-> g1 :: a b c1
- g2 :: a b c2
-
- f          :: (c1, c2) -&gt; a b b
- f (x1, x2) =  ... x1 ... x2 ... 
-
- f $&lt;$ g1 &amp;&amp;&amp; g2
-</PRE
-><P
->see also: <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
->applyA</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->$&lt;</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmergeA"
-></A
-><B
->mergeA</B
-> :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->merge the result pairs of an arrow with type <TT
->a a1 (b1, b2)</TT
->
- by combining the tuple components with the <TT
->op</TT
-> arrow
-</P
-><P
->examples with simple list arrows working on strings and XmlTrees
-</P
-><PRE
->     a1 :: a String (XmlTree, XmlTree)
-     a1 = selem &quot;foo&quot; [this &gt;&gt;&gt; mkText]
- 	  &amp;&amp;&amp;
- 	  selem &quot;bar&quot; [arr (++&quot;0&quot;) &gt;&gt;&gt; mkText]
- 
-     runLA (a1 &gt;&gt;&gt; mergeA (&lt;+&gt;) &gt;&gt;&gt; xshow this) &quot;42&quot; == [&quot;&lt;foo&gt;42&lt;/foo&gt;&quot;,&quot;&lt;bar&gt;420&lt;/bar&gt;&quot;]
-     runLA (a1 &gt;&gt;&gt; mergeA (+=)  &gt;&gt;&gt; xshow this) &quot;42&quot; == [&quot;&lt;foo&gt;42&lt;bar&gt;420&lt;/bar&gt;&lt;/foo&gt;&quot;]
-</PRE
-><P
->see also: <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
->applyA</A
-></TT
->, <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->$&lt;</A
-></TT
-> and += in class <TT
-><A HREF="Text-XML-HXT-Arrow.html#t%3AArrowXml"
->ArrowXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aperform"
-></A
-><B
->perform</B
-> :: a b c -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->useful only for arrows with side effects: perform applies an arrow to the input
- ignores the result and returns the input
-</P
-><P
->example: <TT
-> ... &gt;&gt;&gt; perform someTraceArrow &gt;&gt;&gt; ... </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcatA"
-></A
-><B
->catA</B
-> :: [a b c] -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->generalization of arrow combinator &lt;+&gt;
-</P
-><P
->definition: <TT
-> catA = foldl (<A HREF="+"
->+</A
->) none </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AseqA"
-></A
-><B
->seqA</B
-> :: [a b b] -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->generalization of arrow combinator &gt;&gt;&gt;
-</P
-><P
->definition: <TT
-> seqA = foldl (&gt;&gt;&gt;) this </TT
->
-</P
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowList')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowList" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowState.html b/doc/hdoc_arrow/Control-Arrow-ArrowState.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ArrowState.html
+++ /dev/null
@@ -1,377 +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
->Control.Arrow.ArrowState</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowState.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ArrowState</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ArrowState.hs,v 1.5 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Arrows for managing an explicit state
-</P
-><P
->State arrows work similar to state monads.
-   A state value is threaded through the application of arrows.
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> Arrow a =&gt; <A HREF="#t%3AArrowState"
->ArrowState</A
-> s a | a -&gt; s <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeState"
->changeState</A
-> :: (s -&gt; b -&gt; s) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaccessState"
->accessState</A
-> :: (s -&gt; b -&gt; c) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetState"
->getState</A
-> :: a b s</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetState"
->setState</A
-> :: a s s</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnextState"
->nextState</A
-> :: (s -&gt; s) -&gt; a b s</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> Arrow a =&gt; <A NAME="t%3AArrowState"
-></A
-><B
->ArrowState</B
-> s a | a -&gt; s <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->The interface for accessing and changing the state component.
-</P
-><P
->Multi parameter classes and functional dependencies are required.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeState"
-></A
-><B
->changeState</B
-> :: (s -&gt; b -&gt; s) -&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->change the state of a state arrow by applying a function
- for computing a new state from the old and the arrow input.
- Result is the arrow input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaccessState"
-></A
-><B
->accessState</B
-> :: (s -&gt; b -&gt; c) -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->access the state with a function using the arrow input
- as data for selecting state components.
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetState"
-></A
-><B
->getState</B
-> :: a b s</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read the complete state, ignore arrow input
-</P
-><P
->definition: <TT
-> getState = accessState (\ s x -&gt; s) </TT
-> 
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetState"
-></A
-><B
->setState</B
-> :: a s s</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->overwrite the old state
-</P
-><P
->definition: <TT
-> setState = changeState (\ s x -&gt; x) </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnextState"
-></A
-><B
->nextState</B
-> :: (s -&gt; s) -&gt; a b s</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->change state (and ignore input) and return new state
-</P
-><P
->convenience function,
- usefull for generating e.g. unique identifiers:
-</P
-><P
->example with SLA state list arrows
-</P
-><PRE
-> newId :: SLA Int b String
- newId = nextState (+1)
-         &gt;&gt;&gt;
-         arr (('#':) . show)
- 
- runSLA 0 (newId &lt;+&gt; newId &lt;+&gt; newId) undefined
-   = [&quot;#1&quot;, &quot;#2&quot;, &quot;#3&quot;]
-</PRE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowState')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowState" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
->ArrowState</A
-> s (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
->ArrowState</A
-> s (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html b/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html
+++ /dev/null
@@ -1,173 +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
->Control.Arrow.ArrowStrict</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowStrict.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ArrowStrict</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Arrows for complete evaluation of result
-</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%3AstrictA"
->strictA</A
-> :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b) =&gt; a b b</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstrictA"
-></A
-><B
->strictA</B
-> :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b) =&gt; a b b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->complete evaluation of an arrow result using <TT
-><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"
->deepSeq</A
-></TT
->
- and <TT
-><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"
->strict</A
-></TT
->
-</P
-><P
->this is sometimes useful for preventing space leaks, especially after reading
- and validation of a document, all DTD stuff is not longer in use and can be
- recycled by the GC.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowTree.html b/doc/hdoc_arrow/Control-Arrow-ArrowTree.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ArrowTree.html
+++ /dev/null
@@ -1,1023 +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
->Control.Arrow.ArrowTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ArrowTree</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ArrowTree.hs,v 1.12 2006<EM
->11</EM
->30 16:05:24 hxml Exp $
-</P
-><P
->List arrows for tree processing.
-</P
-><P
->Trees that implement the <A HREF="Data-Tree-Class.html"
->Data.Tree.Class</A
-> interface, can be processed
-with these arrows.
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> a) =&gt; <A HREF="#t%3AArrowTree"
->ArrowTree</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetChildren"
->getChildren</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNode"
->getNode</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetChildren"
->setChildren</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; [t b] -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetNode"
->setNode</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; b -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeChildren"
->changeChildren</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeNode"
->changeNode</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessChildren"
->processChildren</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceChildren"
->replaceChildren</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2F%3E"
->(/&gt;)</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%3C%2F"
->(&lt;/)</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adeep"
->deep</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adeepest"
->deepest</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amulti"
->multi</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) c -&gt; a (t b) c</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessBottomUp"
->processBottomUp</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDown"
->processTopDown</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessBottomUpWhenNot"
->processBottomUpWhenNot</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDownUntil"
->processTopDownUntil</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinsertChildrenAt"
->insertChildrenAt</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinsertChildrenAfter"
->insertChildrenAfter</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinsertTreeTemplate"
->insertTreeTemplate</A
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->IfThen</A
-> (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="#t%3ATree"
->Tree</A
-> t </TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> a) =&gt; <A NAME="t%3AArrowTree"
-></A
-><B
->ArrowTree</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->The interface for tree arrows
-</P
-><P
->all functions have default implementations
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetChildren"
-></A
-><B
->getChildren</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the children of the root of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNode"
-></A
-><B
->getNode</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) b</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the attribute of the root of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetChildren"
-></A
-><B
->setChildren</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; [t b] -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->substitute the children of the root of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetNode"
-></A
-><B
->setNode</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; b -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->substitute the attribute of the root of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeChildren"
-></A
-><B
->changeChildren</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->edit the children of the root of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeNode"
-></A
-><B
->changeNode</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->edit the attribute of the root of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessChildren"
-></A
-><B
->processChildren</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply an arrow element wise to all children of the root of a tree
- collect these results and substitute the children with this result
-</P
-><P
->example: <TT
-> processChildren isText </TT
-> deletes all subtrees, for which isText does not hold
-</P
-><P
->example: <TT
-> processChildren (none `when` isCmt) </TT
-> removes all children, for which isCmt holds
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreplaceChildren"
-></A
-><B
->replaceChildren</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->similar to processChildren, but the new children are computed by processing
- the whole input tree
-</P
-><P
->example: <TT
-> replaceChildren (deep isText) </TT
-> selects all subtrees for which isText holds
- and substitutes the children component of the root node with this list
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2F%3E"
-></A
-><B
->(/&gt;)</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pronounced &quot;slash&quot;, meaning g inside f
-</P
-><P
->defined as <TT
-> f /&gt; g = f &gt;&gt;&gt; getChildren &gt;&gt;&gt; g </TT
->
-</P
-><P
->example: <TT
-> hasName &quot;html&quot; /&gt; hasName &quot;body&quot; /&gt; hasName &quot;h1&quot; </TT
->
-</P
-><P
->This expression selects
- all &quot;h1&quot; elements in the &quot;body&quot; element of an &quot;html&quot; element, an expression, that
- corresponds 1-1 to the XPath selection path &quot;html/body/h1&quot; 
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%3C%2F"
-></A
-><B
->(&lt;/)</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pronounced &quot;outside&quot; meaning f containing g
-</P
-><P
->defined as <TT
-> f &lt;/ g = f `containing` (getChildren &gt;&gt;&gt; g) </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adeep"
-></A
-><B
->deep</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->recursively searches a whole tree for subtrees, for which a predicate holds.
- The search is performed top down. When a tree is found, this becomes an element of the result
- list. The tree found is not further examined for any subtress, for which the predicate also could hold.
- See <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
->multi</A
-></TT
-> for this kind of search.
-</P
-><P
->example: <TT
-> deep isHtmlTable </TT
-> selects all top level table elements in a document
- (with an appropriate definition for isHtmlTable) but no tables occuring within a table cell.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adeepest"
-></A
-><B
->deepest</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->recursively searches a whole tree for subrees, for which a predicate holds.
- The search is performed bottom up.
-</P
-><P
->example: <TT
-> deepest isHtmlTable </TT
-> selects all innermost table elements in a document
- but no table elements containing tables. See <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"
->deep</A
-></TT
-> and <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
->multi</A
-></TT
-> for other search strategies.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amulti"
-></A
-><B
->multi</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) c -&gt; a (t b) c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->recursively searches a whole tree for subtrees, for which a predicate holds.
- The search is performed top down. All nodes of the tree are searched, even within the
- subtrees of trees for which the predicate holds.
-</P
-><P
->example: <TT
-> multy isHtmlTable </TT
-> selects all table elements, even nested ones.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessBottomUp"
-></A
-><B
->processBottomUp</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->recursively transforms a whole tree by applying an arrow to all subtrees,
- this is done bottom up depth first, leaves first, root as last tree
-</P
-><P
->example: <TT
-> processBottomUp (getChildren `when` isHtmlFont) </TT
-> removes all font tags in a HTML document, even nested ones
- (with an appropriate definition of isHtmlFont)
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessTopDown"
-></A
-><B
->processTopDown</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->similar to <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"
->processBottomUp</A
-></TT
->, but recursively transforms a whole tree by applying an arrow to all subtrees
- with a top down depth first traversal strategie. In many cases <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"
->processBottomUp</A
-></TT
-> and <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
->processTopDown</A
-></TT
->
- give same results.
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessBottomUpWhenNot"
-></A
-><B
->processBottomUpWhenNot</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->recursively transforms a whole tree by applying an arrow to all subtrees,
- but transformation stops when a predicte does not hold for a subtree,
- leaves are transformed first
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessTopDownUntil"
-></A
-><B
->processTopDownUntil</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->recursively transforms a whole tree by applying an arrow to all subtrees,
- but transformation stops when a tree is successfully transformed.
- the transformation is done top down
-</P
-><P
->example: <TT
-> processTopDownUntil (isHtmlTable `guards` tranformTable) </TT
->
- transforms all top level table elements into something else, but inner tables remain unchanged
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinsertChildrenAt"
-></A
-><B
->insertChildrenAt</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->computes a list of trees by applying an arrow to the input
- and inserts this list in front of index i in the list of children
-</P
-><P
->example: <TT
-> insertChildrenAt 0 (deep isCmt) </TT
-> selects all subtrees for which isCmt holds
- and copies theses in front of the existing children
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinsertChildrenAfter"
-></A
-><B
->insertChildrenAfter</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
->similar to <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"
->insertChildrenAt</A
-></TT
->, but the insertion position is searched with a predicate
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinsertTreeTemplate"
-></A
-><B
->insertTreeTemplate</B
-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->IfThen</A
-> (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->an arrow for inserting a whole subtree with some holes in it (a template)
- into a document. The holes can be filled with contents from the input.
-</P
-><P
->Example
-</P
-><PRE
-> insertTreeTemplateTest	:: ArrowXml a =&gt; a b XmlTree
- insertTreeTemplateTest
-     = doc
-       &gt;&gt;&gt;
-       insertTemplate template pattern
-     where
-     doc								-- the input data
- 	= constA &quot;&lt;x&gt;&lt;y&gt;The Title&lt;/y&gt;&lt;z&gt;The content&lt;/z&gt;&lt;/x&gt;&quot;
- 	  &gt;&gt;&gt; xread
-     template								-- the output template with 2 holes: xxx and yyy
- 	= constA &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;xxx&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;yyy&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;
- 	  &gt;&gt;&gt; xread
-     pattern
- 	= [ hasText (== &quot;xxx&quot;)						-- fill the xxx hole with the input contents from element &quot;x/y&quot;
- 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName &quot;y&quot; &gt;&gt;&gt; deep isText )
- 
- 	  , hasText (== &quot;yyy&quot;)						-- fill the yyy hole with the input contents from element &quot;x/z&quot;
- 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName &quot;z&quot; &gt;&gt;&gt; getChildren )
- 	  ]
-</PRE
-><P
->computes the XML tree for the following document
-</P
-><PRE
-> &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;The Title&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;The content&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;
-</PRE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowTree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowTree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3ATree"
-></A
-><B
->Tree</B
-> t </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The interface for trees
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Tree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Tree</A
-> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-IOListArrow.html b/doc/hdoc_arrow/Control-Arrow-IOListArrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-IOListArrow.html
+++ /dev/null
@@ -1,310 +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
->Control.Arrow.IOListArrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOListArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.IOListArrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: IOListArrow.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Implementation of pure list arrows with io
-</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"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A HREF="#t%3AIOLA"
->IOLA</A
-> a b = <A HREF="#v%3AIOLA"
->IOLA</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3ArunIOLA"
->runIOLA</A
-> :: (a -&gt; IO [b])</TD
-></TR
-></TABLE
->}</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AIOLA"
-></A
-><B
->IOLA</B
-> a b</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->list arrow combined with IO monad
-</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%3AIOLA"
-></A
-><B
->IOLA</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%3ArunIOLA"
-></A
-><B
->runIOLA</B
-> :: (a -&gt; IO [b])</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOLA')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:IOLA" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Arrow <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowApply <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowChoice <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->ArrowIO</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
->ArrowIOIf</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowPlus <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowZero <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html b/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html
+++ /dev/null
@@ -1,401 +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
->Control.Arrow.IOStateListArrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOStateListArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.IOStateListArrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: IOStateListArrow.hs,v 1.7 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Implementation of arrows with IO and a state
-</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"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A HREF="#t%3AIOSLA"
->IOSLA</A
-> s a b = <A HREF="#v%3AIOSLA"
->IOSLA</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3ArunIOSLA"
->runIOSLA</A
-> :: (s -&gt; a -&gt; IO (s, [b]))</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AliftSt"
->liftSt</A
-> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> (s1, s2) b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArunSt"
->runSt</A
-> :: s2 -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s1 b c</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AIOSLA"
-></A
-><B
->IOSLA</B
-> s a b</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->list arrow combined with a state and the IO monad
-</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%3AIOSLA"
-></A
-><B
->IOSLA</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%3ArunIOSLA"
-></A
-><B
->runIOSLA</B
-> :: (s -&gt; a -&gt; IO (s, [b]))</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOSLA')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:IOSLA" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
->ArrowState</A
-> s (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->Arrow (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowApply (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowChoice (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
->ArrowIO</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
->ArrowIOIf</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowPlus (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowZero (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AliftSt"
-></A
-><B
->liftSt</B
-> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> (s1, s2) b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->lift the state of an IOSLA arrow to a state with an additional component.
-</P
-><P
->This is uesful, when running predefined IO arrows, e.g. for document input,
- in a context with a more complex state component.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArunSt"
-></A
-><B
->runSt</B
-> :: s2 -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s1 b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->run an arrow with augmented state in the context of a simple state arrow.
- An initial value for the new state component is needed.
-</P
-><P
->This is useful, when running an arrow with an extra environment component, e.g.
- for namespace handling in XML.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ListArrow.html b/doc/hdoc_arrow/Control-Arrow-ListArrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ListArrow.html
+++ /dev/null
@@ -1,330 +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
->Control.Arrow.ListArrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ListArrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ListArrow.hs,v 1.7 2006<EM
->05</EM
->04 14:17:53 hxml Exp $
-</P
-><P
->Implementation of pure list arrows
-</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"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A HREF="#t%3ALA"
->LA</A
-> a b = <A HREF="#v%3ALA"
->LA</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3ArunLA"
->runLA</A
-> :: (a -&gt; [b])</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfromLA"
->fromLA</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b c -&gt; a b c</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3ALA"
-></A
-><B
->LA</B
-> a b</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->pure list arrow data type
-</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%3ALA"
-></A
-><B
->LA</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%3ArunLA"
-></A
-><B
->runLA</B
-> :: (a -&gt; [b])</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LA')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:LA" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Arrow <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowApply <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowChoice <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowPlus <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowZero <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromLA"
-></A
-><B
->fromLA</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->conversion of pure list arrows into other possibly more complex
- list arrows
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-ListArrows.html b/doc/hdoc_arrow/Control-Arrow-ListArrows.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-ListArrows.html
+++ /dev/null
@@ -1,218 +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
->Control.Arrow.ListArrows</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrows.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.ListArrows</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ListArrows.hs,v 1.1 2005<EM
->09</EM
->30 14:41:44 hxml Exp $
-</P
-><P
->Module for importing all list arrows
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ArrowStrict.html"
->Control.Arrow.ArrowStrict</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ArrowList.html"
->Control.Arrow.ArrowList</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ArrowIf.html"
->Control.Arrow.ArrowIf</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ArrowState.html"
->Control.Arrow.ArrowState</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ArrowTree.html"
->Control.Arrow.ArrowTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ArrowIO.html"
->Control.Arrow.ArrowIO</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ListArrow.html"
->Control.Arrow.ListArrow</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-StateListArrow.html"
->Control.Arrow.StateListArrow</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-IOListArrow.html"
->Control.Arrow.IOListArrow</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-IOStateListArrow.html"
->Control.Arrow.IOStateListArrow</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Arrow-StateListArrow.html b/doc/hdoc_arrow/Control-Arrow-StateListArrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Arrow-StateListArrow.html
+++ /dev/null
@@ -1,353 +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
->Control.Arrow.StateListArrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/StateListArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Arrow.StateListArrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: StateListArrow.hs,v 1.7 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Implementation of list arrows with a state
-</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"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A HREF="#t%3ASLA"
->SLA</A
-> s a b = <A HREF="#v%3ASLA"
->SLA</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3ArunSLA"
->runSLA</A
-> :: (s -&gt; a -&gt; (s, [b]))</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfromSLA"
->fromSLA</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s b c -&gt; a b c</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3ASLA"
-></A
-><B
->SLA</B
-> s a b</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->list arrow combined with a state
-</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%3ASLA"
-></A
-><B
->SLA</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%3ArunSLA"
-></A
-><B
->runSLA</B
-> :: (s -&gt; a -&gt; (s, [b]))</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SLA')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:SLA" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
->ArrowState</A
-> s (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->Arrow (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowApply (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowChoice (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->ArrowIf</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowPlus (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowZero (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromSLA"
-></A
-><B
->fromSLA</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s b c -&gt; a b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->conversion of state list arrows into arbitray other
- list arrows.
-</P
-><P
->allows running a state list arrow within another arrow:
-</P
-><P
->example:
-</P
-><PRE
-> ... &gt;&gt;&gt; fromSLA 0 (... setState ... getState ... ) &gt;&gt;&gt; ...
-</PRE
-><P
->runs a state arrow with initial state 0 (e..g. an Int) within
- another arrow sequence
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Monad-MonadStateIO.html b/doc/hdoc_arrow/Control-Monad-MonadStateIO.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Monad-MonadStateIO.html
+++ /dev/null
@@ -1,398 +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
->Control.Monad.MonadStateIO</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Monad.MonadStateIO</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->general usefull state monad for a local state and IO
-</P
-><P
->Version : $Id: MonadStateIO.hs,v 1.1 2004<EM
->09</EM
->02 19:11:55 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"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A HREF="#t%3AStateIO"
->StateIO</A
-> state res = <A HREF="#v%3ASTIO"
->STIO</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Atrans"
->trans</A
-> :: (state -&gt; IO (res, state))</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aio"
->io</A
-> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtrcState"
->trcState</A
-> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeState"
->changeState</A
-> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetState"
->setState</A
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetState"
->getState</A
-> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arun"
->run</A
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state res -&gt; IO res</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AStateIO"
-></A
-><B
->StateIO</B
-> state res</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><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%3ASTIO"
-></A
-><B
->STIO</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%3Atrans"
-></A
-><B
->trans</B
-> :: (state -&gt; IO (res, state))</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StateIO')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:StateIO" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Monad (<A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aio"
-></A
-><B
->io</B
-> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state a</TD
-></TR
-><TR
-><TD CLASS="doc"
->lift IO command to <TT
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtrcState"
-></A
-><B
->trcState</B
-> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
->state inspection command: a &quot;show&quot;-like function is applied to the state
- and the result is written to stderr.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeState"
-></A
-><B
->changeState</B
-> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
->change the state with a given function and return the new state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetState"
-></A
-><B
->setState</B
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetState"
-></A
-><B
->getState</B
-> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
->read the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arun"
-></A
-><B
->run</B
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state res -&gt; IO res</TD
-></TR
-><TR
-><TD CLASS="doc"
->run a <TT
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-></TT
-> command with an initial state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Control-Strategies-DeepSeq.html b/doc/hdoc_arrow/Control-Strategies-DeepSeq.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Control-Strategies-DeepSeq.html
+++ /dev/null
@@ -1,437 +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
->Control.Strategies.DeepSeq</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Strategies.DeepSeq</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->stolen from comp.lang.functional from Dean Herington
-</P
-><P
->DeepSeq.lhs  --  deep strict evaluation support
-</P
-><P
->The <TT
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-></TT
-> class provides a method <TT
-><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"
->deepSeq</A
-></TT
-> that is similar to
-seq except that it forces deep evaluation of its first argument
-before returning its second argument.
-</P
-><P
->Instances of <TT
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-></TT
-> are provided for Prelude types.  Other
-instances must be supplied by users of this module.
-</P
-><P
->$Id: DeepSeq.lhs,v 1.5 2002<EM
->04</EM
->01 20:58:24 heringto Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3ADeepSeq"
-></A
-><B
->DeepSeq</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdeepSeq"
-></A
-><B
->deepSeq</B
-> :: a -&gt; b -&gt; b</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DeepSeq')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DeepSeq" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Char</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Double</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Float</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Integer</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Ordering</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> e) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> f) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d, e, f)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> f, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> g) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d, e, f, g)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a -&gt; b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (IO a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> us =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->XIOState</A
-> us)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> [a]</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (Either a b)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%21%21"
-></A
-><B
->($!!)</B
-> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; (a -&gt; b) -&gt; a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Astrict"
-></A
-><B
->strict</B
-> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Data-AssocList.html b/doc/hdoc_arrow/Data-AssocList.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Data-AssocList.html
+++ /dev/null
@@ -1,378 +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.AssocList</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.AssocList</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple key value assocciation list
- implemented as unordered list of pairs
-</P
-><P
->Version : $Id: AssocList.hs,v 1.2 2005<EM
->05</EM
->27 13:15:23 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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAssocList"
->AssocList</A
-> k v = [(k, v)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AlookupDef"
->lookupDef</A
-> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Alookup1"
->lookup1</A
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k [e] -&gt; [e]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasEntry"
->hasEntry</A
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddEntry"
->addEntry</A
-> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddEntries"
->addEntries</A
-> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdelEntry"
->delEntry</A
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdelEntries"
->delEntries</A
-> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAssocList"
-></A
-><B
->AssocList</B
-> k v = [(k, v)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlookupDef"
-></A
-><B
->lookupDef</B
-> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; v</TD
-></TR
-><TR
-><TD CLASS="doc"
->lookup with default value
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Alookup1"
-></A
-><B
->lookup1</B
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k [e] -&gt; [e]</TD
-></TR
-><TR
-><TD CLASS="doc"
->lookup with empty list (empty string) as default value
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasEntry"
-></A
-><B
->hasEntry</B
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test for existence of a key
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddEntry"
-></A
-><B
->addEntry</B
-> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddEntries"
-></A
-><B
->addEntries</B
-> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->add a whole list of entries with <TT
-><A HREF="Data-AssocList.html#v%3AaddEntry"
->addEntry</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdelEntry"
-></A
-><B
->delEntry</B
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->delete an entry, delEntry is strict
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdelEntries"
-></A
-><B
->delEntries</B
-> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->delete a list of entries with <TT
-><A HREF="Data-AssocList.html#v%3AdelEntry"
->delEntry</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Data-Char-UTF8.html b/doc/hdoc_arrow/Data-Char-UTF8.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Data-Char-UTF8.html
+++ /dev/null
@@ -1,191 +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.Char.UTF8</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Char/UTF8.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.Char.UTF8</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aencode"
-></A
-><B
->encode</B
-> :: [Char] -&gt; [Word8]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adecode"
-></A
-><B
->decode</B
-> :: [Word8] -&gt; ([Char], [(<A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
->, Int)])</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeEmbedErrors"
-></A
-><B
->decodeEmbedErrors</B
-> :: [Word8] -&gt; [Either (<A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
->, Int) Char]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AencodeOne"
-></A
-><B
->encodeOne</B
-> :: Char -&gt; [Word8]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeOne"
-></A
-><B
->decodeOne</B
-> :: [Word8] -&gt; (Either <A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
-> Char, Int, [Word8])</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AError"
-></A
-><B
->Error</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Error')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Error" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Data-NavTree.html b/doc/hdoc_arrow/Data-NavTree.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Data-NavTree.html
+++ /dev/null
@@ -1,578 +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.NavTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.NavTree</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Navigable tree structure which allow a program to traverse
- up the tree as well as down.
- copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"
->http://www.flightlab.com/~joe/hxml/</A
->)
-</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%3ANavTree"
->NavTree</A
-> a = <A HREF="#v%3ANT"
->NT</A
-> (NTree a) [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a] [NTree a] [NTree a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Antree"
->ntree</A
-> :: NTree a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubtreeNT"
->subtreeNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; NTree a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdataNT"
->dataNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AupNT"
->upNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdownNT"
->downNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AleftNT"
->leftNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArightNT"
->rightNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApreorderNT"
->preorderNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArevPreorderNT"
->revPreorderNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetChildrenNT"
->getChildrenNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ao%27"
->o'</A
-> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmaybeStar"
->maybeStar</A
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmaybePlus"
->maybePlus</A
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANavTree"
-></A
-><B
->NavTree</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->navigable tree with nodes of type node
-</P
-><P
->a navigable tree consists of a n-ary tree for the current fragment tree,
- a navigable tree for all ancestors, and two n-ary trees for
- the previous- and following siblings
-</P
-></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 NAME="v%3ANT"
-></A
-><B
->NT</B
-> (NTree a) [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a] [NTree a] [NTree a]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NavTree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NavTree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->??? a =&gt; Eq (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->??? a =&gt; Ord (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->??? a =&gt; Show (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Antree"
-></A
-><B
->ntree</B
-> :: NTree a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->converts a n-ary tree in a navigable tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubtreeNT"
-></A
-><B
->subtreeNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; NTree a</TD
-></TR
-><TR
-><TD CLASS="doc"
->converts a navigable tree in a n-ary tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdataNT"
-></A
-><B
->dataNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="doc"
->function for selecting the value of the current fragment tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AupNT"
-></A
-><B
->upNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdownNT"
-></A
-><B
->downNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AleftNT"
-></A
-><B
->leftNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArightNT"
-></A
-><B
->rightNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApreorderNT"
-></A
-><B
->preorderNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArevPreorderNT"
-></A
-><B
->revPreorderNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetChildrenNT"
-></A
-><B
->getChildrenNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ao%27"
-></A
-><B
->o'</B
-> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD
-></TR
-><TR
-><TD CLASS="doc"
->Kleisli composition:
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmaybeStar"
-></A
-><B
->maybeStar</B
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmaybePlus"
-></A
-><B
->maybePlus</B
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Data-Tree-Class.html b/doc/hdoc_arrow/Data-Tree-Class.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Data-Tree-Class.html
+++ /dev/null
@@ -1,568 +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.Class</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.Tree.Class</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Interface definition for trees
-</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"
->class</SPAN
-> <A HREF="#t%3ATree"
->Tree</A
-> t  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkTree"
->mkTree</A
-> :: a -&gt; [t a] -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkLeaf"
->mkLeaf</A
-> :: a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisLeaf"
->isLeaf</A
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisInner"
->isInner</A
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNode"
->getNode</A
-> :: t a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetChildren"
->getChildren</A
-> :: t a -&gt; [t a]</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeNode"
->changeNode</A
-> :: (a -&gt; a) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeChildren"
->changeChildren</A
-> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetNode"
->setNode</A
-> :: a -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetChildren"
->setChildren</A
-> :: [t a] -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfoldTree"
->foldTree</A
-> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnodesTree"
->nodesTree</A
-> :: t a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdepthTree"
->depthTree</A
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcardTree"
->cardTree</A
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AformatTree"
->formatTree</A
-> :: (a -&gt; String) -&gt; t a -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3ATree"
-></A
-><B
->Tree</B
-> t  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The interface for trees
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkTree"
-></A
-><B
->mkTree</B
-> :: a -&gt; [t a] -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->tree construction: a new tree is constructed by a node attribute and a list of children
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkLeaf"
-></A
-><B
->mkLeaf</B
-> :: a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->leaf construction: leafs don't have any children
-</P
-><P
->definition: <TT
-> mkLeaf n = mkTree n [] </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisLeaf"
-></A
-><B
->isLeaf</B
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->leaf test: list of children empty?
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisInner"
-></A
-><B
->isInner</B
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->innner node test: <TT
-> not . isLeaf </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNode"
-></A
-><B
->getNode</B
-> :: t a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="doc"
->select node attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetChildren"
-></A
-><B
->getChildren</B
-> :: t a -&gt; [t a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->select children
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeNode"
-></A
-><B
->changeNode</B
-> :: (a -&gt; a) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->edit node attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeChildren"
-></A
-><B
->changeChildren</B
-> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->edit children
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetNode"
-></A
-><B
->setNode</B
-> :: a -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->substitute node: <TT
-> setNode n = changeNode (const n) </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetChildren"
-></A
-><B
->setChildren</B
-> :: [t a] -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->substitute children: <TT
-> setChildren cl = changeChildren (const cl) </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfoldTree"
-></A
-><B
->foldTree</B
-> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="doc"
->fold for trees
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnodesTree"
-></A
-><B
->nodesTree</B
-> :: t a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->all nodes of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdepthTree"
-></A
-><B
->depthTree</B
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->depth of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcardTree"
-></A
-><B
->cardTree</B
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->number of nodes in a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatTree"
-></A
-><B
->formatTree</B
-> :: (a -&gt; String) -&gt; t a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->format tree for readable trace output
-</P
-><P
->a <EM
->graphical</EM
-> representation of the tree in text format
-</P
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Tree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html b/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html
+++ /dev/null
@@ -1,367 +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.TypeDefs</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.Tree.NTree.TypeDefs</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: TypeDefs.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Interface definition for trees
-</P
-><P
->n-ary tree structure (rose trees)
-</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-Class.html"
->Data.Tree.Class</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ANTree"
->NTree</A
-> a = <A HREF="#v%3ANTree"
->NTree</A
-> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANTrees"
->NTrees</A
-> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AformatNTreeF"
->formatNTreeF</A
-> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Data-Tree-Class.html"
->Data.Tree.Class</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANTree"
-></A
-><B
->NTree</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->n-ary ordered tree (rose trees)
-</P
-><P
->a tree consists of a node and a possible empty list of children.
- If the list of children is empty, the node is a leaf, else it's
- an inner node.
-</P
-><P
->NTree implements Eq, Ord, Show and Read
-</P
-></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 NAME="v%3ANTree"
-></A
-><B
->NTree</B
-> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NTree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NTree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Functor <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Eq a, ??? a) =&gt; Eq (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Ord a, ??? a) =&gt; Ord (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Read a, ??? a) =&gt; Read (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Show a, ??? a) =&gt; Show (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Typeable a, ??? a) =&gt; Typeable (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANTrees"
-></A
-><B
->NTrees</B
-> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut for a sequence of n-ary trees
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatNTreeF"
-></A
-><B
->formatNTreeF</B
-> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a tree into a pseudo graphical string reprsentation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.DOMInterface</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DOMInterface.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.DOMInterface</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The interface to the DOM data types and constants
-</P
-><P
->Version : $Id: DOMInterface.hs,v 1.2 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</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="decl"
->module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
->Text.XML.HXT.DOM.NamespacePredicates</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-Util.html"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.DTDProcessing</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DTDProcessing.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.DTDProcessing</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: DTDProcessing.hs,v 1.9 2006<EM
->05</EM
->11 14:47:19 hxml Exp $
-</P
-><P
->DTD processing function for
-   including external parts of a DTD
-   parameter entity substitution and general entity substitution
-</P
-><P
->Implemtation completely done with arrows
-</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%3AprocessDTD"
->processDTD</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessDTD"
-></A
-><B
->processDTD</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->a filter for DTD processing
-</P
-><P
->inclusion of external parts of DTD,
- parameter entity substitution
- conditional section evaluation
-</P
-><P
->input tree must represent a complete document including root node
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html
+++ /dev/null
@@ -1,331 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.DocumentInput</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentInput.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.DocumentInput</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->State arrows for document input
-</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%3AgetURIContents"
->getURIContents</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXmlContents"
->getXmlContents</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXmlEntityContents"
->getXmlEntityContents</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetEncoding"
->getEncoding</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdecodeDocument"
->decodeDocument</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetURIContents"
-></A
-><B
->getURIContents</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXmlContents"
-></A
-><B
->getXmlContents</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Read the content of a document.
-</P
-><P
->This routine is usually called from <TT
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"
->getDocumentContents</A
-></TT
->.
-</P
-><P
->The input must be a root node (constructed with <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"
->root</A
-></TT
->), usually without children.
-   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...
-   If the source name is empty, the input is read from standard input.
-</P
-><P
->The source is transformed into an absolute URI. If the source is a relative URI, or a file name,
-   it is expanded into an absolut URI with respect to the current base URI.
-   The default base URI is of protocol &quot;file&quot; and points to the current working directory.
-</P
-><P
->The currently supported protocols are &quot;http&quot;, &quot;file&quot;, &quot;stdin&quot; and &quot;string&quot;.
-</P
-><P
->The latter two are internal protocols. An uri of the form &quot;stdin:&quot; stands for the content of
-   the standard input stream.
-</P
-><P
->&quot;string:some text&quot; means, that &quot;some text&quot; is taken as input.
-   This internal protocol is used for reading from normal String values.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXmlEntityContents"
-></A
-><B
->getXmlEntityContents</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetEncoding"
-></A
-><B
->getEncoding</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeDocument"
-></A
-><B
->decodeDocument</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html
+++ /dev/null
@@ -1,282 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.DocumentOutput</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentOutput.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.DocumentOutput</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></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
-></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%3AputXmlDocument"
->putXmlDocument</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlTree"
->putXmlTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlSource"
->putXmlSource</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetOutputEncoding"
->getOutputEncoding</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AencodeDocument"
->encodeDocument</A
-> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlDocument"
-></A
-><B
->putXmlDocument</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlTree"
-></A
-><B
->putXmlTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->write the tree representation of a document to a file
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlSource"
-></A
-><B
->putXmlSource</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->write a document with indentaion and line numers
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetOutputEncoding"
-></A
-><B
->getOutputEncoding</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AencodeDocument"
-></A
-><B
->encodeDocument</B
-> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html
+++ /dev/null
@@ -1,1434 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.Edit</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Edit.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.Edit</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: Edit.hs,v 1.8 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
->common edit arrows
-</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%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcanonicalizeContents"
->canonicalizeContents</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollapseAllXText"
->collapseAllXText</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollapseXText"
->collapseXText</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeHtmlDoc"
->escapeHtmlDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddHeadlineToXmlDoc"
->addHeadlineToXmlDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AindentDoc"
->indentDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></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"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAllComment"
->removeAllComment</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveWhiteSpace"
->removeWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCdata"
->transfCdata</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCdata"
->transfAllCdata</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCharRef"
->transfCharRef</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCharRef"
->transfAllCharRef</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasXmlPi"
->hasXmlPi</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXmlPi"
->addXmlPi</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXmlPiEncoding"
->addXmlPiEncoding</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddDoctypeDecl"
->addDoctypeDecl</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXHtmlDoctypeStrict"
->addXHtmlDoctypeStrict</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXHtmlDoctypeTransitional"
->addXHtmlDoctypeTransitional</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXHtmlDoctypeFrameset"
->addXHtmlDoctypeFrameset</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeAllNodes"
-></A
-><B
->canonicalizeAllNodes</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Applies some <A HREF="Canonical XML.html"
->Canonical XML</A
-> rules to a document tree.
-</P
-><P
->The rule differ slightly for canonical XML and XPath in handling of comments
-</P
-><P
->Note: This is not the whole canonicalization as it is specified by the W3C
- Recommendation. Adding attribute defaults or sorting attributes in lexicographic
- order is done by the <TT
->transform</TT
-> function of module <TT
->Text.XML.HXT.Validator.Validation</TT
->.
- Replacing entities or line feed normalization is done by the parser.
-</P
-><P
->Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute
- values and text
-</P
-><P
->Not implemented yet:
-</P
-><UL
-><LI
-> Whitespace within start and end tags is normalized
-</LI
-><LI
-> Special characters in attribute values and character content are replaced by character references
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeForXPath"
-></A
-><B
->canonicalizeForXPath</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Canonicalize a tree for XPath
- Like <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-></TT
-> but comment nodes are not removed
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeContents"
-></A
-><B
->canonicalizeContents</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Canonicalize the contents of a document
-</P
-><P
->substitutes all char refs in text and attribute values,
- removes CDATA section and combines all sequences of resulting text
- nodes into a single text node
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollapseAllXText"
-></A
-><B
->collapseAllXText</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Applies collapseXText recursively.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"
->collapseXText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollapseXText"
-></A
-><B
->collapseXText</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Collects sequences of text nodes in the list of children of a node into one single text node.
- This is useful, e.g. after char and entity reference substitution
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlDoc"
-></A
-><B
->escapeXmlDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape all special XML chars into XML entity references or char references
-</P
-><P
->convert the special XML chars &lt; and &amp; in text nodes into prefefiened XML entity references,
- in attribute values also ', &quot;, &gt;, \n, \r and \t are converted into entity or char references,
- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeHtmlDoc"
-></A
-><B
->escapeHtmlDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape all special HTML chars into XHTML entity references or char references
-</P
-><P
->convert the special XML chars &lt; and &amp; and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,
- in attribute values also ', &quot;, &gt;, \n, \r and \t are converted into entity or char references,
- in comments nothing is converted
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhaskellRepOfXmlDoc"
-></A
-><B
->haskellRepOfXmlDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a Haskell representation (with show).
-</P
-><P
->Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtreeRepOfXmlDoc"
-></A
-><B
->treeRepOfXmlDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a text representation in tree form.
-</P
-><P
->Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddHeadlineToXmlDoc"
-></A
-><B
->addHeadlineToXmlDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AindentDoc"
-></A
-><B
->indentDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for indenting a document tree for pretty printing.
-</P
-><P
->the tree is traversed for inserting whitespace for tag indentation.
-</P
-><P
->whitespace is only inserted or changed at places, where it isn't significant,
- is's not inserted between tags and text containing non whitespace chars.
-</P
-><P
->whitespace is only inserted or changed at places, where it's not significant.
- preserving whitespace may be controlled in a document tree
- by a tag attribute <TT
->xml:space</TT
->
-</P
-><P
->allowed values for this attribute are <TT
->default | preserve</TT
->.
-</P
-><P
->input is a complete document tree or a document fragment
- result is the semantically equivalent formatted tree.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumberLinesInXmlDoc"
-></A
-><B
->numberLinesInXmlDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a text and add line numbers to the text representation.
-</P
-><P
->Result is a root node with a single text node as child.
- Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveComment"
-></A
-><B
->removeComment</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove Comments: <TT
->none <TT
-><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"
->when</A
-></TT
-> isCmt</TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAllComment"
-></A
-><B
->removeAllComment</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove all comments recursively
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveWhiteSpace"
-></A
-><B
->removeWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple filter for removing whitespace.
-</P
-><P
->no check on sigificant whitespace, e.g. in HTML &lt;pre&gt;-elements, is done.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAllWhiteSpace"
-></A
-><B
->removeAllWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple recursive filter for removing all whitespace.
-</P
-><P
->removes all text nodes in a tree that consist only of whitespace.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"
->removeWhiteSpace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveDocWhiteSpace"
-></A
-><B
->removeDocWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for removing all not significant whitespace.
-</P
-><P
->the tree traversed for removing whitespace between elements,
- that was inserted for indentation and readability.
- whitespace is only removed at places, where it's not significat
- preserving whitespace may be controlled in a document tree
- by a tag attribute <TT
->xml:space</TT
->
-</P
-><P
->allowed values for this attribute are <TT
->default | preserve</TT
->
-</P
-><P
->input is root node of the document to be cleaned up,
- output the semantically equivalent simplified tree
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"
->indentDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCdata"
-></A
-><B
->transfCdata</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts a CDATA section node into a normal text node
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCdata"
-></A
-><B
->transfAllCdata</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA sections in whole document tree into normal text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCharRef"
-></A
-><B
->transfCharRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts character references to normal text
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCharRef"
-></A
-><B
->transfAllCharRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->recursively converts all character references to normal text
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasXmlPi"
-></A
-><B
->hasXmlPi</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXmlPi"
-></A
-><B
->addXmlPi</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add an &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction
- if it's not already there
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXmlPiEncoding"
-></A
-><B
->addXmlPiEncoding</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add an encoding spec to the &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddDoctypeDecl"
-></A
-><B
->addDoctypeDecl</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->add a doctype declaration to a document
-</P
-><P
->The arguments are the root element name, the PUBLIC id and the SYSTEM id
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXHtmlDoctypeStrict"
-></A
-><B
->addXHtmlDoctypeStrict</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add an XHTML strict doctype declaration to a document
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXHtmlDoctypeTransitional"
-></A
-><B
->addXHtmlDoctypeTransitional</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXHtmlDoctypeFrameset"
-></A
-><B
->addXHtmlDoctypeFrameset</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.GeneralEntitySubstitution</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.GeneralEntitySubstitution</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: GeneralEntitySubstitution.hs,v 1.13 2006<EM
->05</EM
->01 18:56:24 hxml Exp $
-</P
-><P
->general entity substitution
-</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%3AprocessGeneralEntities"
->processGeneralEntities</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessGeneralEntities"
-></A
-><B
->processGeneralEntities</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitution of general entities
-</P
-><P
->input: a complete document tree including root node
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html
+++ /dev/null
@@ -1,643 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.Namespace</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Namespace.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.Namespace</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: Namespace.hs,v 1.13 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
->namespace specific arrows
-</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%3AattachNsEnv"
->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"
->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
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcleanupNamespaces"
->cleanupNamespaces</A
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollectNamespaceDecl"
->collectNamespaceDecl</A
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollectPrefixUriPairs"
->collectPrefixUriPairs</A
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNamespaceDeclAttr"
->isNamespaceDeclAttr</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNamespaceDecl"
->getNamespaceDecl</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessWithNsEnv"
->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"
->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"
->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
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessWithNsEnvWithoutAttrl"
->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"
->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"
->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
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniqueNamespaces"
->uniqueNamespaces</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniqueNamespacesFromDeclAndQNames"
->uniqueNamespacesFromDeclAndQNames</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattachNsEnv"
-></A
-><B
->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"
->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
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->attach all valid namespace declarations to the attribute list of element nodes.
-</P
-><P
->This arrow is useful for document processing, that requires access to all namespace
- declarations at any element node, but which cannot be done with a simple <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"
->processWithNsEnv</A
-></TT
->.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcleanupNamespaces"
-></A
-><B
->cleanupNamespaces</B
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->does the real work for namespace cleanup.
-</P
-><P
->The parameter is used for collecting namespace uris and prefixes from the input tree
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollectNamespaceDecl"
-></A
-><B
->collectNamespaceDecl</B
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->collect all namespace declarations contained in a document
-</P
-><P
->apply <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"
->getNamespaceDecl</A
-></TT
-> to a whole XmlTree
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollectPrefixUriPairs"
-></A
-><B
->collectPrefixUriPairs</B
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->collect all (namePrefix, namespaceUri) pairs from a tree
-</P
-><P
->all qualified names are inspected, whether a namespace uri is defined,
- for these uris the prefix and uri is returned. This arrow is useful for
- namespace cleanup, e.g. for documents generated with XSLT. It can be used
- together with <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"
->collectNamespaceDecl</A
-></TT
-> to <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"
->cleanupNamespaces</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNamespaceDeclAttr"
-></A
-><B
->isNamespaceDeclAttr</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an attribute node contains an XML Namespace declaration
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamespaceDecl"
-></A
-><B
->getNamespaceDecl</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> (String, String)</TD
-></TR
-><TR
-><TD CLASS="doc"
->get the namespace prefix and the namespace URI out of
- an attribute tree with a namespace declaration (see <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"
->isNamespaceDeclAttr</A
-></TT
->)
- for all other nodes this arrow fails
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessWithNsEnv"
-></A
-><B
->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"
->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"
->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
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process a document tree with an arrow, containing always the
- valid namespace environment as extra parameter.
-</P
-><P
->The namespace environment is implemented as a <TT
-><A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessWithNsEnvWithoutAttrl"
-></A
-><B
->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"
->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"
->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
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all element nodes of a document tree with an arrow, containing always the
- valid namespace environment as extra parameter. Attribute lists are not processed.
-</P
-><P
->See also: <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"
->processWithNsEnv</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniqueNamespaces"
-></A
-><B
->uniqueNamespaces</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->generate unique namespaces and add all namespace declarations to the root element
-</P
-><P
->Calls <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"
->cleanupNamespaces</A
-></TT
-> with <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"
->collectNamespaceDecl</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniqueNamespacesFromDeclAndQNames"
-></A
-><B
->uniqueNamespacesFromDeclAndQNames</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names
-</P
-><P
->useful for cleanup of namespaces in generated documents.
- Calls <TT
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"
->cleanupNamespaces</A
-></TT
-> with <TT
-> collectNamespaceDecl <A HREF="+"
->+</A
-> collectPrefixUriPairs </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html
+++ /dev/null
@@ -1,769 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.ParserInterface</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ParserInterface.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.ParserInterface</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->interface to the HXT XML and DTD parsers
-</P
-><P
->version: $Id: ParserInterface.hs,v 1.1 2006<EM
->05</EM
->01 18:56:24 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%3AparseXmlDoc"
->parseXmlDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDPart"
->parseXmlDTDPart</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a (String, <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%3AparseXmlContent"
->parseXmlContent</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlEntityEncodingSpec"
->parseXmlEntityEncodingSpec</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDocEncodingSpec"
->parseXmlDocEncodingSpec</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveEncodingSpec"
->removeEncodingSpec</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDdeclPart"
->parseXmlDTDdeclPart</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDdecl"
->parseXmlDTDdecl</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDEntityValue"
->parseXmlDTDEntityValue</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlAttrValue"
->parseXmlAttrValue</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlGeneralEntityValue"
->parseXmlGeneralEntityValue</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseHtmlDoc"
->parseHtmlDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseHtmlContent"
->parseHtmlContent</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseHtmlTagSoup"
->parseHtmlTagSoup</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalidateDoc"
->validateDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransformDoc"
->transformDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubstHtmlEntityRefs"
->substHtmlEntityRefs</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubstXmlEntityRefs"
->substXmlEntityRefs</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubstEntityRefs"
->substEntityRefs</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; [(String, Int)] -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDoc"
-></A
-><B
->parseXmlDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDPart"
-></A
-><B
->parseXmlDTDPart</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a (String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlContent"
-></A
-><B
->parseXmlContent</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlEntityEncodingSpec"
-></A
-><B
->parseXmlEntityEncodingSpec</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDocEncodingSpec"
-></A
-><B
->parseXmlDocEncodingSpec</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveEncodingSpec"
-></A
-><B
->removeEncodingSpec</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDdeclPart"
-></A
-><B
->parseXmlDTDdeclPart</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDdecl"
-></A
-><B
->parseXmlDTDdecl</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDEntityValue"
-></A
-><B
->parseXmlDTDEntityValue</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlAttrValue"
-></A
-><B
->parseXmlAttrValue</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlGeneralEntityValue"
-></A
-><B
->parseXmlGeneralEntityValue</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlDoc"
-></A
-><B
->parseHtmlDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlContent"
-></A
-><B
->parseHtmlContent</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlTagSoup"
-></A
-><B
->parseHtmlTagSoup</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDoc"
-></A
-><B
->validateDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransformDoc"
-></A
-><B
->transformDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstHtmlEntityRefs"
-></A
-><B
->substHtmlEntityRefs</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitution of all predefined XHTMT entities for none ASCII chars
-</P
-><P
->This arrow recurses through a whole XML tree and substitutes all
- entity refs within text nodes and attribute values by a text node
- containing of a single char corresponding to this entity.
-</P
-><P
->Unknown entity refs remain unchanged
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstXmlEntityRefs"
-></A
-><B
->substXmlEntityRefs</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->substitution of the five predefined XMT entities, works like <TT
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"
->substHtmlEntityRefs</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstEntityRefs"
-></A
-><B
->substEntityRefs</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; [(String, Int)] -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the entity substitution arrow called from <TT
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"
->substXmlEntityRefs</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"
->substHtmlEntityRefs</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html
+++ /dev/null
@@ -1,862 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.Pickle.DTD</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/DTD.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.Pickle.DTD</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Functions for converting a pickler schema
-into a DTD
-</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ADTDdescr"
->DTDdescr</A
->  = <A HREF="#v%3ADTDdescr"
->DTDdescr</A
-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdtdDescrToXml"
->dtdDescrToXml</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
->DTDdescr</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckAttrModell"
->checkAttrModell</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckAM"
->checkAM</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckAMC"
->checkAMC</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckContentModell"
->checkContentModell</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscContToXml"
->scContToXml</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscWrap"
->scWrap</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscCont"
->scCont</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscConts"
->scConts</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscAttrToXml"
->scAttrToXml</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckErr"
->checkErr</A
-> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfoundErr"
->foundErr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdtdDescr"
->dtdDescr</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
->DTDdescr</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AelementDeclarations"
->elementDeclarations</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AelementDecs"
->elementDecs</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AelemNames"
->elemNames</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AelemName"
->elemName</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AelemRefs"
->elemRefs</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AattrDec"
->attrDec</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremAttrDec"
->remAttrDec</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ADTDdescr"
-></A
-><B
->DTDdescr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ADTDdescr"
-></A
-><B
->DTDdescr</B
-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
->)]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDdescr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DTDdescr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
->DTDdescr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdDescrToXml"
-></A
-><B
->dtdDescrToXml</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
->DTDdescr</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a DTD descr into XmlTrees
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckAttrModell"
-></A
-><B
->checkAttrModell</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckAM"
-></A
-><B
->checkAM</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckAMC"
-></A
-><B
->checkAMC</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckContentModell"
-></A
-><B
->checkContentModell</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscContToXml"
-></A
-><B
->scContToXml</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscWrap"
-></A
-><B
->scWrap</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscCont"
-></A
-><B
->scCont</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscConts"
-></A
-><B
->scConts</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscAttrToXml"
-></A
-><B
->scAttrToXml</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckErr"
-></A
-><B
->checkErr</B
-> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfoundErr"
-></A
-><B
->foundErr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdDescr"
-></A
-><B
->dtdDescr</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"
->DTDdescr</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a pickler schema into a DTD descr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AelementDeclarations"
-></A
-><B
->elementDeclarations</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AelementDecs"
-></A
-><B
->elementDecs</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AelemNames"
-></A
-><B
->elemNames</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AelemName"
-></A
-><B
->elemName</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AelemRefs"
-></A
-><B
->elemRefs</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrDec"
-></A
-><B
->attrDec</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"
->Schemas</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremAttrDec"
-></A
-><B
->remAttrDec</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html
+++ /dev/null
@@ -1,1711 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.Pickle.Schema</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Schema.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.Pickle.Schema</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Datatypes and functions for building a content model
-for XML picklers. A schema is part of every pickler
-and can be used to derive a corrensponding DTD (or Relax NG schema).
-This schema further enables checking the picklers.
-</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"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ASchema"
->Schema</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AAny"
->Any</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ASeq"
->Seq</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_l"
->sc_l</A
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->]</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAlt"
->Alt</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_l"
->sc_l</A
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->]</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARep"
->Rep</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_lb"
->sc_lb</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_ub"
->sc_ub</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_1"
->sc_1</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AElement"
->Element</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_n"
->sc_n</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_1"
->sc_1</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAttribute"
->Attribute</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_n"
->sc_n</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_1"
->sc_1</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AElemRef"
->ElemRef</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_n"
->sc_n</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACharData"
->CharData</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Asc_dt"
->sc_dt</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"
->DataTypeDescr</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AName"
->Name</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ASchemas"
->Schemas</A
-> = [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ADataTypeDescr"
->DataTypeDescr</A
->  = <A HREF="#v%3ADTDescr"
->DTDescr</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AdtLib"
->dtLib</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AdtName"
->dtName</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AdtParams"
->dtParams</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScXsd"
->isScXsd</A
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScFixed"
->isScFixed</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScEnum"
->isScEnum</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScElem"
->isScElem</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScAttr"
->isScAttr</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScElemRef"
->isScElemRef</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScCharData"
->isScCharData</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScSARE"
->isScSARE</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScList"
->isScList</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisScOpt"
->isScOpt</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxsdParam"
->xsdParam</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscDT"
->scDT</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscDTxsd"
->scDTxsd</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscString"
->scString</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscString1"
->scString1</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscFixed"
->scFixed</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscEnum"
->scEnum</A
-> :: [String] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscNmtoken"
->scNmtoken</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscNmtokens"
->scNmtokens</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscEmpty"
->scEmpty</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscSeq"
->scSeq</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscSeqs"
->scSeqs</A
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscNull"
->scNull</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscAlt"
->scAlt</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscAlts"
->scAlts</A
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscOption"
->scOption</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscList"
->scList</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscList1"
->scList1</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscOpt"
->scOpt</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscRep"
->scRep</A
-> :: Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscElem"
->scElem</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AscAttr"
->scAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ASchema"
-></A
-><B
->Schema</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The datatype for modelling the structure of an
-</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%3AAny"
-></A
-><B
->Any</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ASeq"
-></A
-><B
->Seq</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%3Asc_l"
-></A
-><B
->sc_l</B
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAlt"
-></A
-><B
->Alt</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%3Asc_l"
-></A
-><B
->sc_l</B
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARep"
-></A
-><B
->Rep</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%3Asc_lb"
-></A
-><B
->sc_lb</B
-> :: Int</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Asc_ub"
-></A
-><B
->sc_ub</B
-> :: Int</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Asc_1"
-></A
-><B
->sc_1</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AElement"
-></A
-><B
->Element</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%3Asc_n"
-></A
-><B
->sc_n</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Asc_1"
-></A
-><B
->sc_1</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAttribute"
-></A
-><B
->Attribute</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%3Asc_n"
-></A
-><B
->sc_n</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Asc_1"
-></A
-><B
->sc_1</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AElemRef"
-></A
-><B
->ElemRef</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%3Asc_n"
-></A
-><B
->sc_n</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"
->Name</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACharData"
-></A
-><B
->CharData</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%3Asc_dt"
-></A
-><B
->sc_dt</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"
->DataTypeDescr</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Schema')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Schema" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AName"
-></A
-><B
->Name</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ASchemas"
-></A
-><B
->Schemas</B
-> = [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ADataTypeDescr"
-></A
-><B
->DataTypeDescr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><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%3ADTDescr"
-></A
-><B
->DTDescr</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%3AdtLib"
-></A
-><B
->dtLib</B
-> :: String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AdtName"
-></A
-><B
->dtName</B
-> :: String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AdtParams"
-></A
-><B
->dtParams</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DataTypeDescr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DataTypeDescr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"
->DataTypeDescr</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"
->DataTypeDescr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScXsd"
-></A
-><B
->isScXsd</B
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test: is schema a simple XML Schema datatype
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScFixed"
-></A
-><B
->isScFixed</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test: is type a fixed value attribute type
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScEnum"
-></A
-><B
->isScEnum</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScElem"
-></A
-><B
->isScElem</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScAttr"
-></A
-><B
->isScAttr</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScElemRef"
-></A
-><B
->isScElemRef</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScCharData"
-></A
-><B
->isScCharData</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScSARE"
-></A
-><B
->isScSARE</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScList"
-></A
-><B
->isScList</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisScOpt"
-></A
-><B
->isScOpt</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsdParam"
-></A
-><B
->xsdParam</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->access an attribute of a descr of an atomic type
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscDT"
-></A
-><B
->scDT</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscDTxsd"
-></A
-><B
->scDTxsd</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscString"
-></A
-><B
->scString</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscString1"
-></A
-><B
->scString1</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscFixed"
-></A
-><B
->scFixed</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscEnum"
-></A
-><B
->scEnum</B
-> :: [String] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscNmtoken"
-></A
-><B
->scNmtoken</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscNmtokens"
-></A
-><B
->scNmtokens</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscEmpty"
-></A
-><B
->scEmpty</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscSeq"
-></A
-><B
->scSeq</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscSeqs"
-></A
-><B
->scSeqs</B
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscNull"
-></A
-><B
->scNull</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscAlt"
-></A
-><B
->scAlt</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscAlts"
-></A
-><B
->scAlts</B
-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
->] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscOption"
-></A
-><B
->scOption</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscList"
-></A
-><B
->scList</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscList1"
-></A
-><B
->scList1</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscOpt"
-></A
-><B
->scOpt</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscRep"
-></A
-><B
->scRep</B
-> :: Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscElem"
-></A
-><B
->scElem</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AscAttr"
-></A
-><B
->scAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html
+++ /dev/null
@@ -1,2059 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.Pickle.Xml</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Xml.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.Pickle.Xml</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</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
-</P
-><P
->This module is an adaptation of the pickler combinators
-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.
-</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
-</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)
-</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ASt"
->St</A
->  = <A HREF="#v%3ASt"
->St</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Aattributes"
->attributes</A
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Acontents"
->contents</A
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3APU"
->PU</A
-> a = <A HREF="#v%3APU"
->PU</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AappPickle"
->appPickle</A
-> :: ((a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->)</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AappUnPickle"
->appUnPickle</A
-> :: (<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; (Maybe a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->))</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AtheSchema"
->theSchema</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AemptySt"
->emptySt</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAtt"
->addAtt</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddCont"
->addCont</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdropCont"
->dropCont</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAtt"
->getAtt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; Maybe <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%3AgetCont"
->getCont</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; Maybe <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%3ApickleDoc"
->pickleDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; a -&gt; <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%3AunpickleDoc"
->unpickleDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpZero"
->xpZero</A
-> :: <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%3AxpUnit"
->xpUnit</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpLift"
->xpLift</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%3AxpLiftMaybe"
->xpLiftMaybe</A
-> :: Maybe 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%3AxpCondSeq"
->xpCondSeq</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b -&gt; (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpSeq"
->xpSeq</A
-> :: (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpChoice"
->xpChoice</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpWrap"
->xpWrap</A
-> :: (a -&gt; b, b -&gt; 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
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpWrapMaybe"
->xpWrapMaybe</A
-> :: (a -&gt; Maybe b, b -&gt; 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
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpPair"
->xpPair</A
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpTriple"
->xpTriple</A
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axp4Tuple"
->xp4Tuple</A
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axp5Tuple"
->xp5Tuple</A
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpText"
->xpText</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpTextDT"
->xpTextDT</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpText0"
->xpText0</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpText0DT"
->xpText0DT</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpPrim"
->xpPrim</A
-> :: (Read a, Show 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%3AxpTree"
->xpTree</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</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%3AxpOption"
->xpOption</A
-> :: <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
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpList"
->xpList</A
-> :: <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%3AxpList1"
->xpList1</A
-> :: <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%3AxpAlt"
->xpAlt</A
-> :: (a -&gt; Int) -&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
-> :: String -&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
-> :: String -&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%3AxpAttrImplied"
->xpAttrImplied</A
-> :: String -&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
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAttrFixed"
->xpAttrFixed</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAddFixedAttr"
->xpAddFixedAttr</A
-> :: String -&gt; String -&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"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="#t%3AXmlPickler"
->XmlPickler</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axpickle"
->xpickle</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ASt"
-></A
-><B
->St</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><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%3ASt"
-></A
-><B
->St</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%3Aattributes"
-></A
-><B
->attributes</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Acontents"
-></A
-><B
->contents</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3APU"
-></A
-><B
->PU</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><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%3APU"
-></A
-><B
->PU</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%3AappPickle"
-></A
-><B
->appPickle</B
-> :: ((a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AappUnPickle"
-></A
-><B
->appUnPickle</B
-> :: (<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; (Maybe a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->))</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AtheSchema"
-></A
-><B
->theSchema</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AemptySt"
-></A
-><B
->emptySt</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAtt"
-></A
-><B
->addAtt</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddCont"
-></A
-><B
->addCont</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdropCont"
-></A
-><B
->dropCont</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAtt"
-></A
-><B
->getAtt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCont"
-></A
-><B
->getCont</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApickleDoc"
-></A
-><B
->pickleDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->conversion of an arbitrary value into an XML document tree.
-</P
-><P
->The pickler, first parameter, controls the conversion process.
- Result is a complete document tree including a root node
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunpickleDoc"
-></A
-><B
->unpickleDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Conversion of an XML document tree into an arbitrary data type
-</P
-><P
->The inverse of <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"
->pickleDoc</A
-></TT
->.
- This law should hold for all picklers: <TT
-> unpickle px . pickle px $ v == Just v </TT
->.
- Not every possible combination of picklers make sense.
- For reconverting a value from an XML tree, is becomes neccessary,
- to introduce &quot;enough&quot; markup for unpickling the value
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpZero"
-></A
-><B
->xpZero</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The zero pickler
-</P
-><P
->Encodes nothing, fails always during unpickling
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpUnit"
-></A
-><B
->xpUnit</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpLift"
-></A
-><B
->xpLift</B
-> :: a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Lift a value to a pickler
-</P
-><P
->When pickling, nothing is encoded, when unpickling, the given value is inserted.
- This pickler always succeeds.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpLiftMaybe"
-></A
-><B
->xpLiftMaybe</B
-> :: Maybe a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Lift a Maybe value to a pickler.
-</P
-><P
-><TT
->Nothing</TT
-> is mapped to the zero pickler, <TT
->Just x</TT
-> is pickled with <TT
->xpLift x</TT
->.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpCondSeq"
-></A
-><B
->xpCondSeq</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b -&gt; (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pickle/unpickle combinator for sequence and choice.
-</P
-><P
->When the first unpickler fails,
- the second one is taken, else the third one configured with the result from the first
- is taken. This pickler is a generalisation for <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpSeq"
->xpSeq</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpChoice"
->xpChoice</A
-></TT
-> .
-</P
-><P
->The schema must be attached later, e.g. in xpPair or other higher level combinators
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpSeq"
-></A
-><B
->xpSeq</B
-> :: (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Combine two picklers sequentially.
-</P
-><P
->If the first fails during
- unpickling, the whole unpickler fails
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpChoice"
-></A
-><B
->xpChoice</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->combine tow picklers with a choice
-</P
-><P
->Run two picklers in sequence like with xpSeq.
- When during unpickling the first one fails,
- an alternative pickler (first argument) is applied.
- This pickler only is used as combinator for unpickling.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpWrap"
-></A
-><B
->xpWrap</B
-> :: (a -&gt; b, b -&gt; 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
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->map value into another domain and apply pickler there
-</P
-><P
->One of the most often used picklers.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpWrapMaybe"
-></A
-><B
->xpWrapMaybe</B
-> :: (a -&gt; Maybe b, b -&gt; 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
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"
->xpWrap</A
-></TT
->, but if the inverse mapping is undefined, the unpickler fails
-</P
-><P
->Map a value into another domain. If the inverse mapping is
- undefined (Nothing), the unpickler fails
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpPair"
-></A
-><B
->xpPair</B
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pickle a pair of values sequentially
-</P
-><P
->Used for pairs or together with wrap for pickling
- algebraic data types with two components
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpTriple"
-></A
-><B
->xpTriple</B
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"
->xpPair</A
-></TT
-> but for triples
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axp4Tuple"
-></A
-><B
->xp4Tuple</B
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"
->xpPair</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"
->xpTriple</A
-></TT
-> but for 4-tuples
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axp5Tuple"
-></A
-><B
->xp5Tuple</B
-> :: <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
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"
->xpPair</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"
->xpTriple</A
-></TT
-> but for 5-tuples
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpText"
-></A
-><B
->xpText</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a string into an XML text node
-</P
-><P
->One of the most often used primitive picklers. Attention:
- For pickling empty strings use <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"
->xpText0</A
-></TT
->. If the text has a more
- specific datatype than xsd:string, use <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"
->xpTextDT</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpTextDT"
-></A
-><B
->xpTextDT</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a string into an XML text node
-</P
-><P
->Text pickler with a description of the structure of the text
- by a schema. A schema for a data type can be defined by <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"
->scDT</A
-></TT
->.
- In <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-></TT
-> there are some more functions for creating
- simple datatype descriptions.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpText0"
-></A
-><B
->xpText0</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a possibly empty string into an XML node.
-</P
-><P
->Must be used in all places, where empty strings are legal values.
- If the content of an element can be an empty string, this string disapears
- during storing the DOM into a document and reparse the document.
- So the empty text node becomes nothing, and the pickler must deliver an empty string,
- if there is no text node in the document.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpText0DT"
-></A
-><B
->xpText0DT</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a possibly empty string with a datatype description into an XML node.
-</P
-><P
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"
->xpText0</A
-></TT
-> but with extra Parameter for datatype description as in <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"
->xpTextDT</A
-></TT
->.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpPrim"
-></A
-><B
->xpPrim</B
-> :: (Read a, Show a) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle an arbitrary value by applyling show during pickling
- and read during unpickling.
-</P
-><P
->Real pickling is then done with xpString.
- One of the most often used pimitive picklers. Applicable for all
- types which are instances of <TT
->Read</TT
-> and <TT
->Show</TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpTree"
-></A
-><B
->xpTree</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle an XmlTree by just adding it
-</P
-><P
->Usefull for components of type XmlTree in other data structures
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpOption"
-></A
-><B
->xpOption</B
-> :: <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
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Encoding of optional data by ignoring the Nothing case during pickling
- and relying on failure during unpickling to recompute the Nothing case
-</P
-><P
->The default pickler for Maybe types
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpList"
-></A
-><B
->xpList</B
-> :: <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="doc"
-><P
->Encoding of list values by pickling all list elements sequentially.
-</P
-><P
->Unpickler relies on failure for detecting the end of the list.
- The standard pickler for lists. Can also be used in combination with <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"
->xpWrap</A
-></TT
->
- for constructing set and map picklers
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpList1"
-></A
-><B
->xpList1</B
-> :: <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="doc"
-><P
->Encoding of a none empty list of values
-</P
-><P
->Attention: when calling this pickler with an empty list,
- an internal error &quot;head of empty list is raised&quot;.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAlt"
-></A
-><B
->xpAlt</B
-> :: (a -&gt; Int) -&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="doc"
-><P
->Pickler for sum data types.
-</P
-><P
->Every constructor is mapped to an index into the list of picklers.
- The index is used only during pickling, not during unpickling, there the 1. match is taken
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpElem"
-></A
-><B
->xpElem</B
-> :: String -&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="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
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAttr"
-></A
-><B
->xpAttr</B
-> :: String -&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="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-Xml.html#v%3AxpElem"
->xpElem</A
-></TT
-> pickler
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAttrImplied"
-></A
-><B
->xpAttrImplied</B
-> :: String -&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
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Add an optional attribute for an optional value (Maybe a).
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAttrFixed"
-></A
-><B
->xpAttrFixed</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAddFixedAttr"
-></A
-><B
->xpAddFixedAttr</B
-> :: String -&gt; String -&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="doc"
-><P
->Add an attribute with a fixed value.
-</P
-><P
->Useful e.g. to declare namespaces. Is implemented by <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrFixed"
->xpAttrFixed</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3AXmlPickler"
-></A
-><B
->XmlPickler</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The class for overloading <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axpickle"
->xpickle</A
-></TT
->, the default pickler
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axpickle"
-></A
-><B
->xpickle</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"
->PU</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlPickler')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XmlPickler" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> Integer</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> b) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> b, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> c) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> b, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> c, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> d) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> b, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> c, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> d, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> e) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"
->XmlPickler</A
-> [a]</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html
+++ /dev/null
@@ -1,2362 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.Pickle</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.Pickle</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</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
-</P
-><P
->This module is an adaptation of the pickler combinators
-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.
-</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
-</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)
-</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%3AxpickleDocument"
->xpickleDocument</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s 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%3AxunpickleDocument"
->xunpickleDocument</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpickleWriteDTD"
->xpickleWriteDTD</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <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%3AxpickleDTD"
->xpickleDTD</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <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%3AcheckPickler"
->checkPickler</A
-> :: Eq a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s a a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpickleVal"
->xpickleVal</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; a b <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%3AxunpickleVal"
->xunpickleVal</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AthePicklerDTD"
->thePicklerDTD</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_addDTD"
->a_addDTD</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApickleDoc"
->pickleDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; a -&gt; <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%3AunpickleDoc"
->unpickleDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3APU"
->PU</A
-> a = <A HREF="#v%3APU"
->PU</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AappPickle"
->appPickle</A
-> :: ((a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->)</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AappUnPickle"
->appUnPickle</A
-> :: (<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; (Maybe a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->))</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AtheSchema"
->theSchema</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="#t%3AXmlPickler"
->XmlPickler</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axpickle"
->xpickle</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axp4Tuple"
->xp4Tuple</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axp5Tuple"
->xp5Tuple</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAddFixedAttr"
->xpAddFixedAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAlt"
->xpAlt</A
-> :: (a -&gt; Int) -&gt; [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAttr"
->xpAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAttrFixed"
->xpAttrFixed</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpAttrImplied"
->xpAttrImplied</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpChoice"
->xpChoice</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpCondSeq"
->xpCondSeq</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpElem"
->xpElem</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axpickle"
->xpickle</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpLift"
->xpLift</A
-> :: a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpLiftMaybe"
->xpLiftMaybe</A
-> :: Maybe a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpList"
->xpList</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpList1"
->xpList1</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpOption"
->xpOption</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpPair"
->xpPair</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpPrim"
->xpPrim</A
-> :: (Read a, Show a) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpSeq"
->xpSeq</A
-> :: (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpText"
->xpText</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpText0"
->xpText0</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpTextDT"
->xpTextDT</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpText0DT"
->xpText0DT</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpTree"
->xpTree</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</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%3AxpTriple"
->xpTriple</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpUnit"
->xpUnit</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpWrap"
->xpWrap</A
-> :: (a -&gt; b, b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpWrapMaybe"
->xpWrapMaybe</A
-> :: (a -&gt; Maybe b, b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxpZero"
->xpZero</A
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ASchema"
->Schema</A
-> </TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ASchemas"
->Schemas</A
-> = [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ADataTypeDescr"
->DataTypeDescr</A
-> </TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpickleDocument"
-></A
-><B
->xpickleDocument</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->store an arbitray value in a persistent XML document
-</P
-><P
->The pickler converts a value into an XML tree, this is written out with
- <TT
-><A HREF="Text-XML-HXT-Arrow.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->. The option list is passed to <TT
-><A HREF="Text-XML-HXT-Arrow.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->
-</P
-><P
->An options evaluated by this arrow is <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"
->a_addDTD</A
-></TT
->.
- If <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"
->a_addDTD</A
-></TT
-> is set (<TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"
->v_1</A
-></TT
->), the pickler DTD is added as an inline DTD into the document.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxunpickleDocument"
-></A
-><B
->xunpickleDocument</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read an arbitray value from an XML document
-</P
-><P
->The document is read with <TT
-><A HREF="Text-XML-HXT-Arrow.html#v%3AreadDocument"
->readDocument</A
-></TT
->. Options are passed
- to <TT
-><A HREF="Text-XML-HXT-Arrow.html#v%3AreadDocument"
->readDocument</A
-></TT
->. The conversion from XmlTree is done with the
- pickler.
-</P
-><P
-><TT
-> xpickleDocument xp al dest &gt;&gt;&gt; xunpickleDocument xp al' dest </TT
-> is the identity arrow
- when applied with the appropriate options. When during pickling indentation is switched on,
- the whitespace must be removed during unpickling.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpickleWriteDTD"
-></A
-><B
->xpickleWriteDTD</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Write out the DTD generated out of a pickler. Calls xpicklerDTD
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpickleDTD"
-></A
-><B
->xpickleDTD</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The arrow for generating the DTD out of a pickler
-</P
-><P
->A DTD is generated from a pickler and check for consistency.
- Errors concerning the DTD are issued.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckPickler"
-></A
-><B
->checkPickler</B
-> :: Eq a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s a a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->An arrow for checking picklers
-</P
-><P
->A value is transformed into an XML document by a given pickler,
- the associated DTD is extracted from the pickler and checked,
- the document including the DTD is tranlated into a string,
- this string is read and validated against the included DTD,
- and unpickled.
- The last step is the equality with the input.
-</P
-><P
->If the check succeeds, the arrow works like this, else it fails.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpickleVal"
-></A
-><B
->xpickleVal</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->The arrow version of the pickler function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxunpickleVal"
-></A
-><B
->xunpickleVal</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
->The arrow version of the unpickler function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AthePicklerDTD"
-></A
-><B
->thePicklerDTD</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Compute the associated DTD of a pickler
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_addDTD"
-></A
-><B
->a_addDTD</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Option for generating and adding DTD when document is pickled
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApickleDoc"
-></A
-><B
->pickleDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->conversion of an arbitrary value into an XML document tree.
-</P
-><P
->The pickler, first parameter, controls the conversion process.
- Result is a complete document tree including a root node
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunpickleDoc"
-></A
-><B
->unpickleDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Conversion of an XML document tree into an arbitrary data type
-</P
-><P
->The inverse of <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3ApickleDoc"
->pickleDoc</A
-></TT
->.
- This law should hold for all picklers: <TT
-> unpickle px . pickle px $ v == Just v </TT
->.
- Not every possible combination of picklers make sense.
- For reconverting a value from an XML tree, is becomes neccessary,
- to introduce &quot;enough&quot; markup for unpickling the value
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3APU"
-></A
-><B
->PU</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><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%3APU"
-></A
-><B
->PU</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%3AappPickle"
-></A
-><B
->appPickle</B
-> :: ((a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AappUnPickle"
-></A
-><B
->appUnPickle</B
-> :: (<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
-> -&gt; (Maybe a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"
->St</A
->))</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AtheSchema"
-></A
-><B
->theSchema</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3AXmlPickler"
-></A
-><B
->XmlPickler</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The class for overloading <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axpickle"
->xpickle</A
-></TT
->, the default pickler
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axpickle"
-></A
-><B
->xpickle</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlPickler')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XmlPickler" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> Integer</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> b) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> b, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> c) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> b, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> c, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> d) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> b, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> c, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> d, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> e) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> [a]</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axp4Tuple"
-></A
-><B
->xp4Tuple</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"
->xpPair</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"
->xpTriple</A
-></TT
-> but for 4-tuples
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axp5Tuple"
-></A
-><B
->xp5Tuple</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> d -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> e -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"
->xpPair</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"
->xpTriple</A
-></TT
-> but for 5-tuples
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAddFixedAttr"
-></A
-><B
->xpAddFixedAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Add an attribute with a fixed value.
-</P
-><P
->Useful e.g. to declare namespaces. Is implemented by <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrFixed"
->xpAttrFixed</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAlt"
-></A
-><B
->xpAlt</B
-> :: (a -&gt; Int) -&gt; [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a] -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickler for sum data types.
-</P
-><P
->Every constructor is mapped to an index into the list of picklers.
- The index is used only during pickling, not during unpickling, there the 1. match is taken
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAttr"
-></A
-><B
->xpAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><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
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAttrFixed"
-></A
-><B
->xpAttrFixed</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpAttrImplied"
-></A
-><B
->xpAttrImplied</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Add an optional attribute for an optional value (Maybe a).
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpChoice"
-></A
-><B
->xpChoice</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->combine tow picklers with a choice
-</P
-><P
->Run two picklers in sequence like with xpSeq.
- When during unpickling the first one fails,
- an alternative pickler (first argument) is applied.
- This pickler only is used as combinator for unpickling.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpCondSeq"
-></A
-><B
->xpCondSeq</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pickle/unpickle combinator for sequence and choice.
-</P
-><P
->When the first unpickler fails,
- the second one is taken, else the third one configured with the result from the first
- is taken. This pickler is a generalisation for <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpSeq"
->xpSeq</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpChoice"
->xpChoice</A
-></TT
-> .
-</P
-><P
->The schema must be attached later, e.g. in xpPair or other higher level combinators
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpElem"
-></A
-><B
->xpElem</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><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
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axpickle"
-></A
-><B
->xpickle</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"
->XmlPickler</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpLift"
-></A
-><B
->xpLift</B
-> :: a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Lift a value to a pickler
-</P
-><P
->When pickling, nothing is encoded, when unpickling, the given value is inserted.
- This pickler always succeeds.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpLiftMaybe"
-></A
-><B
->xpLiftMaybe</B
-> :: Maybe a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Lift a Maybe value to a pickler.
-</P
-><P
-><TT
->Nothing</TT
-> is mapped to the zero pickler, <TT
->Just x</TT
-> is pickled with <TT
->xpLift x</TT
->.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpList"
-></A
-><B
->xpList</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Encoding of list values by pickling all list elements sequentially.
-</P
-><P
->Unpickler relies on failure for detecting the end of the list.
- The standard pickler for lists. Can also be used in combination with <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"
->xpWrap</A
-></TT
->
- for constructing set and map picklers
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpList1"
-></A
-><B
->xpList1</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Encoding of a none empty list of values
-</P
-><P
->Attention: when calling this pickler with an empty list,
- an internal error &quot;head of empty list is raised&quot;.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpOption"
-></A
-><B
->xpOption</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Encoding of optional data by ignoring the Nothing case during pickling
- and relying on failure during unpickling to recompute the Nothing case
-</P
-><P
->The default pickler for Maybe types
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpPair"
-></A
-><B
->xpPair</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->pickle a pair of values sequentially
-</P
-><P
->Used for pairs or together with wrap for pickling
- algebraic data types with two components
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpPrim"
-></A
-><B
->xpPrim</B
-> :: (Read a, Show a) =&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle an arbitrary value by applyling show during pickling
- and read during unpickling.
-</P
-><P
->Real pickling is then done with xpString.
- One of the most often used pimitive picklers. Applicable for all
- types which are instances of <TT
->Read</TT
-> and <TT
->Show</TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpSeq"
-></A
-><B
->xpSeq</B
-> :: (b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; (a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Combine two picklers sequentially.
-</P
-><P
->If the first fails during
- unpickling, the whole unpickler fails
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpText"
-></A
-><B
->xpText</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a string into an XML text node
-</P
-><P
->One of the most often used primitive picklers. Attention:
- For pickling empty strings use <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"
->xpText0</A
-></TT
->. If the text has a more
- specific datatype than xsd:string, use <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"
->xpTextDT</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpText0"
-></A
-><B
->xpText0</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a possibly empty string into an XML node.
-</P
-><P
->Must be used in all places, where empty strings are legal values.
- If the content of an element can be an empty string, this string disapears
- during storing the DOM into a document and reparse the document.
- So the empty text node becomes nothing, and the pickler must deliver an empty string,
- if there is no text node in the document.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpTextDT"
-></A
-><B
->xpTextDT</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a string into an XML text node
-</P
-><P
->Text pickler with a description of the structure of the text
- by a schema. A schema for a data type can be defined by <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"
->scDT</A
-></TT
->.
- In <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-></TT
-> there are some more functions for creating
- simple datatype descriptions.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpText0DT"
-></A
-><B
->xpText0DT</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle a possibly empty string with a datatype description into an XML node.
-</P
-><P
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"
->xpText0</A
-></TT
-> but with extra Parameter for datatype description as in <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"
->xpTextDT</A
-></TT
->.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpTree"
-></A
-><B
->xpTree</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Pickle an XmlTree by just adding it
-</P
-><P
->Usefull for components of type XmlTree in other data structures
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpTriple"
-></A
-><B
->xpTriple</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> c -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"
->xpPair</A
-></TT
-> but for triples
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpUnit"
-></A
-><B
->xpUnit</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpWrap"
-></A
-><B
->xpWrap</B
-> :: (a -&gt; b, b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->map value into another domain and apply pickler there
-</P
-><P
->One of the most often used picklers.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpWrapMaybe"
-></A
-><B
->xpWrapMaybe</B
-> :: (a -&gt; Maybe b, b -&gt; a) -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> b</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->like <TT
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"
->xpWrap</A
-></TT
->, but if the inverse mapping is undefined, the unpickler fails
-</P
-><P
->Map a value into another domain. If the inverse mapping is
- undefined (Nothing), the unpickler fails
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxpZero"
-></A
-><B
->xpZero</B
-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"
->PU</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The zero pickler
-</P
-><P
->Encodes nothing, fails always during unpickling
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ASchema"
-></A
-><B
->Schema</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The datatype for modelling the structure of an
-</TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Schema')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Schema" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ASchemas"
-></A
-><B
->Schemas</B
-> = [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"
->Schema</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ADataTypeDescr"
-></A
-><B
->DataTypeDescr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DataTypeDescr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DataTypeDescr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"
->DataTypeDescr</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"
->DataTypeDescr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.ProcessDocument</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ProcessDocument.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.ProcessDocument</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ProcessDocument.hs,v 1.3 2006<EM
->08</EM
->30 16:20:52 hxml Exp $
-</P
-><P
->Compound arrows for reading, parsing, validating and writing XML documents
-</P
-><P
->All arrows use IO and a global state for options, errorhandling, ...
-</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%3AparseXmlDocument"
->parseXmlDocument</A
-> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <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%3AparseHtmlDocument"
->parseHtmlDocument</A
-> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <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%3AvalidateDocument"
->validateDocument</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApropagateAndValidateNamespaces"
->propagateAndValidateNamespaces</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDocumentContents"
->getDocumentContents</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDocument"
-></A
-><B
->parseXmlDocument</B
-> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->XML parser
-</P
-><P
->Input tree must be a root tree with a text tree as child containing the document to be parsed.
-The parser generates from the input string a tree of a wellformed XML document,
-processes the DTD (parameter substitution, conditional DTD parts, ...) and
-substitutes all general entity references. Next step is character reference substitution.
-Last step is the document validation.
-Validation can be controlled by an extra parameter.
-</P
-><P
->Example:
-</P
-><PRE
-> parseXmlDocument True    -- parse and validate document
-
- parseXmlDocument False   -- only parse document, don't validate
-</PRE
-><P
->This parser is useful for applications processing correct XML documents.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlDocument"
-></A
-><B
->parseHtmlDocument</B
-> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->HTML parser
-</P
-><P
->Input tree must be a root tree with a text tree as child containing the document to be parsed.
-The parser tries to parse everything as HTML, if the HTML document is not wellformed XML or if
-errors occur, warnings are generated. The warnings can be issued, or suppressed.
-</P
-><P
->Example: <TT
-> parseHtmlDocument True </TT
-> : parse document and issue warnings
-</P
-><P
->This parser is useful for applications like web crawlers, where the pages may contain
-arbitray errors, but the application is only interested in parts of the document, e.g. the plain text.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDocument"
-></A
-><B
->validateDocument</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Document validation
-</P
-><P
->Input must be a complete document tree. The document
-is validated with respect to the DTD spec.
-Only useful for XML documents containing a DTD.
-</P
-><P
->If the document is valid, it is transformed with respect to the DTD,
-normalization of attribute values, adding default values, sorting attributes by name,...
-</P
-><P
->If no error was found, result is the normalized tree,
-else the error status is set in the list of attributes
-of the root node &quot;/&quot; and the document content is removed from the tree.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApropagateAndValidateNamespaces"
-></A
-><B
->propagateAndValidateNamespaces</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Namespace propagation
-</P
-><P
->Input must be a complete document tree. The namespace declarations
-are evaluated and all element and attribute names are processed by
-splitting the name into prefix, local part and namespace URI.
-</P
-><P
->Naames are checked with respect to the XML namespace definition
-</P
-><P
->If no error was found, result is the unchanged input tree,
-else the error status is set in the list of attributes
-of the root node &quot;/&quot; and the document content is removed from the tree.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDocumentContents"
-></A
-><B
->getDocumentContents</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->creates a new document root, adds all options
-   as attributes to the document root and calls <TT
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"
->getXmlContents</A
-></TT
->.
-</P
-><P
->If the document name is the empty string, the document will be read
-   from standard input.
-</P
-><P
->For supported protocols see <TT
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"
->getXmlContents</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html
+++ /dev/null
@@ -1,623 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.ReadDocument</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ReadDocument.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.ReadDocument</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: ReadDocument.hs,v 1.10 2006<EM
->11</EM
->24 07:41:37 hxml Exp $
-</P
-><P
->Compound arrows for reading an XML/HTML document or an XML/HTML string
-</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%3AreadDocument"
->readDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <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%3AreadFromDocument"
->readFromDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreadString"
->readString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <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%3AreadFromString"
->readFromString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ahread"
->hread</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axread"
->xread</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreadDocument"
-></A
-><B
->readDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the main document input filter
-</P
-><P
->this filter can be configured by an option list, a value of type <A HREF="Attributes.html"
->Attributes</A
->
-</P
-><P
->available options:
-</P
-><UL
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
->a_parse_html</A
-></TT
->: use HTML parser, else use XML parser (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
->a_tagsoup</A
-></TT
-> : use light weight and lasy parser based on tagsoup lib
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
->a_parse_by_mimetype</A
-></TT
-> : select the parser by the mime type of the document
-                          (pulled out of the HTTP header). When the mime type is set to &quot;text/html&quot;
-			  the HTML parser (parsec or tagsoup) is taken, when it's set to
-			  &quot;text/xml&quot; or &quot;text/xhtml&quot; the XML parser (parsec or tagsoup) is taken.
-			  If the mime type is something else no further processing is performed,
-			  the contents is given back to the application in form of a single text node.
-			  If the default document encoding (<TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
->) is set to isoLatin1, this even enables processing
-			  of arbitray binary data.
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
->a_validate</A
-></TT
-> : validate document againsd DTD (default), else skip validation
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"
->a_relax_schema</A
-></TT
-> : validate document with Relax NG, the options value is the schema URI
-                     this implies using XML parser, no validation against DTD, and canonicalisation
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"
->a_check_namespaces</A
-></TT
-> : check namespaces, else skip namespace processing (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
->a_canonicalize</A
-></TT
-> : canonicalize document (default), else skip canonicalization
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"
->a_preserve_comment</A
-></TT
-> : preserve comments during canonicalization, else remove comments (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-></TT
-> : remove all whitespace, used for document indentation, else skip this step (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
-> : indent document by inserting whitespace, else skip this step (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
->a_issue_warnings</A
-></TT
-> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->a_issue_errors</A
-></TT
-> : issue all error messages on stderr (default), or ignore all error messages (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
->a_trace</A
-></TT
-> : trace level: values: 0 - 4
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
->a_proxy</A
-></TT
-> : proxy for http access, e.g. www-cache:3128
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
->a_use_curl</A
-></TT
-> : for http access via external programm curl, default is native HTTP access
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
->a_options_curl</A
-></TT
-> : more options for external program curl
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
-> : default document encoding (<TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->utf8</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"
->usAscii</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_2"
->iso8859_2</A
-></TT
->, ... , <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_16"
->iso8859_16</A
-></TT
->, ...)
-</LI
-></UL
-><P
->All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various
-options in e.g. the input/output modules
-</P
-><P
->If the document name is the empty string or an uri of the form &quot;stdin:&quot;, the document is read from standard input.
-</P
-><P
->examples:
-</P
-><PRE
-> readDocument [ ] &quot;test.xml&quot;
-</PRE
-><P
->reads and validates a document &quot;test.xml&quot;, no namespace propagation, only canonicalization is performed 
-</P
-><PRE
-> readDocument [ (a_validate, &quot;0&quot;)
-              , (a_encoding, isoLatin1)
-              ] &quot;test.xml&quot;
-</PRE
-><P
->reads document &quot;test.xml&quot; without validation, default encoding <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->.
-</P
-><PRE
-> readDocument [ (a_parse_html, &quot;1&quot;)
-              , (a_encoding, isoLatin1)
-              , (a_tagsoup,    &quot;1&quot;)
-              ] &quot;&quot;
-</PRE
-><P
->reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->,
-parsing is done with tagsoup parser
-</P
-><PRE
-> readDocument [ (a_parse_html,     &quot;1&quot;)
-              , (a_proxy,          &quot;www-cache:3128&quot;)
-              , (a_curl,           &quot;1&quot;)
-              , (a_issue_warnings, &quot;0&quot;)
-              ] &quot;http://www.haskell.org/&quot;
-</PRE
-><P
->reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy &quot;www-cache&quot; at port 3128
-</P
-><PRE
-> readDocument [ (a_validate,          &quot;1&quot;)
-              , (a_check_namespace,   &quot;1&quot;)
-              , (a_remove_whitespace, &quot;1&quot;)
-              , (a_trace,             &quot;2&quot;)
-              ] &quot;http://www.w3c.org/&quot;
-</PRE
-><P
->read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2
-</P
-><P
->for minimal complete examples see <TT
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"
->writeDocument</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"
->runX</A
-></TT
->, the main starting point for running an XML arrow.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreadFromDocument"
-></A
-><B
->readFromDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the arrow version of <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
->readDocument</A
-></TT
->, the arrow input is the source URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreadString"
-></A
-><B
->readString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read a document that is stored in a normal Haskell String
-</P
-><P
->the same function as readDocument, but the parameter forms the input.
- All options available for <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
->readDocument</A
-></TT
-> are applicable for readString.
-</P
-><P
->Default encoding: No encoding is done, the String argument is taken as Unicode string
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreadFromString"
-></A
-><B
->readFromString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the arrow version of <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"
->readString</A
-></TT
->, the arrow input is the source URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ahread"
-></A
-><B
->hread</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->parse a string as HTML content, substitute all HTML entity refs and canonicalize tree
- (substitute char refs, ...). Errors are ignored.
-</P
-><P
->A simpler version of <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"
->readFromString</A
-></TT
-> but with less functionality.
- Does not run in the IO monad
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axread"
-></A
-><B
->xread</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree
- (substitute char refs, ...)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html
+++ /dev/null
@@ -1,400 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.WriteDocument</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/WriteDocument.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.WriteDocument</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: 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
-></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%3AwriteDocument"
->writeDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwriteDocumentToString"
->writeDocumentToString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprepareContents"
->prepareContents</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwriteDocument"
-></A
-><B
->writeDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the main filter for writing documents
-</P
-><P
->this filter can be configured by an option list like <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
->readDocument</A
-></TT
->
-</P
-><P
->usage: <TT
-> writeDocument optionList destination </TT
->
-</P
-><P
->if <TT
-> destination </TT
-> is the empty string or &quot;-&quot;, stdout is used as output device
-</P
-><P
->available options are
-</P
-><UL
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
-> : indent document for readability, (default: no indentation)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-></TT
-> : remove all redundant whitespace for shorten text (default: no removal)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
-> : encoding of document, default is <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
-> or <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->utf8</A
-></TT
->
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"
->a_output_xml</A
-></TT
-> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp; where neccessary
-                   add XML processing instruction
-                   and encode document with respect to <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
->,
-                   if explicitly switched of, the plain text is issued, this is useful
-                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"
->a_output_html</A
-></TT
-> : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"
->a_no_xml_pi</A
-></TT
-> : suppress generation of &lt;?xml ... ?&gt; processing instruction
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"
->a_show_tree</A
-></TT
-> : show tree representation of document (for debugging)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"
->a_show_haskell</A
-></TT
-> : show Haskell representaion of document (for debugging)
-</LI
-></UL
-><P
->a minimal main program for copying a document
- has the following structure:
-</P
-><PRE
-> module Main
- where
- 
- import Text.XML.HXT.Arrow
- 
- main        :: IO ()
- main
-     = do
-       runX ( readDocument  [] &quot;hello.xml&quot;
-              &gt;&gt;&gt;
-              writeDocument [] &quot;bye.xml&quot;
-            )
-       return ()
-</PRE
-><P
->an example for copying a document to standard output with tracing and evaluation of
-error code is:
-</P
-><PRE
-> module Main
- where
- 
- import Text.XML.HXT.Arrow
- import System.Exit
- 
- main        :: IO ()
- main
-     = do
-       [rc] &lt;- runX ( readDocument  [ (a_trace, &quot;1&quot;)
-                                    ] &quot;hello.xml&quot;
-                      &gt;&gt;&gt;
-                      writeDocument [ (a_output_encoding, isoLatin1)
-                                    ] &quot;-&quot;        -- output to stdout
-                      &gt;&gt;&gt;
-                      getErrStatus
-                    )
-       exitWith ( if rc &gt;= c_err
-                  then ExitFailure 1
-                  else ExitSuccess
-                )
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwriteDocumentToString"
-></A
-><B
->writeDocumentToString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Convert a document into a string. Formating is done the same way
- and with the same options as in <TT
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprepareContents"
-></A
-><B
->prepareContents</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->indent and format output
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPath.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPath.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPath.html
+++ /dev/null
@@ -1,745 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XPath</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPath.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XPath</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Arrows for working with XPath and XmlNodeSets.
-</P
-><P
->Most of the XPath arrows come in two versions,
-   one without dealing with namespaces, element and attribute names
-   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
-</P
-><P
->The second variant uses a namespace environment for associating the right
-   namespace for the appropriate prefix. an entry for the empty prefix
-   defines the default namespace for the expression.
-</P
-><P
->The second variant should be used, when in the application namespaces
-   are significant, that means when namespace propagation is done for
-   the documents to be processed.
-</P
-><P
->NodeSets are sets of &quot;pointer&quot; into an XML tree to reference
-   subnodes. These nodesets can be computed by XPath expressions or
-   normal arrows. The nodesets can then be used later for selecting
-   or modifying subtrees of this tree in an efficient way.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Synopsis</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
->getXPathTreesInDocWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTrees"
->getXPathTrees</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesWithNsEnv"
->getXPathTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetElemNodeSet"
->getElemNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetElemAndAttrNodeSet"
->getElemAndAttrNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathNodeSet"
->getXPathNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetFromNodeSet"
->getFromNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessXPathTrees"
->processXPathTrees</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessXPathTreesWithNsEnv"
->processXPathTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessFromNodeSet"
->processFromNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDoc"
-></A
-><B
->getXPathTreesInDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of a whole XML document with root node by a XPath expression.
-</P
-><P
->The main filter for selecting parts of a document via XPath.
-</P
-><P
->The string argument must be a XPath expression with an absolute location path,
- the argument tree must be a complete document tree.
-</P
-><P
->Before evaluating the xpath query, the document is canonicalized
- with <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-></TT
->
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
-></A
-><B
->getXPathTreesInDocWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTrees"
-></A
-><B
->getXPathTrees</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of an arbitrary XML tree by a XPath expression.
-</P
-><P
->The main filter for selecting parts of an arbitrary XML tree via XPath.
- The string argument must be a XPath expression with an absolute location path,
- There are no restrictions on the argument tree.
-</P
-><P
->No canonicalization is performed before evaluating the query
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesWithNsEnv"
-></A
-><B
->getXPathTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
->getXPathTrees</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemNodeSet"
-></A
-><B
->getElemNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->compute a node set from a tree, containing all nodes selected by the predicate arrow
-</P
-><P
->computation of the set of element nodes with name &quot;a&quot; is done with
-</P
-><PRE
-> getElemNodeSet (hasName &quot;a&quot;)
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemAndAttrNodeSet"
-></A
-><B
->getElemAndAttrNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->compute a node set from a tree, containing all nodes including attribute nodes
- elected by the predicate arrow
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathNodeSet"
-></A
-><B
->getXPathNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select a set of nodes via an XPath expression from an arbitray XML tree
-</P
-><P
->The result is a set of &quot;pointers&quot; to nodes. This set can be used to
- access or modify the values of the subnodes in subsequent calls to <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
->getFromNodeSet</A
-></TT
-> or <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
->processFromNodeSet</A
-></TT
->.
-</P
-><P
->This function enables for parsing an XPath expressions and traversing the tree for node selection once
- and reuse this result possibly many times for later selection and modification operations.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetFromNodeSet"
-></A
-><B
->getFromNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->select all subtrees specified by a previously computed node set
-</P
-><P
->the following law holds:
-</P
-><PRE
-> getFromNodeSet $&lt; getElemNodeSet f == multi f
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessXPathTrees"
-></A
-><B
->processXPathTrees</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all subtrees selected by an XPath expression
-</P
-><P
->the following law holds:
-</P
-><PRE
-> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessXPathTreesWithNsEnv"
-></A
-><B
->processXPathTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
->processXPathTrees</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessFromNodeSet"
-></A
-><B
->processFromNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all subtrees specified by a previously computed node set in bottom up manner
-</P
-><P
->the follwoing law holds:
-</P
-><PRE
-> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)
-</PRE
-><P
->when attributes are contained in the node set (see <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
->getElemAndAttrNodeSet</A
-></TT
->), these are processed
- after the children and before the node itself
-</P
-><P
->the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPathSimple.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPathSimple.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPathSimple.html
+++ /dev/null
@@ -1,1877 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XPathSimple</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPathSimple.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XPathSimple</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->XPath selection for simple XPath expressions with list arrows
-   instead of navigatable trees.
-</P
-><P
->It is recomended, that this module is imported qualified,
-   e.g like <TT
->Text.XML.HXT.Arrow.XPathSimple as XS</TT
->.
-</P
-><P
->The arrows defined in this module have the same
-   functionality as the functions in <TT
-><A HREF="Text-XML-HXT-Arrow.html#t%3AXPath"
->XPath</A
-></TT
->.
-</P
-><P
->The computation modell in XPath is a navigatable tree,
-   that means a tree wicht can be traveresed in arbitrary directions,
-   not only from the root to the leafs. Sometimes this modell
-   leads to inefficent XPath processing for simple queries, which
-   only need a top down tree traversal.
-</P
-><P
->When evaluating an XPath expression with these functions, first an attempt is made
-   to map the XPath expression to a pure arrow. If this is possible
-   due to the siplicity of the XPath expressions, the result is computed
-   directly, else the query is processed by the corresponding
-   function in <TT
-><A HREF="Text-XML-HXT-Arrow.html#t%3AXPath"
->XPath</A
-></TT
->.
-</P
-><P
->The simple evaluation is possible, when in the XPath expression
-   only the top down axis (self, child, descendant, descendant or self are used,
-   when no builtin functions concerning the position of a node are used,
-   and no comparison of nodes e.g. in node set union is required.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Synopsis</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
->getXPathTreesInDocWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTrees"
->getXPathTrees</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesWithNsEnv"
->getXPathTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtryGetXPath"
->tryGetXPath</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesWithNsEnvSimple"
->getXPathTreesWithNsEnvSimple</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXP"
->getXP</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXPArrow"
->XPArrow</A
-> b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b c)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amk"
->mk</A
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aunwrap"
->unwrap</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%3E%3E%3E%3E"
->(&gt;&gt;&gt;&gt;)</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%26%26%26%26"
->(&amp;&amp;&amp;&amp;)</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b (b, b)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%3C%2B%3E%3E"
->(&lt;+&gt;&gt;)</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aguards%27"
->guards'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Athis%27"
->this'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Athis%27%27"
->this''</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoThis"
->toThis</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetChildren%27"
->getChildren'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrl%27"
->getAttrl'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amulti%27"
->multi'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adeep%27"
->deep'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxIndex"
->xIndex</A
-> :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> [b] b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxString"
->xString</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxNumber%27"
->xNumber'</A
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> XPNumber</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdeadEndStreet"
->deadEndStreet</A
-> :: Monad m =&gt; m a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompXPath"
->compXPath</A
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompXP"
->compXP</A
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompFP"
->compFP</A
-> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompLP"
->compLP</A
-> :: MonadPlus m =&gt; [XStep] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompXS"
->compXS</A
-> :: MonadPlus m =&gt; XStep -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompNTE"
->compNTE</A
-> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompNTA"
->compNTA</A
-> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompNameT"
->compNameT</A
-> :: Monad m =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompNT"
->compNT</A
-> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompPred"
->compPred</A
-> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompPred1"
->compPred1</A
-> :: MonadPlus m =&gt; Expr -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompRelPathExpr"
->compRelPathExpr</A
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompStringExpr"
->compStringExpr</A
-> :: MonadPlus m =&gt; Expr -&gt; m String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompNumberExpr"
->compNumberExpr</A
-> :: MonadPlus m =&gt; Expr -&gt; m XPNumber</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompIntExpr"
->compIntExpr</A
-> :: MonadPlus m =&gt; Expr -&gt; m Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompBoolExpr"
->compBoolExpr</A
-> :: MonadPlus m =&gt; Expr -&gt; m Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompGenExpr"
->compGenExpr</A
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompString"
->compString</A
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompNumber"
->compNumber</A
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompBool"
->compBool</A
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcompPath"
->compPath</A
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoNumber"
->toNumber</A
-> :: String -&gt; XPNumber</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalNodeSet"
->equalNodeSet</A
-> :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDoc"
-></A
-><B
->getXPathTreesInDoc</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same Functionality as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
-></A
-><B
->getXPathTreesInDocWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same Functionality as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
->getXPathTreesInDocWithNsEnv</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTrees"
-></A
-><B
->getXPathTrees</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same Functionality as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
->getXPathTrees</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesWithNsEnv"
-></A
-><B
->getXPathTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same Functionality as <TT
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
->getXPathTreesWithNsEnv</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtryGetXPath"
-></A
-><B
->tryGetXPath</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesWithNsEnvSimple"
-></A
-><B
->getXPathTreesWithNsEnvSimple</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The xpath interpreter for simple xpath expressions.
-</P
-><P
->In case of a too complicated or illegal xpath expression an error
- node is returned, else the list of selected XML trees
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXP"
-></A
-><B
->getXP</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXPArrow"
-></A
-><B
->XPArrow</B
-> b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b c)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amk"
-></A
-><B
->mk</B
-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b c</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aunwrap"
-></A
-><B
->unwrap</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%3E%3E%3E%3E"
-></A
-><B
->(&gt;&gt;&gt;&gt;)</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%26%26%26%26"
-></A
-><B
->(&amp;&amp;&amp;&amp;)</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b (b, b)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%3C%2B%3E%3E"
-></A
-><B
->(&lt;+&gt;&gt;)</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aguards%27"
-></A
-><B
->guards'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Athis%27"
-></A
-><B
->this'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Athis%27%27"
-></A
-><B
->this''</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoThis"
-></A
-><B
->toThis</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetChildren%27"
-></A
-><B
->getChildren'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrl%27"
-></A
-><B
->getAttrl'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amulti%27"
-></A
-><B
->multi'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adeep%27"
-></A
-><B
->deep'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxIndex"
-></A
-><B
->xIndex</B
-> :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> [b] b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxString"
-></A
-><B
->xString</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxNumber%27"
-></A
-><B
->xNumber'</B
-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> XPNumber</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdeadEndStreet"
-></A
-><B
->deadEndStreet</B
-> :: Monad m =&gt; m a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompXPath"
-></A
-><B
->compXPath</B
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompXP"
-></A
-><B
->compXP</B
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompFP"
-></A
-><B
->compFP</B
-> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompLP"
-></A
-><B
->compLP</B
-> :: MonadPlus m =&gt; [XStep] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompXS"
-></A
-><B
->compXS</B
-> :: MonadPlus m =&gt; XStep -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompNTE"
-></A
-><B
->compNTE</B
-> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompNTA"
-></A
-><B
->compNTA</B
-> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompNameT"
-></A
-><B
->compNameT</B
-> :: Monad m =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompNT"
-></A
-><B
->compNT</B
-> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompPred"
-></A
-><B
->compPred</B
-> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompPred1"
-></A
-><B
->compPred1</B
-> :: MonadPlus m =&gt; Expr -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompRelPathExpr"
-></A
-><B
->compRelPathExpr</B
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompStringExpr"
-></A
-><B
->compStringExpr</B
-> :: MonadPlus m =&gt; Expr -&gt; m String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompNumberExpr"
-></A
-><B
->compNumberExpr</B
-> :: MonadPlus m =&gt; Expr -&gt; m XPNumber</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompIntExpr"
-></A
-><B
->compIntExpr</B
-> :: MonadPlus m =&gt; Expr -&gt; m Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompBoolExpr"
-></A
-><B
->compBoolExpr</B
-> :: MonadPlus m =&gt; Expr -&gt; m Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompGenExpr"
-></A
-><B
->compGenExpr</B
-> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompString"
-></A
-><B
->compString</B
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompNumber"
-></A
-><B
->compNumber</B
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompBool"
-></A
-><B
->compBool</B
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcompPath"
-></A
-><B
->compPath</B
-> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->XPArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoNumber"
-></A
-><B
->toNumber</B
-> :: String -&gt; XPNumber</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalNodeSet"
-></A
-><B
->equalNodeSet</B
-> :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html
+++ /dev/null
@@ -1,4053 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XmlArrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlArrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: 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
->All arrows use IO and a global state for options, errorhandling, ...
-</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"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> a) =&gt; <A HREF="#t%3AArrowXml"
->ArrowXml</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisText"
->isText</A
-> :: a <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="decl"
-><A HREF="#v%3AisCharRef"
->isCharRef</A
-> :: a <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="decl"
-><A HREF="#v%3AisEntityRef"
->isEntityRef</A
-> :: a <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="decl"
-><A HREF="#v%3AisCmt"
->isCmt</A
-> :: a <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="decl"
-><A HREF="#v%3AisCdata"
->isCdata</A
-> :: a <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="decl"
-><A HREF="#v%3AisPi"
->isPi</A
-> :: a <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="decl"
-><A HREF="#v%3AisXmlPi"
->isXmlPi</A
-> :: a <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="decl"
-><A HREF="#v%3AisElem"
->isElem</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTD"
->isDTD</A
-> :: a <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="decl"
-><A HREF="#v%3AisAttr"
->isAttr</A
-> :: a <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="decl"
-><A HREF="#v%3AisError"
->isError</A
-> :: a <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="decl"
-><A HREF="#v%3AisRoot"
->isRoot</A
-> :: a <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="decl"
-><A HREF="#v%3AhasText"
->hasText</A
-> :: (String -&gt; Bool) -&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="decl"
-><A HREF="#v%3AisWhiteSpace"
->isWhiteSpace</A
-> :: a <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="decl"
-><A HREF="#v%3AhasNameWith"
->hasNameWith</A
-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasQName"
->hasQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasName"
->hasName</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasLocalPart"
->hasLocalPart</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamePrefix"
->hasNamePrefix</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamespaceUri"
->hasNamespaceUri</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttr"
->hasAttr</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasQAttr"
->hasQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttrValue"
->hasAttrValue</A
-> :: String -&gt; (String -&gt; Bool) -&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="decl"
-><A HREF="#v%3AhasQAttrValue"
->hasQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkText"
->mkText</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCharRef"
->mkCharRef</A
-> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkEntityRef"
->mkEntityRef</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCmt"
->mkCmt</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCdata"
->mkCdata</A
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkError"
->mkError</A
-> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkElement"
->mkElement</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkAttr"
->mkAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPi"
->mkPi</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amkqelem"
->mkqelem</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amkelem"
->mkelem</A
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aaelem"
->aelem</A
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aselem"
->selem</A
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aeelem"
->eelem</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aroot"
->root</A
-> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqattr"
->qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aattr"
->attr</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atxt"
->txt</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcharRef"
->charRef</A
-> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AentityRef"
->entityRef</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acmt"
->cmt</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awarn"
->warn</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aerr"
->err</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Afatal"
->fatal</A
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aspi"
->spi</A
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asqattr"
->sqattr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asattr"
->sattr</A
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetText"
->getText</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetCharRef"
->getCharRef</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetEntityRef"
->getEntityRef</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetCmt"
->getCmt</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetCdata"
->getCdata</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetPiName"
->getPiName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetPiContent"
->getPiContent</A
-> :: a <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="decl"
-><A HREF="#v%3AgetElemName"
->getElemName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrl"
->getAttrl</A
-> :: a <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="decl"
-><A HREF="#v%3AgetDTDPart"
->getDTDPart</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDAttrl"
->getDTDAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrName"
->getAttrName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetErrorLevel"
->getErrorLevel</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetErrorMsg"
->getErrorMsg</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQName"
->getQName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetName"
->getName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUniversalName"
->getUniversalName</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUniversalUri"
->getUniversalUri</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetLocalPart"
->getLocalPart</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNamePrefix"
->getNamePrefix</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNamespaceUri"
->getNamespaceUri</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrValue"
->getAttrValue</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrValue0"
->getAttrValue0</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQAttrValue"
->getQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQAttrValue0"
->getQAttrValue0</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeText"
->changeText</A
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeCmt"
->changeCmt</A
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeQName"
->changeQName</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 <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="decl"
-><A HREF="#v%3AchangeElemName"
->changeElemName</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 <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="decl"
-><A HREF="#v%3AchangeAttrName"
->changeAttrName</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 <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="decl"
-><A HREF="#v%3AchangePiName"
->changePiName</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 <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="decl"
-><A HREF="#v%3AchangeAttrValue"
->changeAttrValue</A
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeAttrl"
->changeAttrl</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetQName"
->setQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetElemName"
->setElemName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetAttrName"
->setAttrName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetPiName"
->setPiName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetAttrl"
->setAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrl"
->addAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttr"
->addAttr</A
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAttr"
->removeAttr</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveQAttr"
->removeQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttrl"
->processAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessTopDownWithAttrl"
->processTopDownWithAttrl</A
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%3D"
->(+=)</A
-> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axshow"
->xshow</A
-> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="#t%3AArrowDTD"
->ArrowDTD</A
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDDoctype"
->isDTDDoctype</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDElement"
->isDTDElement</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDContent"
->isDTDContent</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDAttlist"
->isDTDAttlist</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDEntity"
->isDTDEntity</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDPEntity"
->isDTDPEntity</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDNotation"
->isDTDNotation</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDCondSect"
->isDTDCondSect</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDName"
->isDTDName</A
-> :: a <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="decl"
-><A HREF="#v%3AisDTDPERef"
->isDTDPERef</A
-> :: a <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="decl"
-><A HREF="#v%3AhasDTDAttr"
->hasDTDAttr</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDAttrValue"
->getDTDAttrValue</A
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetDTDAttrValue"
->setDTDAttrValue</A
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDElem"
->mkDTDElem</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDDoctype"
->mkDTDDoctype</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDElement"
->mkDTDElement</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDEntity"
->mkDTDEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDTDPEntity"
->mkDTDPEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->ArrowTree</A
-> a) =&gt; <A NAME="t%3AArrowXml"
-></A
-><B
->ArrowXml</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCharRef"
-></A
-><B
->isCharRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for char reference, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEntityRef"
-></A
-><B
->isEntityRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for entity reference, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCmt"
-></A
-><B
->isCmt</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for comment
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCdata"
-></A
-><B
->isCdata</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for CDATA section, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlPi"
-></A
-><B
->isXmlPi</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for processing instruction &lt;?xml ...&gt;
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElem"
-></A
-><B
->isElem</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for element
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTD"
-></A
-><B
->isDTD</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for DTD part, used during parsing
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for attribute tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for error message
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRoot"
-></A
-><B
->isRoot</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test for root node (element with name &quot;/&quot;)
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasText"
-></A
-><B
->hasText</B
-> :: (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test for text nodes with text, for which a predicate holds
-</P
-><P
->example: <TT
->hasText (all (`elem` &quot; \t\n&quot;))</TT
-> check for text nodes with only whitespace content
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWhiteSpace"
-></A
-><B
->isWhiteSpace</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test for text nodes with only white space
-</P
-><P
->implemented with hasTest
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNameWith"
-></A
-><B
->hasNameWith</B
-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node (element, attribute, pi) has a name with a special property
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasQName"
-></A
-><B
->hasQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node (element, attribute, pi) has a specific qualified name
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasName"
-></A
-><B
->hasName</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific name (prefix:localPart ore localPart),
- generally useful, even without namespace handling
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasLocalPart"
-></A
-><B
->hasLocalPart</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific name as local part,
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNamePrefix"
-></A
-><B
->hasNamePrefix</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific name prefix,
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNamespaceUri"
-></A
-><B
->hasNamespaceUri</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether a node has a specific namespace URI
- useful only after namespace propagation
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttr"
-></A
-><B
->hasAttr</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute node with a specific name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasQAttr"
-></A
-><B
->hasQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute node with a specific qualified name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttrValue"
-></A
-><B
->hasAttrValue</B
-> :: String -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute with a specific value
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasQAttrValue"
-></A
-><B
->hasQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether an element node has an attribute with a qualified name and a specific value
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkText"
-></A
-><B
->mkText</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->text node construction arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCharRef"
-></A
-><B
->mkCharRef</B
-> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->char reference construction arrow, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkEntityRef"
-></A
-><B
->mkEntityRef</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->entity reference construction arrow, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCmt"
-></A
-><B
->mkCmt</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->comment node construction, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCdata"
-></A
-><B
->mkCdata</B
-> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->CDATA construction, useful for document output
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkError"
-></A
-><B
->mkError</B
-> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->error node construction, useful only internally
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkElement"
-></A
-><B
->mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->element construction:
- | the attributes and the content of the element are computed by applying arrows
- to the input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAttr"
-></A
-><B
->mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->attribute node construction:
- | the attribute value is computed by applying an arrow to the input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPi"
-></A
-><B
->mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->processing instruction construction:
- | the content of the processing instruction is computed by applying an arrow to the input
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amkqelem"
-></A
-><B
->mkqelem</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient arrow for element construction, more comfortable variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</P
-><P
->example for simplifying <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
-> :
-</P
-><PRE
-> mkElement qn (a1 &lt;+&gt; ... &lt;+&gt; ai) (c1 &lt;+&gt; ... &lt;+&gt; cj)
-</PRE
-><P
->equals
-</P
-><PRE
-> mkqelem qn [a1,...,ai] [c1,...,cj]
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amkelem"
-></A
-><B
->mkelem</B
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aaelem"
-></A
-><B
->aelem</B
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for element constrution with attributes but without content, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aselem"
-></A
-><B
->selem</B
-> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for simple element constrution without attributes, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aeelem"
-></A
-><B
->eelem</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for constrution of empty elements without attributes, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"
->mkelem</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->mkElement</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aroot"
-></A
-><B
->root</B
-> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->construction of an element node with name &quot;/&quot; for document roots
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqattr"
-></A
-><B
->qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->alias for <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aattr"
-></A
-><B
->attr</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->convenient arrow for attribute constrution, simple variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atxt"
-></A
-><B
->txt</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharRef"
-></A
-><B
->charRef</B
-> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for char reference nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityRef"
-></A
-><B
->entityRef</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for entity reference nodes
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acmt"
-></A
-><B
->cmt</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for comment
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Awarn"
-></A
-><B
->warn</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for warning
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aerr"
-></A
-><B
->err</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for errors
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Afatal"
-></A
-><B
->fatal</B
-> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for fatal errors
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aspi"
-></A
-><B
->spi</B
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for simple processing instructions, see <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
->mkPi</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asqattr"
-></A
-><B
->sqattr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for attribute nodes, attribute name is a qualified name and value is a text,
- | see also <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"
->qattr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"
->attr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asattr"
-></A
-><B
->sattr</B
-> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constant arrow for attribute nodes, attribute name and value are
- | given by parameters, see <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->mkAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetText"
-></A
-><B
->getText</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the text of a text node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCharRef"
-></A
-><B
->getCharRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the value of a char reference
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetEntityRef"
-></A
-><B
->getEntityRef</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of a entity reference node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCmt"
-></A
-><B
->getCmt</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the comment of a comment node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCdata"
-></A
-><B
->getCdata</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the content of a CDATA node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPiName"
-></A
-><B
->getPiName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of a processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPiContent"
-></A
-><B
->getPiContent</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the content of a processing instruction
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemName"
-></A
-><B
->getElemName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the attribute list of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDPart"
-></A
-><B
->getDTDPart</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the DTD type of a DTD node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDAttrl"
-></A
-><B
->getDTDAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the DTD attributes of a DTD node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrName"
-></A
-><B
->getAttrName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of an attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorLevel"
-></A
-><B
->getErrorLevel</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the error level (c_warn, c_err, c_fatal) from an error node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorMsg"
-></A
-><B
->getErrorMsg</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the error message from an error node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQName"
-></A
-><B
->getQName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the qualified name from an element, attribute or pi
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the prefix:localPart or localPart from an element, attribute or pi
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalName"
-></A
-><B
->getUniversalName</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the univeral name ({namespace URI} ++ localPart)
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalUri"
-></A
-><B
->getUniversalUri</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the univeral name (namespace URI ++ localPart)
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetLocalPart"
-></A
-><B
->getLocalPart</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the local part
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamePrefix"
-></A
-><B
->getNamePrefix</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name prefix
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamespaceUri"
-></A
-><B
->getNamespaceUri</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the namespace URI
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrValue"
-></A
-><B
->getAttrValue</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the value of an attribute of an element node,
- always succeeds with empty string as default value &quot;&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrValue0"
-></A
-><B
->getAttrValue0</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
->getAttrValue</A
-></TT
->, but fails if the attribute does not exist
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQAttrValue"
-></A
-><B
->getQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"
->getAttrValue</A
-></TT
->, but select the value of an attribute given by a qualified name,
- always succeeds with empty string as default value &quot;&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQAttrValue0"
-></A
-><B
->getQAttrValue0</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
->like <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"
->getQAttrValue</A
-></TT
->, but fails if attribute does not exist
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeText"
-></A
-><B
->changeText</B
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit the string of a text node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeCmt"
-></A
-><B
->changeCmt</B
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit the comment string of a comment node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeQName"
-></A
-><B
->changeQName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an element-, attribute- or pi- name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeElemName"
-></A
-><B
->changeElemName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an element name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrName"
-></A
-><B
->changeAttrName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangePiName"
-></A
-><B
->changePiName</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 <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit a pi name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrValue"
-></A
-><B
->changeAttrValue</B
-> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an attribute value
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrl"
-></A
-><B
->changeAttrl</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit an attribute list of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetQName"
-></A
-><B
->setQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an element, attribute or pi name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetElemName"
-></A
-><B
->setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an element name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttrName"
-></A
-><B
->setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetPiName"
-></A
-><B
->setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an element name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttrl"
-></A
-><B
->setAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an atribute list of an element node
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttrl"
-></A
-><B
->addAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add a list of attributes list to an element
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add (or replace) an attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAttr"
-></A
-><B
->removeAttr</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove an attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveQAttr"
-></A
-><B
->removeQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove an attribute with a qualified name
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttrl"
-></A
-><B
->processAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->process the attributes of an element node with an arrow
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessTopDownWithAttrl"
-></A
-><B
->processTopDownWithAttrl</B
-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->process a whole tree inclusive attribute list of element nodes
- see also: <TT
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
->processTopDown</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%3D"
-></A
-><B
->(+=)</B
-> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient op for adding attributes or children to a node
-</P
-><P
->usage: <TT
-> tf += cf </TT
->
-</P
-><P
->the <TT
->tf</TT
-> arrow computes an element node, and all trees computed by <TT
->cf</TT
-> are
- added to this node, if a tree is an attribute, it is inserted in the attribute list
- else it is appended to the content list.
-</P
-><P
->attention: do not build long content list this way because <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
->+=</A
-></TT
-> is implemented by ++
-</P
-><P
->examples:
-</P
-><PRE
-> eelem &quot;a&quot;
-   += sattr &quot;href&quot; &quot;page.html&quot;
-   += sattr &quot;name&quot; &quot;here&quot;
-   += txt &quot;look here&quot;
-</PRE
-><P
->is the same as
-</P
-><PRE
-> mkelem [ sattr &quot;href&quot; &quot;page.html&quot;
-        , sattr &quot;name&quot; &quot;here&quot;
-        ]
-        [ txt &quot;look here&quot; ]
-</PRE
-><P
->and results in the XML fragment: &lt;a href=&quot;page.html&quot; name=&quot;here&quot;&gt;look here&lt;/a&gt;
-</P
-><P
->advantage of the <TT
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"
->+=</A
-></TT
-> operator is, that attributes and content can be added
- any time step by step.
- if <TT
->tf</TT
-> computes a whole list of trees, e.g. a list of &quot;td&quot; or &quot;tr&quot; elements,
- the attributes or content is added to all trees. useful for adding &quot;class&quot; or &quot;style&quot; attributes
- to table elements.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axshow"
-></A
-><B
->xshow</B
-> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n String</TD
-></TR
-><TR
-><TD CLASS="doc"
->apply an arrow to the input and convert the resulting XML trees into a string representation
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowXml')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowXml" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A NAME="t%3AArrowDTD"
-></A
-><B
->ArrowDTD</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Document Type Definition arrows
-</P
-><P
->These are separated, because they are not needed for document processing,
-only when processing the DTD, e.g. for generating access funtions for the toolbox
-from a DTD (se example DTDtoHaskell in the examples directory)
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTDDoctype"
-></A
-><B
->isDTDDoctype</B
-> :: a <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 NAME="v%3AisDTDElement"
-></A
-><B
->isDTDElement</B
-> :: a <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 NAME="v%3AisDTDContent"
-></A
-><B
->isDTDContent</B
-> :: a <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 NAME="v%3AisDTDAttlist"
-></A
-><B
->isDTDAttlist</B
-> :: a <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 NAME="v%3AisDTDEntity"
-></A
-><B
->isDTDEntity</B
-> :: a <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 NAME="v%3AisDTDPEntity"
-></A
-><B
->isDTDPEntity</B
-> :: a <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 NAME="v%3AisDTDNotation"
-></A
-><B
->isDTDNotation</B
-> :: a <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 NAME="v%3AisDTDCondSect"
-></A
-><B
->isDTDCondSect</B
-> :: a <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 NAME="v%3AisDTDName"
-></A
-><B
->isDTDName</B
-> :: a <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 NAME="v%3AisDTDPERef"
-></A
-><B
->isDTDPERef</B
-> :: a <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 NAME="v%3AhasDTDAttr"
-></A
-><B
->hasDTDAttr</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDAttrValue"
-></A
-><B
->getDTDAttrValue</B
-> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDTDAttrValue"
-></A
-><B
->setDTDAttrValue</B
-> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDTDElem"
-></A
-><B
->mkDTDElem</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <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 NAME="v%3AmkDTDDoctype"
-></A
-><B
->mkDTDDoctype</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a n <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 NAME="v%3AmkDTDElement"
-></A
-><B
->mkDTDElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <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 NAME="v%3AmkDTDEntity"
-></A
-><B
->mkDTDEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <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 NAME="v%3AmkDTDPEntity"
-></A
-><B
->mkDTDPEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowDTD')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ArrowDTD" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
->IOLA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->LA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> s)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"
->ArrowDTD</A
-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->SLA</A
-> s)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html
+++ /dev/null
@@ -1,2904 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XmlIOStateArrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlIOStateArrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlIOStateArrow</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"
->Data Types
-</A
-></DT
-><DT
-><A HREF="#2"
->Running Arrows
-</A
-></DT
-><DT
-><A HREF="#3"
->User State Manipulation
-</A
-></DT
-><DT
-><A HREF="#4"
->Global System State Access
-</A
-></DT
-><DT
-><A HREF="#5"
->Error Message Handling
-</A
-></DT
-><DT
-><A HREF="#6"
->Document Base
-</A
-></DT
-><DT
-><A HREF="#7"
->Tracing
-</A
-></DT
-><DT
-><A HREF="#8"
->URI Manipulation
-</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: XmlIOStateArrow.hs,v 1.39 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-><P
->the basic state arrows for XML processing
-</P
-><P
->A state is needed for global processing options,
-like encoding options, document base URI, trace levels
-and error message handling
-</P
-><P
->The state is separated into a user defined state
-and a system state. The system state contains variables
-for error message handling, for tracing, for the document base
-for accessing XML documents with relative references, e.g. DTDs,
-and a global key value store. This assoc list has strings as keys
-and lists of XmlTrees as values. It is used to store arbitrary
-XML and text values, e.g. user defined global options.
-</P
-><P
->The user defined part of the store is in the default case empty, defined as ().
-It can be extended with an arbitray data type
-</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXIOState"
->XIOState</A
-> us = <A HREF="#v%3AXIOState"
->XIOState</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_sysState"
->xio_sysState</A
-> :: !<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_userState"
->xio_userState</A
-> :: !us</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXIOSysState"
->XIOSysState</A
->  = <A HREF="#v%3AXIOSys"
->XIOSys</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_trace"
->xio_trace</A
-> :: !Int</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_errorStatus"
->xio_errorStatus</A
-> :: !Int</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_errorModule"
->xio_errorModule</A
-> :: !String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_errorMsgHandler"
->xio_errorMsgHandler</A
-> :: (String -&gt; IO ())</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_errorMsgCollect"
->xio_errorMsgCollect</A
-> :: !Bool</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_errorMsgList"
->xio_errorMsgList</A
-> :: !<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_baseURI"
->xio_baseURI</A
-> :: !String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_defaultBaseURI"
->xio_defaultBaseURI</A
-> :: !String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Axio_attrList"
->xio_attrList</A
-> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c = <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->XIOState</A
-> s) b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AIOSArrow"
->IOSArrow</A
-> b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> () b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinitialState"
->initialState</A
-> :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->XIOState</A
-> us</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinitialSysState"
->initialSysState</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArunX"
->runX</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> c -&gt; IO [c]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUserState"
->getUserState</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b s</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetUserState"
->setUserState</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s s s</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeUserState"
->changeUserState</A
-> :: (b -&gt; s -&gt; s) -&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%3AwithExtendedUserState"
->withExtendedUserState</A
-> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s0 b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwithOtherUserState"
->withOtherUserState</A
-> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s0 b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysParam"
->getSysParam</A
-> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-> -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeSysParam"
->changeSysParam</A
-> :: (b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</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%3AsetParamList"
->setParamList</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</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%3AsetParam"
->setParam</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunsetParam"
->unsetParam</A
-> :: String -&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%3AgetParam"
->getParam</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <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%3AgetAllParams"
->getAllParams</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b (<A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetParamString"
->setParamString</A
-> :: String -&gt; String -&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%3AgetParamString"
->getParamString</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetParamInt"
->setParamInt</A
-> :: String -&gt; Int -&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%3AgetParamInt"
->getParamInt</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AclearErrStatus"
->clearErrStatus</A
-> :: <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%3AsetErrStatus"
->setErrStatus</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s Int Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetErrStatus"
->getErrStatus</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetErrMsgStatus"
->setErrMsgStatus</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetErrorMsgHandler"
->setErrorMsgHandler</A
-> :: Bool -&gt; (String -&gt; IO ()) -&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%3AerrorMsgStderr"
->errorMsgStderr</A
-> :: <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%3AerrorMsgCollect"
->errorMsgCollect</A
-> :: <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%3AerrorMsgStderrAndCollect"
->errorMsgStderrAndCollect</A
-> :: <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%3AerrorMsgIgnore"
->errorMsgIgnore</A
-> :: <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%3AgetErrorMessages"
->getErrorMessages</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <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%3AfilterErrorMsg"
->filterErrorMsg</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AissueWarn"
->issueWarn</A
-> :: String -&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%3AissueErr"
->issueErr</A
-> :: String -&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%3AissueFatal"
->issueFatal</A
-> :: String -&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%3AsetDocumentStatus"
->setDocumentStatus</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetDocumentStatusFromSystemState"
->setDocumentStatusFromSystemState</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdocumentStatusOk"
->documentStatusOk</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetBaseURI"
->setBaseURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetBaseURI"
->getBaseURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeBaseURI"
->changeBaseURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetDefaultBaseURI"
->setDefaultBaseURI</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDefaultBaseURI"
->getDefaultBaseURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArunInLocalURIContext"
->runInLocalURIContext</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetTraceLevel"
->setTraceLevel</A
-> :: Int -&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%3AgetTraceLevel"
->getTraceLevel</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwithTraceLevel"
->withTraceLevel</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atrace"
->trace</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String -&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%3AtraceMsg"
->traceMsg</A
-> :: Int -&gt; String -&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
-> :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceSource"
->traceSource</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceTree"
->traceTree</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceDoc"
->traceDoc</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceState"
->traceState</A
-> :: <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%3AexpandURIString"
->expandURIString</A
-> :: String -&gt; String -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AexpandURI"
->expandURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a (String, String) String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkAbsURI"
->mkAbsURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetFragmentFromURI"
->getFragmentFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetPathFromURI"
->getPathFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetPortFromURI"
->getPortFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetQueryFromURI"
->getQueryFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetRegNameFromURI"
->getRegNameFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSchemeFromURI"
->getSchemeFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUserInfoFromURI"
->getUserInfoFromURI</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="1"
->Data Types
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXIOState"
-></A
-><B
->XIOState</B
-> us</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->state datatype consists of a system state and a user state
- the user state is not fixed
-</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%3AXIOState"
-></A
-><B
->XIOState</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%3Axio_sysState"
-></A
-><B
->xio_sysState</B
-> :: !<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_userState"
-></A
-><B
->xio_userState</B
-> :: !us</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XIOState')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XIOState" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> us =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->XIOState</A
-> us)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXIOSysState"
-></A
-><B
->XIOSysState</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->predefined system state data type with all components for the
- system functions, like trace, error handling, ...
-</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%3AXIOSys"
-></A
-><B
->XIOSys</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%3Axio_trace"
-></A
-><B
->xio_trace</B
-> :: !Int</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_errorStatus"
-></A
-><B
->xio_errorStatus</B
-> :: !Int</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_errorModule"
-></A
-><B
->xio_errorModule</B
-> :: !String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_errorMsgHandler"
-></A
-><B
->xio_errorMsgHandler</B
-> :: (String -&gt; IO ())</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_errorMsgCollect"
-></A
-><B
->xio_errorMsgCollect</B
-> :: !Bool</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_errorMsgList"
-></A
-><B
->xio_errorMsgList</B
-> :: !<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_baseURI"
-></A
-><B
->xio_baseURI</B
-> :: !String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_defaultBaseURI"
-></A
-><B
->xio_defaultBaseURI</B
-> :: !String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3Axio_attrList"
-></A
-><B
->xio_attrList</B
-> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XIOSysState')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XIOSysState" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AIOStateArrow"
-></A
-><B
->IOStateArrow</B
-> s b c = <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
->IOSLA</A
-> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->XIOState</A
-> s) b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->The arrow type for stateful arrows
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AIOSArrow"
-></A
-><B
->IOSArrow</B
-> b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> () b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->The arrow for stateful arrows with no user defined state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="2"
->Running Arrows
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinitialState"
-></A
-><B
->initialState</B
-> :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"
->XIOState</A
-> us</TD
-></TR
-><TR
-><TD CLASS="doc"
->the default global state, used as initial state when running an <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-></TT
-> with <TT
-><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"
->runIOSLA</A
-></TT
-> or
- <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"
->runX</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinitialSysState"
-></A
-><B
->initialSysState</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArunX"
-></A
-><B
->runX</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> c -&gt; IO [c]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply an <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-></TT
-> to an empty root node with <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"
->initialState</A
-></TT
-> () as initial state
-</P
-><P
->the main entry point for running a state arrow with IO
-</P
-><P
->when running <TT
-> runX f</TT
-> an empty XML root node is applied to <TT
->f</TT
->.
- usually <TT
->f</TT
-> will start with a constant arrow (ignoring the input), e.g. a <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
->readDocument</A
-></TT
-> arrow.
-</P
-><P
->for usage see examples with <TT
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->
-</P
-><P
->if input has to be feed into the arrow use <TT
-><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"
->runIOSLA</A
-></TT
-> like in <TT
-> runIOSLA f emptyX inputDoc </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="3"
->User State Manipulation
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUserState"
-></A
-><B
->getUserState</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b s</TD
-></TR
-><TR
-><TD CLASS="doc"
->read the user defined part of the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetUserState"
-></A
-><B
->setUserState</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s s s</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the user defined part of the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeUserState"
-></A
-><B
->changeUserState</B
-> :: (b -&gt; s -&gt; s) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->change the user defined part of the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwithExtendedUserState"
-></A
-><B
->withExtendedUserState</B
-> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s0 b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->extend user state
-</P
-><P
->Run an arrow with an extended user state component, The old component
- is stored together with a new one in a pair, the arrow is executed with this
- extended state, and the augmented state component is removed form the state
- when the arrow has finished its execution
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwithOtherUserState"
-></A
-><B
->withOtherUserState</B
-> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s0 b c</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->change the type of user state
-</P
-><P
->This conversion is useful, when running a state arrow with another
- structure of the user state, e.g. with () when executing some IO arrows
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="4"
->Global System State Access
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysParam"
-></A
-><B
->getSysParam</B
-> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-> -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeSysParam"
-></A
-><B
->changeSysParam</B
-> :: (b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"
->XIOSysState</A
->) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetParamList"
-></A
-><B
->setParamList</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->store a list of XML trees in global system state under a given attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetParam"
-></A
-><B
->setParam</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->store a single XML tree in global state under a given attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunsetParam"
-></A
-><B
->unsetParam</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->remove an entry in global state, arrow input remains unchanged
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetParam"
-></A
-><B
->getParam</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->read an attribute value from global state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAllParams"
-></A
-><B
->getAllParams</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b (<A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->)</TD
-></TR
-><TR
-><TD CLASS="doc"
->read all attributes from global state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetParamString"
-></A
-><B
->setParamString</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetParamString"
-></A
-><B
->getParamString</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="doc"
->read a string value from global state,
- if parameter not set &quot;&quot; is returned
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetParamInt"
-></A
-><B
->setParamInt</B
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->store an int value in global state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetParamInt"
-></A
-><B
->getParamInt</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b Int</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read an int value from global state
-</P
-><PRE
-> getParamInt 0 myIntAttr
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="5"
->Error Message Handling
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AclearErrStatus"
-></A
-><B
->clearErrStatus</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetErrStatus"
-></A
-><B
->setErrStatus</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s Int Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->set global error variable
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrStatus"
-></A
-><B
->getErrStatus</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->read current global error status
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetErrMsgStatus"
-></A
-><B
->setErrMsgStatus</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->raise the global error status level to that of the input tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetErrorMsgHandler"
-></A
-><B
->setErrorMsgHandler</B
-> :: Bool -&gt; (String -&gt; IO ()) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the error message handler and the flag for collecting the errors
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgStderr"
-></A
-><B
->errorMsgStderr</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->the default error message handler: error output to stderr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgCollect"
-></A
-><B
->errorMsgCollect</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->error message handler for collecting errors
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgStderrAndCollect"
-></A
-><B
->errorMsgStderrAndCollect</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->error message handler for output to stderr and collecting
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgIgnore"
-></A
-><B
->errorMsgIgnore</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->error message handler for ignoring errors
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorMessages"
-></A
-><B
->getErrorMessages</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->if error messages are collected by the error handler for
- processing these messages by the calling application,
- this arrow reads the stored messages and clears the error message store
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfilterErrorMsg"
-></A
-><B
->filterErrorMsg</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter error messages from input trees and issue errors
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueWarn"
-></A
-><B
->issueWarn</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->generate a warnig message
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueErr"
-></A
-><B
->issueErr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->generate an error message
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueFatal"
-></A
-><B
->issueFatal</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->generate a fatal error message, e.g. document not found
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDocumentStatus"
-></A
-><B
->setDocumentStatus</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add the error level and the module where the error occured
- to the attributes of a document root node and remove the children when level is greater or equal to <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->.
- called by <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"
->setDocumentStatusFromSystemState</A
-></TT
-> when the system state indicates an error
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDocumentStatusFromSystemState"
-></A
-><B
->setDocumentStatusFromSystemState</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->check whether the error level attribute in the system state
- is set to error, in this case the children of the document root are
- removed and the module name where the error occured and the error level are added as attributes with <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"
->setDocumentStatus</A
-></TT
->
- else nothing is changed
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdocumentStatusOk"
-></A
-><B
->documentStatusOk</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->check whether tree is a document root and the status attribute has a value less than <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="6"
->Document Base
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetBaseURI"
-></A
-><B
->setBaseURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the base URI of a document, used e.g. for reading includes, e.g. external entities,
- the input must be an absolute URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetBaseURI"
-></A
-><B
->getBaseURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="doc"
->read the base URI from the globale state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeBaseURI"
-></A
-><B
->changeBaseURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->change the base URI with a possibly relative URI, can be used for
- evaluating the xml:base attribute. Returns the new absolute base URI.
- Fails, if input is not parsable with parseURIReference
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"
->setBaseURI</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"
->mkAbsURI</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDefaultBaseURI"
-></A
-><B
->setDefaultBaseURI</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the default base URI, if parameter is null, the system base (<TT
-> file:///&lt;cwd&gt;/ </TT
->) is used,
- else the parameter, must be called before any document is read
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDefaultBaseURI"
-></A
-><B
->getDefaultBaseURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String</TD
-></TR
-><TR
-><TD CLASS="doc"
->get the default base URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArunInLocalURIContext"
-></A
-><B
->runInLocalURIContext</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->remember base uri, run an arrow and restore the base URI, used with external entity substitution
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="7"
->Tracing
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetTraceLevel"
-></A
-><B
->setTraceLevel</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the global trace level
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetTraceLevel"
-></A
-><B
->getTraceLevel</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->read the global trace level
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwithTraceLevel"
-></A
-><B
->withTraceLevel</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b c</TD
-></TR
-><TR
-><TD CLASS="doc"
->run an arrow with a given trace level, the old trace level is restored after the arrow execution
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atrace"
-></A
-><B
->trace</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->apply a trace arrow and issue message to stderr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceMsg"
-></A
-><B
->traceMsg</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->issue a string message as trace 
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceString"
-></A
-><B
->traceString</B
-> :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->issue the string input of an arrow
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceSource"
-></A
-><B
->traceSource</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->issue the source representation of a document if trace level &gt;= 3
-</P
-><P
->for better readability the source is formated with indentDoc
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceTree"
-></A
-><B
->traceTree</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->issue the tree representation of a document if trace level &gt;= 4
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceDoc"
-></A
-><B
->traceDoc</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->trace a main computation step
- issue a message when trace level &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 4
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceState"
-></A
-><B
->traceState</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s b b</TD
-></TR
-><TR
-><TD CLASS="doc"
->trace the global state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="8"
->URI Manipulation
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AexpandURIString"
-></A
-><B
->expandURIString</B
-> :: String -&gt; String -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="doc"
->compute the absolut URI for a given URI and a base URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AexpandURI"
-></A
-><B
->expandURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a (String, String) String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow variant of <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"
->expandURIString</A
-></TT
->, fails if <TT
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"
->expandURIString</A
-></TT
-> returns Nothing
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAbsURI"
-></A
-><B
->mkAbsURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetFragmentFromURI"
-></A
-><B
->getFragmentFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for computing the fragment component of an URI, fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPathFromURI"
-></A
-><B
->getPathFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for computing the path component of an URI, fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPortFromURI"
-></A
-><B
->getPortFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for selecting the port number of the URI without leading ':', fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetQueryFromURI"
-></A
-><B
->getQueryFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for computing the query component of an URI, fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRegNameFromURI"
-></A
-><B
->getRegNameFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSchemeFromURI"
-></A
-><B
->getSchemeFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.
-</P
-><P
->See Network.URI for URI components
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUserInfoFromURI"
-></A
-><B
->getUserInfoFromURI</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a String String</TD
-></TR
-><TR
-><TD CLASS="doc"
->arrow for selecting the user info of the URI without trailing '@', fails if input is not a legal URI
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html
+++ /dev/null
@@ -1,1075 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XmlNode</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNode.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlNode</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlNode.hs,v 1.14 2006<EM
->08</EM
->28 19:14:15 hxml Exp $
-</P
-><P
->Interface for XmlArrow to basic data types NTree and XmlTree
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3AXmlNode"
-></A
-><B
->XmlNode</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCharRef"
-></A
-><B
->isCharRef</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEntityRef"
-></A
-><B
->isEntityRef</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCmt"
-></A
-><B
->isCmt</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCdata"
-></A
-><B
->isCdata</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElem"
-></A
-><B
->isElem</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRoot"
-></A
-><B
->isRoot</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTD"
-></A
-><B
->isDTD</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkText"
-></A
-><B
->mkText</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCharRef"
-></A
-><B
->mkCharRef</B
-> :: Int -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkEntityRef"
-></A
-><B
->mkEntityRef</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCmt"
-></A
-><B
->mkCmt</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCdata"
-></A
-><B
->mkCdata</B
-> :: String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPi"
-></A
-><B
->mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkError"
-></A
-><B
->mkError</B
-> :: Int -&gt; String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetText"
-></A
-><B
->getText</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCharRef"
-></A
-><B
->getCharRef</B
-> :: a -&gt; Maybe Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetEntityRef"
-></A
-><B
->getEntityRef</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCmt"
-></A
-><B
->getCmt</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetCdata"
-></A
-><B
->getCdata</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetPiName"
-></A
-><B
->getPiName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetPiContent"
-></A
-><B
->getPiContent</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemName"
-></A
-><B
->getElemName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDPart"
-></A
-><B
->getDTDPart</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDAttrl"
-></A
-><B
->getDTDAttrl</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrName"
-></A
-><B
->getAttrName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetErrorLevel"
-></A
-><B
->getErrorLevel</B
-> :: a -&gt; Maybe Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorMsg"
-></A
-><B
->getErrorMsg</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: a -&gt; Maybe <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 NAME="v%3AgetQualifiedName"
-></A
-><B
->getQualifiedName</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalName"
-></A
-><B
->getUniversalName</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUniversalUri"
-></A
-><B
->getUniversalUri</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetLocalPart"
-></A
-><B
->getLocalPart</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamePrefix"
-></A
-><B
->getNamePrefix</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamespaceUri"
-></A
-><B
->getNamespaceUri</B
-> :: a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeText"
-></A
-><B
->changeText</B
-> :: (String -&gt; String) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeCmt"
-></A
-><B
->changeCmt</B
-> :: (String -&gt; String) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeName"
-></A
-><B
->changeName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeElemName"
-></A
-><B
->changeElemName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrl"
-></A
-><B
->changeAttrl</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeAttrName"
-></A
-><B
->changeAttrName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangePiName"
-></A
-><B
->changePiName</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 -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeDTDAttrl"
-></A
-><B
->changeDTDAttrl</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->) -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetText"
-></A
-><B
->setText</B
-> :: String -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetCmt"
-></A
-><B
->setCmt</B
-> :: String -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetName"
-></A
-><B
->setName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetElemName"
-></A
-><B
->setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetElemAttrl"
-></A
-><B
->setElemAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttrName"
-></A
-><B
->setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetPiName"
-></A
-><B
->setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDTDAttrl"
-></A
-><B
->setDTDAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; a -&gt; a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNode')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XmlNode" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkElementNode"
-></A
-><B
->mkElementNode</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAttrNode"
-></A
-><B
->mkAttrNode</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDTDNode"
-></A
-><B
->mkDTDNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkElement"
-></A
-><B
->mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRoot"
-></A
-><B
->mkRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAttr"
-></A
-><B
->mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDTDElem"
-></A
-><B
->mkDTDElem</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmergeAttrl"
-></A
-><B
->mergeAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></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="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow.html
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: Arrow.hs,v 1.12 2006<EM
->11</EM
->11 15:36:04 hxml Exp $
-</P
-><P
->The HXT arrow interface
-</P
-><P
->The application programming interface to the arrow modules of the Haskell XML Toolbox.
-   This module exports all important arrows for input, output, parsing, validating and transforming XML.
-   It also exports all basic datatypes and functions of the toolbox.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Control-Arrow-ListArrows.html"
->Control.Arrow.ListArrows</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-DOMInterface.html"
->Text.XML.HXT.Arrow.DOMInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
->Text.XML.HXT.Arrow.XmlArrow</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XPath.html"
->Text.XML.HXT.Arrow.XPath</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-DocumentInput.html"
->Text.XML.HXT.Arrow.DocumentInput</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-DocumentOutput.html"
->Text.XML.HXT.Arrow.DocumentOutput</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-Edit.html"
->Text.XML.HXT.Arrow.Edit</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"
->Text.XML.HXT.Arrow.GeneralEntitySubstitution</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-Namespace.html"
->Text.XML.HXT.Arrow.Namespace</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-ProcessDocument.html"
->Text.XML.HXT.Arrow.ProcessDocument</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-ReadDocument.html"
->Text.XML.HXT.Arrow.ReadDocument</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-WriteDocument.html"
->Text.XML.HXT.Arrow.WriteDocument</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-Pickle.html"
->Text.XML.HXT.Arrow.Pickle</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-XSLT-XsltArrows.html"
->Text.XML.HXT.XSLT.XsltArrows</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html
+++ /dev/null
@@ -1,248 +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.IsoLatinTables</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/IsoLatinTables.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.IsoLatinTables</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_2"
-></A
-><B
->iso_8859_2</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_3"
-></A
-><B
->iso_8859_3</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_4"
-></A
-><B
->iso_8859_4</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_5"
-></A
-><B
->iso_8859_5</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_6"
-></A
-><B
->iso_8859_6</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_7"
-></A
-><B
->iso_8859_7</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_8"
-></A
-><B
->iso_8859_8</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_9"
-></A
-><B
->iso_8859_9</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_10"
-></A
-><B
->iso_8859_10</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_11"
-></A
-><B
->iso_8859_11</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_13"
-></A
-><B
->iso_8859_13</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_14"
-></A
-><B
->iso_8859_14</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_15"
-></A
-><B
->iso_8859_15</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_16"
-></A
-><B
->iso_8859_16</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html
+++ /dev/null
@@ -1,310 +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"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"
->Source code</A
-></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
-> :: NsEnv -&gt; QName -&gt; QName</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlnsQN"
->xmlnsQN</A
-> :: QName</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNCName"
->isNCName</A
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedQualifiedName"
->isWellformedQualifiedName</A
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedQName"
->isWellformedQName</A
-> :: QName -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedNSDecl"
->isWellformedNSDecl</A
-> :: QName -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDeclaredNamespace"
->isDeclaredNamespace</A
-> :: QName -&gt; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetNamespace"
-></A
-><B
->setNamespace</B
-> :: NsEnv -&gt; QName -&gt; QName</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="decl"
-><A NAME="v%3AxmlnsQN"
-></A
-><B
->xmlnsQN</B
-> :: QName</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNCName"
-></A
-><B
->isNCName</B
-> :: String -&gt; Bool</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="decl"
-><A NAME="v%3AisWellformedQualifiedName"
-></A
-><B
->isWellformedQualifiedName</B
-> :: String -&gt; Bool</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="decl"
-><A NAME="v%3AisWellformedQName"
-></A
-><B
->isWellformedQName</B
-> :: QName -&gt; Bool</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="decl"
-><A NAME="v%3AisWellformedNSDecl"
-></A
-><B
->isWellformedNSDecl</B
-> :: QName -&gt; Bool</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="decl"
-><A NAME="v%3AisDeclaredNamespace"
-></A
-><B
->isDeclaredNamespace</B
-> :: QName -&gt; Bool</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-QualifiedName.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-QualifiedName.html
+++ /dev/null
@@ -1,882 +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.QualifiedName</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/QualifiedName.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.QualifiedName</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->The core data types of the HXT DOM.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Synopsis</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AQName"
->QName</A
->  = <A HREF="#v%3AQN"
->QN</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamePrefix"
->namePrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AlocalPart"
->localPart</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamespaceUri"
->namespaceUri</A
-> :: String</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AqualifiedName"
->qualifiedName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalName"
->universalName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalUri"
->universalUri</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AbuildUniversalName"
->buildUniversalName</A
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQName"
->mkQName</A
-> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkName"
->mkName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNsName"
->mkNsName</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSNsName"
->mkSNsName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnullQName"
->nullQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQName"
->equalQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivQName"
->equivQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivUri"
->equivUri</A
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQNameBy"
->equalQNameBy</A
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNsUri"
->normalizeNsUri</A
-> :: String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AQName"
-></A
-><B
->QName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Namespace support for element and attribute names.
-</P
-><P
->A qualified name consists of a name prefix, a local name
- and a namespace uri.
- All modules, which are not namespace aware, use only the <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
->localPart</A
-></TT
-> component.
- When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
->propagateNamespaces</A
->
- to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
-</P
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AQN"
-></A
-><B
->QN</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="body" COLSPAN="2"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamePrefix"
-></A
-><B
->namePrefix</B
-> :: String</TD
-><TD CLASS="rdoc"
->the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AlocalPart"
-></A
-><B
->localPart</B
-> :: String</TD
-><TD CLASS="rdoc"
->the local part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamespaceUri"
-></A
-><B
->namespaceUri</B
-> :: String</TD
-><TD CLASS="rdoc"
->the associated namespace uri
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:QName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AqualifiedName"
-></A
-><B
->qualifiedName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalName"
-></A
-><B
->universalName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalUri"
-></A
-><B
->universalUri</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
- where the subject, predicate and object often are concatenated from namespace uri and local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AbuildUniversalName"
-></A
-><B
->buildUniversalName</B
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
- namespace uri and local part are combined with the combining function given by the first parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQName"
-></A
-><B
->mkQName</B
-> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a complete qualified name with <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
->namePrefix</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
->localPart</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkName"
-></A
-><B
->mkName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a simple, namespace unaware name, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
->namePrefix</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
-> are set to the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPrefixLocalPart"
-></A
-><B
->mkPrefixLocalPart</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix and localPart but without a namespace uri.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
->mkSNsName</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkNsName"
-></A
-><B
->mkNsName</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSNsName"
-></A
-><B
->mkSNsName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnullQName"
-></A
-><B
->nullQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Empty QName
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQName"
-></A
-><B
->equalQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equality of QNames: Two QNames are equal, if the local parts are equal
- and the namespace URIs are equal.
- The comparison works with and without namespace propagation.
- If namespaces have been propagated, the name is split into prefix and local part
- and the namespace uri is set. In this case the prefix is not significant for equality test.
- If namespaces have not been propagated, the local part contains the full name, prefix
- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivQName"
-></A
-><B
->equivQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equivalent QNames are defined as follows: The URIs are normalized before comparison.
- Comparison is done with <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
->equalQNameBy</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
->equivUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivUri"
-></A
-><B
->equivUri</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Comparison of normalized namespace URIs using <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
->normalizeNsUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQNameBy"
-></A
-><B
->equalQNameBy</B
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Sometimes a weaker equality relation than <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
->equalQName</A
-></TT
-> is appropriate, e.g no case significance in names, ...
- a name normalization function can be applied to the strings before comparing. Called by <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
->equalQName</A
-></TT
-> and
- <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
->equivQName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNsUri"
-></A
-><B
->normalizeNsUri</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html
+++ /dev/null
@@ -1,1266 +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.TypeDefs</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.TypeDefs</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></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"
->module <A HREF="Data-AssocList.html"
->Data.AssocList</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXmlTree"
->XmlTree</A
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</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%3AXmlTrees"
->XmlTrees</A
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</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"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXNode"
->XNode</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AXText"
->XText</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXCharRef"
->XCharRef</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXEntityRef"
->XEntityRef</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXCmt"
->XCmt</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXCdata"
->XCdata</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPi"
->XPi</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXTag"
->XTag</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXDTD"
->XDTD</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXAttr"
->XAttr</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXError"
->XError</A
-> Int String</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ADTDElem"
->DTDElem</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3ADOCTYPE"
->DOCTYPE</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AELEMENT"
->ELEMENT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACONTENT"
->CONTENT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AATTLIST"
->ATTLIST</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AENTITY"
->ENTITY</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APENTITY"
->PENTITY</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANOTATION"
->NOTATION</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACONDSECT"
->CONDSECT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANAME"
->NAME</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APEREF"
->PEREF</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAttributes"
->Attributes</A
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String String</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
-> String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_ok"
->c_ok</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_warn"
->c_warn</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_err"
->c_err</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_fatal"
->c_fatal</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXmlNodeSet"
->XmlNodeSet</A
->  = <A HREF="#v%3AXNS"
->XNS</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AthisNode"
->thisNode</A
-> :: Bool</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AattrNodes"
->attrNodes</A
-> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
->]</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AchildNodes"
->childNodes</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
->ChildNodes</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AChildNodes"
->ChildNodes</A
-> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
->Text.XML.HXT.DOM.QualifiedName</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><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-AssocList.html"
->Data.AssocList</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlTree"
-></A
-><B
->XmlTree</B
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Node of xml tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlTrees"
-></A
-><B
->XmlTrees</B
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->List of nodes of xml tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXNode"
-></A
-><B
->XNode</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents elements
-</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 NAME="v%3AXText"
-></A
-><B
->XText</B
-> String</TD
-><TD CLASS="rdoc"
->ordinary text				(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXCharRef"
-></A
-><B
->XCharRef</B
-> Int</TD
-><TD CLASS="rdoc"
->character reference			(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXEntityRef"
-></A
-><B
->XEntityRef</B
-> String</TD
-><TD CLASS="rdoc"
->entity reference				(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXCmt"
-></A
-><B
->XCmt</B
-> String</TD
-><TD CLASS="rdoc"
->comment					(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXCdata"
-></A
-><B
->XCdata</B
-> String</TD
-><TD CLASS="rdoc"
->CDATA section				(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPi"
-></A
-><B
->XPi</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-><TD CLASS="rdoc"
->Processing Instr with qualified name	(leaf)
-   with list of attributes.
-   If tag name is xml, attributs are &quot;version&quot;, &quot;encoding&quot;, &quot;standalone&quot;,
-   else attribute list is empty, content is a text child node
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXTag"
-></A
-><B
->XTag</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-><TD CLASS="rdoc"
->tag with qualified name and list of attributes (inner node or leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXDTD"
-></A
-><B
->XDTD</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-><TD CLASS="rdoc"
->DTD element with assoc list for dtd element features
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXAttr"
-></A
-><B
->XAttr</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="rdoc"
->attribute with qualified name, the attribute value is stored in children
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXError"
-></A
-><B
->XError</B
-> Int String</TD
-><TD CLASS="rdoc"
->error message with level and text
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XNode')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XNode" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ADTDElem"
-></A
-><B
->DTDElem</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents a DTD element
-</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 NAME="v%3ADOCTYPE"
-></A
-><B
->DOCTYPE</B
-></TD
-><TD CLASS="rdoc"
->attr: name, system, public,	XDTD elems as children
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AELEMENT"
-></A
-><B
->ELEMENT</B
-></TD
-><TD CLASS="rdoc"
-><P
->attr: name, kind
-</P
-><P
->name: element name
-</P
-><P
->kind: &quot;EMPTY&quot; | &quot;ANY&quot; | &quot;#PCDATA&quot; | children | mixed
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACONTENT"
-></A
-><B
->CONTENT</B
-></TD
-><TD CLASS="rdoc"
-><P
->element content
-</P
-><P
->attr: kind, modifier
-</P
-><P
->modifier: &quot;&quot; | &quot;?&quot; | &quot;*&quot; | &quot;+&quot;
-</P
-><P
->kind: seq | choice
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AATTLIST"
-></A
-><B
->ATTLIST</B
-></TD
-><TD CLASS="rdoc"
-><P
->attributes:
-  name - name of element
-</P
-><P
->value - name of attribute
-</P
-><P
->type: &quot;CDATA&quot; | &quot;ID&quot; | &quot;IDREF&quot; | &quot;IDREFS&quot; | &quot;ENTITY&quot; | &quot;ENTITIES&quot; |
-</P
-><P
->&quot;NMTOKEN&quot; | &quot;NMTOKENS&quot; |&quot;NOTATION&quot; | &quot;ENUMTYPE&quot;
-</P
-><P
->kind: &quot;<A NAME="REQUIRED%5C%22%20%7C%20%5C%22"
-></A
->IMPLIED&quot; | &quot;DEFAULT&quot;
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AENTITY"
-></A
-><B
->ENTITY</B
-></TD
-><TD CLASS="rdoc"
->for entity declarations
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APENTITY"
-></A
-><B
->PENTITY</B
-></TD
-><TD CLASS="rdoc"
->for parameter entity declarations
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANOTATION"
-></A
-><B
->NOTATION</B
-></TD
-><TD CLASS="rdoc"
->for notations
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACONDSECT"
-></A
-><B
->CONDSECT</B
-></TD
-><TD CLASS="rdoc"
-><P
->for INCLUDEs, IGNOREs and peRefs: attr: type
-</P
-><P
->type = INCLUDE, IGNORE or %...;
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANAME"
-></A
-><B
->NAME</B
-></TD
-><TD CLASS="rdoc"
-><P
->attr: name
-</P
-><P
->for lists of names in notation types or nmtokens in enumeration types
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APEREF"
-></A
-><B
->PEREF</B
-></TD
-><TD CLASS="rdoc"
->for Parameter Entity References in DTDs
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDElem')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DTDElem" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAttributes"
-></A
-><B
->Attributes</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Attribute list
-</P
-><P
->used for storing option lists and features of DTD parts
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANsEnv"
-></A
-><B
->NsEnv</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String String</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="decl"
-><A NAME="v%3Ac_ok"
-></A
-><B
->c_ok</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->no error, everything is ok
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ac_warn"
-></A
-><B
->c_warn</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Error level for XError, type warning
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ac_err"
-></A
-><B
->c_err</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Error level for XError, type error
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ac_fatal"
-></A
-><B
->c_fatal</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Error level for XError, type fatal error
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXmlNodeSet"
-></A
-><B
->XmlNodeSet</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->data type for representing a set of nodes as a tree structure
-</P
-><P
->this structure is e.g. used to repesent the result of an XPath query
- such that the selected nodes can be processed or selected later in
- processing a document tree
-</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%3AXNS"
-></A
-><B
->XNS</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%3AthisNode"
-></A
-><B
->thisNode</B
-> :: Bool</TD
-><TD CLASS="rdoc"
->is this node part of the set ?
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AattrNodes"
-></A
-><B
->attrNodes</B
-> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
->]</TD
-><TD CLASS="rdoc"
->the set of attribute nodes
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AchildNodes"
-></A
-><B
->childNodes</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
->ChildNodes</A
-></TD
-><TD CLASS="rdoc"
->the set of child nodes, a list of pairs of index and node set 
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNodeSet')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XmlNodeSet" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AChildNodes"
-></A
-><B
->ChildNodes</B
-> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
->Text.XML.HXT.DOM.QualifiedName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html
+++ /dev/null
@@ -1,179 +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.UTF8Decoding</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/UTF8Decoding.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.UTF8Decoding</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"
-><P
->Version    : $Id$
-</P
-><P
->Interface for Data.Char.UTF8 funtions
-</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%3AdecodeUtf8"
->decodeUtf8</A
-> :: String -&gt; (String, [String])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdecodeUtf8EmbedErrors"
->decodeUtf8EmbedErrors</A
-> :: String -&gt; [Either String Char]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeUtf8"
-></A
-><B
->decodeUtf8</B
-> :: String -&gt; (String, [String])</TD
-></TR
-><TR
-><TD CLASS="doc"
->calls <TT
-><A HREF="Data-Char-UTF8.html#v%3Adecode"
->decode</A
-></TT
-> for parsing and decoding UTF-8
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeUtf8EmbedErrors"
-></A
-><B
->decodeUtf8EmbedErrors</B
-> :: String -&gt; [Either String Char]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html
+++ /dev/null
@@ -1,1682 +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.Unicode</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.Unicode</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"
->Unicode Type declarations
-</A
-></DT
-><DT
-><A HREF="#2"
->XML char predicates
-</A
-></DT
-><DT
-><A HREF="#3"
->UTF-8 and Unicode conversion functions
-</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$
-</P
-><P
->Unicode and UTF-8 Conversion Functions
-</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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUnicode"
->Unicode</A
-> = Char</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUString"
->UString</A
-> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUTF8Char"
->UTF8Char</A
-> = Char</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUTF8String"
->UTF8String</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUStringWithErrors"
->UStringWithErrors</A
-> = [Either String Char]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADecodingFct"
->DecodingFct</A
-> = String -&gt; (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->, [String])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-> = String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
->UStringWithErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlChar"
->isXmlChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlLatin1Char"
->isXmlLatin1Char</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlSpaceChar"
->isXmlSpaceChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXml11SpaceChar"
->isXml11SpaceChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNameChar"
->isXmlNameChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNameStartChar"
->isXmlNameStartChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNCNameChar"
->isXmlNCNameChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNCNameStartChar"
->isXmlNCNameStartChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlPubidChar"
->isXmlPubidChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlLetter"
->isXmlLetter</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlBaseChar"
->isXmlBaseChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlIdeographicChar"
->isXmlIdeographicChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlCombiningChar"
->isXmlCombiningChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlDigit"
->isXmlDigit</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlExtender"
->isXmlExtender</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlControlOrPermanentlyUndefined"
->isXmlControlOrPermanentlyUndefined</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8ToUnicode"
->utf8ToUnicode</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8ToUnicodeEmbedErrors"
->utf8ToUnicodeEmbedErrors</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Alatin1ToUnicode"
->latin1ToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2ToUnicode"
->ucs2ToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2BigEndianToUnicode"
->ucs2BigEndianToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2LittleEndianToUnicode"
->ucs2LittleEndianToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16beToUnicode"
->utf16beToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16leToUnicode"
->utf16leToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeCharToUtf8"
->unicodeCharToUtf8</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeToUtf8"
->unicodeToUtf8</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeToXmlEntity"
->unicodeToXmlEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeToLatin1"
->unicodeToLatin1</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeRemoveNoneAscii"
->unicodeRemoveNoneAscii</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeRemoveNoneLatin1"
->unicodeRemoveNoneLatin1</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintToCharRef"
->intToCharRef</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintToCharRefHex"
->intToCharRefHex</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDecodingFct"
->getDecodingFct</A
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDecodingFctEmbedErrors"
->getDecodingFctEmbedErrors</A
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetOutputEncodingFct"
->getOutputEncodingFct</A
-> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNL"
->normalizeNL</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AguessEncoding"
->guessEncoding</A
-> :: String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="1"
->Unicode Type declarations
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUnicode"
-></A
-><B
->Unicode</B
-> = Char</TD
-></TR
-><TR
-><TD CLASS="doc"
->Unicode is represented as the Char type
-   Precondition for this is the support of Unicode character range
-   in the compiler (e.g. ghc but not hugs)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUString"
-></A
-><B
->UString</B
-> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
->the type for Unicode strings
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUTF8Char"
-></A
-><B
->UTF8Char</B
-> = Char</TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-8 charachters are represented by the Char type
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUTF8String"
-></A
-><B
->UTF8String</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-8 strings are implemented as Haskell strings
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUStringWithErrors"
-></A
-><B
->UStringWithErrors</B
-> = [Either String Char]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADecodingFct"
-></A
-><B
->DecodingFct</B
-> = String -&gt; (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->, [String])</TD
-></TR
-><TR
-><TD CLASS="doc"
->Decoding function with a pair containing the result string and a list of decoding errors as result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADecodingFctEmbedErrors"
-></A
-><B
->DecodingFctEmbedErrors</B
-> = String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
->UStringWithErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Decoding function where decoding errors are interleaved with decoded characters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="2"
->XML char predicates
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlChar"
-></A
-><B
->isXmlChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for valid XML characters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlLatin1Char"
-></A
-><B
->isXmlLatin1Char</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test for a legal latin1 XML char
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlSpaceChar"
-></A
-><B
->isXmlSpaceChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML space character: \n, \r, \t and &quot; &quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXml11SpaceChar"
-></A
-><B
->isXml11SpaceChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML1.1 space character: additional space 0x85 and 0x2028
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"
->isXmlSpaceChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNameChar"
-></A
-><B
->isXmlNameChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML name character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNameStartChar"
-></A
-><B
->isXmlNameStartChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML name start character
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->isXmlNameChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNCNameChar"
-></A
-><B
->isXmlNCNameChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML NCName character: no &quot;:&quot; allowed
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->isXmlNameChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNCNameStartChar"
-></A
-><B
->isXmlNCNameStartChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML NCName start character: no &quot;:&quot; allowed
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->isXmlNameChar</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"
->isXmlNCNameChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlPubidChar"
-></A
-><B
->isXmlPubidChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML public id character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlLetter"
-></A
-><B
->isXmlLetter</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML letter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlBaseChar"
-></A
-><B
->isXmlBaseChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML base charater
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlIdeographicChar"
-></A
-><B
->isXmlIdeographicChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML ideographic charater
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlCombiningChar"
-></A
-><B
->isXmlCombiningChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML combining charater
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlDigit"
-></A
-><B
->isXmlDigit</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML digit
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlExtender"
-></A
-><B
->isXmlExtender</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML extender
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlControlOrPermanentlyUndefined"
-></A
-><B
->isXmlControlOrPermanentlyUndefined</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML control or permanently discouraged char
-</P
-><P
->see Errata to XML1.0 (http://www.w3.org/XML/xml-V10-2e-errata) No 46
-</P
-><P
->Document authors are encouraged to avoid <A HREF="compatibility characters.html"
->compatibility characters</A
->,
- as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).
- The characters defined in the following ranges are also discouraged.
- They are either control characters or permanently undefined Unicode characters:
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="3"
->UTF-8 and Unicode conversion functions
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8ToUnicode"
-></A
-><B
->utf8ToUnicode</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8ToUnicodeEmbedErrors"
-></A
-><B
->utf8ToUnicodeEmbedErrors</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Alatin1ToUnicode"
-></A
-><B
->latin1ToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->code conversion from latin1 to Unicode
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2ToUnicode"
-></A
-><B
->ucs2ToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UCS-2 to UTF-8 conversion with byte order mark analysis
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2BigEndianToUnicode"
-></A
-><B
->ucs2BigEndianToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UCS-2 big endian to Unicode conversion
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2LittleEndianToUnicode"
-></A
-><B
->ucs2LittleEndianToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UCS-2 little endian to Unicode conversion
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16beToUnicode"
-></A
-><B
->utf16beToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-16 big endian to UTF-8 conversion with removal of byte order mark
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16leToUnicode"
-></A
-><B
->utf16leToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-16 little endian to UTF-8 conversion with removal of byte order mark
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeCharToUtf8"
-></A
-><B
->unicodeCharToUtf8</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->conversion from Unicode (Char) to a UTF8 encoded string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeToUtf8"
-></A
-><B
->unicodeToUtf8</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->conversion from Unicode strings (UString) to UTF8 encoded strings.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeToXmlEntity"
-></A
-><B
->unicodeToXmlEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitute all Unicode characters, that are not legal 1-byte
- UTF-8 XML characters by a character reference.
-</P
-><P
->This function can be used to translate all text nodes and
- attribute values into pure ascii.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->unicodeToLatin1</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeToLatin1"
-></A
-><B
->unicodeToLatin1</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitute all Unicode characters, that are not legal latin1
- UTF-8 XML characters by a character reference.
-</P
-><P
->This function can be used to translate all text nodes and
- attribute values into ISO latin1.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"
->unicodeToXmlEntity</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeRemoveNoneAscii"
-></A
-><B
->unicodeRemoveNoneAscii</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->removes all non ascii chars, may be used to transform
- a document into a pure ascii representation by removing
- all non ascii chars from tag and attibute names
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"
->unicodeRemoveNoneLatin1</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"
->unicodeToXmlEntity</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeRemoveNoneLatin1"
-></A
-><B
->unicodeRemoveNoneLatin1</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->removes all non latin1 chars, may be used to transform
- a document into a pure ascii representation by removing
- all non ascii chars from tag and attibute names
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"
->unicodeRemoveNoneAscii</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->unicodeToLatin1</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintToCharRef"
-></A
-><B
->intToCharRef</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert an Unicode into a XML character reference.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"
->intToCharRefHex</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintToCharRefHex"
-></A
-><B
->intToCharRefHex</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert an Unicode into a XML hexadecimal character reference.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"
->intToCharRef</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDecodingFct"
-></A
-><B
->getDecodingFct</B
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the lookup function for selecting the decoding function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDecodingFctEmbedErrors"
-></A
-><B
->getDecodingFctEmbedErrors</B
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the lookup function for selecting the decoding function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetOutputEncodingFct"
-></A
-><B
->getOutputEncodingFct</B
-> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->)</TD
-></TR
-><TR
-><TD CLASS="doc"
->the lookup function for selecting the encoding function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNL"
-></A
-><B
->normalizeNL</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->White Space (XML Standard 2.3) and
- end of line handling (2.11)
-</P
-><P
->#x0D and #x0D#x0A are mapped to #x0A
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AguessEncoding"
-></A
-><B
->guessEncoding</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html
+++ /dev/null
@@ -1,758 +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.Util</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.Util</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->utility functions
-</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%3AstringTrim"
->stringTrim</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringToUpper"
->stringToUpper</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNumber"
->normalizeNumber</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeWhitespace"
->normalizeWhitespace</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeBlanks"
->normalizeBlanks</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeURI"
->escapeURI</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtextEscapeXml"
->textEscapeXml</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringEscapeXml"
->stringEscapeXml</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AattrEscapeXml"
->attrEscapeXml</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringToInt"
->stringToInt</A
-> :: Int -&gt; String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringToHexString"
->stringToHexString</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcharToHexString"
->charToHexString</A
-> :: Char -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintToHexString"
->intToHexString</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhexStringToInt"
->hexStringToInt</A
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdecimalStringToInt"
->decimalStringToInt</A
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adoubles"
->doubles</A
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asingles"
->singles</A
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnoDoubles"
->noDoubles</A
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aswap"
->swap</A
-> :: (a, b) -&gt; (b, a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApartitionEither"
->partitionEither</A
-> :: [Either a b] -&gt; ([a], [b])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoMaybe"
->toMaybe</A
-> :: Bool -&gt; a -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Auncurry3"
->uncurry3</A
-> :: (a -&gt; b -&gt; c -&gt; d) -&gt; (a, b, c) -&gt; d</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Auncurry4"
->uncurry4</A
-> :: (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; (a, b, c, d) -&gt; e</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringTrim"
-></A
-><B
->stringTrim</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->remove leading and trailing whitespace with standard Haskell predicate isSpace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringToUpper"
-></A
-><B
->stringToUpper</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert string to upercase with standard Haskell toUpper function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNumber"
-></A
-><B
->normalizeNumber</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Removes leading / trailing whitespaces and leading zeros
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeWhitespace"
-></A
-><B
->normalizeWhitespace</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Reduce whitespace sequences to a single whitespace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeBlanks"
-></A
-><B
->normalizeBlanks</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->replace all whitespace chars by blanks
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeURI"
-></A
-><B
->escapeURI</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Escape all disallowed characters in URI 
- references (see <A HREF="http://www.w3.org/TR/xlink/#link-locators"
->http://www.w3.org/TR/xlink/#link-locators</A
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtextEscapeXml"
-></A
-><B
->textEscapeXml</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape XML chars &amp;lt;  and ampercent by transforming them into character references, used for escaping text nodes
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
->attrEscapeXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringEscapeXml"
-></A
-><B
->stringEscapeXml</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape XML chars &amp;lt;, &amp;gt;, &amp;quot;,  and ampercent by transforming them into character references
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
->attrEscapeXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrEscapeXml"
-></A
-><B
->attrEscapeXml</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace
- is also escaped
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"
->stringEscapeXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringToInt"
-></A
-><B
->stringToInt</B
-> :: Int -&gt; String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringToHexString"
-></A
-><B
->stringToHexString</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a string into a hexadecimal string applying charToHexString
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
->charToHexString</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharToHexString"
-></A
-><B
->charToHexString</B
-> :: Char -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a char (byte) into a 2-digit hexadecimal string
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"
->stringToHexString</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"
->intToHexString</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintToHexString"
-></A
-><B
->intToHexString</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a none negative Int into a hexadecimal string
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
->charToHexString</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhexStringToInt"
-></A
-><B
->hexStringToInt</B
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a string of hexadecimal digits into an Int
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecimalStringToInt"
-></A
-><B
->decimalStringToInt</B
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a string of digits into an Int
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adoubles"
-></A
-><B
->doubles</B
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->take all elements of a list which occur more than once. The result does not contain doubles.
- (doubles . doubles == doubles)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asingles"
-></A
-><B
->singles</B
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->drop all elements from a list which occur more than once.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnoDoubles"
-></A
-><B
->noDoubles</B
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->remove duplicates from list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aswap"
-></A
-><B
->swap</B
-> :: (a, b) -&gt; (b, a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApartitionEither"
-></A
-><B
->partitionEither</B
-> :: [Either a b] -&gt; ([a], [b])</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoMaybe"
-></A
-><B
->toMaybe</B
-> :: Bool -&gt; a -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Auncurry3"
-></A
-><B
->uncurry3</B
-> :: (a -&gt; b -&gt; c -&gt; d) -&gt; (a, b, c) -&gt; d</TD
-></TR
-><TR
-><TD CLASS="doc"
->mothers little helpers for to much curry
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Auncurry4"
-></A
-><B
->uncurry4</B
-> :: (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; (a, b, c, d) -&gt; e</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html
+++ /dev/null
@@ -1,3488 +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.XmlKeywords</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlKeywords</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM
->11</EM
->02 09:34:09 hxml Exp $
-</P
-><P
->Constants for XML keywords, for special attribute names
-   and special attribute values
-</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%3At_xml"
->t_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3At_root"
->t_root</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_canonicalize"
->a_canonicalize</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_default"
->a_default</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_check_namespaces"
->a_check_namespaces</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_contentLength"
->a_contentLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_collect_errors"
->a_collect_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_column"
->a_column</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_default_baseuri"
->a_default_baseuri</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_canonicalize"
->a_do_not_canonicalize</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_check_namespaces"
->a_do_not_check_namespaces</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_issue_errors"
->a_do_not_issue_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_issue_warnings"
->a_do_not_issue_warnings</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_preserve_comment"
->a_do_not_preserve_comment</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_remove_whitespace"
->a_do_not_remove_whitespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_use_curl"
->a_do_not_use_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate"
->a_do_not_validate</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_encoding"
->a_encoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_error"
->a_error</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_error_log"
->a_error_log</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_help"
->a_help</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_indent"
->a_indent</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_issue_errors"
->a_issue_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_issue_warnings"
->a_issue_warnings</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_kind"
->a_kind</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_line"
->a_line</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_module"
->a_module</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_modifier"
->a_modifier</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_name"
->a_name</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_no_xml_pi"
->a_no_xml_pi</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_options_curl"
->a_options_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_encoding"
->a_output_encoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_file"
->a_output_file</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_xml"
->a_output_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_html"
->a_output_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_by_mimetype"
->a_parse_by_mimetype</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_html"
->a_parse_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_xml"
->a_parse_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_peref"
->a_peref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_preserve_comment"
->a_preserve_comment</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_propagate_errors"
->a_propagate_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_proxy"
->a_proxy</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_show_haskell"
->a_show_haskell</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_show_tree"
->a_show_tree</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_source"
->a_source</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_status"
->a_status</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_standalone"
->a_standalone</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_tagsoup"
->a_tagsoup</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_trace"
->a_trace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_type"
->a_type</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_use_curl"
->a_use_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_url"
->a_url</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate"
->a_validate</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_value"
->a_value</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_verbose"
->a_verbose</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_version"
->a_version</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_xml"
->a_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_xmlns"
->a_xmlns</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_0"
->v_0</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_1"
->v_1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_yes"
->v_yes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_no"
->v_no</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_any"
->v_any</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_children"
->v_children</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_choice"
->v_choice</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_empty"
->v_empty</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_mixed"
->v_mixed</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_seq"
->v_seq</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_null"
->v_null</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_option"
->v_option</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_pcdata"
->v_pcdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_star"
->v_star</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_plus"
->v_plus</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_any"
->k_any</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_cdata"
->k_cdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_empty"
->k_empty</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_entity"
->k_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_entities"
->k_entities</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_id"
->k_id</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_idref"
->k_idref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_idrefs"
->k_idrefs</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_include"
->k_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_ignore"
->k_ignore</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_nmtoken"
->k_nmtoken</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_nmtokens"
->k_nmtokens</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_peref"
->k_peref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_public"
->k_public</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_system"
->k_system</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_enumeration"
->k_enumeration</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_fixed"
->k_fixed</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_implied"
->k_implied</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_ndata"
->k_ndata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_notation"
->k_notation</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_pcdata"
->k_pcdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_required"
->k_required</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_default"
->k_default</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferPrefix"
->transferPrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferProtocol"
->transferProtocol</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferMimeType"
->transferMimeType</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferEncoding"
->transferEncoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferURI"
->transferURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferDefaultURI"
->transferDefaultURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferStatus"
->transferStatus</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferMessage"
->transferMessage</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferVersion"
->transferVersion</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhttpPrefix"
->httpPrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringProtocol"
->stringProtocol</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisoLatin1"
->isoLatin1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_1"
->iso8859_1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_2"
->iso8859_2</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_3"
->iso8859_3</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_4"
->iso8859_4</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_5"
->iso8859_5</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_6"
->iso8859_6</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_7"
->iso8859_7</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_8"
->iso8859_8</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_9"
->iso8859_9</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_10"
->iso8859_10</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_11"
->iso8859_11</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_13"
->iso8859_13</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_14"
->iso8859_14</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_15"
->iso8859_15</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_16"
->iso8859_16</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AusAscii"
->usAscii</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2"
->ucs2</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8"
->utf8</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16"
->utf16</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16be"
->utf16be</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16le"
->utf16le</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeString"
->unicodeString</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNamespace"
->xmlNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlnsNamespace"
->xmlnsNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArelaxNamespace"
->relaxNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_relax_schema"
->a_relax_schema</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_check_restrictions"
->a_do_not_check_restrictions</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_check_restrictions"
->a_check_restrictions</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate_externalRef"
->a_do_not_validate_externalRef</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate_externalRef"
->a_validate_externalRef</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate_include"
->a_do_not_validate_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate_include"
->a_validate_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_changes"
->a_output_changes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_collect_errors"
->a_do_not_collect_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xhtml"
->application_xhtml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml"
->application_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml_external_parsed_entity"
->application_xml_external_parsed_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml_dtd"
->application_xml_dtd</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_html"
->text_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_xml"
->text_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_xml_external_parsed_entity"
->text_xml_external_parsed_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisHtmlMimeType"
->isHtmlMimeType</A
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlMimeType"
->isXmlMimeType</A
-> :: String -&gt; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3At_xml"
-></A
-><B
->t_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3At_root"
-></A
-><B
->t_root</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_canonicalize"
-></A
-><B
->a_canonicalize</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_default"
-></A
-><B
->a_default</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_check_namespaces"
-></A
-><B
->a_check_namespaces</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_contentLength"
-></A
-><B
->a_contentLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_collect_errors"
-></A
-><B
->a_collect_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_column"
-></A
-><B
->a_column</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_default_baseuri"
-></A
-><B
->a_default_baseuri</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_canonicalize"
-></A
-><B
->a_do_not_canonicalize</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_check_namespaces"
-></A
-><B
->a_do_not_check_namespaces</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_issue_errors"
-></A
-><B
->a_do_not_issue_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_issue_warnings"
-></A
-><B
->a_do_not_issue_warnings</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_preserve_comment"
-></A
-><B
->a_do_not_preserve_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_remove_whitespace"
-></A
-><B
->a_do_not_remove_whitespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_use_curl"
-></A
-><B
->a_do_not_use_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate"
-></A
-><B
->a_do_not_validate</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_encoding"
-></A
-><B
->a_encoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_error"
-></A
-><B
->a_error</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_error_log"
-></A
-><B
->a_error_log</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_help"
-></A
-><B
->a_help</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_indent"
-></A
-><B
->a_indent</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_issue_errors"
-></A
-><B
->a_issue_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_issue_warnings"
-></A
-><B
->a_issue_warnings</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_kind"
-></A
-><B
->a_kind</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_line"
-></A
-><B
->a_line</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_module"
-></A
-><B
->a_module</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_modifier"
-></A
-><B
->a_modifier</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_name"
-></A
-><B
->a_name</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_no_xml_pi"
-></A
-><B
->a_no_xml_pi</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_options_curl"
-></A
-><B
->a_options_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_encoding"
-></A
-><B
->a_output_encoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_file"
-></A
-><B
->a_output_file</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_xml"
-></A
-><B
->a_output_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_html"
-></A
-><B
->a_output_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_by_mimetype"
-></A
-><B
->a_parse_by_mimetype</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_html"
-></A
-><B
->a_parse_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_xml"
-></A
-><B
->a_parse_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_peref"
-></A
-><B
->a_peref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_preserve_comment"
-></A
-><B
->a_preserve_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_propagate_errors"
-></A
-><B
->a_propagate_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_proxy"
-></A
-><B
->a_proxy</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_remove_whitespace"
-></A
-><B
->a_remove_whitespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_show_haskell"
-></A
-><B
->a_show_haskell</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_show_tree"
-></A
-><B
->a_show_tree</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_source"
-></A
-><B
->a_source</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_status"
-></A
-><B
->a_status</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_standalone"
-></A
-><B
->a_standalone</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_tagsoup"
-></A
-><B
->a_tagsoup</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_trace"
-></A
-><B
->a_trace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_type"
-></A
-><B
->a_type</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_use_curl"
-></A
-><B
->a_use_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_url"
-></A
-><B
->a_url</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate"
-></A
-><B
->a_validate</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_value"
-></A
-><B
->a_value</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_verbose"
-></A
-><B
->a_verbose</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_version"
-></A
-><B
->a_version</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_xml"
-></A
-><B
->a_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_xmlns"
-></A
-><B
->a_xmlns</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_0"
-></A
-><B
->v_0</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_1"
-></A
-><B
->v_1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_yes"
-></A
-><B
->v_yes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_no"
-></A
-><B
->v_no</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_any"
-></A
-><B
->v_any</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_children"
-></A
-><B
->v_children</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_choice"
-></A
-><B
->v_choice</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_empty"
-></A
-><B
->v_empty</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_mixed"
-></A
-><B
->v_mixed</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_seq"
-></A
-><B
->v_seq</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_null"
-></A
-><B
->v_null</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_option"
-></A
-><B
->v_option</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_pcdata"
-></A
-><B
->v_pcdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_star"
-></A
-><B
->v_star</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_plus"
-></A
-><B
->v_plus</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_any"
-></A
-><B
->k_any</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_cdata"
-></A
-><B
->k_cdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_empty"
-></A
-><B
->k_empty</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_entity"
-></A
-><B
->k_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_entities"
-></A
-><B
->k_entities</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_id"
-></A
-><B
->k_id</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_idref"
-></A
-><B
->k_idref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_idrefs"
-></A
-><B
->k_idrefs</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_include"
-></A
-><B
->k_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_ignore"
-></A
-><B
->k_ignore</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_nmtoken"
-></A
-><B
->k_nmtoken</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_nmtokens"
-></A
-><B
->k_nmtokens</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_peref"
-></A
-><B
->k_peref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_public"
-></A
-><B
->k_public</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_system"
-></A
-><B
->k_system</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_enumeration"
-></A
-><B
->k_enumeration</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_fixed"
-></A
-><B
->k_fixed</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_implied"
-></A
-><B
->k_implied</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_ndata"
-></A
-><B
->k_ndata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_notation"
-></A
-><B
->k_notation</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_pcdata"
-></A
-><B
->k_pcdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_required"
-></A
-><B
->k_required</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_default"
-></A
-><B
->k_default</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferPrefix"
-></A
-><B
->transferPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferProtocol"
-></A
-><B
->transferProtocol</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferMimeType"
-></A
-><B
->transferMimeType</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferEncoding"
-></A
-><B
->transferEncoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferURI"
-></A
-><B
->transferURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferDefaultURI"
-></A
-><B
->transferDefaultURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferStatus"
-></A
-><B
->transferStatus</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferMessage"
-></A
-><B
->transferMessage</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferVersion"
-></A
-><B
->transferVersion</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhttpPrefix"
-></A
-><B
->httpPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringProtocol"
-></A
-><B
->stringProtocol</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisoLatin1"
-></A
-><B
->isoLatin1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_1"
-></A
-><B
->iso8859_1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_2"
-></A
-><B
->iso8859_2</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_3"
-></A
-><B
->iso8859_3</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_4"
-></A
-><B
->iso8859_4</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_5"
-></A
-><B
->iso8859_5</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_6"
-></A
-><B
->iso8859_6</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_7"
-></A
-><B
->iso8859_7</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_8"
-></A
-><B
->iso8859_8</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_9"
-></A
-><B
->iso8859_9</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_10"
-></A
-><B
->iso8859_10</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_11"
-></A
-><B
->iso8859_11</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_13"
-></A
-><B
->iso8859_13</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_14"
-></A
-><B
->iso8859_14</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_15"
-></A
-><B
->iso8859_15</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_16"
-></A
-><B
->iso8859_16</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AusAscii"
-></A
-><B
->usAscii</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2"
-></A
-><B
->ucs2</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8"
-></A
-><B
->utf8</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16"
-></A
-><B
->utf16</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16be"
-></A
-><B
->utf16be</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16le"
-></A
-><B
->utf16le</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeString"
-></A
-><B
->unicodeString</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNamespace"
-></A
-><B
->xmlNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlnsNamespace"
-></A
-><B
->xmlnsNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxNamespace"
-></A
-><B
->relaxNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Relax NG namespace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_relax_schema"
-></A
-><B
->a_relax_schema</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_check_restrictions"
-></A
-><B
->a_do_not_check_restrictions</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_check_restrictions"
-></A
-><B
->a_check_restrictions</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate_externalRef"
-></A
-><B
->a_do_not_validate_externalRef</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate_externalRef"
-></A
-><B
->a_validate_externalRef</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate_include"
-></A
-><B
->a_do_not_validate_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate_include"
-></A
-><B
->a_validate_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_changes"
-></A
-><B
->a_output_changes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_collect_errors"
-></A
-><B
->a_do_not_collect_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xhtml"
-></A
-><B
->application_xhtml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml"
-></A
-><B
->application_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml_external_parsed_entity"
-></A
-><B
->application_xml_external_parsed_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml_dtd"
-></A
-><B
->application_xml_dtd</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_html"
-></A
-><B
->text_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_xml"
-></A
-><B
->text_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_xml_external_parsed_entity"
-></A
-><B
->text_xml_external_parsed_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisHtmlMimeType"
-></A
-><B
->isHtmlMimeType</B
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlMimeType"
-></A
-><B
->isXmlMimeType</B
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
+++ /dev/null
@@ -1,175 +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.RelaxNG.DataTypeLibMysql</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.DataTypeLibMysql</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Datatype library for the MySQL datatypes
-</P
-><P
->$Id: DataTypeLibMysql.hs,v 1.1 2005<EM
->09</EM
->02 17:09:39 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%3AmysqlNS"
->mysqlNS</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmysqlDatatypeLib"
->mysqlDatatypeLib</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->DatatypeLibrary</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmysqlNS"
-></A
-><B
->mysqlNS</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Namespace of the MySQL datatype library
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmysqlDatatypeLib"
-></A
-><B
->mysqlDatatypeLib</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->DatatypeLibrary</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The main entry point to the MySQL datatype library.
-</P
-><P
->The <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADTC"
->DTC</A
-></TT
-> constructor exports the list of supported datatypes and params.
- It also exports the specialized functions to validate a XML instance value with
- respect to a datatype.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
+++ /dev/null
@@ -1,1077 +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.RelaxNG.DataTypeLibUtils</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->exports helper functions for the integration of new datatype-libraries
-</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%3AerrorMsgEqual"
->errorMsgEqual</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgDataTypeNotAllowed"
->errorMsgDataTypeNotAllowed</A
-> :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgDataTypeNotAllowed0"
->errorMsgDataTypeNotAllowed0</A
-> :: String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgDataTypeNotAllowed2"
->errorMsgDataTypeNotAllowed2</A
-> :: String -&gt; String -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgDataLibQName"
->errorMsgDataLibQName</A
-> :: String -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgParam"
->errorMsgParam</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
-> -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_length"
->rng_length</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_maxLength"
->rng_maxLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_minLength"
->rng_minLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_maxExclusive"
->rng_maxExclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_minExclusive"
->rng_minExclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_maxInclusive"
->rng_maxInclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arng_minInclusive"
->rng_minInclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-Util.html"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"
->Text.XML.HXT.RelaxNG.DataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AFunctionTable"
->FunctionTable</A
-> = [(String, String -&gt; String -&gt; Bool)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringValidFT"
->stringValidFT</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->FunctionTable</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->CheckString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfctTableString"
->fctTableString</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->FunctionTable</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfctTableList"
->fctTableList</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->FunctionTable</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringValid"
->stringValid</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->CheckString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumberValid"
->numberValid</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->CheckString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumParamValid"
->numParamValid</A
-> :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ACheckA"
->CheckA</A
-> a b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ACheckString"
->CheckString</A
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ACheckInteger"
->CheckInteger</A
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> Integer Integer</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AperformCheck"
->performCheck</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a b -&gt; a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aok"
->ok</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Afailure"
->failure</A
-> :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aassert"
->assert</A
-> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AassertMaybe"
->assertMaybe</A
-> :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a b</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckWith"
->checkWith</A
-> :: (a -&gt; b) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgEqual"
-></A
-><B
->errorMsgEqual</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgDataTypeNotAllowed"
-></A
-><B
->errorMsgDataTypeNotAllowed</B
-> :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgDataTypeNotAllowed0"
-></A
-><B
->errorMsgDataTypeNotAllowed0</B
-> :: String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgDataTypeNotAllowed2"
-></A
-><B
->errorMsgDataTypeNotAllowed2</B
-> :: String -&gt; String -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgDataLibQName"
-></A
-><B
->errorMsgDataLibQName</B
-> :: String -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgParam"
-></A
-><B
->errorMsgParam</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
-> -&gt; String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Error Message for the equality test of two datatype values
-</P
-><UL
-><LI
-> 1.parameter  :  datatype
-</LI
-><LI
-> 2.parameter  :  datatype value
-</LI
-><LI
-> 3.parameter  :  datatype value
-</LI
-></UL
-><P
->example:
-</P
-><PRE
-> errorMsgEqual &quot;Int&quot; &quot;21&quot; &quot;42&quot; -&gt; &quot;Datatype Int with value = 21 expected, but value = 42 found&quot;
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_length"
-></A
-><B
->rng_length</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_maxLength"
-></A
-><B
->rng_maxLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_minLength"
-></A
-><B
->rng_minLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_maxExclusive"
-></A
-><B
->rng_maxExclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_minExclusive"
-></A
-><B
->rng_minExclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_maxInclusive"
-></A
-><B
->rng_maxInclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arng_minInclusive"
-></A
-><B
->rng_minInclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-Util.html"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"
->Text.XML.HXT.RelaxNG.DataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AFunctionTable"
-></A
-><B
->FunctionTable</B
-> = [(String, String -&gt; String -&gt; Bool)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->Function table type
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringValidFT"
-></A
-><B
->stringValidFT</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->FunctionTable</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->CheckString</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfctTableString"
-></A
-><B
->fctTableString</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->FunctionTable</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Function table for string tests,
- XML document value is first operand, schema value second
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfctTableList"
-></A
-><B
->fctTableList</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->FunctionTable</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Function table for list tests,
- XML document value is first operand, schema value second
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringValid"
-></A
-><B
->stringValid</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->CheckString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Tests whether a &quot;string&quot; datatype value is between the lower and 
-upper bound of the datatype and matches all parameters.
-</P
-><P
->All tests are performed on the string value.
-</P
-><UL
-><LI
-> 1.parameter  :  datatype
-</LI
-><LI
-> 2.parameter  :  lower bound of the datatype range
-</LI
-><LI
-> 3.parameter  :  upper bound of the datatype range (-1 = no upper bound) 
-</LI
-><LI
-> 4.parameter  :  list of parameters
-</LI
-><LI
-> 5.parameter  :  datatype value to be checked
-</LI
-><LI
-> return : Just &quot;Errormessage&quot; in case of an error, else Nothing
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumberValid"
-></A
-><B
->numberValid</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->CheckString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Tests whether a &quot;numeric&quot; datatype value is between the lower and upper 
-bound of the datatype and matches all parameters.
-</P
-><P
->First, the string value is parsed into a numeric representation.
-If no error occur, all following tests are performed on the numeric value.
-</P
-><UL
-><LI
-> 1.parameter  :  datatype
-</LI
-><LI
-> 2.parameter  :  lower bound of the datatype range
-</LI
-><LI
-> 3.parameter  :  upper bound of the datatype range (-1 = no upper bound) 
-</LI
-><LI
-> 4.parameter  :  list of parameters
-</LI
-><LI
-> 5.parameter  :  datatype value to be checked
-</LI
-><LI
-> return : Just &quot;Errormessage&quot; in case of an error, else Nothing
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumParamValid"
-></A
-><B
->numParamValid</B
-> :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->tests whether a string value matches a numeric param
-</P
-><P
->valid example:
-</P
-><PRE
-> &lt;data type=&quot;CHAR&quot;&gt; &lt;param name=&quot;maxLength&quot;&gt;5&lt;/param&gt; &lt;/data&gt;
-</PRE
-><P
->invalid example:
-</P
-><PRE
-> &lt;data type=&quot;CHAR&quot;&gt; &lt;param name=&quot;minLength&quot;&gt;foo&lt;/param&gt; &lt;/data&gt;
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ACheckA"
-></A
-><B
->CheckA</B
-> a b</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CheckA')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:CheckA" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Arrow <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowPlus <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->ArrowZero <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ACheckString"
-></A
-><B
->CheckString</B
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> String String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ACheckInteger"
-></A
-><B
->CheckInteger</B
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> Integer Integer</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AperformCheck"
-></A
-><B
->performCheck</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a b -&gt; a -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="doc"
->run a check and deliver Just an error message or Nothing
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aok"
-></A
-><B
->ok</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a a</TD
-></TR
-><TR
-><TD CLASS="doc"
->every thing is fine
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Afailure"
-></A
-><B
->failure</B
-> :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a b</TD
-></TR
-><TR
-><TD CLASS="doc"
->always failure
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aassert"
-></A
-><B
->assert</B
-> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a a</TD
-></TR
-><TR
-><TD CLASS="doc"
->perform a simple check with a predicate p,
-   when the predicate holds, assert acts as identity,
-   else an error message is generated
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AassertMaybe"
-></A
-><B
->assertMaybe</B
-> :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a b</TD
-></TR
-><TR
-><TD CLASS="doc"
->perform a simple check with a Maybe function, Nothing indicates error
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckWith"
-></A
-><B
->checkWith</B
-> :: (a -&gt; b) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->CheckA</A
-> a a</TD
-></TR
-><TR
-><TD CLASS="doc"
->perform a check, but convert the value before checking
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
+++ /dev/null
@@ -1,262 +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.RelaxNG.DataTypeLibraries</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibraries.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.DataTypeLibraries</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This modul exports the list of supported datatype libraries.
- It also exports the main functions to validate an XML instance value
- with respect to a datatype.
-</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%3AdatatypeLibraries"
->datatypeLibraries</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"
->DatatypeLibraries</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdatatypeEqual"
->datatypeEqual</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
->DatatypeEqual</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdatatypeAllows"
->datatypeAllows</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
->DatatypeAllows</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdatatypeLibraries"
-></A
-><B
->datatypeLibraries</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"
->DatatypeLibraries</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->List of all supported datatype libraries which can be 
- used within the Relax NG validator modul.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdatatypeEqual"
-></A
-><B
->datatypeEqual</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
->DatatypeEqual</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Tests whether a XML instance value matches a value-pattern.
-</P
-><P
->The following tests are performed:
-</P
-><UL
-><LI
-> 1. :  does the uri exist in the list of supported datatype libraries
-</LI
-><LI
-> 2. :  does the library support the datatype
-</LI
-><LI
-> 3. :  does the XML instance value match the value-pattern
-</LI
-></UL
-><P
->The hard work is done by the specialized <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
->DatatypeEqual</A
-></TT
-> function 
-(see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
->DatatypeCheck</A
-></TT
->) of the datatype library.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdatatypeAllows"
-></A
-><B
->datatypeAllows</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
->DatatypeAllows</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Tests whether a XML instance value matches a data-pattern.
-</P
-><P
->The following tests are performed:
-</P
-><UL
-><LI
-> 1. :  does the uri exist in the list of supported datatype libraries
-</LI
-><LI
-> 2. :  does the library support the datatype
-</LI
-><LI
-> 3. :  does the XML instance value match the data-pattern
-</LI
-><LI
-> 4. :  does the XML instance value match all params
-</LI
-></UL
-><P
->The hard work is done by the specialized <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
->DatatypeAllows</A
-></TT
-> function 
-(see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
->DatatypeCheck</A
-></TT
->) of the datatype library.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html
+++ /dev/null
@@ -1,2291 +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.RelaxNG.DataTypes</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypes.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.DataTypes</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></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%3ArelaxSchemaFile"
->relaxSchemaFile</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArelaxSchemaGrammarFile"
->relaxSchemaGrammarFile</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_numberOfErrors"
->a_numberOfErrors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_relaxSimplificationChanges"
->a_relaxSimplificationChanges</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdefineOrigName"
->defineOrigName</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AEnv"
->Env</A
-> = [(String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcontextAttributes"
->contextAttributes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcontextBaseAttr"
->contextBaseAttr</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AOldName"
->OldName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANewName"
->NewName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANamePair"
->NamePair</A
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"
->OldName</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"
->NewName</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ARefList"
->RefList</A
-> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"
->NamePair</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADatatypeEqual"
->DatatypeEqual</A
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-> -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADatatypeAllows"
->DatatypeAllows</A
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-> -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADatatypeLibraries"
->DatatypeLibraries</A
-> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->DatatypeLibrary</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADatatypeLibrary"
->DatatypeLibrary</A
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
->DatatypeCheck</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADatatypeName"
->DatatypeName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AParamName"
->ParamName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAllowedParams"
->AllowedParams</A
-> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"
->ParamName</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAllowedDatatypes"
->AllowedDatatypes</A
-> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"
->AllowedParams</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ADatatypeCheck"
->DatatypeCheck</A
->  = <A HREF="#v%3ADTC"
->DTC</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AdtAllowsFct"
->dtAllowsFct</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
->DatatypeAllows</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AdtEqualFct"
->dtEqualFct</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
->DatatypeEqual</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AdtAllowedTypes"
->dtAllowedTypes</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"
->AllowedDatatypes</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUri"
->Uri</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ALocalName"
->LocalName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AParamList"
->ParamList</A
-> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
->, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3APrefix"
->Prefix</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AContext"
->Context</A
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->, [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"
->Prefix</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->)])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADatatype"
->Datatype</A
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowDatatype"
->showDatatype</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ANameClass"
->NameClass</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AAnyName"
->AnyName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAnyNameExcept"
->AnyNameExcept</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AName"
->Name</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANsName"
->NsName</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANsNameExcept"
->NsNameExcept</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANameClassChoice"
->NameClassChoice</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANCError"
->NCError</A
-> String</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3APattern"
->Pattern</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AEmpty"
->Empty</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANotAllowed"
->NotAllowed</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"
->ErrMessage</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AText"
->Text</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AChoice"
->Choice</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AInterleave"
->Interleave</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AGroup"
->Group</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AOneOrMore"
->OneOrMore</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AList"
->List</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AData"
->Data</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ADataExcept"
->DataExcept</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AValue"
->Value</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> String <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAttribute"
->Attribute</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AElement"
->Element</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAfter"
->After</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AErrMessage"
->ErrMessage</A
->  = <A HREF="#v%3AErrMsg"
->ErrMsg</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"
->ErrLevel</A
-> [String]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AErrLevel"
->ErrLevel</A
-> = Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotAllowed"
->notAllowed</A
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotAllowed1"
->notAllowed1</A
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotAllowed2"
->notAllowed2</A
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotAllowedN"
->notAllowedN</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"
->ErrLevel</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmergeNotAllowed"
->mergeNotAllowed</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Achoice"
->choice</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Agroup"
->group</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AoneOrMore"
->oneOrMore</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ainterleave"
->interleave</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aafter"
->after</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AContentType"
->ContentType</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3ACTEmpty"
->CTEmpty</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACTComplex"
->CTComplex</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACTSimple"
->CTSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACTNone"
->CTNone</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxSchemaFile"
-></A
-><B
->relaxSchemaFile</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxSchemaGrammarFile"
-></A
-><B
->relaxSchemaGrammarFile</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_numberOfErrors"
-></A
-><B
->a_numberOfErrors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_relaxSimplificationChanges"
-></A
-><B
->a_relaxSimplificationChanges</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdefineOrigName"
-></A
-><B
->defineOrigName</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AEnv"
-></A
-><B
->Env</B
-> = [(String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcontextAttributes"
-></A
-><B
->contextAttributes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Start of a context attribute value 
- (see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AsimplificationStep1"
->simplificationStep1</A
-></TT
->)
-</P
-><P
->The value is always followed by the original attribute name and value
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcontextBaseAttr"
-></A
-><B
->contextBaseAttr</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Start of base uri attribute value 
- (see also: simplificationStep1 in <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"
->Text.XML.HXT.RelaxNG.Simplification</A
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AOldName"
-></A
-><B
->OldName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANewName"
-></A
-><B
->NewName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANamePair"
-></A
-><B
->NamePair</B
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"
->OldName</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"
->NewName</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ARefList"
-></A
-><B
->RefList</B
-> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"
->NamePair</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADatatypeEqual"
-></A
-><B
->DatatypeEqual</B
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-> -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Type of all datatype libraries functions that tests whether 
- a XML instance value matches a value-pattern.
-</P
-><P
->Returns Just &quot;errorMessage&quot; in case of an error else Nothing.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADatatypeAllows"
-></A
-><B
->DatatypeAllows</B
-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-> -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Type of all datatype libraries functions that tests whether 
- a XML instance value matches a data-pattern.
-</P
-><P
->Returns Just &quot;errorMessage&quot; in case of an error else Nothing.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADatatypeLibraries"
-></A
-><B
->DatatypeLibraries</B
-> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->DatatypeLibrary</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
->List of all supported datatype libraries
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADatatypeLibrary"
-></A
-><B
->DatatypeLibrary</B
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"
->DatatypeCheck</A
->)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Each datatype library is identified by a URI.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADatatypeName"
-></A
-><B
->DatatypeName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AParamName"
-></A
-><B
->ParamName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAllowedParams"
-></A
-><B
->AllowedParams</B
-> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"
->ParamName</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
->List of all supported params for a datatype
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAllowedDatatypes"
-></A
-><B
->AllowedDatatypes</B
-> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
->DatatypeName</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"
->AllowedParams</A
->)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->List of all supported datatypes and there allowed params
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ADatatypeCheck"
-></A
-><B
->DatatypeCheck</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The Constructor exports the list of supported datatypes for a library.
- It also exports the specialized datatype library functions to validate 
- a XML instance value with respect to a datatype.
-</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%3ADTC"
-></A
-><B
->DTC</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%3AdtAllowsFct"
-></A
-><B
->dtAllowsFct</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"
->DatatypeAllows</A
-></TD
-><TD CLASS="rdoc"
->function to test whether a value matches a data-pattern
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AdtEqualFct"
-></A
-><B
->dtEqualFct</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"
->DatatypeEqual</A
-></TD
-><TD CLASS="rdoc"
->function to test whether a value matches a value-pattern
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AdtAllowedTypes"
-></A
-><B
->dtAllowedTypes</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"
->AllowedDatatypes</A
-></TD
-><TD CLASS="rdoc"
->list of all supported params for a datatype
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUri"
-></A
-><B
->Uri</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ALocalName"
-></A
-><B
->LocalName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AParamList"
-></A
-><B
->ParamList</B
-> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
->, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->List of parameters; each parameter is a pair consisting of a local name and a value.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3APrefix"
-></A
-><B
->Prefix</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AContext"
-></A
-><B
->Context</B
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->, [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"
->Prefix</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->)])</TD
-></TR
-><TR
-><TD CLASS="doc"
->A Context represents the context of an XML element. 
- It consists of a base URI and a mapping from prefixes to namespace URIs.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADatatype"
-></A
-><B
->Datatype</B
-> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
->, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
->)</TD
-></TR
-><TR
-><TD CLASS="doc"
->A Datatype identifies a datatype by a datatype library name and a local name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowDatatype"
-></A
-><B
->showDatatype</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANameClass"
-></A
-><B
->NameClass</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents a name class
-</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 NAME="v%3AAnyName"
-></A
-><B
->AnyName</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAnyNameExcept"
-></A
-><B
->AnyNameExcept</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AName"
-></A
-><B
->Name</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
->LocalName</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANsName"
-></A
-><B
->NsName</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANsNameExcept"
-></A
-><B
->NsNameExcept</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"
->Uri</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANameClassChoice"
-></A
-><B
->NameClassChoice</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANCError"
-></A
-><B
->NCError</B
-> String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NameClass')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NameClass" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3APattern"
-></A
-><B
->Pattern</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents a pattern after simplification
-</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 NAME="v%3AEmpty"
-></A
-><B
->Empty</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANotAllowed"
-></A
-><B
->NotAllowed</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"
->ErrMessage</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AText"
-></A
-><B
->Text</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AChoice"
-></A
-><B
->Choice</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AInterleave"
-></A
-><B
->Interleave</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AGroup"
-></A
-><B
->Group</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AOneOrMore"
-></A
-><B
->OneOrMore</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AList"
-></A
-><B
->List</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AData"
-></A
-><B
->Data</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ADataExcept"
-></A
-><B
->DataExcept</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
->ParamList</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AValue"
-></A
-><B
->Value</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"
->Datatype</A
-> String <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"
->Context</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAttribute"
-></A
-><B
->Attribute</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AElement"
-></A
-><B
->Element</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAfter"
-></A
-><B
->After</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Pattern')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Pattern" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AErrMessage"
-></A
-><B
->ErrMessage</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AErrMsg"
-></A
-><B
->ErrMsg</B
-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"
->ErrLevel</A
-> [String]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ErrMessage')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ErrMessage" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"
->ErrMessage</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AErrLevel"
-></A
-><B
->ErrLevel</B
-> = Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnotAllowed"
-></A
-><B
->notAllowed</B
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->smart constructor for NotAllowed
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnotAllowed1"
-></A
-><B
->notAllowed1</B
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnotAllowed2"
-></A
-><B
->notAllowed2</B
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnotAllowedN"
-></A
-><B
->notAllowedN</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"
->ErrLevel</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmergeNotAllowed"
-></A
-><B
->mergeNotAllowed</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->merge error messages
-</P
-><P
->If error levels are different, the more important is taken,
- if level is 2 (max level) both error messages are taken
- else the 1. error mesage is taken
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Achoice"
-></A
-><B
->choice</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->smart constructor for Choice
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Agroup"
-></A
-><B
->group</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->smart constructor for Group
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AoneOrMore"
-></A
-><B
->oneOrMore</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->smart constructor for OneOrMore
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ainterleave"
-></A
-><B
->interleave</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->smart constructor for Interleave
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aafter"
-></A
-><B
->after</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"
->Pattern</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->smart constructor for After
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AContentType"
-></A
-><B
->ContentType</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Possible content types of a Relax NG pattern.
- (see also chapter 7.2 in Relax NG specification)
-</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 NAME="v%3ACTEmpty"
-></A
-><B
->CTEmpty</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACTComplex"
-></A
-><B
->CTComplex</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACTSimple"
-></A
-><B
->CTSimple</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACTNone"
-></A
-><B
->CTNone</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ContentType')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ContentType" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"
->ContentType</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"
->ContentType</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"
->ContentType</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html
+++ /dev/null
@@ -1,126 +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.RelaxNG.Schema</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Schema.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.Schema</FONT
-></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: Schema.hs,v 1.3 2005<EM
->09</EM
->30 14:41:44 hxml Exp $
-</P
-><P
->Don't edit this module, it's generated by RelaxSchemaToXmlTree
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxSchemaTree"
-></A
-><B
->relaxSchemaTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxSchemaArrow"
-></A
-><B
->relaxSchemaArrow</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html
+++ /dev/null
@@ -1,126 +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.RelaxNG.SchemaGrammar</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/SchemaGrammar.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.SchemaGrammar</FONT
-></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: SchemaGrammar.hs,v 1.3 2005<EM
->09</EM
->30 14:41:45 hxml Exp $
-</P
-><P
->Don't edit this module, it's generated by RelaxSchemaToXmlTree
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxSchemaTree"
-></A
-><B
->relaxSchemaTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxSchemaArrow"
-></A
-><B
->relaxSchemaArrow</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html
+++ /dev/null
@@ -1,209 +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.RelaxNG.Simplification</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Simplification.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.Simplification</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->The modul creates the simplified form of a Relax NG schema.
-   See also chapter 4 of the Relax NG specification.
-</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%3AcreateSimpleForm"
->createSimpleForm</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AgetErrors"
->getErrors</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcreateSimpleForm"
-></A
-><B
->createSimpleForm</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Creates the simple form of a Relax NG schema
- (see also: relaxOptions)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrors"
-></A
-><B
->getErrors</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Returns the list of simplification errors or <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
->none</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
+++ /dev/null
@@ -1,132 +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.RelaxNG.Unicode.Blocks</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/Blocks.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.Unicode.Blocks</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Unicode Code Blocks
-</P
-><P
->don't edit this module
-   it's generated from 'http://www.unicode.org/Public/UNIDATA/Blocks.txt'
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcodeBlocks"
-></A
-><B
->codeBlocks</B
-> :: [(String, (Char, Char))]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
+++ /dev/null
@@ -1,552 +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.RelaxNG.Unicode.CharProps</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/CharProps.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Unicode character properties
-</P
-><P
->don't edit this module
-   it's generated from 'http://www.unicode.org/Public/UNIDATA/UnicodeData.txt'
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeC"
-></A
-><B
->isUnicodeC</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeCc"
-></A
-><B
->isUnicodeCc</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeCf"
-></A
-><B
->isUnicodeCf</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeCo"
-></A
-><B
->isUnicodeCo</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeCs"
-></A
-><B
->isUnicodeCs</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeL"
-></A
-><B
->isUnicodeL</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeLl"
-></A
-><B
->isUnicodeLl</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeLm"
-></A
-><B
->isUnicodeLm</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeLo"
-></A
-><B
->isUnicodeLo</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeLt"
-></A
-><B
->isUnicodeLt</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeLu"
-></A
-><B
->isUnicodeLu</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeM"
-></A
-><B
->isUnicodeM</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeMc"
-></A
-><B
->isUnicodeMc</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeMe"
-></A
-><B
->isUnicodeMe</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeMn"
-></A
-><B
->isUnicodeMn</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeN"
-></A
-><B
->isUnicodeN</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeNd"
-></A
-><B
->isUnicodeNd</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeNl"
-></A
-><B
->isUnicodeNl</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeNo"
-></A
-><B
->isUnicodeNo</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeP"
-></A
-><B
->isUnicodeP</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePc"
-></A
-><B
->isUnicodePc</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePd"
-></A
-><B
->isUnicodePd</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePe"
-></A
-><B
->isUnicodePe</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePf"
-></A
-><B
->isUnicodePf</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePi"
-></A
-><B
->isUnicodePi</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePo"
-></A
-><B
->isUnicodePo</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodePs"
-></A
-><B
->isUnicodePs</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeS"
-></A
-><B
->isUnicodeS</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeSc"
-></A
-><B
->isUnicodeSc</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeSk"
-></A
-><B
->isUnicodeSk</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeSm"
-></A
-><B
->isUnicodeSm</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeSo"
-></A
-><B
->isUnicodeSo</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeZ"
-></A
-><B
->isUnicodeZ</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeZl"
-></A
-><B
->isUnicodeZl</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeZp"
-></A
-><B
->isUnicodeZp</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnicodeZs"
-></A
-><B
->isUnicodeZs</B
-> :: Char -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html
+++ /dev/null
@@ -1,464 +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.RelaxNG.Validation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.Validation</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Validation of a XML document with respect to a valid Relax NG schema in simple form.
-   Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark
-   (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"
->http://www.thaiopensource.com/relaxng/derivative.html</A
->).
-</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%3AvalidateWithRelaxAndHandleErrors"
->validateWithRelaxAndHandleErrors</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AvalidateDocWithRelax"
->validateDocWithRelax</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AvalidateRelax"
->validateRelax</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AvalidateXMLDoc"
->validateXMLDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AreadForRelax"
->readForRelax</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> b <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%3AnormalizeForRelaxValidation"
->normalizeForRelaxValidation</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acontains"
->contains</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateWithRelaxAndHandleErrors"
-></A
-><B
->validateWithRelaxAndHandleErrors</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDocWithRelax"
-></A
-><B
->validateDocWithRelax</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Validates a xml document with respect to a Relax NG schema
-</P
-><UL
-><LI
-> 1.parameter  :  the arrow for computing the Relax NG schema
-</LI
-><LI
-> 2.parameter  :  list of options for reading and validating
-</LI
-><LI
-> 3.parameter  :  XML document URI
-</LI
-><LI
-> arrow-input  :  ignored
-</LI
-><LI
-> arrow-output :  list of errors or <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
->none</A
-></TT
->
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateRelax"
-></A
-><B
->validateRelax</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Validates a xml document with respect to a Relax NG schema
-</P
-><UL
-><LI
-> 1.parameter  :  XML document
-</LI
-><LI
-> arrow-input  :  Relax NG schema
-</LI
-><LI
-> arrow-output :  list of errors or <TT
-><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
->none</A
-></TT
->
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateXMLDoc"
-></A
-><B
->validateXMLDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreadForRelax"
-></A
-><B
->readForRelax</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeForRelaxValidation"
-></A
-><B
->normalizeForRelaxValidation</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->normalize a document for validation with Relax NG: remove all namespace declaration attributes,
-   remove all processing instructions and merge all sequences of text nodes into a single text node
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acontains"
-></A
-><B
->contains</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->tests whether a <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
->NameClass</A
-></TT
-> contains a particular <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html
+++ /dev/null
@@ -1,704 +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.RelaxNG.Validator</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validator.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.Validator</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module exports the core functions from the basic validation und simplification libraries.
- It also exports some helper functions for easier access to the validation functionality.
-</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%3AvalidateDocumentWithRelaxSchema"
->validateDocumentWithRelaxSchema</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalidateDocumentWithRelax"
->validateDocumentWithRelax</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3Avalidate"
->validate</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> n <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%3AvalidateSchema"
->validateSchema</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> n <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%3AvalidateWithSpezification"
->validateWithSpezification</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AvalidateSchemaWithSpezification"
->validateSchemaWithSpezification</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AvalidateWithoutSpezification"
->validateWithoutSpezification</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-RelaxNG-Validation.html"
->Text.XML.HXT.RelaxNG.Validation</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"
->Text.XML.HXT.RelaxNG.Simplification</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDocumentWithRelaxSchema"
-></A
-><B
->validateDocumentWithRelaxSchema</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
->IOStateArrow</A
-> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->validate a document with a Relax NG schema
-</P
-><UL
-><LI
-> 1.parameter  : the option list for validation
-</LI
-><LI
-> 2.parameter  : the URI of the Relax NG Schema
-</LI
-><LI
-> arrow-input  : the document to be validated, namespaces must have been processed
-</LI
-><LI
-> arrow-output : the input document, or in case of validation errors, an empty document with status information in the root
-</LI
-></UL
-><P
->options evaluated by validateDocumentWithRelaxSchema:
-</P
-><UL
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"
->a_check_restrictions</A
-></TT
->   : check Relax NG schema restrictions when simplifying the schema (default: on)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"
->a_validate_externalRef</A
-></TT
-> : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"
->a_validate_include</A
-></TT
->     : validate a Relax NG schema referenced by a include-Pattern (default: on)
-</LI
-></UL
-><P
->all other options are propagated to the read functions for schema input
-</P
-><P
->example:
-</P
-><PRE
-> validateDocumentWithRelaxSchema [(a_check_restrictions, &quot;0&quot;)] &quot;testSchema.rng&quot;
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDocumentWithRelax"
-></A
-><B
->validateDocumentWithRelax</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->validate an XML document with respect to a Relax NG schema
-</P
-><UL
-><LI
-> 1.parameter  : the valid and simplified schema as XML tree
-</LI
-><LI
-> arrow-input  : the document to be validated
-</LI
-><LI
-> arrow-output : the validated and unchanged document or the empty document with status information set in the root node
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Avalidate"
-></A
-><B
->validate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->normalize a document for Relax NG validation,
-   call the <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"
->validateRelax</A
-></TT
-> function for doing the hard work,
-   and issue errors
-</P
-><UL
-><LI
-> 1.parameter  : the arrow for computing the schema
-</LI
-><LI
-> arrow-input  : the document to be validated
-</LI
-><LI
-> arrow-output : nothing
-</LI
-></UL
-><P
->Document validation
-</P
-><P
->Validates a xml document with respect to a Relax NG schema.
-</P
-><P
->First, the schema is validated with respect to the Relax NG Spezification. If no error is found, the xml document is validated with respect to the schema.
-</P
-><UL
-><LI
-> 1.parameter :  list of options; namespace progagation is always done
-</LI
-><LI
-> 2.parameter :  XML document
-</LI
-><LI
-> 3.parameter :  Relax NG schema file
-</LI
-></UL
-><P
->available options:
-</P
-><UL
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"
->a_do_not_check_restrictions</A
-></TT
-> : do not check Relax NG schema restrictions (includes do-not-validate-externalRef, do-not-validate-include)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"
->a_do_not_validate_externalRef</A
-></TT
-> : do not validate a Relax NG schema referenced by a externalRef-Pattern
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"
->a_validate_externalRef</A
-></TT
-> : validate a Relax NG schema referenced by a externalRef-Pattern (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"
->a_do_not_validate_include</A
-></TT
-> : do not validate a Relax NG schema referenced by a include-Pattern
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"
->a_validate_include</A
-></TT
-> : validate a Relax NG schema referenced by a include-Pattern (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"
->a_output_changes</A
-></TT
-> : output Pattern transformations in case of an error
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"
->a_do_not_collect_errors</A
-></TT
-> : stop Relax NG simplification after the first error has occurred
-</LI
-><LI
-> all <TT
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"
->readDocument</A
-></TT
-> options
-</LI
-></UL
-><P
->example:
-</P
-><PRE
-> validate [(a_do_not_check_restrictions, &quot;1&quot;)] &quot;test.xml&quot; &quot;testSchema.rng&quot;
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateSchema"
-></A
-><B
->validateSchema</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Relax NG schema validation
-</P
-><P
->Validates a Relax NG schema with respect to the Relax NG Spezification.
-</P
-><UL
-><LI
-> 1.parameter :  list of available options (see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->validate</A
-></TT
->)
-</LI
-><LI
-> 2.parameter :  Relax NG schema file
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateWithSpezification"
-></A
-><B
->validateWithSpezification</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Document validation
-</P
-><P
->Validates a xml document with respect to a Relax NG schema. Similar to <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->validate</A
-></TT
->, but the Relax NG Specification is not created. Can be used, to check a list of documents more efficiently.
-</P
-><UL
-><LI
-> 1.parameter :  list of available options (see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->validate</A
-></TT
->)
-</LI
-><LI
-> 2.parameter :  XML document
-</LI
-><LI
-> 3.parameter :  Relax NG schema file
-</LI
-><LI
-> arrow-input  :  Relax NG Specification in simple form
-</LI
-></UL
-><P
->example:
-</P
-><PRE
-> Text.XML.HXT.RelaxNG.Schema.relaxSchemaArrow
- &gt;&gt;&gt;
- ( validateWithSpezification [] &quot;foo.xml&quot; &quot;foo.rng&quot;
-   &amp;&amp;&amp;
-   validateWithSpezification [] &quot;bar.xml&quot; &quot;bar.rng&quot;
- )
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateSchemaWithSpezification"
-></A
-><B
->validateSchemaWithSpezification</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Relax NG schema validation
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"
->validateSchema</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"
->validateWithSpezification</A
-></TT
->
-</P
-><UL
-><LI
-> 1.parameter :  list of available options (see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->validate</A
-></TT
->)
-</LI
-><LI
-> 2.parameter :  Relax NG schema file   
-</LI
-><LI
-> arrow-input  :  Relax NG Specification in simple form
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateWithoutSpezification"
-></A
-><B
->validateWithoutSpezification</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Document validation
-</P
-><P
->Validates a xml document with respect to a Relax NG schema, but the schema is <TT
->not</TT
-> validated with respect to a specification first. Should be used only for valid Relax NG schemes.
-</P
-><UL
-><LI
-> 1.parameter :  list of available options (see also: <TT
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->validate</A
-></TT
->)
-</LI
-><LI
-> 2.parameter :  XML document
-</LI
-><LI
-> 3.parameter :  Relax NG schema file
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-RelaxNG-Validation.html"
->Text.XML.HXT.RelaxNG.Validation</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"
->Text.XML.HXT.RelaxNG.Simplification</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
+++ /dev/null
@@ -1,855 +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.RelaxNG.XmlSchema.DataTypeLibW3C</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->Datatype library for the W3C XML schema datatypes
-</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%3Aw3cNS"
->w3cNS</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aw3cDatatypeLib"
->w3cDatatypeLib</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->DatatypeLibrary</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_string"
->xsd_string</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_normalizedString"
->xsd_normalizedString</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_token"
->xsd_token</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_language"
->xsd_language</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_NMTOKEN"
->xsd_NMTOKEN</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_NMTOKENS"
->xsd_NMTOKENS</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_Name"
->xsd_Name</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_NCName"
->xsd_NCName</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_ID"
->xsd_ID</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_IDREF"
->xsd_IDREF</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_IDREFS"
->xsd_IDREFS</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_ENTITY"
->xsd_ENTITY</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_ENTITIES"
->xsd_ENTITIES</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_anyURI"
->xsd_anyURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_QName"
->xsd_QName</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_NOTATION"
->xsd_NOTATION</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_hexBinary"
->xsd_hexBinary</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_base64Binary"
->xsd_base64Binary</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_decimal"
->xsd_decimal</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_length"
->xsd_length</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_maxLength"
->xsd_maxLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_minLength"
->xsd_minLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_maxExclusive"
->xsd_maxExclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_minExclusive"
->xsd_minExclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_maxInclusive"
->xsd_maxInclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_minInclusive"
->xsd_minInclusive</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_totalDigits"
->xsd_totalDigits</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_fractionDigits"
->xsd_fractionDigits</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_pattern"
->xsd_pattern</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axsd_enumeration"
->xsd_enumeration</A
-> :: String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aw3cNS"
-></A
-><B
->w3cNS</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Namespace of the W3C XML schema datatype library
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aw3cDatatypeLib"
-></A
-><B
->w3cDatatypeLib</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"
->DatatypeLibrary</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The main entry point to the W3C XML schema datatype library.
-</P
-><P
->The <TT
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADTC"
->DTC</A
-></TT
-> constructor exports the list of supported datatypes and params.
- It also exports the specialized functions to validate a XML instance value with
- respect to a datatype.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_string"
-></A
-><B
->xsd_string</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_normalizedString"
-></A
-><B
->xsd_normalizedString</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_token"
-></A
-><B
->xsd_token</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_language"
-></A
-><B
->xsd_language</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_NMTOKEN"
-></A
-><B
->xsd_NMTOKEN</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_NMTOKENS"
-></A
-><B
->xsd_NMTOKENS</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_Name"
-></A
-><B
->xsd_Name</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_NCName"
-></A
-><B
->xsd_NCName</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_ID"
-></A
-><B
->xsd_ID</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_IDREF"
-></A
-><B
->xsd_IDREF</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_IDREFS"
-></A
-><B
->xsd_IDREFS</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_ENTITY"
-></A
-><B
->xsd_ENTITY</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_ENTITIES"
-></A
-><B
->xsd_ENTITIES</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_anyURI"
-></A
-><B
->xsd_anyURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_QName"
-></A
-><B
->xsd_QName</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_NOTATION"
-></A
-><B
->xsd_NOTATION</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_hexBinary"
-></A
-><B
->xsd_hexBinary</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_base64Binary"
-></A
-><B
->xsd_base64Binary</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_decimal"
-></A
-><B
->xsd_decimal</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_length"
-></A
-><B
->xsd_length</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_maxLength"
-></A
-><B
->xsd_maxLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_minLength"
-></A
-><B
->xsd_minLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_maxExclusive"
-></A
-><B
->xsd_maxExclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_minExclusive"
-></A
-><B
->xsd_minExclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_maxInclusive"
-></A
-><B
->xsd_maxInclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_minInclusive"
-></A
-><B
->xsd_minInclusive</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_totalDigits"
-></A
-><B
->xsd_totalDigits</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_fractionDigits"
-></A
-><B
->xsd_fractionDigits</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_pattern"
-></A
-><B
->xsd_pattern</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axsd_enumeration"
-></A
-><B
->xsd_enumeration</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
+++ /dev/null
@@ -1,724 +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.RelaxNG.XmlSchema.Regex</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->W3C XML Schema Regular Expression Matcher
-</P
-><P
->Grammar can be found under &quot;http://www.w3.org/TR/xmlschema11-2/#regexs&quot;
-</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ARegex"
->Regex</A
-> </TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Achars"
->chars</A
-> :: (Char -&gt; Bool) -&gt; [Char]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcharRngs"
->charRngs</A
-> :: [Char] -&gt; [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkZero"
->mkZero</A
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkUnit"
->mkUnit</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSym"
->mkSym</A
-> :: (Char -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSym1"
->mkSym1</A
-> :: Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSymRng"
->mkSymRng</A
-> :: Char -&gt; Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDot"
->mkDot</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkStar"
->mkStar</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkAlt"
->mkAlt</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSeq"
->mkSeq</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkRep"
->mkRep</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkRng"
->mkRng</A
-> :: Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkOpt"
->mkOpt</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkDif"
->mkDif</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkCompl"
->mkCompl</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Anullable"
->nullable</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adelta"
->delta</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amatch"
->match</A
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; String -&gt; Maybe String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ARegex"
-></A
-><B
->Regex</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Regex')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Regex" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Achars"
-></A
-><B
->chars</B
-> :: (Char -&gt; Bool) -&gt; [Char]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->enumerate all chars specified by a predicate
-</P
-><P
->this function is expensive, it should only be used for testing
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharRngs"
-></A
-><B
->charRngs</B
-> :: [Char] -&gt; [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkZero"
-></A
-><B
->mkZero</B
-> :: String -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkUnit"
-></A
-><B
->mkUnit</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSym"
-></A
-><B
->mkSym</B
-> :: (Char -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSym1"
-></A
-><B
->mkSym1</B
-> :: Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSymRng"
-></A
-><B
->mkSymRng</B
-> :: Char -&gt; Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDot"
-></A
-><B
->mkDot</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkStar"
-></A
-><B
->mkStar</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkAlt"
-></A
-><B
->mkAlt</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSeq"
-></A
-><B
->mkSeq</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRep"
-></A
-><B
->mkRep</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRng"
-></A
-><B
->mkRng</B
-> :: Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkOpt"
-></A
-><B
->mkOpt</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkDif"
-></A
-><B
->mkDif</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkCompl"
-></A
-><B
->mkCompl</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Anullable"
-></A
-><B
->nullable</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adelta"
-></A
-><B
->delta</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; Char -&gt; <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amatch"
-></A
-><B
->match</B
-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-> -&gt; String -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
+++ /dev/null
@@ -1,133 +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.RelaxNG.XmlSchema.RegexParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexParser</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id$
-</P
-><P
->W3C XML Schema Regular Expression Parser
-</P
-><P
->Grammar can be found under &quot;http://www.w3.org/TR/xmlschema11-2/#regexs&quot;
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseRegex"
-></A
-><B
->parseRegex</B
-> :: String -&gt; Either String <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"
->Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html
+++ /dev/null
@@ -1,183 +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.XSLT.Application</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Application.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XSLT.Application</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: Application.hs,v 1.7 2007<EM
->05</EM
->02 06:41:05 hxml Exp $
-</P
-><P
->The transformation functions for XSLT transformation of XML documents
-</P
-><P
->Exports only two pure functions <TT
-><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"
->applyStylesheet</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"
->applyStylesheetWParams</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AapplyStylesheet"
-></A
-><B
->applyStylesheet</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AapplyStylesheetWParams"
-></A
-><B
->applyStylesheetWParams</B
-> :: <A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"
->XPathParams</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXPathParams"
-></A
-><B
->XPathParams</B
-> = Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html
+++ /dev/null
@@ -1,797 +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.XSLT.Common</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Common.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XSLT.Common</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: 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
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XmlNode.html"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</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="decl"
->module <A HREF="Data-NavTree.html"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Data-Tree-Class.html"
->Data.Tree.Class</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfilterTree"
-></A
-><B
->filterTree</B
-> :: <A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmapTreeCtx"
-></A
-><B
->mapTreeCtx</B
-> :: <A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfilterTreeCtx"
-></A
-><B
->filterTreeCtx</B
-> :: <A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AzipTreeWith"
-></A
-><B
->zipTreeWith</B
-> :: <A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AzipTree"
-></A
-><B
->zipTree</B
-> :: <A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> t =&gt; t a -&gt; t b -&gt; t (a, b)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunzipTree"
-></A
-><B
->unzipTree</B
-> :: Functor t =&gt; t (a, b) -&gt; (t a, t b)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowTrees"
-></A
-><B
->showTrees</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElemType"
-></A
-><B
->isElemType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; n -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttrType"
-></A
-><B
->isAttrType</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; n -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWhitespaceNode"
-></A
-><B
->isWhitespaceNode</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; n -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollectTextnodes"
-></A
-><B
->collectTextnodes</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->] -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtryFetchAttribute"
-></A
-><B
->tryFetchAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Maybe String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfetchAttributeWDefault"
-></A
-><B
->fetchAttributeWDefault</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfetchAttribute"
-></A
-><B
->fetchAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttribute"
-></A
-><B
->hasAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetAttribute"
-></A
-><B
->setAttribute</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; n -&gt; n</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AExName"
-></A
-><B
->ExName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AExName"
-></A
-><B
->ExName</B
-> String String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ExName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ExName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkExName"
-></A
-><B
->mkExName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AexLocal"
-></A
-><B
->exLocal</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AexUri"
-></A
-><B
->exUri</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseExName"
-></A
-><B
->parseExName</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUriMapping"
-></A
-><B
->UriMapping</B
-> = Map String String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUriMap"
-></A
-><B
->getUriMap</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetUriMap"
-></A
-><B
->setUriMap</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; n -&gt; n</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuriMap2Attrs"
-></A
-><B
->uriMap2Attrs</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AexpandNSDecls"
-></A
-><B
->expandNSDecls</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlookupPrefix"
-></A
-><B
->lookupPrefix</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNsAttr"
-></A
-><B
->isNsAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkLiteralExpr"
-></A
-><B
->mkLiteralExpr</B
-> :: String -&gt; Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkStringExpr"
-></A
-><B
->mkStringExpr</B
-> :: Expr -&gt; Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkBoolExpr"
-></A
-><B
->mkBoolExpr</B
-> :: Expr -&gt; Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkTrueExpr"
-></A
-><B
->mkTrueExpr</B
-> :: Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AconcatExpr"
-></A
-><B
->concatExpr</B
-> :: [Expr] -&gt; Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsplitExpr"
-></A
-><B
->splitExpr</B
-> :: Expr -&gt; [Expr]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunionExpr"
-></A
-><B
->unionExpr</B
-> :: [Expr] -&gt; Expr</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsplitMatchByPrio"
-></A
-><B
->splitMatchByPrio</B
-> :: Expr -&gt; [(Float, Expr)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcomputePriority"
-></A
-><B
->computePriority</B
-> :: Expr -&gt; Float</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcomputeNTestPriority"
-></A
-><B
->computeNTestPriority</B
-> :: NodeTest -&gt; Float</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisMatchExpr"
-></A
-><B
->isMatchExpr</B
-> :: Expr -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromJustErr"
-></A
-><B
->fromJustErr</B
-> :: String -&gt; Maybe a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreadWDefault"
-></A
-><B
->readWDefault</B
-> :: Read a =&gt; a -&gt; String -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html
+++ /dev/null
@@ -1,152 +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.XSLT.Compilation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Compilation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XSLT.Compilation</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: 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
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprepareXSLTDocument"
-></A
-><B
->prepareXSLTDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AassembleStylesheet"
-></A
-><B
->assembleStylesheet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
->] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html
+++ /dev/null
@@ -1,1670 +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.XSLT.CompiledStylesheet</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/CompiledStylesheet.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XSLT.CompiledStylesheet</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: CompiledStylesheet.hs,v 1.3 2007<EM
->05</EM
->02 06:41:05 hxml Exp $
-</P
-><P
->Types for compiled stylesheets
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ACompiledStylesheet"
-></A
-><B
->CompiledStylesheet</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACompStylesheet"
-></A
-><B
->CompStylesheet</B
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
->] (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
->NamedRule</A
->) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
->) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"
->AttributeSet</A
->]) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
->] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->NSAliasing</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledStylesheet')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:CompiledStylesheet" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetMatchRules"
-></A
-><B
->getMatchRules</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNamedRules"
-></A
-><B
->getNamedRules</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
->NamedRule</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetVariables"
-></A
-><B
->getVariables</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttributeSets"
-></A
-><B
->getAttributeSets</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"
->AttributeSet</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetStrips"
-></A
-><B
->getStrips</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAliases"
-></A
-><B
->getAliases</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->NSAliasing</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AMatchRule"
-></A
-><B
->MatchRule</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AMatRule"
-></A
-><B
->MatRule</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"
->MatchExpr</A
-> Float (Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
->) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
->] [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
->] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MatchRule')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:MatchRule" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRulePrio"
-></A
-><B
->getRulePrio</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
-> -&gt; Float</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRuleMode"
-></A
-><B
->getRuleMode</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRuleImports"
-></A
-><B
->getRuleImports</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
-> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"
->MatchRule</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANamedRule"
-></A
-><B
->NamedRule</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANamRule"
-></A
-><B
->NamRule</B
-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
->] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NamedRule')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NamedRule" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
->NamedRule</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetRuleName"
-></A
-><B
->getRuleName</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"
->NamedRule</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AVariable"
-></A
-><B
->Variable</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AMkVar"
-></A
-><B
->MkVar</B
-> Bool <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> (Either Expr <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
->)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Variable')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Variable" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetVarName"
-></A
-><B
->getVarName</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisParam"
-></A
-><B
->isParam</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AUsedAttribSets"
-></A
-><B
->UsedAttribSets</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AUsedAttribSets"
-></A
-><B
->UsedAttribSets</B
-> [<A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:UsedAttribSets')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:UsedAttribSets" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"
->UsedAttribSets</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AAttributeSet"
-></A
-><B
->AttributeSet</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAttribSet"
-></A
-><B
->AttribSet</B
-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"
->UsedAttribSets</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AttributeSet')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:AttributeSet" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"
->AttributeSet</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANTest"
-></A
-><B
->NTest</B
-> = <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseNTest"
-></A
-><B
->parseNTest</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
->NTest</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AStrips"
-></A
-><B
->Strips</B
-> = Map <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
->NTest</A
-> Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlookupStrip"
-></A
-><B
->lookupStrip</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
->] -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlookupStrip1"
-></A
-><B
->lookupStrip1</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-> -&gt; Maybe Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfeedSpaces"
-></A
-><B
->feedSpaces</B
-> :: Bool -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
->NTest</A
->] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfeedStrips"
-></A
-><B
->feedStrips</B
-> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
->NTest</A
->] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfeedPreserves"
-></A
-><B
->feedPreserves</B
-> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"
->NTest</A
->] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstripDocument"
-></A
-><B
->stripDocument</B
-> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"
->Strips</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstripStylesheet"
-></A
-><B
->stripStylesheet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstripSpaces"
-></A
-><B
->stripSpaces</B
-> :: (Bool -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool) -&gt; Bool -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANSAliasing"
-></A
-><B
->NSAliasing</B
-> = Map String String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAlias"
-></A
-><B
->addAlias</B
-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->NSAliasing</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->NSAliasing</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlookupAlias"
-></A
-><B
->lookupAlias</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->NSAliasing</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="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaliasUriMapping"
-></A
-><B
->aliasUriMapping</B
-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
->NSAliasing</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ATemplate"
-></A
-><B
->Template</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplComposite"
-></A
-><B
->TemplComposite</B
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplForEach"
-></A
-><B
->TemplForEach</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"
->SelectExpr</A
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"
->SortKey</A
->] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplChoose"
-></A
-><B
->TemplChoose</B
-> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"
->When</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplMessage"
-></A
-><B
->TemplMessage</B
-> Bool <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplElement"
-></A
-><B
->TemplElement</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"
->ComputedQName</A
-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"
->UsedAttribSets</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplAttribute"
-></A
-><B
->TemplAttribute</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"
->ComputedQName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplText"
-></A
-><B
->TemplText</B
-> String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplValueOf"
-></A
-><B
->TemplValueOf</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplComment"
-></A
-><B
->TemplComment</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplProcInstr"
-></A
-><B
->TemplProcInstr</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplApply"
-></A
-><B
->TemplApply</B
-> (Maybe <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"
->SelectExpr</A
->) (Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
->) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
->) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"
->SortKey</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplApplyImports"
-></A
-><B
->TemplApplyImports</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplVariable"
-></A
-><B
->TemplVariable</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplCall"
-></A
-><B
->TemplCall</B
-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
->ExName</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"
->Variable</A
->)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplCopy"
-></A
-><B
->TemplCopy</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"
->UsedAttribSets</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATemplCopyOf"
-></A
-><B
->TemplCopyOf</B
-> Expr</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Template')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Template" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ASortKey"
-></A
-><B
->SortKey</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ASortK"
-></A
-><B
->SortK</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SortKey')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:SortKey" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"
->SortKey</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AWhen"
-></A
-><B
->When</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AWhenPart"
-></A
-><B
->WhenPart</B
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"
->TestExpr</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"
->Template</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:When')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:When" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"
->When</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AComputedQName"
-></A
-><B
->ComputedQName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ALiteralQName"
-></A
-><B
->LiteralQName</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACompQName"
-></A
-><B
->CompQName</B
-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"
->UriMapping</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ComputedQName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:ComputedQName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"
->ComputedQName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3ASelectExpr"
-></A
-><B
->SelectExpr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ASelectExpr"
-></A
-><B
->SelectExpr</B
-> Expr</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SelectExpr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:SelectExpr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"
->SelectExpr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3ATestExpr"
-></A
-><B
->TestExpr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATestExpr"
-></A
-><B
->TestExpr</B
-> Expr</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TestExpr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:TestExpr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"
->TestExpr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AStringExpr"
-></A
-><B
->StringExpr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AStringExpr"
-></A
-><B
->StringExpr</B
-> Expr</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StringExpr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:StringExpr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"
->StringExpr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AMatchExpr"
-></A
-><B
->MatchExpr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AMatchExpr"
-></A
-><B
->MatchExpr</B
-> Expr</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MatchExpr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:MatchExpr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"
->MatchExpr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html
+++ /dev/null
@@ -1,912 +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.XSLT.Names</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Names.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XSLT.Names</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: Names.hs,v 1.2 2006<EM
->11</EM
->11 15:36:05 hxml Exp $
-</P
-><P
->Names and constants for HXSLT
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltPrefix"
-></A
-><B
->xsltPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltUri"
-></A
-><B
->xsltUri</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXsltName"
-></A
-><B
->mkXsltName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXsltAttribName"
-></A
-><B
->mkXsltAttribName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltTransform"
-></A
-><B
->xsltTransform</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltStylesheet"
-></A
-><B
->xsltStylesheet</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltMessage"
-></A
-><B
->xsltMessage</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltForEach"
-></A
-><B
->xsltForEach</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltChoose"
-></A
-><B
->xsltChoose</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltWhen"
-></A
-><B
->xsltWhen</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltOtherwise"
-></A
-><B
->xsltOtherwise</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltIf"
-></A
-><B
->xsltIf</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltElement"
-></A
-><B
->xsltElement</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltAttribute"
-></A
-><B
->xsltAttribute</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltText"
-></A
-><B
->xsltText</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltValueOf"
-></A
-><B
->xsltValueOf</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltComment"
-></A
-><B
->xsltComment</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltProcInstr"
-></A
-><B
->xsltProcInstr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltInclude"
-></A
-><B
->xsltInclude</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltImport"
-></A
-><B
->xsltImport</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltTemplate"
-></A
-><B
->xsltTemplate</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltApplyTemplates"
-></A
-><B
->xsltApplyTemplates</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltApplyImports"
-></A
-><B
->xsltApplyImports</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltCallTemplate"
-></A
-><B
->xsltCallTemplate</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltVariable"
-></A
-><B
->xsltVariable</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltParam"
-></A
-><B
->xsltParam</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltWithParam"
-></A
-><B
->xsltWithParam</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltAttributeSet"
-></A
-><B
->xsltAttributeSet</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltCopy"
-></A
-><B
->xsltCopy</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltCopyOf"
-></A
-><B
->xsltCopyOf</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltSort"
-></A
-><B
->xsltSort</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltStripSpace"
-></A
-><B
->xsltStripSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltPreserveSpace"
-></A
-><B
->xsltPreserveSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltNamespaceAlias"
-></A
-><B
->xsltNamespaceAlias</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltTerminate"
-></A
-><B
->xsltTerminate</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltSelect"
-></A
-><B
->xsltSelect</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltTest"
-></A
-><B
->xsltTest</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltName"
-></A
-><B
->xsltName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltNamespace"
-></A
-><B
->xsltNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltUseAttributeSets"
-></A
-><B
->xsltUseAttributeSets</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltHRef"
-></A
-><B
->xsltHRef</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltMatch"
-></A
-><B
->xsltMatch</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltPriority"
-></A
-><B
->xsltPriority</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltMode"
-></A
-><B
->xsltMode</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltDataType"
-></A
-><B
->xsltDataType</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltOrder"
-></A
-><B
->xsltOrder</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltElements"
-></A
-><B
->xsltElements</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltStylesheetPrefix"
-></A
-><B
->xsltStylesheetPrefix</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltResultPrefix"
-></A
-><B
->xsltResultPrefix</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltVersion"
-></A
-><B
->xsltVersion</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltExlcudeResultPrefixes"
-></A
-><B
->xsltExlcudeResultPrefixes</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltExtensionElementPrefixes"
-></A
-><B
->xsltExtensionElementPrefixes</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltUseAttributeSetsLRE"
-></A
-><B
->xsltUseAttributeSetsLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltVersionLRE"
-></A
-><B
->xsltVersionLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltExlcudeResultPrefixesLRE"
-></A
-><B
->xsltExlcudeResultPrefixesLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltExtensionElementPrefixesLRE"
-></A
-><B
->xsltExtensionElementPrefixesLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlSpace"
-></A
-><B
->xmlSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html
+++ /dev/null
@@ -1,375 +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.XSLT.XsltArrows</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/XsltArrows.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XSLT.XsltArrows</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XsltArrows.hs,v 1.1 2006<EM
->11</EM
->11 15:36:05 hxml Exp $
-</P
-><P
->The HXT arrow interface for the XSLT module
-</P
-><P
->The application programming interface to the arrow modules of the Haskell XML Toolbox.
-   This module exports all important arrows for input, output, parsing, validating and transforming XML.
-   It also exports all basic datatypes and functions of the toolbox.
-</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%3AxsltCompileStylesheet"
->xsltCompileStylesheet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxsltCompileStylesheetFromURI"
->xsltCompileStylesheetFromURI</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxsltApplyStylesheet"
->xsltApplyStylesheet</A
-> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <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%3AxsltApplyStylesheetFromURI"
->xsltApplyStylesheetFromURI</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> </TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltCompileStylesheet"
-></A
-><B
->xsltCompileStylesheet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Compile a document representing an XSLT stylesheet into an internal representation
-</P
-><P
->The internal representation is an abstract syntax tree for the XSLT rules.
- XSLT imports and includes are evaluated and the rules are normalized and prepared
- for easy application.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltCompileStylesheetFromURI"
-></A
-><B
->xsltCompileStylesheetFromURI</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->A convinient function for combining reading a stylesheet and compilation.
-</P
-><P
->Reading an XSLT stylesheet is always done without validation but with
- namespace propagation. Comments are removed from the stylesheet.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltApplyStylesheet"
-></A
-><B
->xsltApplyStylesheet</B
-> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply a compiled XSLT stylesheet to a whole document tree
-</P
-><P
->The compiled stylesheet must have been created with <TT
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"
->xsltCompileStylesheet</A
-></TT
->
- or <TT
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"
->xsltCompileStylesheetFromURI</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxsltApplyStylesheetFromURI"
-></A
-><B
->xsltApplyStylesheetFromURI</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"
->IOSArrow</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->apply an XSLT stylesheet given by an URI to a whole document tree
-</P
-><P
->The string parameter is the URI of the XSLT stylesheet.
- In case of an error during stylesheet compilation or stylesheet application
- all children of the root node are removed and
- the error status is set in the attribute list of the root node of the input document.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ACompiledStylesheet"
-></A
-><B
->CompiledStylesheet</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledStylesheet')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:CompiledStylesheet" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"
->CompiledStylesheet</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-36.html b/doc/hdoc_arrow/doc-index-36.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-36.html
+++ /dev/null
@@ -1,226 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index ($)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->$!!</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#v%3A%24%21%21"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->$&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->$&lt;$</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->$&lt;&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-38.html b/doc/hdoc_arrow/doc-index-38.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-38.html
+++ /dev/null
@@ -1,186 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (&amp;)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->&amp;&amp;&amp;&amp;</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%26%26%26%26"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-43.html b/doc/hdoc_arrow/doc-index-43.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-43.html
+++ /dev/null
@@ -1,186 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (+)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-47.html b/doc/hdoc_arrow/doc-index-47.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-47.html
+++ /dev/null
@@ -1,186 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (/)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->/&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-58.html b/doc/hdoc_arrow/doc-index-58.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-58.html
+++ /dev/null
@@ -1,186 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (:)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->:-&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-60.html b/doc/hdoc_arrow/doc-index-60.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-60.html
+++ /dev/null
@@ -1,194 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (&lt;)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->&lt;+&gt;&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3C%2B%3E%3E"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->&lt;/</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-62.html b/doc/hdoc_arrow/doc-index-62.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-62.html
+++ /dev/null
@@ -1,202 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (&gt;)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->&gt;.</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->&gt;&gt;.</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->&gt;&gt;&gt;&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3E%3E%3E%3E"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-A.html b/doc/hdoc_arrow/doc-index-A.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-A.html
+++ /dev/null
@@ -1,1302 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (A)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Alt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AAlt"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Any</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AAny"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->AnyName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAnyName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->AnyNameExcept</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAnyNameExcept"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ArrowIf</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ArrowList</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ArrowState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"
->Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ArrowTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->AttribSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AAttribSet"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->Attribute</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AAttribute"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAttribute"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_canonicalize</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_check_namespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_check_restrictions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_collect_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_column</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_column"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_contentLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_default_baseuri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default_baseuri"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_canonicalize</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_check_namespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_namespaces"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_collect_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_issue_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_issue_warnings</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_preserve_comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_preserve_comment"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_remove_whitespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_remove_whitespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_use_curl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_validate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_validate_externalRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_validate_include</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_encoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_error</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_error_log</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_help</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_indent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_issue_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_issue_warnings</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_kind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_kind"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_line</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_line"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_modifier</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_modifier"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_module</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_name"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_no_xml_pi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_numberOfErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aa_numberOfErrors"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_options_curl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_changes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_encoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_file</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_html</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parse_by_mimetype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parse_html</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parse_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_peref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_peref"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_preserve_comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_propagate_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_propagate_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_proxy</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_relax_schema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_remove_whitespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_show_haskell</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_show_tree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_source</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_standalone</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_standalone"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_status</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_tagsoup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_trace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_type</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_type"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_url</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_url"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_use_curl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_validate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_validate_externalRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_validate_include</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_value</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_value"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_verbose</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_version</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_xmlns</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xmlns"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->accessState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"
->Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->addAttr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AaddAttr"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xhtml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xhtml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xml_dtd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_dtd"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xml_external_parsed_entity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_external_parsed_entity"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->applyA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->arr2</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->arr2A</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->arr2L</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->arr3</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->arr4</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->arrL</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->assert</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aassert"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->assertMaybe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AassertMaybe"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-B.html b/doc/hdoc_arrow/doc-index-B.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-B.html
+++ /dev/null
@@ -1,186 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (B)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-C.html b/doc/hdoc_arrow/doc-index-C.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-C.html
+++ /dev/null
@@ -1,1072 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (C)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CTComplex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTComplex"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CTEmpty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTEmpty"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CTNone</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTNone"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CTSimple</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTSimple"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CharData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3ACharData"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CheckA</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CheckInteger</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckInteger"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CheckString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ChildNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CompQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ACompQName"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->CompStylesheet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ACompStylesheet"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Context</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</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cardTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AcardTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->catA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeAttrName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeAttrl</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeChildren</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AchangeChildren"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeCmt</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeCmt"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeDTDAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeDTDAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeElemName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeElemName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeNode</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AchangeNode"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changePiName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangePiName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"
->Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AchangeState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeText</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeText"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->charRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkWith</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckWith"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->childNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->choiceA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->compBool</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBool"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compBoolExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBoolExpr"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compFP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompFP"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compGenExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompGenExpr"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compIntExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompIntExpr"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compLP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompLP"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNT"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compNTA</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTA"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compNTE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTE"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compNameT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNameT"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumber"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compNumberExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumberExpr"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPath"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compPred</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compPred1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred1"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compRelPathExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompRelPathExpr"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompString"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compStringExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompStringExpr"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compXP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXP"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compXPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXPath"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->compXS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXS"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->computeNTestPriority</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputeNTestPriority"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->constA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->constL</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->containing</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-D.html b/doc/hdoc_arrow/doc-index-D.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-D.html
+++ /dev/null
@@ -1,600 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (D)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->DTC</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADTC"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->DTDdescr</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</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
-><TD CLASS="indexentry"
->DTDescr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3ADTDescr"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Data</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AData"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->DataExcept</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADataExcept"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->DeepSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->dataNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AdataNT"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->deadEndStreet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AdeadEndStreet"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decimalStringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
->Text.XML.HXT.DOM.Util</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3Adecode"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decodeEmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AdecodeEmbedErrors"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decodeOne</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AdecodeOne"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->deep</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->deep'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Adeep%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->deepSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->deepest</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->defineOrigName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdefineOrigName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->delta</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
-><TD CLASS="indexentry"
->depthTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AdepthTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->downNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AdownNT"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-E.html b/doc/hdoc_arrow/doc-index-E.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-E.html
+++ /dev/null
@@ -1,570 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (E)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ElemRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AElemRef"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->Element</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AElement"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AElement"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Empty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AEmpty"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Env</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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ErrMsg</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AErrMsg"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Error</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#t%3AError"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->ExName</TD
-></TR
-><TR
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->encode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3Aencode"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->encodeOne</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AencodeOne"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->entityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equalNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AequalNodeSet"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equalQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equalQNameBy</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equivQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equivUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->err</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aerr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errorMsgParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgParam"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-F.html b/doc/hdoc_arrow/doc-index-F.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-F.html
+++ /dev/null
@@ -1,338 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (F)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->FunctionTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->failure</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Afailure"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Afatal"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fctTableList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableList"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fctTableString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableString"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->feedPreserves</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedPreserves"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->feedStrips</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedStrips"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->foldTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AfoldTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->formatNTreeF</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"
->Data.Tree.NTree.TypeDefs</A
->, Text.XML.HXT.Arrow.XmlNode</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->formatTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AformatTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->fromLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"
->Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fromSLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"
->Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-G.html b/doc/hdoc_arrow/doc-index-G.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-G.html
+++ /dev/null
@@ -1,1238 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (G)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->getAttrName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->getAttrl</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getAttrl'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetAttrl%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getCdata</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCdata"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getCharRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCharRef"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getChildren</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AgetChildren"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getChildren'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetChildren%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getChildrenNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AgetChildrenNT"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getCmt</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCmt"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getCont</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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getDTDAttrl</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getDTDPart</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDPart"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getElemName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetElemName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getEntityRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetEntityRef"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getErrorLevel</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorLevel"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getErrorMsg</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorMsg"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getLocalPart</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetLocalPart"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->getName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getNamePrefix</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamePrefix"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getNamespaceUri</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamespaceUri"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getNode</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AgetNode"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getPiContent</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiContent"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getPiName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getQualifiedName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetQualifiedName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"
->Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AgetState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getText</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetText"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getUniversalName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getUniversalUri</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalUri"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->getXP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXP"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXPathNodeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathNodeSet"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTrees</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTrees"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTreesInDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDoc"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTreesInDocWithNsEnv</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDocWithNsEnv"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getXPathTreesWithNsEnv</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XPath</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXPathTreesWithNsEnvSimple</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnvSimple"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXmlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"
->Text.XML.HXT.Arrow.DocumentInput</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guards</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guards'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aguards%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guardsP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-H.html b/doc/hdoc_arrow/doc-index-H.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-H.html
+++ /dev/null
@@ -1,330 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (H)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-I.html b/doc/hdoc_arrow/doc-index-I.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-I.html
+++ /dev/null
@@ -1,1574 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (I)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->IOLA</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->IOSLA</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->IfThen</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ifA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ifP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->insertChildrenAfter</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->insertChildrenAt</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->insertTreeTemplate</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->io</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Aio"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isAttr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisAttr"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->isCdata</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCdata"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isCharRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCharRef"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isCmt</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCmt"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isDTD</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisDTD"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isElem</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisElem"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->isEntityRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisEntityRef"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isError</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisError"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isHtmlMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisHtmlMimeType"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isIOA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"
->Control.Arrow.ArrowIO</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isInner</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AisInner"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isLeaf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AisLeaf"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->isPi</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisPi"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->isRoot</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisRoot"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->isText</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisText"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->isXmlMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisXmlMimeType"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXmlNCNameChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_10</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_10"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_11</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_11"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_13</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_13"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_14</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_14"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_15</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_15"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_16</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_16"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_2"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_3</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_3"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_4</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_4"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_5</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_5"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_6</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_6"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_7</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_7"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_8"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_9</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_9"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isoLatin1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-K.html b/doc/hdoc_arrow/doc-index-K.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-K.html
+++ /dev/null
@@ -1,362 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (K)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->k_any</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_any"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_default</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_default"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_empty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_empty"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_entities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_entity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entity"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_enumeration</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enumeration"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_fixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_fixed"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_id</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_id"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_idref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idref"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_idrefs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idrefs"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_ignore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ignore"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_implied</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_implied"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_include</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_include"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_ndata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ndata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_nmtoken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtoken"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_nmtokens</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtokens"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_notation</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_notation"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_pcdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_pcdata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_peref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_peref"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_public</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_public"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_required</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_required"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_system</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_system"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-L.html b/doc/hdoc_arrow/doc-index-L.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-L.html
+++ /dev/null
@@ -1,310 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (L)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->LA</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#t%3ALA"
->Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#v%3ALA"
->Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->List</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AList"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->LiteralQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ALiteralQName"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->LocalName</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</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->leftNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AleftNT"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->listA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-M.html b/doc/hdoc_arrow/doc-index-M.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-M.html
+++ /dev/null
@@ -1,830 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (M)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->MatRule</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMatRule"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->MatchExpr</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMatchExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->MkVar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMkVar"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->match</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Amatch"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->maybePlus</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AmaybePlus"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->maybeStar</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AmaybeStar"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mergeA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mergeAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmergeAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mk</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amk"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkAbsURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkAlt</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
-><TD CLASS="indexentry" COLSPAN="2"
->mkAttr</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttr"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttrNode"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->mkCdata</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCdata"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->mkCharRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCharRef"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->mkCmt</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCmt"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->mkDTDElem</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDElem"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkDTDNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDNode"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->mkDot</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
-><TD CLASS="indexentry" COLSPAN="2"
->mkElement</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElement"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkElementNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElementNode"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->mkEntityRef</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkEntityRef"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->mkError</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkError"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->mkLeaf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AmkLeaf"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkNsName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkOpt</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
-><TD CLASS="indexentry" COLSPAN="2"
->mkPi</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkPi"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkRep</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
-><TD CLASS="indexentry"
->mkRng</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
-><TD CLASS="indexentry"
->mkRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkRoot"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkSeq</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
-><TD CLASS="indexentry"
->mkStar</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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->mkText</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkText"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AmkTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->mkUnit</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
-><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
-><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
-><TD CLASS="indexentry"
->mkZero</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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->multi</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->multi'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amulti%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mysqlDatatypeLib</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlDatatypeLib"
->Text.XML.HXT.RelaxNG.DataTypeLibMysql</A
-></TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-N.html b/doc/hdoc_arrow/doc-index-N.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-N.html
+++ /dev/null
@@ -1,554 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (N)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NCError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANCError"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->NT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ANT"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->NTree</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->Data.Tree.NTree.TypeDefs</A
->, Text.XML.HXT.Arrow.XmlNode</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"
->Data.Tree.NTree.TypeDefs</A
->, Text.XML.HXT.Arrow.XmlNode</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->Data.Tree.NTree.TypeDefs</A
->, Text.XML.HXT.Arrow.XmlNode</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NamRule</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ANamRule"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->Name</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NameClassChoice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANameClassChoice"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->NavTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#t%3ANavTree"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NsName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANsName"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NsNameExcept</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANsNameExcept"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->namespaceUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->neg</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nextState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"
->Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nodesTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AnodesTree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->none</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Anone"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->notContaining</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ntree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3Antree"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nullable</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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-O.html b/doc/hdoc_arrow/doc-index-O.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-O.html
+++ /dev/null
@@ -1,226 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (O)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->o'</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3Ao%27"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ok</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aok"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->oneOrMore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AoneOrMore"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->orElse</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-P.html b/doc/hdoc_arrow/doc-index-P.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-P.html
+++ /dev/null
@@ -1,616 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (P)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->PU</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3APU"
->Text.XML.HXT.Arrow.Pickle.Xml</A
->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3APU"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->parseHtmlContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlContent"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->parseHtmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseHtmlDocument"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseHtmlTagSoup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlTagSoup"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseNTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AparseNTest"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->parseXmlAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlAttrValue"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlContent"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDEntityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDEntityValue"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDPart"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDdecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdecl"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDdeclPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdeclPart"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->parseXmlDocEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDocEncodingSpec"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseXmlDocument"
->Text.XML.HXT.Arrow.ProcessDocument</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlEntityEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlEntityEncodingSpec"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlGeneralEntityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlGeneralEntityValue"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->partitionA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->perform</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->performCheck</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AperformCheck"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->pickleDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"
->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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->preorderNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ApreorderNT"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->prepareContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AprepareContents"
->Text.XML.HXT.Arrow.WriteDocument</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->prepareXSLTDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"
->Text.XML.HXT.XSLT.Compilation</A
-></TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processBottomUp</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processBottomUpWhenNot</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processTopDown</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processTopDownUntil</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->propagateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"
->Text.XML.HXT.Arrow.Namespace</A
->, <A HREF="Text-XML-HXT-Arrow.html#v%3ApropagateNamespaces"
->Text.XML.HXT.Arrow</A
->, <A HREF="Text-XML-HXT-Arrow.html#v%3ApropagateNamespaces"
->Text.XML.HXT.Arrow</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-Q.html b/doc/hdoc_arrow/doc-index-Q.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-Q.html
+++ /dev/null
@@ -1,210 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (Q)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-R.html b/doc/hdoc_arrow/doc-index-R.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-R.html
+++ /dev/null
@@ -1,538 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (R)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->Rep</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3ARep"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->relaxSchemaArrow</TD
-></TR
-><TR
-><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
-><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
-><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</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->relaxSchemaTree</TD
-></TR
-><TR
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->removeEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AremoveEncodingSpec"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->revPreorderNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ArevPreorderNT"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->rightNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3ArightNT"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->run</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Arun"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->runLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"
->Control.Arrow.ListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->runSLA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"
->Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-S.html b/doc/hdoc_arrow/doc-index-S.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-S.html
+++ /dev/null
@@ -1,1134 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (S)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->SLA</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"
->Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"
->Control.Arrow.StateListArrow</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->STIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3ASTIO"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->SelectExpr</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ASelectExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Seq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3ASeq"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->SortK</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ASortK"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->St</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ASt"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->StateIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->StringExpr</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AStringExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->seqA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setAttrName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetAttrName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setChildren</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AsetChildren"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetCmt"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setDTDAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetDTDAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setElemAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemAttrl"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setElemName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setNode</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"
->Control.Arrow.ArrowTree</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#v%3AsetNode"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setPiName</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetPiName"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"
->Control.Arrow.ArrowState</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AsetState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetText"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->single</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->spanA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->strict</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->strictA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowStrict.html#v%3AstrictA"
->Control.Arrow.ArrowStrict</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->subtreeNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AsubtreeNT"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-T.html b/doc/hdoc_arrow/doc-index-T.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-T.html
+++ /dev/null
@@ -1,698 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (T)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->TemplApply</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplApply"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplApplyImports</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplApplyImports"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplAttribute"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplCall</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCall"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplChoose</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplChoose"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplComment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplComment"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplComposite</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplComposite"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplCopy</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCopy"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplCopyOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCopyOf"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplElement"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplForEach</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplForEach"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplMessage</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplMessage"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplProcInstr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplProcInstr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplText"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplValueOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplValueOf"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TemplVariable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplVariable"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->TestExpr</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATestExpr"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Text</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AText"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Tree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-Class.html#t%3ATree"
->Data.Tree.Class</A
->, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"
->Control.Arrow.ArrowTree</A
->, Text.XML.HXT.XSLT.Common, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->t_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->tagA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->text_html</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_html"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->text_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->text_xml_external_parsed_entity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml_external_parsed_entity"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->thePicklerDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AthePicklerDTD"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->this</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3Athis"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->this'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->this''</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->thisNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->toNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoNumber"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->toThis</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoThis"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->trace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Atrace"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->trans</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Atrans"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferDefaultURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferDefaultURI"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferEncoding"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferMessage</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMessage"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMimeType"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferPrefix"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferProtocol</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferStatus"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferURI"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferVersion</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferVersion"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transformDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AtransformDoc"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->trcState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AtrcState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-U.html b/doc/hdoc_arrow/doc-index-U.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-U.html
+++ /dev/null
@@ -1,528 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (U)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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
-><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
-><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
-><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
-><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</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->UsedAttribSets</TD
-></TR
-><TR
-><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
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AUsedAttribSets"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ucs2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aucs2"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ucs2BigEndianToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->unicodeString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AunicodeString"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unicodeToLatin1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->universalUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalUri"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unlistA</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unpickleDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AunpickleDoc"
->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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unwrap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aunwrap"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unzipTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunzipTree"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->upNT</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-NavTree.html#v%3AupNT"
->Data.NavTree</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->usAscii</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16be</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16be"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16beToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16le</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16le"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16leToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf8ToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-V.html b/doc/hdoc_arrow/doc-index-V.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-V.html
+++ /dev/null
@@ -1,430 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (V)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->Value</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AValue"
->Text.XML.HXT.RelaxNG.DataTypes</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->v_0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_0"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_any</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_any"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_children</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_children"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_choice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_choice"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_empty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_empty"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_mixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_mixed"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_no</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_no"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_null</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_null"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_option</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_option"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_pcdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_pcdata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_plus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_plus"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_seq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_seq"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_star</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_star"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_yes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_yes"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AvalidateDoc"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateDocumentWithRelax</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelax"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateDocumentWithRelaxSchema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelaxSchema"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"
->Text.XML.HXT.Arrow.Namespace</A
->, <A HREF="Text-XML-HXT-Arrow.html#v%3AvalidateNamespaces"
->Text.XML.HXT.Arrow</A
->, <A HREF="Text-XML-HXT-Arrow.html#v%3AvalidateNamespaces"
->Text.XML.HXT.Arrow</A
-></TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateSchema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateSchemaWithSpezification</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchemaWithSpezification"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateWithSpezification</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateWithoutSpezification</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithoutSpezification"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-></TR
-><TR
-><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</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-W.html b/doc/hdoc_arrow/doc-index-W.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-W.html
+++ /dev/null
@@ -1,298 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (W)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><TD CLASS="indexentry"
->WhenPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AWhenPart"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-></TR
-><TR
-><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
-><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
-><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.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->when</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->whenNot</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->whenNotP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->whenP</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"
->Control.Arrow.ArrowIf</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->withDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"
->Control.Arrow.ArrowList</A
->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-X.html b/doc/hdoc_arrow/doc-index-X.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-X.html
+++ /dev/null
@@ -1,1578 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (X)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->XIOState</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XPArrow</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XPathParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"
->Text.XML.HXT.XSLT.Application</A
-></TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XmlNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
->Text.XML.HXT.Arrow.XmlNode</A
->, Text.XML.HXT.XSLT.Common</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xIndex</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxIndex"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xNumber'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxNumber%27"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxString"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xio_attrList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_attrList"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><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.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xread</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"
->Text.XML.HXT.Arrow.ReadDocument</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsd_ENTITIES</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITIES"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_ENTITY</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITY"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_ID</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ID"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_IDREF</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREF"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_IDREFS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREFS"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_NCName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NCName"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_NMTOKEN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKEN"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_NMTOKENS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKENS"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_NOTATION</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NOTATION"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_Name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_Name"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_QName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_QName"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsd_base64Binary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_base64Binary"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_decimal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_decimal"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_enumeration</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_enumeration"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_fractionDigits</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_fractionDigits"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_hexBinary</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_hexBinary"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_language</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_language"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_length</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_length"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_maxExclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxExclusive"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_maxInclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxInclusive"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_maxLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxLength"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_minExclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minExclusive"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_minInclusive</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minInclusive"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_minLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minLength"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_normalizedString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_normalizedString"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_pattern</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_pattern"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsd_token</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_token"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsd_totalDigits</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_totalDigits"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xshow</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"
->Text.XML.HXT.Arrow.XmlArrow</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltApplyImports</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltApplyImports"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltApplyTemplates</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltApplyTemplates"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltAttribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltAttribute"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltAttributeSet</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltAttributeSet"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltCallTemplate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCallTemplate"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltChoose</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltChoose"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltComment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltComment"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><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, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltCopy</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCopy"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltCopyOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCopyOf"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltDataType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltDataType"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltElement"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltElements</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltElements"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltExlcudeResultPrefixes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExlcudeResultPrefixes"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltExlcudeResultPrefixesLRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExlcudeResultPrefixesLRE"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltExtensionElementPrefixes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExtensionElementPrefixes"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltExtensionElementPrefixesLRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExtensionElementPrefixesLRE"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltForEach</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltForEach"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltHRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltHRef"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltIf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltIf"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltImport</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltImport"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltInclude</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltInclude"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltMatch</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMatch"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltMessage</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMessage"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltMode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMode"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltName"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltNamespace"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltNamespaceAlias</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltNamespaceAlias"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltOrder</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltOrder"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltOtherwise</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltOtherwise"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltParam"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsltPreserveSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPreserveSpace"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltPriority</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPriority"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltProcInstr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltProcInstr"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltResultPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltResultPrefix"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsltSort</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSort"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltStripSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStripSpace"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsltStylesheetPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheetPrefix"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltTemplate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTemplate"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltTerminate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTerminate"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTest"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltText"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltTransform</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTransform"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsltUseAttributeSets</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUseAttributeSets"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltUseAttributeSetsLRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUseAttributeSetsLRE"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltValueOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltValueOf"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltVariable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVariable"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltVersion</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersion"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xsltWhen</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltWhen"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xsltWithParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltWithParam"
->Text.XML.HXT.XSLT.Names</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xunpickleDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxunpickleDocument"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xunpickleVal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxunpickleVal"
->Text.XML.HXT.Arrow.Pickle</A
->, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index-Z.html b/doc/hdoc_arrow/doc-index-Z.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index-Z.html
+++ /dev/null
@@ -1,194 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (Z)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->zipTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AzipTree"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->zipTreeWith</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AzipTreeWith"
->Text.XML.HXT.XSLT.Common</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/doc-index.html b/doc/hdoc_arrow/doc-index.html
deleted file mode 100644
--- a/doc/hdoc_arrow/doc-index.html
+++ /dev/null
@@ -1,172 +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
->Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-Z.html"
->Z</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-38.html"
->&amp;</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-><TD
-><A HREF="doc-index-62.html"
->&gt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/haddock-util.js b/doc/hdoc_arrow/haddock-util.js
deleted file mode 100644
--- a/doc/hdoc_arrow/haddock-util.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Haddock JavaScript utilities
-function toggle(button,id)
-{
-   var n = document.getElementById(id).style;
-   if (n.display == "none")
-   {
-	button.src = "minus.gif";
-	n.display = "block";
-   }
-   else
-   {
-	button.src = "plus.gif";
-	n.display = "none";
-   }
-}
diff --git a/doc/hdoc_arrow/haddock.css b/doc/hdoc_arrow/haddock.css
deleted file mode 100644
--- a/doc/hdoc_arrow/haddock.css
+++ /dev/null
@@ -1,260 +0,0 @@
-/* -------- Global things --------- */
-
-BODY { 
-  background-color: #ffffff;
-  color: #000000;
-  font-family: sans-serif;
-  } 
-
-A:link    { color: #0000e0; text-decoration: none }
-A:visited { color: #0000a0; text-decoration: none }
-A:hover   { background-color: #e0e0ff; text-decoration: none }
-
-TABLE.vanilla {
-  width: 100%;
-  border-width: 0px;
-  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */
-}
-
-TABLE.vanilla2 {
-  border-width: 0px;
-}
-
-/* <TT> font is a little too small in MSIE */
-TT  { font-size: 100%; }
-PRE { font-size: 100%; }
-
-LI P { margin: 0pt } 
-
-TD {
-  border-width: 0px;
-}
-
-TABLE.narrow {
-  border-width: 0px;
-}
-
-TD.s8  {  height: 8px;  }
-TD.s15 {  height: 15px; }
-
-SPAN.keyword { text-decoration: underline; }
-
-/* Resize the buttom image to match the text size */
-IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }
-
-/* --------- Contents page ---------- */
-
-DIV.node {
-  padding-left: 3em;
-}
-
-DIV.cnode {
-  padding-left: 1.75em;
-}
-
-SPAN.pkg {
-  position: absolute;
-  left: 50em;
-}
-
-/* --------- Documentation elements ---------- */
-
-TD.children {
-  padding-left: 25px;
-  }
-
-TD.synopsis {
-  padding: 2px;
-  background-color: #f0f0f0;
-  font-family: monospace
- }
-
-TD.decl { 
-  padding: 2px;
-  background-color: #f0f0f0; 
-  font-family: monospace;
-  vertical-align: top;
-  }
-
-TD.topdecl {
-  padding: 2px;
-  background-color: #f0f0f0;
-  font-family: monospace;
-  vertical-align: top;
-}
-
-TABLE.declbar {
-  border-spacing: 0px;
- }
-
-TD.declname {
-  width: 100%;
- }
-
-TD.declbut {
-  padding-left: 5px;
-  padding-right: 5px;
-  border-left-width: 1px;
-  border-left-color: #000099;
-  border-left-style: solid;
-  white-space: nowrap;
-  font-size: small;
- }
-
-/* 
-  arg is just like decl, except that wrapping is not allowed.  It is
-  used for function and constructor arguments which have a text box
-  to the right, where if wrapping is allowed the text box squashes up
-  the declaration by wrapping it.
-*/
-TD.arg { 
-  padding: 2px;
-  background-color: #f0f0f0; 
-  font-family: monospace;
-  vertical-align: top;
-  white-space: nowrap;
-  }
-
-TD.recfield { padding-left: 20px }
-
-TD.doc  { 
-  padding-top: 2px;
-  padding-left: 10px;
-  }
-
-TD.ndoc  { 
-  padding: 2px;
-  }
-
-TD.rdoc  { 
-  padding: 2px;
-  padding-left: 10px;
-  width: 100%;
-  }
-
-TD.body  { 
-  padding-left: 10px
-  }
-
-TD.pkg {
-  width: 100%;
-  padding-left: 10px
-}
-
-TD.indexentry {
-  vertical-align: top;
-  padding-right: 10px
-  }
-
-TD.indexannot {
-  vertical-align: top;
-  padding-left: 20px;
-  white-space: nowrap
-  }
-
-TD.indexlinks {
-  width: 100%
-  }
-
-/* ------- Section Headings ------- */
-
-TD.section1 {
-  padding-top: 15px;
-  font-weight: bold;
-  font-size: 150%
-  }
-
-TD.section2 {
-  padding-top: 10px;
-  font-weight: bold;
-  font-size: 130%
-  }
-
-TD.section3 {
-  padding-top: 5px;
-  font-weight: bold;
-  font-size: 110%
-  }
-
-TD.section4 {
-  font-weight: bold;
-  font-size: 100%
-  }
-
-/* -------------- The title bar at the top of the page */
-
-TD.infohead {
-  color: #ffffff;
-  font-weight: bold;
-  padding-right: 10px;
-  text-align: left;
-}
-
-TD.infoval {
-  color: #ffffff;
-  padding-right: 10px;
-  text-align: left;
-}
-
-TD.topbar {
-  background-color: #000099;
-  padding: 5px;
-}
-
-TD.title {
-  color: #ffffff;
-  padding-left: 10px;
-  width: 100%
-  }
-
-TD.topbut {
-  padding-left: 5px;
-  padding-right: 5px;
-  border-left-width: 1px;
-  border-left-color: #ffffff;
-  border-left-style: solid;
-  white-space: nowrap;
-  }
-
-TD.topbut A:link {
-  color: #ffffff
-  }
-
-TD.topbut A:visited {
-  color: #ffff00
-  }
-
-TD.topbut A:hover {
-  background-color: #6060ff;
-  }
-
-TD.topbut:hover {
-  background-color: #6060ff
-  }
-
-TD.modulebar { 
-  background-color: #0077dd;
-  padding: 5px;
-  border-top-width: 1px;
-  border-top-color: #ffffff;
-  border-top-style: solid;
-  }
-
-/* --------- The page footer --------- */
-
-TD.botbar {
-  background-color: #000099;
-  color: #ffffff;
-  padding: 5px
-  }
-TD.botbar A:link {
-  color: #ffffff;
-  text-decoration: underline
-  }
-TD.botbar A:visited {
-  color: #ffff00
-  }
-TD.botbar A:hover {
-  background-color: #6060ff
-  }
-
diff --git a/doc/hdoc_arrow/haskell_icon.gif b/doc/hdoc_arrow/haskell_icon.gif
deleted file mode 100644
Binary files a/doc/hdoc_arrow/haskell_icon.gif and /dev/null differ
diff --git a/doc/hdoc_arrow/index.html b/doc/hdoc_arrow/index.html
deleted file mode 100644
--- a/doc/hdoc_arrow/index.html
+++ /dev/null
@@ -1,982 +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
->Haskell Xml Toolbox 7.5: The Arrow API</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Modules</TD
-></TR
-><TR
-><TD
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"
->Control</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"
->Arrow</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ArrowIO.html"
->Control.Arrow.ArrowIO</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ArrowIf.html"
->Control.Arrow.ArrowIf</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ArrowList.html"
->Control.Arrow.ArrowList</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ArrowState.html"
->Control.Arrow.ArrowState</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ArrowStrict.html"
->Control.Arrow.ArrowStrict</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ArrowTree.html"
->Control.Arrow.ArrowTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-IOListArrow.html"
->Control.Arrow.IOListArrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-IOStateListArrow.html"
->Control.Arrow.IOStateListArrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ListArrow.html"
->Control.Arrow.ListArrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-ListArrows.html"
->Control.Arrow.ListArrows</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Arrow-StateListArrow.html"
->Control.Arrow.StateListArrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"
->Monad</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Monad-MonadStateIO.html"
->Control.Monad.MonadStateIO</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"
->Strategies</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Strategies-DeepSeq.html"
->Control.Strategies.DeepSeq</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"
->Data</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 48em"
-><A HREF="Data-AssocList.html"
->Data.AssocList</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"
->Char</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Data-Char-UTF8.html"
->Data.Char.UTF8</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 48em"
-><A HREF="Data-NavTree.html"
->Data.NavTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"
->Tree</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Data-Tree-Class.html"
->Data.Tree.Class</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"
->NTree</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 44em"
-><A HREF="Data-Tree-NTree-TypeDefs.html"
->Data.Tree.NTree.TypeDefs</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"
->Text</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"
->XML</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"
-><TR
-><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"
->HXT</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"
-><A HREF="Text-XML-HXT-Arrow.html"
->Text.XML.HXT.Arrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-DOMInterface.html"
->Text.XML.HXT.Arrow.DOMInterface</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html"
->Text.XML.HXT.Arrow.DTDProcessing</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-DocumentInput.html"
->Text.XML.HXT.Arrow.DocumentInput</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html"
->Text.XML.HXT.Arrow.DocumentOutput</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-Edit.html"
->Text.XML.HXT.Arrow.Edit</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"
->Text.XML.HXT.Arrow.GeneralEntitySubstitution</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-Namespace.html"
->Text.XML.HXT.Arrow.Namespace</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html"
->Text.XML.HXT.Arrow.ParserInterface</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 42em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"
-><A HREF="Text-XML-HXT-Arrow-Pickle.html"
->Text.XML.HXT.Arrow.Pickle</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html"
->Text.XML.HXT.Arrow.Pickle.DTD</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html"
->Text.XML.HXT.Arrow.Pickle.Schema</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html"
->Text.XML.HXT.Arrow.Pickle.Xml</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html"
->Text.XML.HXT.Arrow.ProcessDocument</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html"
->Text.XML.HXT.Arrow.ReadDocument</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html"
->Text.XML.HXT.Arrow.WriteDocument</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XPath.html"
->Text.XML.HXT.Arrow.XPath</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html"
->Text.XML.HXT.Arrow.XPathSimple</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
->Text.XML.HXT.Arrow.XmlArrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html"
->Text.XML.HXT.Arrow.XmlNode</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"
->DOM</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></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
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html"
->Text.XML.HXT.DOM.TypeDefs</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html"
->Text.XML.HXT.DOM.UTF8Decoding</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-Unicode.html"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-Util.html"
->Text.XML.HXT.DOM.Util</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:14')" ALT="show/hide"
->RelaxNG</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:14" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html"
->Text.XML.HXT.RelaxNG.DataTypeLibMysql</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html"
->Text.XML.HXT.RelaxNG.DataTypeLibraries</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"
->Text.XML.HXT.RelaxNG.DataTypes</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-Schema.html"
->Text.XML.HXT.RelaxNG.Schema</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html"
->Text.XML.HXT.RelaxNG.SchemaGrammar</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-Simplification.html"
->Text.XML.HXT.RelaxNG.Simplification</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 42em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:15')" ALT="show/hide"
->Unicode</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:15" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-Blocks.html"
->Text.XML.HXT.RelaxNG.Unicode.Blocks</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html"
->Text.XML.HXT.RelaxNG.Unicode.CharProps</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-Validation.html"
->Text.XML.HXT.RelaxNG.Validation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-RelaxNG-Validator.html"
->Text.XML.HXT.RelaxNG.Validator</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 42em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:16')" ALT="show/hide"
->XmlSchema</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:16" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html"
->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html"
->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 40em"
-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html"
->Text.XML.HXT.RelaxNG.XmlSchema.RegexParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:17')" ALT="show/hide"
->XSLT</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:17" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XSLT-Application.html"
->Text.XML.HXT.XSLT.Application</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XSLT-Common.html"
->Text.XML.HXT.XSLT.Common</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XSLT-Compilation.html"
->Text.XML.HXT.XSLT.Compilation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html"
->Text.XML.HXT.XSLT.CompiledStylesheet</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XSLT-Names.html"
->Text.XML.HXT.XSLT.Names</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XSLT-XsltArrows.html"
->Text.XML.HXT.XSLT.XsltArrows</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/minus.gif b/doc/hdoc_arrow/minus.gif
deleted file mode 100644
Binary files a/doc/hdoc_arrow/minus.gif and /dev/null differ
diff --git a/doc/hdoc_arrow/plus.gif b/doc/hdoc_arrow/plus.gif
deleted file mode 100644
Binary files a/doc/hdoc_arrow/plus.gif and /dev/null differ
diff --git a/doc/hdoc_filter/Control-Monad-MonadStateIO.html b/doc/hdoc_filter/Control-Monad-MonadStateIO.html
deleted file mode 100644
--- a/doc/hdoc_filter/Control-Monad-MonadStateIO.html
+++ /dev/null
@@ -1,398 +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
->Control.Monad.MonadStateIO</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Monad.MonadStateIO</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->general usefull state monad for a local state and IO
-</P
-><P
->Version : $Id: MonadStateIO.hs,v 1.1 2004<EM
->09</EM
->02 19:11:55 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"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A HREF="#t%3AStateIO"
->StateIO</A
-> state res = <A HREF="#v%3ASTIO"
->STIO</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3Atrans"
->trans</A
-> :: (state -&gt; IO (res, state))</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aio"
->io</A
-> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtrcState"
->trcState</A
-> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeState"
->changeState</A
-> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetState"
->setState</A
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetState"
->getState</A
-> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arun"
->run</A
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state res -&gt; IO res</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->newtype</SPAN
-> <A NAME="t%3AStateIO"
-></A
-><B
->StateIO</B
-> state res</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><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%3ASTIO"
-></A
-><B
->STIO</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%3Atrans"
-></A
-><B
->trans</B
-> :: (state -&gt; IO (res, state))</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StateIO')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:StateIO" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Monad (<A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aio"
-></A
-><B
->io</B
-> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state a</TD
-></TR
-><TR
-><TD CLASS="doc"
->lift IO command to <TT
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtrcState"
-></A
-><B
->trcState</B
-> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
->state inspection command: a &quot;show&quot;-like function is applied to the state
- and the result is written to stderr.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeState"
-></A
-><B
->changeState</B
-> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
->change the state with a given function and return the new state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetState"
-></A
-><B
->setState</B
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetState"
-></A
-><B
->getState</B
-> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
->read the state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arun"
-></A
-><B
->run</B
-> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> state res -&gt; IO res</TD
-></TR
-><TR
-><TD CLASS="doc"
->run a <TT
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-></TT
-> command with an initial state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Control-Strategies-DeepSeq.html b/doc/hdoc_filter/Control-Strategies-DeepSeq.html
deleted file mode 100644
--- a/doc/hdoc_filter/Control-Strategies-DeepSeq.html
+++ /dev/null
@@ -1,419 +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
->Control.Strategies.DeepSeq</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Control.Strategies.DeepSeq</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->stolen from comp.lang.functional from Dean Herington
-</P
-><P
->DeepSeq.lhs  --  deep strict evaluation support
-</P
-><P
->The <TT
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-></TT
-> class provides a method <TT
-><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"
->deepSeq</A
-></TT
-> that is similar to
-seq except that it forces deep evaluation of its first argument
-before returning its second argument.
-</P
-><P
->Instances of <TT
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-></TT
-> are provided for Prelude types.  Other
-instances must be supplied by users of this module.
-</P
-><P
->$Id: DeepSeq.lhs,v 1.5 2002<EM
->04</EM
->01 20:58:24 heringto Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3ADeepSeq"
-></A
-><B
->DeepSeq</B
-> a  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdeepSeq"
-></A
-><B
->deepSeq</B
-> :: a -&gt; b -&gt; b</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DeepSeq')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DeepSeq" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Char</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Double</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Float</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Integer</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> Ordering</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> ()</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> e) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d, e)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> f) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d, e, f)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> f, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> g) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a, b, c, d, e, f, g)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (a -&gt; b)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (IO a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (Maybe a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> [a]</TD
-></TR
-><TR
-><TD CLASS="decl"
->(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (Either a b)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%24%21%21"
-></A
-><B
->($!!)</B
-> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; (a -&gt; b) -&gt; a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Astrict"
-></A
-><B
->strict</B
-> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Data-AssocList.html b/doc/hdoc_filter/Data-AssocList.html
deleted file mode 100644
--- a/doc/hdoc_filter/Data-AssocList.html
+++ /dev/null
@@ -1,378 +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.AssocList</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.AssocList</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple key value assocciation list
- implemented as unordered list of pairs
-</P
-><P
->Version : $Id: AssocList.hs,v 1.2 2005<EM
->05</EM
->27 13:15:23 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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAssocList"
->AssocList</A
-> k v = [(k, v)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AlookupDef"
->lookupDef</A
-> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Alookup1"
->lookup1</A
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k [e] -&gt; [e]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasEntry"
->hasEntry</A
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddEntry"
->addEntry</A
-> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddEntries"
->addEntries</A
-> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdelEntry"
->delEntry</A
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdelEntries"
->delEntries</A
-> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAssocList"
-></A
-><B
->AssocList</B
-> k v = [(k, v)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlookupDef"
-></A
-><B
->lookupDef</B
-> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; v</TD
-></TR
-><TR
-><TD CLASS="doc"
->lookup with default value
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Alookup1"
-></A
-><B
->lookup1</B
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k [e] -&gt; [e]</TD
-></TR
-><TR
-><TD CLASS="doc"
->lookup with empty list (empty string) as default value
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasEntry"
-></A
-><B
->hasEntry</B
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test for existence of a key
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddEntry"
-></A
-><B
->addEntry</B
-> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddEntries"
-></A
-><B
->addEntries</B
-> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->add a whole list of entries with <TT
-><A HREF="Data-AssocList.html#v%3AaddEntry"
->addEntry</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdelEntry"
-></A
-><B
->delEntry</B
-> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->delete an entry, delEntry is strict
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdelEntries"
-></A
-><B
->delEntries</B
-> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> k v</TD
-></TR
-><TR
-><TD CLASS="doc"
->delete a list of entries with <TT
-><A HREF="Data-AssocList.html#v%3AdelEntry"
->delEntry</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Data-Char-UTF8.html b/doc/hdoc_filter/Data-Char-UTF8.html
deleted file mode 100644
--- a/doc/hdoc_filter/Data-Char-UTF8.html
+++ /dev/null
@@ -1,191 +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.Char.UTF8</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Char/UTF8.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.Char.UTF8</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aencode"
-></A
-><B
->encode</B
-> :: [Char] -&gt; [Word8]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adecode"
-></A
-><B
->decode</B
-> :: [Word8] -&gt; ([Char], [(<A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
->, Int)])</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeEmbedErrors"
-></A
-><B
->decodeEmbedErrors</B
-> :: [Word8] -&gt; [Either (<A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
->, Int) Char]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AencodeOne"
-></A
-><B
->encodeOne</B
-> :: Char -&gt; [Word8]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeOne"
-></A
-><B
->decodeOne</B
-> :: [Word8] -&gt; (Either <A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
-> Char, Int, [Word8])</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AError"
-></A
-><B
->Error</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Error')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Error" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Data-Char-UTF8.html#t%3AError"
->Error</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Data-NavTree.html b/doc/hdoc_filter/Data-NavTree.html
deleted file mode 100644
--- a/doc/hdoc_filter/Data-NavTree.html
+++ /dev/null
@@ -1,618 +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.NavTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.NavTree</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Navigable tree structure which allow a program to traverse
- up the tree as well as down.
- copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"
->http://www.flightlab.com/~joe/hxml/</A
->)
-</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%3ANavTree"
->NavTree</A
-> a = <A HREF="#v%3ANT"
->NT</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a) [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Antree"
->ntree</A
-> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubtreeNT"
->subtreeNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdataNT"
->dataNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AupNT"
->upNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdownNT"
->downNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AleftNT"
->leftNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArightNT"
->rightNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApreorderNT"
->preorderNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArevPreorderNT"
->revPreorderNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetChildrenNT"
->getChildrenNT</A
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ao%27"
->o'</A
-> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmaybeStar"
->maybeStar</A
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmaybePlus"
->maybePlus</A
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Data-Tree-NTree-Filter.html"
->Data.Tree.NTree.Filter</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANavTree"
-></A
-><B
->NavTree</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->navigable tree with nodes of type node
-</P
-><P
->a navigable tree consists of a n-ary tree for the current fragment tree,
- a navigable tree for all ancestors, and two n-ary trees for
- the previous- and following siblings
-</P
-></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 NAME="v%3ANT"
-></A
-><B
->NT</B
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a) [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NavTree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NavTree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->??? a =&gt; Eq (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->??? a =&gt; Ord (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->??? a =&gt; Show (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Antree"
-></A
-><B
->ntree</B
-> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->converts a n-ary tree in a navigable tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubtreeNT"
-></A
-><B
->subtreeNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->converts a navigable tree in a n-ary tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdataNT"
-></A
-><B
->dataNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="doc"
->function for selecting the value of the current fragment tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AupNT"
-></A
-><B
->upNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdownNT"
-></A
-><B
->downNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AleftNT"
-></A
-><B
->leftNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArightNT"
-></A
-><B
->rightNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApreorderNT"
-></A
-><B
->preorderNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArevPreorderNT"
-></A
-><B
->revPreorderNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetChildrenNT"
-></A
-><B
->getChildrenNT</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ao%27"
-></A
-><B
->o'</B
-> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD
-></TR
-><TR
-><TD CLASS="doc"
->Kleisli composition:
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmaybeStar"
-></A
-><B
->maybeStar</B
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmaybePlus"
-></A
-><B
->maybePlus</B
-> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</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="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Data-Tree-Class.html b/doc/hdoc_filter/Data-Tree-Class.html
deleted file mode 100644
--- a/doc/hdoc_filter/Data-Tree-Class.html
+++ /dev/null
@@ -1,568 +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.Class</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.Tree.Class</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Interface definition for trees
-</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"
->class</SPAN
-> <A HREF="#t%3ATree"
->Tree</A
-> t  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkTree"
->mkTree</A
-> :: a -&gt; [t a] -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkLeaf"
->mkLeaf</A
-> :: a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisLeaf"
->isLeaf</A
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisInner"
->isInner</A
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNode"
->getNode</A
-> :: t a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetChildren"
->getChildren</A
-> :: t a -&gt; [t a]</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeNode"
->changeNode</A
-> :: (a -&gt; a) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeChildren"
->changeChildren</A
-> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetNode"
->setNode</A
-> :: a -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetChildren"
->setChildren</A
-> :: [t a] -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfoldTree"
->foldTree</A
-> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnodesTree"
->nodesTree</A
-> :: t a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdepthTree"
->depthTree</A
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcardTree"
->cardTree</A
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AformatTree"
->formatTree</A
-> :: (a -&gt; String) -&gt; t a -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->class</SPAN
-> <A NAME="t%3ATree"
-></A
-><B
->Tree</B
-> t  <SPAN CLASS="keyword"
->where</SPAN
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The interface for trees
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Methods</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkTree"
-></A
-><B
->mkTree</B
-> :: a -&gt; [t a] -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->tree construction: a new tree is constructed by a node attribute and a list of children
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkLeaf"
-></A
-><B
->mkLeaf</B
-> :: a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->leaf construction: leafs don't have any children
-</P
-><P
->definition: <TT
-> mkLeaf n = mkTree n [] </TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisLeaf"
-></A
-><B
->isLeaf</B
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->leaf test: list of children empty?
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisInner"
-></A
-><B
->isInner</B
-> :: t a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->innner node test: <TT
-> not . isLeaf </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNode"
-></A
-><B
->getNode</B
-> :: t a -&gt; a</TD
-></TR
-><TR
-><TD CLASS="doc"
->select node attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetChildren"
-></A
-><B
->getChildren</B
-> :: t a -&gt; [t a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->select children
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeNode"
-></A
-><B
->changeNode</B
-> :: (a -&gt; a) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->edit node attribute
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeChildren"
-></A
-><B
->changeChildren</B
-> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->edit children
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetNode"
-></A
-><B
->setNode</B
-> :: a -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->substitute node: <TT
-> setNode n = changeNode (const n) </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetChildren"
-></A
-><B
->setChildren</B
-> :: [t a] -&gt; t a -&gt; t a</TD
-></TR
-><TR
-><TD CLASS="doc"
->substitute children: <TT
-> setChildren cl = changeChildren (const cl) </TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfoldTree"
-></A
-><B
->foldTree</B
-> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD
-></TR
-><TR
-><TD CLASS="doc"
->fold for trees
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnodesTree"
-></A
-><B
->nodesTree</B
-> :: t a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->all nodes of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdepthTree"
-></A
-><B
->depthTree</B
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->depth of a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcardTree"
-></A
-><B
->cardTree</B
-> :: t a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->number of nodes in a tree
-</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatTree"
-></A
-><B
->formatTree</B
-> :: (a -&gt; String) -&gt; t a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->format tree for readable trace output
-</P
-><P
->a <EM
->graphical</EM
-> representation of the tree in text format
-</P
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Tree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Data-Tree-NTree-Filter.html b/doc/hdoc_filter/Data-Tree-NTree-Filter.html
deleted file mode 100644
--- a/doc/hdoc_filter/Data-Tree-NTree-Filter.html
+++ /dev/null
@@ -1,3077 +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"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/Filter.hs"
->Source code</A
-></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; Bool</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; Bool) -&gt; a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfNode"
->isOfNode</A
-> :: (node -&gt; Bool) -&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; Maybe 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 HREF="#v%3A%3A-%3E"
->(:-&gt;)</A
-> 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
-> :: Int -&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
-> :: Monad m =&gt; a -&gt; m [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnoneM"
->noneM</A
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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
-> :: Monad 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="decl"
-><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
-></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="decl"
-><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
-></TR
-><TR
-><TD CLASS="doc"
->a filter for sequences
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asatisfies"
-></A
-><B
->satisfies</B
-> :: (a -&gt; [b]) -&gt; a -&gt; Bool</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="decl"
-><A NAME="v%3Anone"
-></A
-><B
->none</B
-> :: a -&gt; [b]</TD
-></TR
-><TR
-><TD CLASS="doc"
->the null filter, returns the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Athis"
-></A
-><B
->this</B
-> :: a -&gt; [a]</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="decl"
-><A NAME="v%3AisOf"
-></A
-><B
->isOf</B
-> :: (a -&gt; Bool) -&gt; a -&gt; [a]</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="decl"
-><A NAME="v%3AisOfNode"
-></A
-><B
->isOfNode</B
-> :: (node -&gt; Bool) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</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="decl"
-><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
-></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="decl"
-><A NAME="v%3AreplaceNode"
-></A
-><B
->replaceNode</B
-> :: node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</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="decl"
-><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
-></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="decl"
-><A NAME="v%3AmodifyNode"
-></A
-><B
->modifyNode</B
-> :: (node -&gt; Maybe node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->TFilter</A
-> node</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><A NAME="v%3Ao"
-></A
-><B
->o</B
-> :: (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</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="decl"
-><A NAME="v%3A.%3E"
-></A
-><B
->(.&gt;)</B
-> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</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="decl"
-><A NAME="v%3AseqF"
-></A
-><B
->seqF</B
-> :: [a -&gt; [a]] -&gt; a -&gt; [a]</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="decl"
-><A NAME="v%3A..%3E"
-></A
-><B
->(..&gt;)</B
-> :: (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</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="decl"
-><A NAME="v%3A%2B%2B%2B"
-></A
-><B
->(+++)</B
-> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</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="decl"
-><A NAME="v%3Acat"
-></A
-><B
->cat</B
-> :: [a -&gt; [b]] -&gt; a -&gt; [b]</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="decl"
-><A NAME="v%3AorElse"
-></A
-><B
->orElse</B
-> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</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="decl"
-><A NAME="v%3Aiff"
-></A
-><B
->iff</B
-> :: (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</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="decl"
-><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
-></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="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AIfThen"
-></A
-><B
->IfThen</B
-> a b</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 NAME="v%3A%3A-%3E"
-></A
-><B
->(:-&gt;)</B
-> a b</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Awhen"
-></A
-><B
->when</B
-> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</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="decl"
-><A NAME="v%3AwhenNot"
-></A
-><B
->whenNot</B
-> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</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="decl"
-><A NAME="v%3Aguards"
-></A
-><B
->guards</B
-> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</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="decl"
-><A NAME="v%3Aneg"
-></A
-><B
->neg</B
-> :: (a -&gt; [c]) -&gt; a -&gt; [a]</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="decl"
-><A NAME="v%3Acontaining"
-></A
-><B
->containing</B
-> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</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="decl"
-><A NAME="v%3AnotContaining"
-></A
-><B
->notContaining</B
-> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</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="decl"
-><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
-></TR
-><TR
-><TD CLASS="doc"
->pronounced &quot;slash&quot;, meaning g inside f
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></TR
-><TR
-><TD CLASS="doc"
->pronounced &quot;outside&quot; meaning f containing g
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><A NAME="v%3AinsertChildrenAt"
-></A
-><B
->insertChildrenAt</B
-> :: Int -&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="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="decl"
-><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
-></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="decl"
-><A NAME="v%3AthisM"
-></A
-><B
->thisM</B
-> :: Monad m =&gt; a -&gt; m [a]</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="decl"
-><A NAME="v%3AnoneM"
-></A
-><B
->noneM</B
-> :: Monad m =&gt; a -&gt; m [b]</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="decl"
-><A NAME="v%3A.%3E%3E"
-></A
-><B
->(.&gt;&gt;)</B
-> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</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="decl"
-><A NAME="v%3AseqM"
-></A
-><B
->seqM</B
-> :: Monad m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->generalized sequential composition of monadic filters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%2B%2B%3E%3E"
-></A
-><B
->(+++&gt;&gt;)</B
-> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</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="decl"
-><A NAME="v%3AcatM"
-></A
-><B
->catM</B
-> :: Monad m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</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="decl"
-><A NAME="v%3AifM"
-></A
-><B
->ifM</B
-> :: Monad 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="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="decl"
-><A NAME="v%3AchoiceM"
-></A
-><B
->choiceM</B
-> :: Monad 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="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="decl"
-><A NAME="v%3AwhenM"
-></A
-><B
->whenM</B
-> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</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="decl"
-><A NAME="v%3AwhenNotM"
-></A
-><B
->whenNotM</B
-> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</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="decl"
-><A NAME="v%3AguardsM"
-></A
-><B
->guardsM</B
-> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</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="decl"
-><A NAME="v%3AcontainingM"
-></A
-><B
->containingM</B
-> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</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="decl"
-><A NAME="v%3AprocessChildrenM"
-></A
-><B
->processChildrenM</B
-> :: Monad 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="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="decl"
-><A NAME="v%3AprocessTopDownM"
-></A
-><B
->processTopDownM</B
-> :: Monad 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="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="decl"
-><A NAME="v%3AprocessBottomUpM"
-></A
-><B
->processBottomUpM</B
-> :: Monad 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="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="decl"
-><A NAME="v%3AliftMf"
-></A
-><B
->liftMf</B
-> :: Monad m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</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="decl"
-><A NAME="v%3A%24%24"
-></A
-><B
->($$)</B
-> :: (a -&gt; [b]) -&gt; [a] -&gt; [b]</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="decl"
-><A NAME="v%3A%24%24%3C"
-></A
-><B
->($$&lt;)</B
-> :: Monad m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</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="decl"
-><A NAME="v%3AperformAction"
-></A
-><B
->performAction</B
-> :: Monad m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html b/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html
deleted file mode 100644
--- a/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html
+++ /dev/null
@@ -1,357 +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.TypeDefs</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Data.Tree.NTree.TypeDefs</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: TypeDefs.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Interface definition for trees
-</P
-><P
->n-ary tree structure (rose trees)
-</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-Class.html"
->Data.Tree.Class</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ANTree"
->NTree</A
-> a = <A HREF="#v%3ANTree"
->NTree</A
-> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANTrees"
->NTrees</A
-> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AformatNTreeF"
->formatNTreeF</A
-> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Data-Tree-Class.html"
->Data.Tree.Class</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANTree"
-></A
-><B
->NTree</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->n-ary ordered tree (rose trees)
-</P
-><P
->a tree consists of a node and a possible empty list of children.
- If the list of children is empty, the node is a leaf, else it's
- an inner node.
-</P
-><P
->NTree implements Eq, Ord, Show and Read
-</P
-></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 NAME="v%3ANTree"
-></A
-><B
->NTree</B
-> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NTree')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NTree" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Functor <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Data-Tree-Class.html#t%3ATree"
->Tree</A
-> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Eq a, ??? a) =&gt; Eq (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Ord a, ??? a) =&gt; Ord (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Read a, ??? a) =&gt; Read (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Show a, ??? a) =&gt; Show (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->(Typeable a, ??? a) =&gt; Typeable (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANTrees"
-></A
-><B
->NTrees</B
-> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut for a sequence of n-ary trees
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatNTreeF"
-></A
-><B
->formatNTreeF</B
-> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a tree into a pseudo graphical string reprsentation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/System-PipeOpen.html b/doc/hdoc_filter/System-PipeOpen.html
deleted file mode 100644
--- a/doc/hdoc_filter/System-PipeOpen.html
+++ /dev/null
@@ -1,156 +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
->System.PipeOpen</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./System/PipeOpen.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->System.PipeOpen</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->none portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe\@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: PipeOpen.hs,v 1.2 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->pipe open implemented with System.Process functions
-</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%3Apopen"
->popen</A
-> :: String -&gt; [String] -&gt; IO (String, String, Int)</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Apopen"
-></A
-><B
->popen</B
-> :: String -&gt; [String] -&gt; IO (String, String, Int)</TD
-></TR
-><TR
-><TD CLASS="doc"
->call an external program with a list of command line arguments
- and return content of stdout, content of stderr and return code
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html b/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html
+++ /dev/null
@@ -1,1192 +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.EditFilters</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/EditFilters.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.EditFilters</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->XML editing filters
-</P
-><P
->Version : $Id: EditFilters.hs,v 1.5 2006<EM
->11</EM
->12 14:52:59 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%3AcanonicalizeTree"
->canonicalizeTree</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollapseXText"
->collapseXText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcollapseAllXText"
->collapseAllXText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AindentDoc"
->indentDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveWhiteSpace"
->removeWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveComment"
->removeComment</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveAllComment"
->removeAllComment</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCdata"
->transfCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCdata"
->transfAllCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCdataEscaped"
->transfCdataEscaped</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCdataEscaped"
->transfAllCdataEscaped</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfCharRef"
->transfCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransfAllCharRef"
->transfAllCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlText"
->escapeXmlText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeXmlAttrValue"
->escapeXmlAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunparseXmlDoc"
->unparseXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnumberLines"
->numberLines</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddHeadlineToXmlDoc"
->addHeadlineToXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddXmlPiToDoc"
->addXmlPiToDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeTree"
-></A
-><B
->canonicalizeTree</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Applies some <A HREF="Canonical XML.html"
->Canonical XML</A
-> rules to the nodes of a tree.
-</P
-><P
->The rule differ slightly for canonical XML and XPath in handling of comments
-</P
-><P
->Note: This is not the whole canonicalization as it is specified by the W3C
- Recommendation. Adding attribute defaults or sorting attributes in lexicographic
- order is done by the <TT
->transform</TT
-> function of module <TT
->Text.XML.HXT.Validator.Validation</TT
->.
- Replacing entities or line feed normalization is done by the parser.
-</P
-><P
->Not implemented yet:
-</P
-><UL
-><LI
-> Whitespace within start and end tags is normalized
-</LI
-><LI
-> Special characters in attribute values and character content are replaced by character references
-</LI
-></UL
-><P
->see <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"
->canonicalizeAllNodes</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeAllNodes"
-></A
-><B
->canonicalizeAllNodes</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->canonicalize tree and remove comments and &lt;?xml ... ?&gt; declarations
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"
->canonicalizeTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcanonicalizeForXPath"
-></A
-><B
->canonicalizeForXPath</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Canonicalize a tree for XPath
- Comment nodes are not removed
-</P
-><P
->see <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"
->canonicalizeTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollapseXText"
-></A
-><B
->collapseXText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Collects sequences of child XText nodes into one XText node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcollapseAllXText"
-></A
-><B
->collapseAllXText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Applies collapseXText recursively.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"
->collapseXText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AindentDoc"
-></A
-><B
->indentDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for indenting a document tree for pretty printing.
-</P
-><P
->the tree is traversed for inserting whitespace for tag indentation.
-</P
-><P
->whitespace is only inserted or changed at places, where it isn't significant,
- is's not inserted between tags and text containing non whitespace chars.
-</P
-><P
->whitespace is only inserted or changed at places, where it's not significant.
- preserving whitespace may be controlled in a document tree
- by a tag attribute <TT
->xml:space</TT
->
-</P
-><P
->allowed values for this attribute are <TT
->default | preserve</TT
->.
-</P
-><P
->input is a complete document tree.
- result the semantically equivalent formatted tree.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveWhiteSpace"
-></A
-><B
->removeWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple filter for removing whitespace.
-</P
-><P
->no check on sigificant whitespace is done.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAllWhiteSpace"
-></A
-><B
->removeAllWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->simple recursive filter for removing all whitespace.
-</P
-><P
->removes all text nodes in a tree that consist only of whitespace.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"
->removeWhiteSpace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->removeDocWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveDocWhiteSpace"
-></A
-><B
->removeDocWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for removing all not significant whitespace.
-</P
-><P
->the tree traversed for removing whitespace between tags,
- that was inserted for indentation and readability.
- whitespace is only removed at places, where it's not significat
- preserving whitespace may be controlled in a document tree
- by a tag attribute <TT
->xml:space</TT
->
-</P
-><P
->allowed values for this attribute are <TT
->default | preserve</TT
->
-</P
-><P
->input is root node of the document to be cleaned up
- output the semantically equivalent simplified tree
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"
->indentDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"
->removeAllWhiteSpace</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveComment"
-></A
-><B
->removeComment</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove Comments
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveAllComment"
-></A
-><B
->removeAllComment</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->remove all Comments recursively
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCdata"
-></A
-><B
->transfCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA section in normal text sections
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCdata"
-></A
-><B
->transfAllCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA sections in whole document tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCdataEscaped"
-></A
-><B
->transfCdataEscaped</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA section in normal text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCdataEscaped"
-></A
-><B
->transfAllCdataEscaped</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts CDATA sections in whole document tree into normal text nodes
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfCharRef"
-></A
-><B
->transfCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->converts character references to normal text
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransfAllCharRef"
-></A
-><B
->transfAllCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->recursively converts all character references to normal text
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlDoc"
-></A
-><B
->escapeXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the special XML chars &quot;, &lt;, &gt;, &amp; and ' in a document to char references,
- attribute values are converted with <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"
->escapeXmlAttrValue</A
-></TT
->
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"
->escapeXmlText</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"
->escapeXmlAttrValue</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlText"
-></A
-><B
->escapeXmlText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the special XML chars in a text or comment node
- into character references
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeXmlAttrValue"
-></A
-><B
->escapeXmlAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the special XML chars in an attribute value into
- charachter references. Not only the XML specials but also \n, \r and \t are converted
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"
->escapeXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"
->escapeXmlText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunparseXmlDoc"
-></A
-><B
->unparseXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document tree into an output string representation
- with respect to the output encoding.
-</P
-><P
->The children of the document root are stubstituted by
- a single text node for the text representation of the document.
-</P
-><P
->Encoding of the document is performed with respect
- to the <TT
->output-encoding</TT
-> attribute in the root node, or if not present,
- of the <TT
->encoding</TT
-> attribute for the original input encoding.
- If the encoding is not specified or not supported, UTF-8 is taken.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumberLinesInXmlDoc"
-></A
-><B
->numberLinesInXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a text and add line numbers to the text representation.
-</P
-><P
->Result is a root node with a single text node as child.
- Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnumberLines"
-></A
-><B
->numberLines</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtreeRepOfXmlDoc"
-></A
-><B
->treeRepOfXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a text representation in tree form.
-</P
-><P
->Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"
->haskellRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhaskellRepOfXmlDoc"
-></A
-><B
->haskellRepOfXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a document into a Haskell representation (with show).
-</P
-><P
->Useful for debugging and trace output.
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"
->treeRepOfXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"
->numberLinesInXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddHeadlineToXmlDoc"
-></A
-><B
->addHeadlineToXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddXmlPiToDoc"
-></A
-><B
->addXmlPiToDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html b/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html
+++ /dev/null
@@ -1,124 +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.FormatXmlTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/FormatXmlTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.FormatXmlTree</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->format a xml tree in tree representation
-</P
-><P
->Version : $Id: FormatXmlTree.hs,v 1.2 2006<EM
->05</EM
->01 18:56:24 hxml Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatXmlTree"
-></A
-><B
->formatXmlTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatXmlContents"
-></A
-><B
->formatXmlContents</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html b/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html
+++ /dev/null
@@ -1,248 +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.IsoLatinTables</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/IsoLatinTables.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.IsoLatinTables</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_2"
-></A
-><B
->iso_8859_2</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_3"
-></A
-><B
->iso_8859_3</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_4"
-></A
-><B
->iso_8859_4</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_5"
-></A
-><B
->iso_8859_5</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_6"
-></A
-><B
->iso_8859_6</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_7"
-></A
-><B
->iso_8859_7</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_8"
-></A
-><B
->iso_8859_8</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_9"
-></A
-><B
->iso_8859_9</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_10"
-></A
-><B
->iso_8859_10</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_11"
-></A
-><B
->iso_8859_11</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_13"
-></A
-><B
->iso_8859_13</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_14"
-></A
-><B
->iso_8859_14</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_15"
-></A
-><B
->iso_8859_15</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso_8859_16"
-></A
-><B
->iso_8859_16</B
-> :: [(Char, Char)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html b/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html
+++ /dev/null
@@ -1,171 +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.Namespace</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Namespace.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.Namespace</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->main namespace filter for propagation, checking, tracing and error handling
-</P
-><P
->$Id: Namespace.hs,v 1.3 2005<EM
->01</EM
->06 10:48:07 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%3ApropagateAndValidateNamespaces"
->propagateAndValidateNamespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"
->Text.XML.HXT.DOM.NamespaceFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApropagateAndValidateNamespaces"
-></A
-><B
->propagateAndValidateNamespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->propagate all namespace declarations, check namespace constraints and issue errors.
- If no error was found, result is the unchanged input tree, else the root node &quot;/&quot; with an empty document is returned.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"
->propagateNamespaces</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"
->validateNamespaces</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"
->Text.XML.HXT.DOM.NamespaceFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html
+++ /dev/null
@@ -1,399 +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.NamespaceFilter</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespaceFilter.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.NamespaceFilter</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Namespace filter
-</P
-><P
->$Id: NamespaceFilter.hs,v 1.4 2006<EM
->11</EM
->12 14:53:00 hxml Exp $
-</P
-><P
->Namespaces are processed with two main filter, <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"
->propagateNamespaces</A
-></TT
->
- and <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"
->validateNamespaces</A
-></TT
->.
-</P
-><P
-><TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"
->propagateNamespaces</A
-></TT
-> takes a XML tree and
- attaches extra namespace info at every tag name and attribute name.
- So after processing a tree with <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"
->propagateNamespaces</A
-></TT
->, the access functions
- <A HREF="namespaceOf.html"
->namespaceOf</A
-> and <A HREF="universalNameOf.html"
->universalNameOf</A
-> deliver the associated namespace (or &quot;&quot;)
- for tag names and attribute names.
-</P
-><P
-><TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"
->validateNamespaces</A
-></TT
-> checks whether names are wellformed related to the XML namespace definition.
- whether a legal namespace is declared for all prefixes, and whether attribute names are unique
- related to universal names.
-</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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANamespaceTable"
->NamespaceTable</A
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApropagateNamespaces"
->propagateNamespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApropagateNamespaceEnv"
->propagateNamespaceEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
->NamespaceTable</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalidateNamespaces"
->validateNamespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Avalidate1Namespaces"
->validate1Namespaces</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNamespaceDecl"
->isNamespaceDecl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
->Text.XML.HXT.DOM.NamespacePredicates</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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANamespaceTable"
-></A
-><B
->NamespaceTable</B
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-></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="decl"
-><A NAME="v%3ApropagateNamespaces"
-></A
-><B
->propagateNamespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->propagate all namespace declarations &quot;xmlns:ns=...&quot; to all
- tag and attribute nodes of a document.
-</P
-><P
->This filter does not check for illegal use of namespaces.
- The real work is done by <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"
->propagateNamespaceEnv</A
-></TT
->.
-</P
-><P
->The filter may be applied repeatedly if neccessary.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApropagateNamespaceEnv"
-></A
-><B
->propagateNamespaceEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
->NamespaceTable</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->attaches the namespace info given by the namespace table
- to a tag node and its attributes and children.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateNamespaces"
-></A
-><B
->validateNamespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->validate the namespace constraints in a whole tree.
- result is the list of errors concerning namespaces.
- Work is done by applying <TT
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"
->validate1Namespaces</A
-></TT
-> to all nodes.
- Predicates <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"
->isWellformedQName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"
->isWellformedQualifiedName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"
->isDeclaredNamespace</A
-></TT
->
- and <TT
-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"
->isWellformedNSDecl</A
-></TT
-> are applied to the appropriate tags and attributes.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Avalidate1Namespaces"
-></A
-><B
->validate1Namespaces</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->a single node for namespace constrains.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNamespaceDecl"
-></A
-><B
->isNamespaceDecl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</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
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html
+++ /dev/null
@@ -1,338 +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"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"
->Source code</A
-></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
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWellformedQualifiedName"
->isWellformedQualifiedName</A
-> :: String -&gt; Bool</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; Bool</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; Bool</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; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%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
-></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="decl"
-><A NAME="v%3AxmlnsQN"
-></A
-><B
->xmlnsQN</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNCName"
-></A
-><B
->isNCName</B
-> :: String -&gt; Bool</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="decl"
-><A NAME="v%3AisWellformedQualifiedName"
-></A
-><B
->isWellformedQualifiedName</B
-> :: String -&gt; Bool</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="decl"
-><A NAME="v%3AisWellformedQName"
-></A
-><B
->isWellformedQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</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="decl"
-><A NAME="v%3AisWellformedNSDecl"
-></A
-><B
->isWellformedNSDecl</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</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="decl"
-><A NAME="v%3AisDeclaredNamespace"
-></A
-><B
->isDeclaredNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc_filter/Text-XML-HXT-DOM-QualifiedName.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-QualifiedName.html
+++ /dev/null
@@ -1,882 +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.QualifiedName</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/QualifiedName.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.QualifiedName</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->The core data types of the HXT DOM.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Synopsis</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AQName"
->QName</A
->  = <A HREF="#v%3AQN"
->QN</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamePrefix"
->namePrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AlocalPart"
->localPart</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamespaceUri"
->namespaceUri</A
-> :: String</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AqualifiedName"
->qualifiedName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalName"
->universalName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalUri"
->universalUri</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AbuildUniversalName"
->buildUniversalName</A
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQName"
->mkQName</A
-> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkName"
->mkName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNsName"
->mkNsName</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSNsName"
->mkSNsName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnullQName"
->nullQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQName"
->equalQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivQName"
->equivQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivUri"
->equivUri</A
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQNameBy"
->equalQNameBy</A
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNsUri"
->normalizeNsUri</A
-> :: String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AQName"
-></A
-><B
->QName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Namespace support for element and attribute names.
-</P
-><P
->A qualified name consists of a name prefix, a local name
- and a namespace uri.
- All modules, which are not namespace aware, use only the <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
->localPart</A
-></TT
-> component.
- When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
->propagateNamespaces</A
->
- to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
-</P
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AQN"
-></A
-><B
->QN</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="body" COLSPAN="2"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamePrefix"
-></A
-><B
->namePrefix</B
-> :: String</TD
-><TD CLASS="rdoc"
->the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AlocalPart"
-></A
-><B
->localPart</B
-> :: String</TD
-><TD CLASS="rdoc"
->the local part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamespaceUri"
-></A
-><B
->namespaceUri</B
-> :: String</TD
-><TD CLASS="rdoc"
->the associated namespace uri
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:QName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AqualifiedName"
-></A
-><B
->qualifiedName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalName"
-></A
-><B
->universalName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalUri"
-></A
-><B
->universalUri</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
- where the subject, predicate and object often are concatenated from namespace uri and local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AbuildUniversalName"
-></A
-><B
->buildUniversalName</B
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
- namespace uri and local part are combined with the combining function given by the first parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQName"
-></A
-><B
->mkQName</B
-> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a complete qualified name with <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
->namePrefix</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
->localPart</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkName"
-></A
-><B
->mkName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a simple, namespace unaware name, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
->namePrefix</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
-> are set to the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPrefixLocalPart"
-></A
-><B
->mkPrefixLocalPart</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix and localPart but without a namespace uri.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
->mkSNsName</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkNsName"
-></A
-><B
->mkNsName</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSNsName"
-></A
-><B
->mkSNsName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnullQName"
-></A
-><B
->nullQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Empty QName
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQName"
-></A
-><B
->equalQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equality of QNames: Two QNames are equal, if the local parts are equal
- and the namespace URIs are equal.
- The comparison works with and without namespace propagation.
- If namespaces have been propagated, the name is split into prefix and local part
- and the namespace uri is set. In this case the prefix is not significant for equality test.
- If namespaces have not been propagated, the local part contains the full name, prefix
- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivQName"
-></A
-><B
->equivQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equivalent QNames are defined as follows: The URIs are normalized before comparison.
- Comparison is done with <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
->equalQNameBy</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
->equivUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivUri"
-></A
-><B
->equivUri</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Comparison of normalized namespace URIs using <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
->normalizeNsUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQNameBy"
-></A
-><B
->equalQNameBy</B
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Sometimes a weaker equality relation than <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
->equalQName</A
-></TT
-> is appropriate, e.g no case significance in names, ...
- a name normalization function can be applied to the strings before comparing. Called by <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
->equalQName</A
-></TT
-> and
- <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
->equivQName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNsUri"
-></A
-><B
->normalizeNsUri</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html
+++ /dev/null
@@ -1,1258 +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.TypeDefs</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.TypeDefs</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></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"
->module <A HREF="Data-AssocList.html"
->Data.AssocList</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXmlTree"
->XmlTree</A
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</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%3AXmlTrees"
->XmlTrees</A
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</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"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXNode"
->XNode</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AXText"
->XText</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXCharRef"
->XCharRef</A
-> Int</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXEntityRef"
->XEntityRef</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXCmt"
->XCmt</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXCdata"
->XCdata</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPi"
->XPi</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXTag"
->XTag</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXDTD"
->XDTD</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXAttr"
->XAttr</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXError"
->XError</A
-> Int String</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ADTDElem"
->DTDElem</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3ADOCTYPE"
->DOCTYPE</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AELEMENT"
->ELEMENT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACONTENT"
->CONTENT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AATTLIST"
->ATTLIST</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AENTITY"
->ENTITY</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APENTITY"
->PENTITY</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANOTATION"
->NOTATION</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ACONDSECT"
->CONDSECT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANAME"
->NAME</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APEREF"
->PEREF</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AAttributes"
->Attributes</A
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String String</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
-> String String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_ok"
->c_ok</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_warn"
->c_warn</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_err"
->c_err</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ac_fatal"
->c_fatal</A
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXmlNodeSet"
->XmlNodeSet</A
->  = <A HREF="#v%3AXNS"
->XNS</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AthisNode"
->thisNode</A
-> :: Bool</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AattrNodes"
->attrNodes</A
-> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
->]</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AchildNodes"
->childNodes</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
->ChildNodes</A
-></TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AChildNodes"
->ChildNodes</A
-> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
->Text.XML.HXT.DOM.QualifiedName</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><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-AssocList.html"
->Data.AssocList</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlTree"
-></A
-><B
->XmlTree</B
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Node of xml tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlTrees"
-></A
-><B
->XmlTrees</B
-> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
->NTrees</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->List of nodes of xml tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXNode"
-></A
-><B
->XNode</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents elements
-</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 NAME="v%3AXText"
-></A
-><B
->XText</B
-> String</TD
-><TD CLASS="rdoc"
->ordinary text				(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXCharRef"
-></A
-><B
->XCharRef</B
-> Int</TD
-><TD CLASS="rdoc"
->character reference			(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXEntityRef"
-></A
-><B
->XEntityRef</B
-> String</TD
-><TD CLASS="rdoc"
->entity reference				(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXCmt"
-></A
-><B
->XCmt</B
-> String</TD
-><TD CLASS="rdoc"
->comment					(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXCdata"
-></A
-><B
->XCdata</B
-> String</TD
-><TD CLASS="rdoc"
->CDATA section				(leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPi"
-></A
-><B
->XPi</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-><TD CLASS="rdoc"
->Processing Instr with qualified name	(leaf)
-   with list of attributes.
-   If tag name is xml, attributs are &quot;version&quot;, &quot;encoding&quot;, &quot;standalone&quot;,
-   else attribute list is empty, content is a text child node
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXTag"
-></A
-><B
->XTag</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-><TD CLASS="rdoc"
->tag with qualified name and list of attributes (inner node or leaf)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXDTD"
-></A
-><B
->XDTD</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-><TD CLASS="rdoc"
->DTD element with assoc list for dtd element features
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXAttr"
-></A
-><B
->XAttr</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="rdoc"
->attribute with qualified name, the attribute value is stored in children
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXError"
-></A
-><B
->XError</B
-> Int String</TD
-><TD CLASS="rdoc"
->error message with level and text
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XNode')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XNode" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ADTDElem"
-></A
-><B
->DTDElem</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents a DTD element
-</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 NAME="v%3ADOCTYPE"
-></A
-><B
->DOCTYPE</B
-></TD
-><TD CLASS="rdoc"
->attr: name, system, public,	XDTD elems as children
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AELEMENT"
-></A
-><B
->ELEMENT</B
-></TD
-><TD CLASS="rdoc"
-><P
->attr: name, kind
-</P
-><P
->name: element name
-</P
-><P
->kind: &quot;EMPTY&quot; | &quot;ANY&quot; | &quot;#PCDATA&quot; | children | mixed
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACONTENT"
-></A
-><B
->CONTENT</B
-></TD
-><TD CLASS="rdoc"
-><P
->element content
-</P
-><P
->attr: kind, modifier
-</P
-><P
->modifier: &quot;&quot; | &quot;?&quot; | &quot;*&quot; | &quot;+&quot;
-</P
-><P
->kind: seq | choice
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AATTLIST"
-></A
-><B
->ATTLIST</B
-></TD
-><TD CLASS="rdoc"
-><P
->attributes:
-  name - name of element
-</P
-><P
->value - name of attribute
-</P
-><P
->type: &quot;CDATA&quot; | &quot;ID&quot; | &quot;IDREF&quot; | &quot;IDREFS&quot; | &quot;ENTITY&quot; | &quot;ENTITIES&quot; |
-</P
-><P
->&quot;NMTOKEN&quot; | &quot;NMTOKENS&quot; |&quot;NOTATION&quot; | &quot;ENUMTYPE&quot;
-</P
-><P
->kind: &quot;<A NAME="REQUIRED%5C%22%20%7C%20%5C%22"
-></A
->IMPLIED&quot; | &quot;DEFAULT&quot;
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AENTITY"
-></A
-><B
->ENTITY</B
-></TD
-><TD CLASS="rdoc"
->for entity declarations
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APENTITY"
-></A
-><B
->PENTITY</B
-></TD
-><TD CLASS="rdoc"
->for parameter entity declarations
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANOTATION"
-></A
-><B
->NOTATION</B
-></TD
-><TD CLASS="rdoc"
->for notations
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ACONDSECT"
-></A
-><B
->CONDSECT</B
-></TD
-><TD CLASS="rdoc"
-><P
->for INCLUDEs, IGNOREs and peRefs: attr: type
-</P
-><P
->type = INCLUDE, IGNORE or %...;
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANAME"
-></A
-><B
->NAME</B
-></TD
-><TD CLASS="rdoc"
-><P
->attr: name
-</P
-><P
->for lists of names in notation types or nmtokens in enumeration types
-</P
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APEREF"
-></A
-><B
->PEREF</B
-></TD
-><TD CLASS="rdoc"
->for Parameter Entity References in DTDs
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDElem')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:DTDElem" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AAttributes"
-></A
-><B
->Attributes</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Attribute list
-</P
-><P
->used for storing option lists and features of DTD parts
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANsEnv"
-></A
-><B
->NsEnv</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String String</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="decl"
-><A NAME="v%3Ac_ok"
-></A
-><B
->c_ok</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->no error, everything is ok
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ac_warn"
-></A
-><B
->c_warn</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Error level for XError, type warning
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ac_err"
-></A
-><B
->c_err</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Error level for XError, type error
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ac_fatal"
-></A
-><B
->c_fatal</B
-> :: Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Error level for XError, type fatal error
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXmlNodeSet"
-></A
-><B
->XmlNodeSet</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->data type for representing a set of nodes as a tree structure
-</P
-><P
->this structure is e.g. used to repesent the result of an XPath query
- such that the selected nodes can be processed or selected later in
- processing a document tree
-</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%3AXNS"
-></A
-><B
->XNS</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%3AthisNode"
-></A
-><B
->thisNode</B
-> :: Bool</TD
-><TD CLASS="rdoc"
->is this node part of the set ?
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AattrNodes"
-></A
-><B
->attrNodes</B
-> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
->]</TD
-><TD CLASS="rdoc"
->the set of attribute nodes
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AchildNodes"
-></A
-><B
->childNodes</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
->ChildNodes</A
-></TD
-><TD CLASS="rdoc"
->the set of child nodes, a list of pairs of index and node set 
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNodeSet')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XmlNodeSet" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AChildNodes"
-></A
-><B
->ChildNodes</B
-> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
->Text.XML.HXT.DOM.QualifiedName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html b/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html
+++ /dev/null
@@ -1,179 +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.UTF8Decoding</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/UTF8Decoding.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.UTF8Decoding</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"
-><P
->Version    : $Id$
-</P
-><P
->Interface for Data.Char.UTF8 funtions
-</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%3AdecodeUtf8"
->decodeUtf8</A
-> :: String -&gt; (String, [String])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdecodeUtf8EmbedErrors"
->decodeUtf8EmbedErrors</A
-> :: String -&gt; [Either String Char]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeUtf8"
-></A
-><B
->decodeUtf8</B
-> :: String -&gt; (String, [String])</TD
-></TR
-><TR
-><TD CLASS="doc"
->calls <TT
-><A HREF="Data-Char-UTF8.html#v%3Adecode"
->decode</A
-></TT
-> for parsing and decoding UTF-8
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecodeUtf8EmbedErrors"
-></A
-><B
->decodeUtf8EmbedErrors</B
-> :: String -&gt; [Either String Char]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html b/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html
+++ /dev/null
@@ -1,1682 +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.Unicode</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.Unicode</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"
->Unicode Type declarations
-</A
-></DT
-><DT
-><A HREF="#2"
->XML char predicates
-</A
-></DT
-><DT
-><A HREF="#3"
->UTF-8 and Unicode conversion functions
-</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$
-</P
-><P
->Unicode and UTF-8 Conversion Functions
-</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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUnicode"
->Unicode</A
-> = Char</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUString"
->UString</A
-> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUTF8Char"
->UTF8Char</A
-> = Char</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUTF8String"
->UTF8String</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AUStringWithErrors"
->UStringWithErrors</A
-> = [Either String Char]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADecodingFct"
->DecodingFct</A
-> = String -&gt; (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->, [String])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-> = String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
->UStringWithErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlChar"
->isXmlChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlLatin1Char"
->isXmlLatin1Char</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlSpaceChar"
->isXmlSpaceChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXml11SpaceChar"
->isXml11SpaceChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNameChar"
->isXmlNameChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNameStartChar"
->isXmlNameStartChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNCNameChar"
->isXmlNCNameChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlNCNameStartChar"
->isXmlNCNameStartChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlPubidChar"
->isXmlPubidChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlLetter"
->isXmlLetter</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlBaseChar"
->isXmlBaseChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlIdeographicChar"
->isXmlIdeographicChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlCombiningChar"
->isXmlCombiningChar</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlDigit"
->isXmlDigit</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlExtender"
->isXmlExtender</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlControlOrPermanentlyUndefined"
->isXmlControlOrPermanentlyUndefined</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8ToUnicode"
->utf8ToUnicode</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8ToUnicodeEmbedErrors"
->utf8ToUnicodeEmbedErrors</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Alatin1ToUnicode"
->latin1ToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2ToUnicode"
->ucs2ToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2BigEndianToUnicode"
->ucs2BigEndianToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2LittleEndianToUnicode"
->ucs2LittleEndianToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16beToUnicode"
->utf16beToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16leToUnicode"
->utf16leToUnicode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeCharToUtf8"
->unicodeCharToUtf8</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeToUtf8"
->unicodeToUtf8</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeToXmlEntity"
->unicodeToXmlEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeToLatin1"
->unicodeToLatin1</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeRemoveNoneAscii"
->unicodeRemoveNoneAscii</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeRemoveNoneLatin1"
->unicodeRemoveNoneLatin1</A
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintToCharRef"
->intToCharRef</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintToCharRefHex"
->intToCharRefHex</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDecodingFct"
->getDecodingFct</A
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDecodingFctEmbedErrors"
->getDecodingFctEmbedErrors</A
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetOutputEncodingFct"
->getOutputEncodingFct</A
-> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNL"
->normalizeNL</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AguessEncoding"
->guessEncoding</A
-> :: String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="1"
->Unicode Type declarations
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUnicode"
-></A
-><B
->Unicode</B
-> = Char</TD
-></TR
-><TR
-><TD CLASS="doc"
->Unicode is represented as the Char type
-   Precondition for this is the support of Unicode character range
-   in the compiler (e.g. ghc but not hugs)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUString"
-></A
-><B
->UString</B
-> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
->the type for Unicode strings
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUTF8Char"
-></A
-><B
->UTF8Char</B
-> = Char</TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-8 charachters are represented by the Char type
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUTF8String"
-></A
-><B
->UTF8String</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-8 strings are implemented as Haskell strings
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AUStringWithErrors"
-></A
-><B
->UStringWithErrors</B
-> = [Either String Char]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADecodingFct"
-></A
-><B
->DecodingFct</B
-> = String -&gt; (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->, [String])</TD
-></TR
-><TR
-><TD CLASS="doc"
->Decoding function with a pair containing the result string and a list of decoding errors as result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ADecodingFctEmbedErrors"
-></A
-><B
->DecodingFctEmbedErrors</B
-> = String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"
->UStringWithErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Decoding function where decoding errors are interleaved with decoded characters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="2"
->XML char predicates
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlChar"
-></A
-><B
->isXmlChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for valid XML characters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlLatin1Char"
-></A
-><B
->isXmlLatin1Char</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test for a legal latin1 XML char
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlSpaceChar"
-></A
-><B
->isXmlSpaceChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML space character: \n, \r, \t and &quot; &quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXml11SpaceChar"
-></A
-><B
->isXml11SpaceChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML1.1 space character: additional space 0x85 and 0x2028
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"
->isXmlSpaceChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNameChar"
-></A
-><B
->isXmlNameChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML name character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNameStartChar"
-></A
-><B
->isXmlNameStartChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML name start character
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->isXmlNameChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNCNameChar"
-></A
-><B
->isXmlNCNameChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML NCName character: no &quot;:&quot; allowed
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->isXmlNameChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlNCNameStartChar"
-></A
-><B
->isXmlNCNameStartChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML NCName start character: no &quot;:&quot; allowed
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"
->isXmlNameChar</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"
->isXmlNCNameChar</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlPubidChar"
-></A
-><B
->isXmlPubidChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML public id character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlLetter"
-></A
-><B
->isXmlLetter</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML letter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlBaseChar"
-></A
-><B
->isXmlBaseChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML base charater
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlIdeographicChar"
-></A
-><B
->isXmlIdeographicChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML ideographic charater
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlCombiningChar"
-></A
-><B
->isXmlCombiningChar</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML combining charater
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlDigit"
-></A
-><B
->isXmlDigit</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML digit
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlExtender"
-></A
-><B
->isXmlExtender</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->checking for XML extender
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlControlOrPermanentlyUndefined"
-></A
-><B
->isXmlControlOrPermanentlyUndefined</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->checking for XML control or permanently discouraged char
-</P
-><P
->see Errata to XML1.0 (http://www.w3.org/XML/xml-V10-2e-errata) No 46
-</P
-><P
->Document authors are encouraged to avoid <A HREF="compatibility characters.html"
->compatibility characters</A
->,
- as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).
- The characters defined in the following ranges are also discouraged.
- They are either control characters or permanently undefined Unicode characters:
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
-><A NAME="3"
->UTF-8 and Unicode conversion functions
-</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8ToUnicode"
-></A
-><B
->utf8ToUnicode</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8ToUnicodeEmbedErrors"
-></A
-><B
->utf8ToUnicodeEmbedErrors</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Alatin1ToUnicode"
-></A
-><B
->latin1ToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->code conversion from latin1 to Unicode
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2ToUnicode"
-></A
-><B
->ucs2ToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UCS-2 to UTF-8 conversion with byte order mark analysis
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2BigEndianToUnicode"
-></A
-><B
->ucs2BigEndianToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UCS-2 big endian to Unicode conversion
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2LittleEndianToUnicode"
-></A
-><B
->ucs2LittleEndianToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UCS-2 little endian to Unicode conversion
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16beToUnicode"
-></A
-><B
->utf16beToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-16 big endian to UTF-8 conversion with removal of byte order mark
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16leToUnicode"
-></A
-><B
->utf16leToUnicode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->UTF-16 little endian to UTF-8 conversion with removal of byte order mark
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeCharToUtf8"
-></A
-><B
->unicodeCharToUtf8</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->conversion from Unicode (Char) to a UTF8 encoded string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeToUtf8"
-></A
-><B
->unicodeToUtf8</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"
->UTF8String</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->conversion from Unicode strings (UString) to UTF8 encoded strings.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeToXmlEntity"
-></A
-><B
->unicodeToXmlEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitute all Unicode characters, that are not legal 1-byte
- UTF-8 XML characters by a character reference.
-</P
-><P
->This function can be used to translate all text nodes and
- attribute values into pure ascii.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->unicodeToLatin1</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeToLatin1"
-></A
-><B
->unicodeToLatin1</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitute all Unicode characters, that are not legal latin1
- UTF-8 XML characters by a character reference.
-</P
-><P
->This function can be used to translate all text nodes and
- attribute values into ISO latin1.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"
->unicodeToXmlEntity</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeRemoveNoneAscii"
-></A
-><B
->unicodeRemoveNoneAscii</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->removes all non ascii chars, may be used to transform
- a document into a pure ascii representation by removing
- all non ascii chars from tag and attibute names
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"
->unicodeRemoveNoneLatin1</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"
->unicodeToXmlEntity</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeRemoveNoneLatin1"
-></A
-><B
->unicodeRemoveNoneLatin1</B
-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->removes all non latin1 chars, may be used to transform
- a document into a pure ascii representation by removing
- all non ascii chars from tag and attibute names
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"
->unicodeRemoveNoneAscii</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->unicodeToLatin1</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintToCharRef"
-></A
-><B
->intToCharRef</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert an Unicode into a XML character reference.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"
->intToCharRefHex</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintToCharRefHex"
-></A
-><B
->intToCharRefHex</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert an Unicode into a XML hexadecimal character reference.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"
->intToCharRef</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDecodingFct"
-></A
-><B
->getDecodingFct</B
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"
->DecodingFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the lookup function for selecting the decoding function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDecodingFctEmbedErrors"
-></A
-><B
->getDecodingFctEmbedErrors</B
-> :: String -&gt; Maybe <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"
->DecodingFctEmbedErrors</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the lookup function for selecting the decoding function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetOutputEncodingFct"
-></A
-><B
->getOutputEncodingFct</B
-> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"
->UString</A
->)</TD
-></TR
-><TR
-><TD CLASS="doc"
->the lookup function for selecting the encoding function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNL"
-></A
-><B
->normalizeNL</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->White Space (XML Standard 2.3) and
- end of line handling (2.11)
-</P
-><P
->#x0D and #x0D#x0A are mapped to #x0A
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AguessEncoding"
-></A
-><B
->guessEncoding</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html b/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html
+++ /dev/null
@@ -1,758 +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.Util</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.Util</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->utility functions
-</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%3AstringTrim"
->stringTrim</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringToUpper"
->stringToUpper</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNumber"
->normalizeNumber</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeWhitespace"
->normalizeWhitespace</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeBlanks"
->normalizeBlanks</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AescapeURI"
->escapeURI</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtextEscapeXml"
->textEscapeXml</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringEscapeXml"
->stringEscapeXml</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AattrEscapeXml"
->attrEscapeXml</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringToInt"
->stringToInt</A
-> :: Int -&gt; String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringToHexString"
->stringToHexString</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcharToHexString"
->charToHexString</A
-> :: Char -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintToHexString"
->intToHexString</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhexStringToInt"
->hexStringToInt</A
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AdecimalStringToInt"
->decimalStringToInt</A
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adoubles"
->doubles</A
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asingles"
->singles</A
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnoDoubles"
->noDoubles</A
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aswap"
->swap</A
-> :: (a, b) -&gt; (b, a)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ApartitionEither"
->partitionEither</A
-> :: [Either a b] -&gt; ([a], [b])</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoMaybe"
->toMaybe</A
-> :: Bool -&gt; a -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Auncurry3"
->uncurry3</A
-> :: (a -&gt; b -&gt; c -&gt; d) -&gt; (a, b, c) -&gt; d</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Auncurry4"
->uncurry4</A
-> :: (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; (a, b, c, d) -&gt; e</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringTrim"
-></A
-><B
->stringTrim</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->remove leading and trailing whitespace with standard Haskell predicate isSpace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringToUpper"
-></A
-><B
->stringToUpper</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert string to upercase with standard Haskell toUpper function
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNumber"
-></A
-><B
->normalizeNumber</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Removes leading / trailing whitespaces and leading zeros
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeWhitespace"
-></A
-><B
->normalizeWhitespace</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Reduce whitespace sequences to a single whitespace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeBlanks"
-></A
-><B
->normalizeBlanks</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->replace all whitespace chars by blanks
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AescapeURI"
-></A
-><B
->escapeURI</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Escape all disallowed characters in URI 
- references (see <A HREF="http://www.w3.org/TR/xlink/#link-locators"
->http://www.w3.org/TR/xlink/#link-locators</A
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtextEscapeXml"
-></A
-><B
->textEscapeXml</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape XML chars &amp;lt;  and ampercent by transforming them into character references, used for escaping text nodes
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
->attrEscapeXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringEscapeXml"
-></A
-><B
->stringEscapeXml</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape XML chars &amp;lt;, &amp;gt;, &amp;quot;,  and ampercent by transforming them into character references
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
->attrEscapeXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrEscapeXml"
-></A
-><B
->attrEscapeXml</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace
- is also escaped
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"
->stringEscapeXml</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringToInt"
-></A
-><B
->stringToInt</B
-> :: Int -&gt; String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringToHexString"
-></A
-><B
->stringToHexString</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a string into a hexadecimal string applying charToHexString
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
->charToHexString</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharToHexString"
-></A
-><B
->charToHexString</B
-> :: Char -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a char (byte) into a 2-digit hexadecimal string
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"
->stringToHexString</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"
->intToHexString</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintToHexString"
-></A
-><B
->intToHexString</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert a none negative Int into a hexadecimal string
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
->charToHexString</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhexStringToInt"
-></A
-><B
->hexStringToInt</B
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a string of hexadecimal digits into an Int
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdecimalStringToInt"
-></A
-><B
->decimalStringToInt</B
-> :: String -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->convert a string of digits into an Int
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adoubles"
-></A
-><B
->doubles</B
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->take all elements of a list which occur more than once. The result does not contain doubles.
- (doubles . doubles == doubles)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asingles"
-></A
-><B
->singles</B
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->drop all elements from a list which occur more than once.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnoDoubles"
-></A
-><B
->noDoubles</B
-> :: Eq a =&gt; [a] -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->remove duplicates from list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aswap"
-></A
-><B
->swap</B
-> :: (a, b) -&gt; (b, a)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApartitionEither"
-></A
-><B
->partitionEither</B
-> :: [Either a b] -&gt; ([a], [b])</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoMaybe"
-></A
-><B
->toMaybe</B
-> :: Bool -&gt; a -&gt; Maybe a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Auncurry3"
-></A
-><B
->uncurry3</B
-> :: (a -&gt; b -&gt; c -&gt; d) -&gt; (a, b, c) -&gt; d</TD
-></TR
-><TR
-><TD CLASS="doc"
->mothers little helpers for to much curry
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Auncurry4"
-></A
-><B
->uncurry4</B
-> :: (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; (a, b, c, d) -&gt; e</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html
+++ /dev/null
@@ -1,3488 +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.XmlKeywords</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlKeywords</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM
->11</EM
->02 09:34:09 hxml Exp $
-</P
-><P
->Constants for XML keywords, for special attribute names
-   and special attribute values
-</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%3At_xml"
->t_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3At_root"
->t_root</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_canonicalize"
->a_canonicalize</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_default"
->a_default</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_check_namespaces"
->a_check_namespaces</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_contentLength"
->a_contentLength</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_collect_errors"
->a_collect_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_column"
->a_column</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_default_baseuri"
->a_default_baseuri</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_canonicalize"
->a_do_not_canonicalize</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_check_namespaces"
->a_do_not_check_namespaces</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_issue_errors"
->a_do_not_issue_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_issue_warnings"
->a_do_not_issue_warnings</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_preserve_comment"
->a_do_not_preserve_comment</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_remove_whitespace"
->a_do_not_remove_whitespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_use_curl"
->a_do_not_use_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate"
->a_do_not_validate</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_encoding"
->a_encoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_error"
->a_error</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_error_log"
->a_error_log</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_help"
->a_help</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_indent"
->a_indent</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_issue_errors"
->a_issue_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_issue_warnings"
->a_issue_warnings</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_kind"
->a_kind</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_line"
->a_line</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_module"
->a_module</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_modifier"
->a_modifier</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_name"
->a_name</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_no_xml_pi"
->a_no_xml_pi</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_options_curl"
->a_options_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_encoding"
->a_output_encoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_file"
->a_output_file</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_xml"
->a_output_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_html"
->a_output_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_by_mimetype"
->a_parse_by_mimetype</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_html"
->a_parse_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_parse_xml"
->a_parse_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_peref"
->a_peref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_preserve_comment"
->a_preserve_comment</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_propagate_errors"
->a_propagate_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_proxy"
->a_proxy</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_show_haskell"
->a_show_haskell</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_show_tree"
->a_show_tree</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_source"
->a_source</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_status"
->a_status</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_standalone"
->a_standalone</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_tagsoup"
->a_tagsoup</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_trace"
->a_trace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_type"
->a_type</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_use_curl"
->a_use_curl</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_url"
->a_url</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate"
->a_validate</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_value"
->a_value</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_verbose"
->a_verbose</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_version"
->a_version</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_xml"
->a_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_xmlns"
->a_xmlns</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_0"
->v_0</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_1"
->v_1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_yes"
->v_yes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_no"
->v_no</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_any"
->v_any</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_children"
->v_children</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_choice"
->v_choice</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_empty"
->v_empty</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_mixed"
->v_mixed</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_seq"
->v_seq</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_null"
->v_null</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_option"
->v_option</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_pcdata"
->v_pcdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_star"
->v_star</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Av_plus"
->v_plus</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_any"
->k_any</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_cdata"
->k_cdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_empty"
->k_empty</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_entity"
->k_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_entities"
->k_entities</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_id"
->k_id</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_idref"
->k_idref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_idrefs"
->k_idrefs</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_include"
->k_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_ignore"
->k_ignore</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_nmtoken"
->k_nmtoken</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_nmtokens"
->k_nmtokens</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_peref"
->k_peref</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_public"
->k_public</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_system"
->k_system</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_enumeration"
->k_enumeration</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_fixed"
->k_fixed</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_implied"
->k_implied</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_ndata"
->k_ndata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_notation"
->k_notation</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_pcdata"
->k_pcdata</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_required"
->k_required</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ak_default"
->k_default</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferPrefix"
->transferPrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferProtocol"
->transferProtocol</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferMimeType"
->transferMimeType</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferEncoding"
->transferEncoding</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferURI"
->transferURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferDefaultURI"
->transferDefaultURI</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferStatus"
->transferStatus</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferMessage"
->transferMessage</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtransferVersion"
->transferVersion</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhttpPrefix"
->httpPrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringProtocol"
->stringProtocol</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisoLatin1"
->isoLatin1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_1"
->iso8859_1</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_2"
->iso8859_2</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_3"
->iso8859_3</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_4"
->iso8859_4</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_5"
->iso8859_5</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_6"
->iso8859_6</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_7"
->iso8859_7</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_8"
->iso8859_8</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_9"
->iso8859_9</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_10"
->iso8859_10</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_11"
->iso8859_11</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_13"
->iso8859_13</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_14"
->iso8859_14</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_15"
->iso8859_15</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aiso8859_16"
->iso8859_16</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AusAscii"
->usAscii</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aucs2"
->ucs2</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf8"
->utf8</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16"
->utf16</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16be"
->utf16be</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Autf16le"
->utf16le</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AunicodeString"
->unicodeString</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNamespace"
->xmlNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlnsNamespace"
->xmlnsNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArelaxNamespace"
->relaxNamespace</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_relax_schema"
->a_relax_schema</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_check_restrictions"
->a_do_not_check_restrictions</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_check_restrictions"
->a_check_restrictions</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate_externalRef"
->a_do_not_validate_externalRef</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate_externalRef"
->a_validate_externalRef</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_validate_include"
->a_do_not_validate_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_validate_include"
->a_validate_include</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_output_changes"
->a_output_changes</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aa_do_not_collect_errors"
->a_do_not_collect_errors</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xhtml"
->application_xhtml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml"
->application_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml_external_parsed_entity"
->application_xml_external_parsed_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aapplication_xml_dtd"
->application_xml_dtd</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_html"
->text_html</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_xml"
->text_xml</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atext_xml_external_parsed_entity"
->text_xml_external_parsed_entity</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisHtmlMimeType"
->isHtmlMimeType</A
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlMimeType"
->isXmlMimeType</A
-> :: String -&gt; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3At_xml"
-></A
-><B
->t_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3At_root"
-></A
-><B
->t_root</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_canonicalize"
-></A
-><B
->a_canonicalize</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_default"
-></A
-><B
->a_default</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_check_namespaces"
-></A
-><B
->a_check_namespaces</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_contentLength"
-></A
-><B
->a_contentLength</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_collect_errors"
-></A
-><B
->a_collect_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_column"
-></A
-><B
->a_column</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_default_baseuri"
-></A
-><B
->a_default_baseuri</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_canonicalize"
-></A
-><B
->a_do_not_canonicalize</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_check_namespaces"
-></A
-><B
->a_do_not_check_namespaces</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_issue_errors"
-></A
-><B
->a_do_not_issue_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_issue_warnings"
-></A
-><B
->a_do_not_issue_warnings</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_preserve_comment"
-></A
-><B
->a_do_not_preserve_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_remove_whitespace"
-></A
-><B
->a_do_not_remove_whitespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_use_curl"
-></A
-><B
->a_do_not_use_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate"
-></A
-><B
->a_do_not_validate</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_encoding"
-></A
-><B
->a_encoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_error"
-></A
-><B
->a_error</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_error_log"
-></A
-><B
->a_error_log</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_help"
-></A
-><B
->a_help</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_indent"
-></A
-><B
->a_indent</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_issue_errors"
-></A
-><B
->a_issue_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_issue_warnings"
-></A
-><B
->a_issue_warnings</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_kind"
-></A
-><B
->a_kind</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_line"
-></A
-><B
->a_line</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_module"
-></A
-><B
->a_module</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_modifier"
-></A
-><B
->a_modifier</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_name"
-></A
-><B
->a_name</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_no_xml_pi"
-></A
-><B
->a_no_xml_pi</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_options_curl"
-></A
-><B
->a_options_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_encoding"
-></A
-><B
->a_output_encoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_file"
-></A
-><B
->a_output_file</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_xml"
-></A
-><B
->a_output_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_html"
-></A
-><B
->a_output_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_by_mimetype"
-></A
-><B
->a_parse_by_mimetype</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_html"
-></A
-><B
->a_parse_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parse_xml"
-></A
-><B
->a_parse_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_peref"
-></A
-><B
->a_peref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_preserve_comment"
-></A
-><B
->a_preserve_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_propagate_errors"
-></A
-><B
->a_propagate_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_proxy"
-></A
-><B
->a_proxy</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_remove_whitespace"
-></A
-><B
->a_remove_whitespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_show_haskell"
-></A
-><B
->a_show_haskell</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_show_tree"
-></A
-><B
->a_show_tree</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_source"
-></A
-><B
->a_source</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_status"
-></A
-><B
->a_status</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_standalone"
-></A
-><B
->a_standalone</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_tagsoup"
-></A
-><B
->a_tagsoup</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_trace"
-></A
-><B
->a_trace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_type"
-></A
-><B
->a_type</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_use_curl"
-></A
-><B
->a_use_curl</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_url"
-></A
-><B
->a_url</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate"
-></A
-><B
->a_validate</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_value"
-></A
-><B
->a_value</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_verbose"
-></A
-><B
->a_verbose</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_version"
-></A
-><B
->a_version</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_xml"
-></A
-><B
->a_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_xmlns"
-></A
-><B
->a_xmlns</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_0"
-></A
-><B
->v_0</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_1"
-></A
-><B
->v_1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_yes"
-></A
-><B
->v_yes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_no"
-></A
-><B
->v_no</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_any"
-></A
-><B
->v_any</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_children"
-></A
-><B
->v_children</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_choice"
-></A
-><B
->v_choice</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_empty"
-></A
-><B
->v_empty</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_mixed"
-></A
-><B
->v_mixed</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_seq"
-></A
-><B
->v_seq</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_null"
-></A
-><B
->v_null</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_option"
-></A
-><B
->v_option</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_pcdata"
-></A
-><B
->v_pcdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_star"
-></A
-><B
->v_star</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Av_plus"
-></A
-><B
->v_plus</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_any"
-></A
-><B
->k_any</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_cdata"
-></A
-><B
->k_cdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_empty"
-></A
-><B
->k_empty</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_entity"
-></A
-><B
->k_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_entities"
-></A
-><B
->k_entities</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_id"
-></A
-><B
->k_id</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_idref"
-></A
-><B
->k_idref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_idrefs"
-></A
-><B
->k_idrefs</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_include"
-></A
-><B
->k_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_ignore"
-></A
-><B
->k_ignore</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_nmtoken"
-></A
-><B
->k_nmtoken</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_nmtokens"
-></A
-><B
->k_nmtokens</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_peref"
-></A
-><B
->k_peref</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_public"
-></A
-><B
->k_public</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_system"
-></A
-><B
->k_system</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_enumeration"
-></A
-><B
->k_enumeration</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_fixed"
-></A
-><B
->k_fixed</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_implied"
-></A
-><B
->k_implied</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_ndata"
-></A
-><B
->k_ndata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_notation"
-></A
-><B
->k_notation</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_pcdata"
-></A
-><B
->k_pcdata</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_required"
-></A
-><B
->k_required</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ak_default"
-></A
-><B
->k_default</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferPrefix"
-></A
-><B
->transferPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferProtocol"
-></A
-><B
->transferProtocol</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferMimeType"
-></A
-><B
->transferMimeType</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferEncoding"
-></A
-><B
->transferEncoding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferURI"
-></A
-><B
->transferURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferDefaultURI"
-></A
-><B
->transferDefaultURI</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferStatus"
-></A
-><B
->transferStatus</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferMessage"
-></A
-><B
->transferMessage</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtransferVersion"
-></A
-><B
->transferVersion</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhttpPrefix"
-></A
-><B
->httpPrefix</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringProtocol"
-></A
-><B
->stringProtocol</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisoLatin1"
-></A
-><B
->isoLatin1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_1"
-></A
-><B
->iso8859_1</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_2"
-></A
-><B
->iso8859_2</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_3"
-></A
-><B
->iso8859_3</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_4"
-></A
-><B
->iso8859_4</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_5"
-></A
-><B
->iso8859_5</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_6"
-></A
-><B
->iso8859_6</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_7"
-></A
-><B
->iso8859_7</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_8"
-></A
-><B
->iso8859_8</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_9"
-></A
-><B
->iso8859_9</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_10"
-></A
-><B
->iso8859_10</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_11"
-></A
-><B
->iso8859_11</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_13"
-></A
-><B
->iso8859_13</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_14"
-></A
-><B
->iso8859_14</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_15"
-></A
-><B
->iso8859_15</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aiso8859_16"
-></A
-><B
->iso8859_16</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AusAscii"
-></A
-><B
->usAscii</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aucs2"
-></A
-><B
->ucs2</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf8"
-></A
-><B
->utf8</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16"
-></A
-><B
->utf16</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16be"
-></A
-><B
->utf16be</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Autf16le"
-></A
-><B
->utf16le</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AunicodeString"
-></A
-><B
->unicodeString</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNamespace"
-></A
-><B
->xmlNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlnsNamespace"
-></A
-><B
->xmlnsNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxNamespace"
-></A
-><B
->relaxNamespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Relax NG namespace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_relax_schema"
-></A
-><B
->a_relax_schema</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_check_restrictions"
-></A
-><B
->a_do_not_check_restrictions</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_check_restrictions"
-></A
-><B
->a_check_restrictions</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate_externalRef"
-></A
-><B
->a_do_not_validate_externalRef</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate_externalRef"
-></A
-><B
->a_validate_externalRef</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_validate_include"
-></A
-><B
->a_do_not_validate_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_validate_include"
-></A
-><B
->a_validate_include</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_output_changes"
-></A
-><B
->a_output_changes</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_do_not_collect_errors"
-></A
-><B
->a_do_not_collect_errors</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xhtml"
-></A
-><B
->application_xhtml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml"
-></A
-><B
->application_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml_external_parsed_entity"
-></A
-><B
->application_xml_external_parsed_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aapplication_xml_dtd"
-></A
-><B
->application_xml_dtd</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_html"
-></A
-><B
->text_html</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_xml"
-></A
-><B
->text_xml</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atext_xml_external_parsed_entity"
-></A
-><B
->text_xml_external_parsed_entity</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisHtmlMimeType"
-></A
-><B
->isHtmlMimeType</B
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlMimeType"
-></A
-><B
->isXmlMimeType</B
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html
+++ /dev/null
@@ -1,506 +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.XmlOptions</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlOptions.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlOptions</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Common useful options
-</P
-><P
->Version : $Id: XmlOptions.hs,v 1.1 2006<EM
->11</EM
->09 20:27:42 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%3AinputOptions"
->inputOptions</A
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArelaxOptions"
->relaxOptions</A
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AoutputOptions"
->outputOptions</A
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgeneralOptions"
->generalOptions</A
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AversionOptions"
->versionOptions</A
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowOptions"
->showOptions</A
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AselectOptions"
->selectOptions</A
-> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveOptions"
->removeOptions</A
-> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AoptionIsSet"
->optionIsSet</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinputOptions"
-></A
-><B
->inputOptions</B
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->commonly useful options for XML input
-</P
-><P
->can be used for option definition with haskell getopt
-</P
-><P
->defines options: <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
->a_trace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
->a_proxy</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
->a_use_curl</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"
->a_do_not_use_curl</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
->a_options_curl</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
->,
- <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->a_issue_errors</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"
->a_do_not_issue_errors</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
->a_parse_html</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
->a_parse_by_mimetype</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
->a_tagsoup</A
-></TT
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
->a_issue_warnings</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"
->a_do_not_issue_warnings</A
-></TT
->,
- <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"
->a_parse_xml</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
->a_validate</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"
->a_do_not_validate</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
->a_canonicalize</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"
->a_do_not_canonicalize</A
-></TT
->,
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArelaxOptions"
-></A
-><B
->relaxOptions</B
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->available Relax NG validation options
-</P
-><P
->defines options
- <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"
->a_check_restrictions</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"
->a_validate_externalRef</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"
->a_validate_include</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"
->a_do_not_check_restrictions</A
-></TT
->,  
- <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"
->a_do_not_validate_externalRef</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"
->a_do_not_validate_include</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AoutputOptions"
-></A
-><B
->outputOptions</B
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->commonly useful options for XML output
-</P
-><P
->defines options: <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"
->a_output_file</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"
->a_output_html</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgeneralOptions"
-></A
-><B
->generalOptions</B
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->commonly useful options
-</P
-><P
->defines options: <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"
->a_verbose</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"
->a_help</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AversionOptions"
-></A
-><B
->versionOptions</B
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->defines <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"
->a_version</A
-></TT
-> option
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowOptions"
-></A
-><B
->showOptions</B
-> :: [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->debug output options
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AselectOptions"
-></A
-><B
->selectOptions</B
-> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->select options from a predefined list of option desciptions
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveOptions"
-></A
-><B
->removeOptions</B
-> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AoptionIsSet"
-></A
-><B
->optionIsSet</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->check whether an option is set
-</P
-><P
->reads the value of an attribute, usually applied to a document root node,
- and checks if the value represents True. The following strings are interpreted
- as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html
+++ /dev/null
@@ -1,2469 +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.XmlState</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlState.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlState</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This module provides a Monad for an internal state and IO commands.
- The state consists of two parts, the user state and the system state
- user state ist a type parameter, the system state is a list
- name-value pair. If the user state is not needed, the type parameter
- can be instantiated with <TT
->()</TT
->.
-</P
-><P
->Furthermore there are types for Xml filter working on this monad
- and functions for manipulating the state components
- and for lifting i/o commands and XmlFilter to monad filters.
-</P
-><P
->Error reporting functions are also located in this module.
-</P
-><P
->Version : $Id: XmlState.hs,v 1.3 2005<EM
->05</EM
->27 13:15:23 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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ASysState"
->SysState</A
->  = <A HREF="#v%3ASysState"
->SysState</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AsysStateAttrs"
->sysStateAttrs</A
-> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->SysStateAttrs</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AsysStateErrorHandler"
->sysStateErrorHandler</A
-> :: !(<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> ())</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ASysStateAttrs"
->SysStateAttrs</A
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXmlState"
->XmlState</A
-> state = <A HREF="#v%3AXmlState"
->XmlState</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AsysState"
->sysState</A
-> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AuserState"
->userState</A
-> :: !state</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXState"
->XState</A
-> state res = <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->XmlState</A
-> state) res</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeState"
->changeState</A
-> :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetState"
->setState</A
-> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetState"
->getState</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeSysState"
->changeSysState</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetSysState"
->setSysState</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysState"
->getSysState</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AinitialSysState"
->initialSysState</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AchangeSysStateAttrs"
->changeSysStateAttrs</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->SysStateAttrs</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->SysStateAttrs</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetSysErrorHandler"
->setSysErrorHandler</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysErrorHandler"
->getSysErrorHandler</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> ())</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetSysParamTree"
->setSysParamTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetSysParam"
->setSysParam</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetSysParamInt"
->setSysParamInt</A
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetSystemParams"
->setSystemParams</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysParamTree"
->getSysParamTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysParam"
->getSysParam</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysParamWithDefault"
->getSysParamWithDefault</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetSysParamInt"
->getSysParamInt</A
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arun0"
->run0</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->XmlState</A
-> state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->XmlState</A
-> state)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arun"
->run</A
-> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state res -&gt; IO res</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Arun%27"
->run'</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> () res -&gt; IO res</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Achain%27"
->chain'</A
-> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state0 (res, state1)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Achain"
->chain</A
-> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state0 res</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AliftF"
->liftF</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aio"
->io</A
-> :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetTraceLevel"
->setTraceLevel</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetTraceLevel"
->getTraceLevel</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceCmd"
->traceCmd</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atrace"
->trace</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceState"
->traceState</A
-> :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AclearStatus"
->clearStatus</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AissueError"
->issueError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgHandler"
->errorMsgHandler</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetErrorMsgLevel"
->setErrorMsgLevel</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgToStderr"
->errorMsgToStderr</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgLogging"
->errorMsgLogging</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrorMsgLoggingAndToStderr"
->errorMsgLoggingAndToStderr</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetErrorMsg"
->getErrorMsg</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AerrClass"
->errClass</A
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AissueWarn"
->issueWarn</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AissueErr"
->issueErr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AissueFatal"
->issueFatal</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddFatal"
->addFatal</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckStatus"
->checkStatus</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetStatus"
->setStatus</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstatusOk"
->statusOk</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckResult"
->checkResult</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttrM"
->processAttrM</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> 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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ASysState"
-></A
-><B
->SysState</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The internal system state consists of a list of name-value pairs
- of type <TT
->(String, XmlTrees)</TT
->, so arbitrary lists of trees can be stored.
- For options, often only strings are used as values, so a set of access
- functions with string values is available
- The error handling method can be controlled by an error handler filter,
- the default filter issues the errors on stderr
-</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%3ASysState"
-></A
-><B
->SysState</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%3AsysStateAttrs"
-></A
-><B
->sysStateAttrs</B
-> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->SysStateAttrs</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AsysStateErrorHandler"
-></A
-><B
->sysStateErrorHandler</B
-> :: !(<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> ())</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ASysStateAttrs"
-></A
-><B
->SysStateAttrs</B
-> = <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXmlState"
-></A
-><B
->XmlState</B
-> state</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->The State has a system and a user part
- the user state is a type parameter
-</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%3AXmlState"
-></A
-><B
->XmlState</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%3AsysState"
-></A
-><B
->sysState</B
-> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AuserState"
-></A
-><B
->userState</B
-> :: !state</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXState"
-></A
-><B
->XState</B
-> state res = <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->StateIO</A
-> (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->XmlState</A
-> state) res</TD
-></TR
-><TR
-><TD CLASS="doc"
->The monad type for commands. It is an instance of <A HREF="StateIO.html"
->StateIO</A
-> from the
- general module <A HREF="Control-Monad-MonadStateIO.html"
->Control.Monad.MonadStateIO</A
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXmlStateFilter"
-></A
-><B
->XmlStateFilter</B
-> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->The <A HREF="XmlFilter.html"
->XmlFilter</A
-> type for filters working on a state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeState"
-></A
-><B
->changeState</B
-> :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->change the user state
-</P
-><UL
-><LI
-> 1.parameter fct :  the user state change function
-</LI
-><LI
-> returns : the new state
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetState"
-></A
-><B
->setState</B
-> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set the user state.
-</P
-><UL
-><LI
-> 1.parameter s :  the new state
-</LI
-><LI
-> returns : the new state
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetState"
-></A
-><B
->getState</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read the user state
-</P
-><UL
-><LI
-> returns : the current state
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeSysState"
-></A
-><B
->changeSysState</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->change the system part of the state.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"
->changeState</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetSysState"
-></A
-><B
->setSysState</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set the system part of the state.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"
->setState</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysState"
-></A
-><B
->getSysState</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read the system part of the state.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"
->getState</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AinitialSysState"
-></A
-><B
->initialSysState</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the initial system state
-</P
-><P
->an empty list of attribute value pairs
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchangeSysStateAttrs"
-></A
-><B
->changeSysStateAttrs</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->SysStateAttrs</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->SysStateAttrs</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->SysState</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->change the attributes in the system state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetSysErrorHandler"
-></A
-><B
->setSysErrorHandler</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the error message handler
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysErrorHandler"
-></A
-><B
->getSysErrorHandler</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> ())</TD
-></TR
-><TR
-><TD CLASS="doc"
->get the error handler
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetSysParamTree"
-></A
-><B
->setSysParamTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set or change a single system parameter.
-</P
-><UL
-><LI
-> 1.parameter name :  the name of the parameter
-</LI
-><LI
-> 2.parameter value :  the list of associated trees
-</LI
-><LI
-> returns : nothing
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"
->setSysParam</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"
->setSysParamInt</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetSysParam"
-></A
-><B
->setSysParam</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set or change a single system parameter of type string.
-</P
-><UL
-><LI
-> 1.parameter name :  the name of the parameter
-</LI
-><LI
-> 2.parameter value :  the (new) string value
-</LI
-><LI
-> returns : nothing
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"
->setSysParamTree</A
-></TT
->, setSysParamInt
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetSysParamInt"
-></A
-><B
->setSysParamInt</B
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set or change a single integer type system parameter
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"
->setSysParam</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetSystemParams"
-></A
-><B
->setSystemParams</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->add (or change) all attributes of the document root to the system state
-     - returns : this
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysParamTree"
-></A
-><B
->getSysParamTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read a system parameter
-</P
-><UL
-><LI
-> 1.parameter name :  the name of the parameter
-</LI
-><LI
-> returns : the list of tres associated with the key, or the empty list for unknown parameters
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysParam"
-></A
-><B
->getSysParam</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read a system string parameter
-</P
-><UL
-><LI
-> 1.parameter name :  the name of the parameter
-</LI
-><LI
-> returns : the value, or the empty string for unknown parameters
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysParamWithDefault"
-></A
-><B
->getSysParamWithDefault</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read a system parameter or return a default value
-</P
-><UL
-><LI
-> 1.parameter name :  the name of the parameter
-</LI
-><LI
-> 2.parameter default :  the default value
-</LI
-><LI
-> returns : the value if found, else the default
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetSysParamInt"
-></A
-><B
->getSysParamInt</B
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state Int</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read an integer system parameter
-</P
-><UL
-><LI
-> 1.parameter name : 
-</LI
-><LI
-> 2.parameter default : 
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"
->getSysParamWithDefault</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arun0"
-></A
-><B
->run0</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->XmlState</A
-> state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->XmlState</A
-> state)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->exec a XState command with initial state.
-</P
-><UL
-><LI
-> 1.parameter initalState :  the inital user state
-</LI
-><LI
-> 2.parameter cmd :  the command
-</LI
-><LI
-> returns : the i/o command with result and user state
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arun"
-></A
-><B
->run</B
-> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state res -&gt; IO res</TD
-></TR
-><TR
-><TD CLASS="doc"
->exec a XState command with initial user state.
- ignore final user state.
- like run0, but ignore the resulting user state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arun%27"
-></A
-><B
->run'</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> () res -&gt; IO res</TD
-></TR
-><TR
-><TD CLASS="doc"
->exec a XState command in th IO monad.
- like run with the empty state ().
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Achain%27"
-></A
-><B
->chain'</B
-> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state0 (res, state1)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->run a command in a new user state.
- chain the system state part,
- init new system state with the current one, run the command and
- update the old system state with the resulting new system state
-</P
-><UL
-><LI
-> 1.parameter initialUserState :  the initial user state
-</LI
-><LI
-> 2.parameter cmd :  the command
-</LI
-><LI
-> returns : the result of executing cmd and the final state
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Achain"
-></A
-><B
->chain</B
-> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state0 res</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->like chain' but forget the final user state
-</P
-><UL
-><LI
-> 1.parameter initialUserState :  the initial user state
-</LI
-><LI
-> 2.parameter cmd :  the command
-</LI
-><LI
-> returns : only the result of executing cmd
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AliftF"
-></A
-><B
->liftF</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->lift a XmlFilter to a XmlStateFilter filter
- issue all error nodes as error messages
- and remove the error nodes from the result
-</P
-><UL
-><LI
-> 1.parameter f :  the filter
-</LI
-><LI
-> returns : the filter running in the state monad
-</LI
-></UL
-><P
->all errors are filtered from the result and issued on stderr
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aio"
-></A
-><B
->io</B
-> :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->lift an I/O command
-</P
-><UL
-><LI
-> 1.parameter cmd :  the i/o command
-</LI
-><LI
-> returns : the i/o command lifted to the XML state monad
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetTraceLevel"
-></A
-><B
->setTraceLevel</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set the trace level.
-</P
-><P
->convention:
-</P
-><P
->0: no trace output (default)
-</P
-><P
->1: trace important computation steps, e.g. accessing a document
-</P
-><P
->2: trace small computation steps
-</P
-><P
->3: output an intermediate result XmlTree in XML source format
-</P
-><P
->4: output an intermediate result XmlTree in tree representation
-</P
-><UL
-><LI
-> 1.parameter level :  the trace level
-</LI
-><LI
-> returns : nothing
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetTraceLevel"
-></A
-><B
->getTraceLevel</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state Int</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->get the current trace level.
-</P
-><UL
-><LI
-> returns : the current trace level
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceCmd"
-></A
-><B
->traceCmd</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->trace output for arbitray commands.
-</P
-><UL
-><LI
-> 1.parameter level :  the trace level,
-			  for which the command will be execuded
-			  if level &lt;= current trace level
-</LI
-><LI
-> 2.parameter cmd :  the command to be executed
-</LI
-><LI
-> returns : nothing
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atrace"
-></A
-><B
->trace</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->trace output function for simple text.
-</P
-><UL
-><LI
-> 1.parameter level :  like in traceCmd
-</LI
-><LI
-> 2.parameter str :  the test
-</LI
-><LI
-> returns : nothing
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceState"
-></A
-><B
->traceState</B
-> :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->trace output of the user part of the program state.
-</P
-><UL
-><LI
-> 1.parameter level :  like in traceCmd
-</LI
-><LI
-> 2.parameter showFct :  the toString function
-</LI
-><LI
-> returns : nothing
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AclearStatus"
-></A
-><B
->clearStatus</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->filter to reset the state attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->a_status</A
-></TT
->
-    - returns : this
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueError"
-></A
-><B
->issueError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->report an error message.
-</P
-><UL
-><LI
-> returns : if the input tree n represents an error, <TT
->res = []</TT
->
-		  and the error is processed by the errror handler filter (default: error is issued on stderr)
-		  else <TT
->res = [n]</TT
->
-</LI
-></UL
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"
->issueErr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgHandler"
-></A
-><B
->errorMsgHandler</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetErrorMsgLevel"
-></A
-><B
->setErrorMsgLevel</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->set the error level in system state
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgToStderr"
-></A
-><B
->errorMsgToStderr</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->default error handler for writing errors to stderr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgLogging"
-></A
-><B
->errorMsgLogging</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->error message handler for collecting all error messages
- all messages are stored under attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"
->a_error_log</A
-></TT
->
- they can be read with <TT
->getSysParamTree a_error_log</TT
-> or by
- applying the filter <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"
->getErrorMsg</A
-></TT
-> to the root node
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrorMsgLoggingAndToStderr"
-></A
-><B
->errorMsgLoggingAndToStderr</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetErrorMsg"
-></A
-><B
->getErrorMsg</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the filter for reading all collected error mesages
-</P
-><P
->result is the list of error messages, the input tree is ignored
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AerrClass"
-></A
-><B
->errClass</B
-> :: Int -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->error level translation
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
->c_warn</A
-></TT
-> (1) : warning,
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
-> (2): error (e.g. parse error, validation error, ...),
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
->c_fatal</A
-></TT
-> (3) : fatal error (document access error, internal error, ...)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueWarn"
-></A
-><B
->issueWarn</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for issuing a warning
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"
->issueError</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"
->issueErr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueErr"
-></A
-><B
->issueErr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for issuing an error
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"
->issueError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AissueFatal"
-></A
-><B
->issueFatal</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for issuing a fatal error
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"
->issueError</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"
->issueErr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddFatal"
-></A
-><B
->addFatal</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckStatus"
-></A
-><B
->checkStatus</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->checks the value of the attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->a_status</A
-></TT
-> in a document root.
- if it contains a value greater or equal to <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->, an error with error message
- stored in attribute <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
->a_module</A
-></TT
-> is issued and the filter acts as the <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->noneM</A
-></TT
-> filter
- else its the <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
->thisM</A
-></TT
-> filter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetStatus"
-></A
-><B
->setStatus</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add the error level and the module where the error occured
- to the attributes of a document root node and remove the children when level is greater or equal to <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstatusOk"
-></A
-><B
->statusOk</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->check whether tree is a document root and the status attribute has a value less than <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckResult"
-></A
-><B
->checkResult</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->check whether the error level attribute in the system state
- is set to error, in this case the children of the document root are
- removed and error info is added as attributes with <TT
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"
->setStatus</A
-></TT
->
- else nothing is changed
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttrM"
-></A
-><B
->processAttrM</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->monadic filter for processing the attribute list of a tag.
- for other trees this filter acts like <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->noneM</A
-></TT
->
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"
->processAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"
->processAttrl</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html
+++ /dev/null
@@ -1,137 +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.XmlTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlTree</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This helper module exports elements from the basic libraries:
- XmlTreeTypes, XmlKeywords, XNodeFunctions, XmlTreeFunctions and XmlTreeFilter
-</P
-><P
->Version : $Id: XmlTree.hs,v 1.1 2004<EM
->09</EM
->02 19:11:58 hxml Exp $
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"
->Text.XML.HXT.DOM.XmlTreeTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"
->Text.XML.HXT.DOM.XmlTreeFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html
+++ /dev/null
@@ -1,4337 +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.XmlTreeFilter</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFilter.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlTreeFilter</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 XmlTree filter
-</P
-><P
->Version : $Id: XmlTreeFilter.hs,v 1.4 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%3AisRoot"
->isRoot</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTag"
->isTag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNsTag"
->isNsTag</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasLocalPart"
->hasLocalPart</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasPrefix"
->hasPrefix</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamespace"
->hasNamespace</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTag"
->isOfTag</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttr"
->hasAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNsAttr"
->hasNsAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasValue"
->hasValue</A
-> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPi"
->isPi</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlPi"
->isXmlPi</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfPi"
->isOfPi</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCdata"
->isXCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCharRef"
->isXCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCmt"
->isXCmt</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXDTD"
->isXDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXEntityRef"
->isXEntityRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXError"
->isXError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXPi"
->isXPi</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTag"
->isXTag</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXAttr"
->isXAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttr"
->isAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNsAttr"
->isNsAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfAttr"
->isOfAttr</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXText"
->isXText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisText"
->isText</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfText"
->isOfText</A
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWhiteSpace"
->isWhiteSpace</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDoctype"
->isDoctype</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlist"
->isAttlist</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElement"
->isElement</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEntity"
->isEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPeRef"
->isPeRef</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDName"
->isDTDName</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisCondSect"
->isCondSect</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisParameterEntity"
->isParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotation"
->isNotation</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDefaultAttrKind"
->isDefaultAttrKind</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEnumAttrType"
->isEnumAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisFixedAttrKind"
->isFixedAttrKind</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIdAttrType"
->isIdAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIdRefAttrType"
->isIdRefAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotationAttrType"
->isNotationAttrType</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisRequiredAttrKind"
->isRequiredAttrKind</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlistParameterEntity"
->isAttlistParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEmptyElement"
->isEmptyElement</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisMixedContentElement"
->isMixedContentElement</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElemWithContent"
->isElemWithContent</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlistOfElement"
->isAttlistOfElement</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElemContentParamEntity"
->isElemContentParamEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisUnparsedEntity"
->isUnparsedEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisExternalParameterEntity"
->isExternalParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisInternalParameterEntity"
->isInternalParameterEntity</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWarning"
->isWarning</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisError"
->isError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisFatalError"
->isFatalError</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXTag"
->mkXTag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQTag"
->mkQTag</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXNsTag"
->mkXNsTag</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXAttr"
->mkXAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQAttr"
->mkQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXNsAttr"
->mkXNsAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXText"
->mkXText</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCharRef"
->mkXCharRef</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXEntityRef"
->mkXEntityRef</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCmt"
->mkXCmt</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXDTD"
->mkXDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCdata"
->mkXCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXPi"
->mkXPi</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXError"
->mkXError</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetName"
->getName</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrl"
->getAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetValue"
->getValue</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNsValue"
->getNsValue</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDValue"
->getDTDValue</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXCmt"
->getXCmt</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXCdata"
->getXCdata</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceQName"
->replaceQName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyText"
->modifyText</A
-> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyQName"
->modifyQName</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttrl"
->processAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttr"
->processAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceAttrl"
->replaceAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adel1Attr"
->del1Attr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aadd1Attr"
->add1Attr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrl"
->addAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttr"
->addAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrInt"
->addAttrInt</A
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyAttr"
->modifyAttr</A
-> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddDTDAttr"
->addDTDAttr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%3D"
->(+=)</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%2B%3D"
->(++=)</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalueOf"
->valueOf</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintValueOf"
->intValueOf</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atag"
->tag</A
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Astag"
->stag</A
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aatag"
->atag</A
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aetag"
->etag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqetag"
->qetag</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqtag"
->qtag</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArootTag"
->rootTag</A
-> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aattr"
->attr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqattr"
->qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asattr"
->sattr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atxt"
->txt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acmt"
->cmt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aspi"
->spi</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acdata"
->cdata</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adtd"
->dtd</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awarn"
->warn</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aerr"
->err</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Afatal"
->fatal</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasOption"
->hasOption</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRoot"
-></A
-><B
->isRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a document root node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisTag"
-></A
-><B
->isTag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the root of a tree contains a tag node.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"
->isNsTag</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNsTag"
-></A
-><B
->isNsTag</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->namespace aware test whether the root of a tree contains a tag node. Parameters are the local part and namespace.
- Only usable after namespace propagation.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasLocalPart"
-></A
-><B
->hasLocalPart</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree has a given local name
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"
->hasNamespace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"
->hasPrefix</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasPrefix"
-></A
-><B
->hasPrefix</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree has a given prefix name
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"
->hasNamespace</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"
->hasLocalPart</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNamespace"
-></A
-><B
->hasNamespace</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree belongs to a given namespace
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->isTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"
->hasLocalPart</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"
->hasPrefix</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfTag"
-></A
-><B
->isOfTag</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a tag node with a special name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasAttr"
-></A
-><B
->hasAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the node of a tree is a XTag node or a XPi node with an attibute of a specific name
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"
->hasNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasNsAttr"
-></A
-><B
->hasNsAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the tree is a XTag node with an attibute of a specific local name and namespace uri
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"
->hasAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"
->isNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasValue"
-></A
-><B
->hasValue</B
-> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->test whether the given node is a XTag node or a XPI node with an attribute with a value with a specific property.
- In case of a match, the attribute value represented by a text node is returned as single element list,
- else the empty list is the result.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the tree is a processing instruction with a given name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXmlPi"
-></A
-><B
->isXmlPi</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the tree is a &lt;?xml ... ?&gt; declaration
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfPi"
-></A
-><B
->isOfPi</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a processing instruction of a special name.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCdata"
-></A
-><B
->isXCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a CDATA node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCharRef"
-></A
-><B
->isXCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a character reference node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCmt"
-></A
-><B
->isXCmt</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a comment node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXDTD"
-></A
-><B
->isXDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXEntityRef"
-></A
-><B
->isXEntityRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an entity reference node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXError"
-></A
-><B
->isXError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXPi"
-></A
-><B
->isXPi</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a processing instruction node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXTag"
-></A
-><B
->isXTag</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a tag node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXAttr"
-></A
-><B
->isXAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an attribute node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree is an attribute node for a given attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNsAttr"
-></A
-><B
->isNsAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->namespace aware test whether the tree contains an attribute node. Parameters are the local part of the atribute name and the namespace.
- Only usable after namespace propagation.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"
->isNsTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->isAttr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"
->hasNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfAttr"
-></A
-><B
->isOfAttr</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->general test for an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXText"
-></A
-><B
->isXText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a text node.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a special text.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfText"
-></A
-><B
->isOfText</B
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a text node with a special property
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWhiteSpace"
-></A
-><B
->isWhiteSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a text node only with whitespace.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDoctype"
-></A
-><B
->isDoctype</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a DOCTYPE DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttlist"
-></A
-><B
->isAttlist</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an ATTLIST DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElement"
-></A
-><B
->isElement</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an ELEMENT DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEntity"
-></A
-><B
->isEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an ENTITY DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPeRef"
-></A
-><B
->isPeRef</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a parameter ENTITY reference.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTDName"
-></A
-><B
->isDTDName</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a DTD name part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisCondSect"
-></A
-><B
->isCondSect</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a conditional section DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisParameterEntity"
-></A
-><B
->isParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a parameter entity declaration.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNotation"
-></A
-><B
->isNotation</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains a NOTATION DTD part.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDefaultAttrKind"
-></A
-><B
->isDefaultAttrKind</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEnumAttrType"
-></A
-><B
->isEnumAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisFixedAttrKind"
-></A
-><B
->isFixedAttrKind</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisIdAttrType"
-></A
-><B
->isIdAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisIdRefAttrType"
-></A
-><B
->isIdRefAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNotationAttrType"
-></A
-><B
->isNotationAttrType</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRequiredAttrKind"
-></A
-><B
->isRequiredAttrKind</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttlistParameterEntity"
-></A
-><B
->isAttlistParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEmptyElement"
-></A
-><B
->isEmptyElement</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisMixedContentElement"
-></A
-><B
->isMixedContentElement</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElemWithContent"
-></A
-><B
->isElemWithContent</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttlistOfElement"
-></A
-><B
->isAttlistOfElement</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisElemContentParamEntity"
-></A
-><B
->isElemContentParamEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisUnparsedEntity"
-></A
-><B
->isUnparsedEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisExternalParameterEntity"
-></A
-><B
->isExternalParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisInternalParameterEntity"
-></A
-><B
->isInternalParameterEntity</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisWarning"
-></A
-><B
->isWarning</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node for a warning.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node for an error.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisFatalError"
-></A
-><B
->isFatalError</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->test whether the root of a tree contains an error node for a fatal error.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXTag"
-></A
-><B
->mkXTag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructor filter for a tag node.
- a new tree is constructed.
- the attributes and the children are computed by applying the aproprate filter to the input tree
-</P
-><UL
-><LI
-> 1.parameter n :  the tag name
-</LI
-><LI
-> 2.parameter af :  the filter for the attribute list
-</LI
-><LI
-> 3.parameter cf :  the filter for the children
-</LI
-><LI
-> returns : the constructor filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQTag"
-></A
-><B
->mkQTag</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Version with qualified names of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsTag"
-></A
-><B
->mkXNsTag</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructor filter for a tag node.
- a new tree is constructed.
- the attributes and the children are computed by applying the aproprate filter to the input tree
-</P
-><UL
-><LI
-> 1.parameter n :  the tag name in form of prefix:localpart
-</LI
-><LI
-> 2.parameter ns:   the namespace uri
-</LI
-><LI
-> 3.parameter af :  the filter for the attribute list
-</LI
-><LI
-> 4.parameter cf :  the filter for the children
-</LI
-><LI
-> returns : the constructor filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXAttr"
-></A
-><B
->mkXAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for attribute construction.
- a new tree with attribute name and a value computed by a filter
- is build.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQAttr"
-></A
-><B
->mkQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->mkXAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsAttr"
-></A
-><B
->mkXNsAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for attribute construction.
- a new tree with attribute name and namespace and a value computed by a filter
- is build.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXText"
-></A
-><B
->mkXText</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a text node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCharRef"
-></A
-><B
->mkXCharRef</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a character reference node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXEntityRef"
-></A
-><B
->mkXEntityRef</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for an entity reference node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCmt"
-></A
-><B
->mkXCmt</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a comment node.
- a new tree is constructed.
- the xml string representation of the filter result
- forms the comment
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXDTD"
-></A
-><B
->mkXDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a DTD part.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCdata"
-></A
-><B
->mkXCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a CDATA section node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXPi"
-></A
-><B
->mkXPi</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for a processing instruction
- a new tree is constructed from the text representation
- of the input tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXError"
-></A
-><B
->mkXError</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructor filter for an error message node.
- a new tree is constructed.
- the input tree is ignored.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the name of a tag node, an attribute node or a pi node.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the attibute list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetValue"
-></A
-><B
->getValue</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for selecting the value of an attribute in a tag node.
- Result of the filter is a single element list with a text node or the empty list
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"
->hasValue</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"
->getNsValue</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetNsValue"
-></A
-><B
->getNsValue</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for selecting the value of an attribute with namespace in a tag node.
- Result of the filter is a single element list with a text node or the empty list
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"
->isNsAttr</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDValue"
-></A
-><B
->getDTDValue</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting an attribute of a DTD node.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXCmt"
-></A
-><B
->getXCmt</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting content of a comment.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXCdata"
-></A
-><B
->getXCdata</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the CDATA content.
- Result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreplaceQName"
-></A
-><B
->replaceQName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit filter for changing the name of a tag node, an attribute or a pi.
- result of the filter is a single element list with a tag node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmodifyText"
-></A
-><B
->modifyText</B
-> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->edit filter for changing the text of a text node.
- result of the filter is a single element list with a text node or the empty list
-</P
-><P
->example for editing all text nodes of a tree with an edit function <TT
->f</TT
->:
-</P
-><PRE
->processBottomUp (modifyText f `when` isXText)</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmodifyQName"
-></A
-><B
->modifyQName</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
->) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->edit filter for changing the name of a tag node.
- result of the filter is a single element list with a text node or the empty list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttrl"
-></A
-><B
->processAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->process the attribute list of a tag node with a tree list filter.
- for other trees this filter acts like <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessAttr"
-></A
-><B
->processAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->elementwise processing of the attributes of a tag.
- for other trees this filter acts like <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->none</A
-></TT
->
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"
->processAttrl</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreplaceAttrl"
-></A
-><B
->replaceAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->replace an attribute list
- to be renamed when replaceAttrl is eliminated
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adel1Attr"
-></A
-><B
->del1Attr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->delete an attribute from the attribute list of a tag tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aadd1Attr"
-></A
-><B
->add1Attr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->add an attribute to the attribute list of a tag.
- If the attribute already exists, it's substituted,
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"
->sattr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttrl"
-></A
-><B
->addAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->adds an attribute list computed by a filter, uses <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->add1Attr</A
-></TT
->.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add or change an attribute with a given string as value for a XTag or XPi tree,
- uses <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->add1Attr</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddAttrInt"
-></A
-><B
->addAttrInt</B
-> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add or change an attribute with an Int value.
- uses <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"
->addAttr</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmodifyAttr"
-></A
-><B
->modifyAttr</B
-> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->edit filter for changing the value of an attribute in a tag node.
- result of the filter is a single element list with the tag node or the empty list.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the attribute
-</LI
-><LI
-> 2.parameter f :  the edit function for the attribute value
-</LI
-><LI
-> returns : the edit filter
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaddDTDAttr"
-></A
-><B
->addDTDAttr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->add or change an attribute of a DTD tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%3D"
-></A
-><B
->(+=)</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient function for tag node tree construction
-</P
-><P
->infixl 7
-</P
-><P
->filter combinator for tag tree constrcution
- take a 1. filter for computing a tag node tree (or a whole list of tag node trees)
- then add all trees computed by the 2. filter to the attribute list when they represent attributes
- else append them to the list of children.
-</P
-><P
->if the 1. filter computes a list of tag nodes, the results of the 2. filter are added to all trees
-</P
-><P
->example: <TT
-> etag &quot;a&quot; += sattr &quot;href&quot; &quot;#42&quot; += txt &quot;the answer&quot; </TT
->
- gives the tree <TT
-> &lt;a href=&quot;#42&quot;&gt;the answer&lt;/a&gt; </TT
->
-</P
-><P
->example: <TT
-> ( etag &quot;a&quot; +++ etag &quot;b&quot; ) += sattr &quot;x&quot; &quot;42&quot; </TT
->
- gives the tree <TT
-> &lt;a x=&quot;42&quot;/&gt;&lt;b x=&quot;42&quot;/&gt; </TT
->
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->add1Attr</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
->modifyChildren</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"
->++=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3A%2B%2B%3D"
-></A
-><B
->(++=)</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient filter function adding a whole list of trees, just for not writing to many ( ... ).
-</P
-><P
->infixl 7
-</P
-><PRE
-> f ++= gl  == f += cat gl </PRE
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalueOf"
-></A
-><B
->valueOf</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->combination of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
-> and conversion into a String
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AintValueOf"
-></A
-><B
->intValueOf</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->combination of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->getValue</A
-></TT
-> and conversion to a Int
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atag"
-></A
-><B
->tag</B
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->variant of mkXTag with a list of filters for the attributes and a list of filters for the children.
- this variant leads to a more readable source for a complicated construction filter
- than the simple solution with a combination of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
-> and <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->stag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Astag"
-></A
-><B
->stag</B
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->variant of tag, useful for tags without attributes and with a list of filters for
- constructing the children
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aatag"
-></A
-><B
->atag</B
-> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->variant of tag, useful for tags with attributes but without children
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->stag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->etag</A
-></TT
->, <TT
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->cat</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aetag"
-></A
-><B
->etag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Short cut for empty tags without attributes
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"
->atag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->stag</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->mkXTag</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->+=</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqetag"
-></A
-><B
->qetag</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version of etag
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqtag"
-></A
-><B
->qtag</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for mkQTag
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArootTag"
-></A
-><B
->rootTag</B
-> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for creating a document root node with a list of filters for the attributes and a list of filters for the document.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->tag</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aattr"
-></A
-><B
->attr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->mkXAttr</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqattr"
-></A
-><B
->qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for mkQAttr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asattr"
-></A
-><B
->sattr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for attribute construction with string constants
-</P
-><P
->set also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"
->attr</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->mkXAttr</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"
->mkXText</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atxt"
-></A
-><B
->txt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->short cut for <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"
->mkXText</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acmt"
-></A
-><B
->cmt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for simple comment
- the input tree is ignored
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"
->mkXCmt</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aspi"
-></A
-><B
->spi</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for generating simple processing instructions (spi)
- the input tree is ignored
-</P
-><P
-><TT
->spi &quot;xyz&quot; &quot;abc&quot;</TT
-> is equal to <TT
->mkXPi &quot;xyz&quot; (txt &quot;abc&quot;)</TT
->
- (the name pi is already used in prelude)
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acdata"
-></A
-><B
->cdata</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->short cut for generating simple cdata sections,
- the input tree is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adtd"
-></A
-><B
->dtd</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
->] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->DTD part generation with filter for attributes and children
- see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"
->mkXDTDTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Awarn"
-></A
-><B
->warn</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for mkXError c_warn.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->mkXError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aerr"
-></A
-><B
->err</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for mkXError c_fatal.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->mkXError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Afatal"
-></A
-><B
->fatal</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->short cut for mkXError c_fatal.
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->mkXError</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhasOption"
-></A
-><B
->hasOption</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->check whether an option is set
-</P
-><P
->reads the value of an attribute, usually applied to a document root node,
- and checks if the value represents True. The following strings are interpreted
- as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
+++ /dev/null
@@ -1,3101 +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.XmlTreeFunctions</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFunctions.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM.XmlTreeFunctions</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 XmlTree functions
-</P
-><P
->Version : $Id: XmlTreeFunctions.hs,v 1.4 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%3AisXCdataNode"
->isXCdataNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCharRefNode"
->isXCharRefNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCmtNode"
->isXCmtNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXDTDNode"
->isXDTDNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXAttrNode"
->isXAttrNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXEntityRefNode"
->isXEntityRefNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXErrorNode"
->isXErrorNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXPiNode"
->isXPiNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTagNode"
->isXTagNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTextNode"
->isXTextNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisRootNode"
->isRootNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTagNode"
->isTagNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTagNode"
->isOfTagNode</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttrNode"
->isAttrNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfAttrNode"
->isOfAttrNode</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTextNode"
->isTextNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTextNode"
->isOfTextNode</A
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPiNode"
->isPiNode</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfPiNode"
->isOfPiNode</A
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDElemNode"
->isDTDElemNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisErrorNode"
->isErrorNode</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtextOfXNode"
->textOfXNode</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXTagTree"
->mkXTagTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkQTagTree"
->mkQTagTree</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXNsTagTree"
->mkXNsTagTree</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AnewRoot"
->newRoot</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AemptyRoot"
->emptyRoot</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%3AnewDocument"
->newDocument</A
-> :: String -&gt; <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%3AnewDocument%27"
->newDocument'</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <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%3AmkRootTree"
->mkRootTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXTextTree"
->mkXTextTree</A
-> :: String -&gt; <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%3AmkXCharRefTree"
->mkXCharRefTree</A
-> :: Int -&gt; <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%3AmkXEntityRefTree"
->mkXEntityRefTree</A
-> :: String -&gt; <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%3AmkXCmtTree"
->mkXCmtTree</A
-> :: String -&gt; <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%3AmkXDTDTree"
->mkXDTDTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXAttrTree"
->mkXAttrTree</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkQAttrTree"
->mkQAttrTree</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXNsAttrTree"
->mkXNsAttrTree</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXPERefTree"
->mkXPERefTree</A
-> :: String -&gt; <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%3AmkXPiTree"
->mkXPiTree</A
-> :: String -&gt; String -&gt; <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%3AmkXmlDeclTree"
->mkXmlDeclTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmkXCdataTree"
->mkXCdataTree</A
-> :: String -&gt; <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%3AmkXErrorTree"
->mkXErrorTree</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <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%3AmaybeString2XText"
->maybeString2XText</A
-> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXText"
->showXText</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXCharRef"
->showXCharRef</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXEntityRef"
->showXEntityRef</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXErrors"
->showXErrors</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axshow"
->xshow</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlTreesToString"
->xmlTreesToString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlTreesToText"
->xmlTreesToText</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlContentModelToString"
->xmlContentModelToString</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlTree"
->showXmlTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlTrees"
->showXmlTrees</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlTrees%27"
->showXmlTrees'</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowQName"
->showQName</A
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowQuoteString"
->showQuoteString</A
-> :: String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowAttr"
->showAttr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowPEAttr"
->showPEAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowExternalId"
->showExternalId</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowNData"
->showNData</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowXmlDTD"
->showXmlDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowElemType"
->showElemType</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowContent"
->showContent</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowEntity"
->showEntity</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowEntityValue"
->showEntityValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowBlank"
->showBlank</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowEq"
->showEq</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowLt"
->showLt</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowGt"
->showGt</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowSlash"
->showSlash</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowApos"
->showApos</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowQuot"
->showQuot</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowLpar"
->showLpar</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowRpar"
->showRpar</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AshowNL"
->showNL</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnameOf"
->nameOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AlocalPartOf"
->localPartOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnamespaceOf"
->namespaceOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprefixOf"
->prefixOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalNameOf"
->universalNameOf</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AattrlOfDTD"
->attrlOfDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalueOfDTD"
->valueOfDTD</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AofDTDequals"
->ofDTDequals</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axcmt"
->xcmt</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axerr"
->xerr</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axwarn"
->xwarn</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axtext"
->xtext</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axtag"
->xtag</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axattr"
->xattr</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoTreel"
->toTreel</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoAttrl"
->toAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfromTreel"
->fromTreel</A
-> :: <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AfromAttrl"
->fromAttrl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCdataNode"
-></A
-><B
->isXCdataNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCharRefNode"
-></A
-><B
->isXCharRefNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXCmtNode"
-></A
-><B
->isXCmtNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXDTDNode"
-></A
-><B
->isXDTDNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXAttrNode"
-></A
-><B
->isXAttrNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXEntityRefNode"
-></A
-><B
->isXEntityRefNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXErrorNode"
-></A
-><B
->isXErrorNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXPiNode"
-></A
-><B
->isXPiNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXTagNode"
-></A
-><B
->isXTagNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisXTextNode"
-></A
-><B
->isXTextNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisRootNode"
-></A
-><B
->isRootNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisTagNode"
-></A
-><B
->isTagNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfTagNode"
-></A
-><B
->isOfTagNode</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisAttrNode"
-></A
-><B
->isAttrNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfAttrNode"
-></A
-><B
->isOfAttrNode</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->AttrName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisTextNode"
-></A
-><B
->isTextNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfTextNode"
-></A
-><B
->isOfTextNode</B
-> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisPiNode"
-></A
-><B
->isPiNode</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisOfPiNode"
-></A
-><B
->isOfPiNode</B
-> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->TagName</A
-> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisDTDElemNode"
-></A
-><B
->isDTDElemNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisErrorNode"
-></A
-><B
->isErrorNode</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtextOfXNode"
-></A
-><B
->textOfXNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXTagTree"
-></A
-><B
->mkXTagTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Create a tree with a tag node.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the tag
-</LI
-><LI
-> 2.parameter al :  the tag attribte list
-</LI
-><LI
-> 3.parameter cs :  the list of children
-</LI
-><LI
-> returns : the new tree
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQTagTree"
-></A
-><B
->mkQTagTree</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Version with qualified name of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"
->mkXTagTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsTagTree"
-></A
-><B
->mkXNsTagTree</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a tree with a namespace aware tag node.
-</P
-><UL
-><LI
-> 1.parameter n :  the prefix:localpart of the tag
-</LI
-><LI
-> 2.parameter ns:  the namespace uri
-</LI
-><LI
-> 3.parameter al :  the tag attribte list
-</LI
-><LI
-> 4.parameter cs :  the list of children
-</LI
-><LI
-> returns : the new tree
-</LI
-></UL
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"
->mkXTagTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnewRoot"
-></A
-><B
->newRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->creates a new document tree with empty contents.
-</P
-><UL
-><LI
-> 1.parameter al : the attribute list for the root node
-</LI
-></UL
-><P
->returns a single node tree with tag name &quot;/&quot; indicating a root and
- with empty list of children
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"
->emptyRoot</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AemptyRoot"
-></A
-><B
->emptyRoot</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the empty document tree
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"
->newRoot</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnewDocument"
-></A
-><B
->newDocument</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->create a new empty document with source name as parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnewDocument%27"
-></A
-><B
->newDocument'</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a new empty document with a list of attributes for source location and options
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"
->newDocument</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkRootTree"
-></A
-><B
->mkRootTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a document root tree.
-</P
-><UL
-><LI
-> 1.parameter al :  the attribute list for the root. This list must contain at
-		  least an attribute &quot;source&quot; that contains the URI of the document to be processed
-</LI
-><LI
-> 2.parameter cs :  the list for the document content
-</LI
-><LI
-> returns : the document root
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXTextTree"
-></A
-><B
->mkXTextTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for a text element.
-</P
-><UL
-><LI
-> 1.parameter txt :  the text
-</LI
-><LI
-> returns : the tree with the single node containing the text
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCharRefTree"
-></A
-><B
->mkXCharRefTree</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for a char reference.
-</P
-><UL
-><LI
-> 1.parameter i :  the integer representing the Unicode char
-</LI
-><LI
-> returns : the tree with the single node containing the char reference
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXEntityRefTree"
-></A
-><B
->mkXEntityRefTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for an entity reference.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the entity reference
-</LI
-><LI
-> returns : the tree with the single node containing the entity reference
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCmtTree"
-></A
-><B
->mkXCmtTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a leaf for a comment,
-</P
-><UL
-><LI
-> 1.parameter c :  the comment text
-</LI
-><LI
-> returns : the tree with the single node containing the comment
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXDTDTree"
-></A
-><B
->mkXDTDTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a tree for a part of a DTD
-</P
-><UL
-><LI
-> 1.parameter d :  the type of the DTD part
-</LI
-><LI
-> 2.parameter al :  the attribute list for the DTD part
-</LI
-><LI
-> 3.parameter ds :  the possibly empty list of components for the DTD part
-</LI
-><LI
-> returns : the tree with the composed DTD part
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXAttrTree"
-></A
-><B
->mkXAttrTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create an attribute tree as part of a tag attribute list of tag nodes
-</P
-><UL
-><LI
-> 1.parameter al : the attribute name
-</LI
-><LI
-> 2.parameter av : the attribute value as tree list, usually containing a single text node
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkQAttrTree"
-></A
-><B
->mkQAttrTree</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version of <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"
->mkXAttrTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXNsAttrTree"
-></A
-><B
->mkXNsAttrTree</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create an attribute tree with a namespace
-</P
-><UL
-><LI
-> 1.parameter al : the attribute name
-</LI
-><LI
-> 2.parameter ns : namespace uri
-</LI
-><LI
-> 3.parameter av : the attribute value as tree list, usually containing a single text node
-</LI
-></UL
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"
->mkXAttrTree</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"
->mkXNsTagTree</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXPERefTree"
-></A
-><B
->mkXPERefTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a parameter entity reference DTD part.
-</P
-><UL
-><LI
-> 1.parameter ref :  the name of the reference
-</LI
-><LI
-> returns : the DTD part for a PERef
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXPiTree"
-></A
-><B
->mkXPiTree</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a processing instruction tree.
-</P
-><UL
-><LI
-> 1.parameter n :  the name of the PI
-</LI
-><LI
-> 2.parameter str :  the content of a PI
-</LI
-><LI
-> returns : the processing instruction tree with a single attribute &quot;value&quot;
-      with the str parameter as attribute value, with <TT
->valueOf a_value</TT
-> applied to the result tree
-      the content of the PI can be selected
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXmlDeclTree"
-></A
-><B
->mkXmlDeclTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->create xml declaration
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXCdataTree"
-></A
-><B
->mkXCdataTree</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create a CDATA section tree.
-</P
-><UL
-><LI
-> 1.parameter s :  the content of the CDATA section
-</LI
-><LI
-> returns : the tree for the CDATA section
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkXErrorTree"
-></A
-><B
->mkXErrorTree</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->create an error tree.
-</P
-><UL
-><LI
-> 1.parameter l :  the level of the error (warning, error fatal)
-</LI
-><LI
-> 2.parameter msg :  the error message
-</LI
-><LI
-> 3.parameter cs :  the context, where the error was detected
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmaybeString2XText"
-></A
-><B
->maybeString2XText</B
-> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXText"
-></A
-><B
->showXText</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXCharRef"
-></A
-><B
->showXCharRef</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXEntityRef"
-></A
-><B
->showXEntityRef</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXErrors"
-></A
-><B
->showXErrors</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axshow"
-></A
-><B
->xshow</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convert the result of a filter into a string
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"
->xmlTreesToText</A
-></TT
-> for filter version, <TT
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
->xread</A
-></TT
-> for the inverse operation 
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlTreesToString"
-></A
-><B
->xmlTreesToString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->old name for <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->xshow</A
-></TT
-> (deprecated)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlTreesToText"
-></A
-><B
->xmlTreesToText</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->XmlSFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->conversion of a filter result into a text node
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->xshow</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlContentModelToString"
-></A
-><B
->xmlContentModelToString</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlTree"
-></A
-><B
->showXmlTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlTrees"
-></A
-><B
->showXmlTrees</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlTrees%27"
-></A
-><B
->showXmlTrees'</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowQName"
-></A
-><B
->showQName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowQuoteString"
-></A
-><B
->showQuoteString</B
-> :: String -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowAttr"
-></A
-><B
->showAttr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowPEAttr"
-></A
-><B
->showPEAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowExternalId"
-></A
-><B
->showExternalId</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowNData"
-></A
-><B
->showNData</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowXmlDTD"
-></A
-><B
->showXmlDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowElemType"
-></A
-><B
->showElemType</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowContent"
-></A
-><B
->showContent</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowEntity"
-></A
-><B
->showEntity</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowEntityValue"
-></A
-><B
->showEntityValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowBlank"
-></A
-><B
->showBlank</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowEq"
-></A
-><B
->showEq</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowLt"
-></A
-><B
->showLt</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowGt"
-></A
-><B
->showGt</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowSlash"
-></A
-><B
->showSlash</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowApos"
-></A
-><B
->showApos</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowQuot"
-></A
-><B
->showQuot</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowLpar"
-></A
-><B
->showLpar</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowRpar"
-></A
-><B
->showRpar</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AshowNL"
-></A
-><B
->showNL</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnameOf"
-></A
-><B
->nameOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the name of a node. For tags, attributes and pi's the name string
- is returned, else the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AlocalPartOf"
-></A
-><B
->localPartOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the local part of a name of a node. For tags, attributes the name string
- is returned, for pi's the whole name, else the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnamespaceOf"
-></A
-><B
->namespaceOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the namespace URI of a tag or an attribute tree, else the empty string is returned
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->nameOf</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprefixOf"
-></A
-><B
->prefixOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the namespace prefix of a tag or an attribute tree, else the empty string is returned
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->nameOf</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"
->localPartOf</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalNameOf"
-></A
-><B
->universalNameOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select the universal name (namespace uri ++ localPart) of a tag or an attribute tree, else the empty string is returned
- see also : <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->nameOf</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"
->namespaceOf</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrlOfDTD"
-></A
-><B
->attrlOfDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->select the attributes of a dtd tree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalueOfDTD"
-></A
-><B
->valueOfDTD</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->select a special attribute of a DTD part
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AofDTDequals"
-></A
-><B
->ofDTDequals</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->test an attribute of a DTD part
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axcmt"
-></A
-><B
->xcmt</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axerr"
-></A
-><B
->xerr</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axwarn"
-></A
-><B
->xwarn</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axtext"
-></A
-><B
->xtext</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axtag"
-></A
-><B
->xtag</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axattr"
-></A
-><B
->xattr</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoTreel"
-></A
-><B
->toTreel</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoAttrl"
-></A
-><B
->toAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromTreel"
-></A
-><B
->fromTreel</B
-> :: <A HREF="Data-AssocList.html#t%3AAssocList"
->AssocList</A
-> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfromAttrl"
-></A
-><B
->fromAttrl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html
+++ /dev/null
@@ -1,556 +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"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeTypes.hs"
->Source code</A
-></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; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; String</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; Int</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; Int</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; String</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; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->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="decl"
-><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
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AformatNTree"
-></A
-><B
->formatNTree</B
-> :: (node -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> node -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnTreeToList"
-></A
-><B
->nTreeToList</B
-> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdepthNTree"
-></A
-><B
->depthNTree</B
-> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcardNTree"
-></A
-><B
->cardNTree</B
-> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a -&gt; Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></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="decl"
-><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
-></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="decl"
-><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
-></TR
-><TR
-><TD CLASS="doc"
->Tag name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><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
-></TR
-><TR
-><TD CLASS="doc"
->Attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtName"
-></A
-><B
->tName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
->qualifiedName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AaName"
-></A
-><B
->aName</B
-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM.html b/doc/hdoc_filter/Text-XML-HXT-DOM.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-DOM.html
+++ /dev/null
@@ -1,159 +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</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.DOM</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->DOM data types and functions
-</P
-><P
->Version : $Id: DOM.hs,v 1.2 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
->export of all basic datatypes and functions of the toolbox DOM.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlTree.html"
->Text.XML.HXT.DOM.XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlState.html"
->Text.XML.HXT.DOM.XmlState</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-EditFilters.html"
->Text.XML.HXT.DOM.EditFilters</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"
->Text.XML.HXT.DOM.FormatXmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-Namespace.html"
->Text.XML.HXT.DOM.Namespace</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM-XmlOptions.html"
->Text.XML.HXT.DOM.XmlOptions</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html b/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html
+++ /dev/null
@@ -1,318 +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.Parser.DTDProcessing</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DTDProcessing.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.DTDProcessing</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: DTDProcessing.hs,v 1.15 2006<EM
->11</EM
->12 14:53:00 hxml Exp $
-</P
-><P
->DTD processing function for
-   including external parts of a DTD
-   parameter entity substitution and general entity substitution
-</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%3AgetWellformedDoc"
->getWellformedDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckWellformedDoc"
->checkWellformedDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessDTD"
->processDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessGeneralEntities"
->processGeneralEntities</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetWellformedDoc"
-></A
-><B
->getWellformedDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->monadic filter for reading, parsing and checking a wellformed document.
- the input tree must consist of a root node with a source attribute
- in its attribute list.
-</P
-><P
->All attributes from the document root are copied into the system state,
- and may be queried by the monadic filters, e.g. trace options.
-</P
-><P
->Result is the single element list containing the well-formed document tree
- or, in case of errors, the document root with an empty list as children
- and attributes <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->a_status</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
->a_module</A
-></TT
-> for error level and the module,
- where the error occured.
-</P
-><P
->this is a shortcut for <TT
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"
->getXmlContents</A
-></TT
-> .&gt;&gt; <TT
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"
->checkWellformedDoc</A
-></TT
->
-</P
-><P
->example for a main program:
-</P
-><PRE
->
- main =
-   run' $
-   do
-   res  &lt;- getWellformedDoc $ newDocument &quot;myfile.xml&quot;
-   ...
- </PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckWellformedDoc"
-></A
-><B
->checkWellformedDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
->parses a text node with <TT
-><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"
->parseXmlDoc</A
-></TT
->, processes the DTD and general entities
- and transforms all char references into characters
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessDTD"
-></A
-><B
->processDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->a filter for DTD processing
-</P
-><P
->inclusion of external parts of DTD,
- parameter entity substitution
- conditional section evaluation
-</P
-><P
->input tree must represent a complete document including root node
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessGeneralEntities"
-></A
-><B
->processGeneralEntities</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->substitution of general entities
-</P
-><P
->input: a complete document tree including root node
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html b/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html
+++ /dev/null
@@ -1,94 +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.Parser.DefaultURI</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DefaultURI.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.DefaultURI</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetDefaultURI"
-></A
-><B
->setDefaultURI</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html b/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html
+++ /dev/null
@@ -1,228 +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.Parser.HtmlParsec</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParsec.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.HtmlParsec</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This parser tries to interprete everything as HTML
-   no errors are emitted during parsing. If something looks
-   weired, warning messages are inserted in the document tree.
-</P
-><P
->All filter are pure XmlFilter,
-   errror handling and IO is done in <TT
-><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParser"
->HtmlParser</A
-></TT
->
-   or other modules
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstHtmlEntities"
-></A
-><B
->substHtmlEntities</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlText"
-></A
-><B
->parseHtmlText</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlDocument"
-></A
-><B
->parseHtmlDocument</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlContent"
-></A
-><B
->parseHtmlContent</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisEmptyHtmlTag"
-></A
-><B
->isEmptyHtmlTag</B
-> :: String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisInnerHtmlTagOf"
-></A
-><B
->isInnerHtmlTagOf</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AclosesHtmlTag"
-></A
-><B
->closesHtmlTag</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AemptyHtmlTags"
-></A
-><B
->emptyHtmlTags</B
-> :: [String]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html
+++ /dev/null
@@ -1,296 +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.Parser.HtmlParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.HtmlParser</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->stable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This parser tries to interprete everything as HTML
-   no errors are emitted during parsing. If something looks
-   weired, warning messages are inserted in the document tree.
-</P
-><P
->Module contains state filter for easy parsing and error handling
-   real work is done in <TT
-><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParsec"
->HtmlParsec</A
-></TT
->
-</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%3AgetHtmlDoc"
->getHtmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseHtmlDoc"
->parseHtmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArunHtmlParser"
->runHtmlParser</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetHtmlDoc"
-></A
-><B
->getHtmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read a document and parse it with <TT
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"
->parseHtmlDoc</A
-></TT
->. The main entry point of this module
-</P
-><P
->The input tree must be a root tree like in '	Text.XML.HXT.Parser.MainFunctions.getXmlDoc'. The content is read with <TT
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"
->getXmlContents</A
-></TT
->,
- is parsed with <TT
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"
->parseHtmlDoc</A
-></TT
-> and canonicalized (char refs are substituted in content and attributes,
- but comment is preserved)
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"
->getWellformedDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlDoc"
-></A
-><B
->parseHtmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->The HTML parsing filter
-</P
-><P
->The input is parsed with <TT
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"
->runHtmlParser</A
-></TT
->, everything is interpreted as HTML,
- if errors ocuur, the parser will try to do some meaningfull action and continues
- parsing. Afterwards the entitiy references for defined for XHTML are resovled,
- any unresolved reference is transformed into plain text.
-</P
-><P
->Error messages
- during parsing and entity resolving are added as warning nodes into the resulting tree.
-</P
-><P
->The warnings are issued, if the 1. parameter noWarnings is set to True,
- afterwards all are removed from the resulting tree.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArunHtmlParser"
-></A
-><B
->runHtmlParser</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->The pure HTML parser, usually called via <TT
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"
->parseHtmlDoc</A
-></TT
->.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html b/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html
+++ /dev/null
@@ -1,701 +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.Parser.MainFunctions</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/MainFunctions.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.MainFunctions</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Simple parse functions.
-</P
-><P
->Version : $Id: MainFunctions.hs,v 1.2 2004<EM
->11</EM
->20 16:53:15 hxml Exp $
-</P
-><P
->the main building blocks for an application.
- this module exports complex filters and functions for
- common tasks for input and parsing, output and option handling.
-</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%3AgetXmlDocument"
->getXmlDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlDocument"
->putXmlDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseDocument"
->parseDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AwriteDocument"
->writeDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXmlDocument"
-></A
-><B
->getXmlDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->convenient function for reading a XML document without
- dealing with state monads, error messages collection and other details
-</P
-><P
->getXmlDocument calls <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
->parseDocument</A
-></TT
-> with the list of parsing options
- and an url or filename as document source.
-</P
-><P
->result is a triple
-</P
-><UL
-><LI
-> the resulting document tree with a root node containing all
-   meta info about the document (options, status info, http header, ...)
-</LI
-><LI
-> the list of errors and warnings
-</LI
-><LI
-> the error level: one of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"
->c_ok</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
->c_warn</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
->c_err</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
->c_fatal</A
-></TT
->
-</LI
-></UL
-><P
->example for input (see also example in <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"
->putXmlDocument</A
-></TT
-> and example in <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->)
-</P
-><PRE
-> main :: IO ()
- main
-   = do
-     (res, errs, rc) &lt;- getXmlDocument [] &quot;test.xml&quot;
-     if rc &gt;= c_err
-       then issueErrors errs
-       else processTree res
-
- issueErrors :: XmlTrees -&gt; IO ()
-
- processTree :: XmlTree  -&gt; IO ()
-</PRE
-><P
->for options see <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
->parseDocument</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->a_collect_errors</A
-></TT
-> is set implicitly
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlDocument"
-></A
-><B
->putXmlDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
->, Int)</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the inverse operation to <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"
->getXmlDocument</A
-></TT
->
-</P
-><P
->writes a complete document tree to a file, writing can be
- controlled by options, the real work is done with filter <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->.
- useful options are the options of <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"
->writeDocument</A
-></TT
->.
-</P
-><P
->result is a pair: 1.part is a list of error messages, 2. part is the return code,
- the status info of the write filter
-</P
-><P
->this filter is useful, when processing XML in an arbitray context in the IO monad
-</P
-><P
->an example main program for such an application is:
-</P
-><PRE
-> main :: IO ()
- main
-   = do
-     (input, readErrs, rc) &lt;- getXmlDocument [...] &quot;test.xml&quot;
-     if rc &gt;= c_err
-       then issueErrors readErrs
-       else processTree input
-
- processTree :: XmlTree -&gt; IO ()
- processTree t
-   = let res = computeNewTree input
-     in do
-        (writeErrs, rc2) &lt;- putXmlDocument [...] &quot;out.xml&quot; res
-        if rc2 &gt;= c_err
-          then issueErrors writeErrs
-          else return ()
-
- issueErrors :: XmlTrees -&gt; IO ()
-
- computeNewTree :: XmlTree -&gt; XmlTree
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseDocument"
-></A
-><B
->parseDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the main parsing filter
-</P
-><P
->this filter can be configured by an option list, a list of
- option name, option value pairs.
- the input tree must be a possibly empty document root tree.
- all the options are stored as attributes in this root node to control processing.
-</P
-><P
->available options:
-</P
-><UL
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
->a_parse_html</A
-></TT
->: use HTML parser, else use XML parser (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
->a_validate</A
-></TT
-> : validate document (default), else skip validation
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"
->a_check_namespaces</A
-></TT
-> : check namespaces, else skip namespace processing (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
->a_canonicalize</A
-></TT
-> : canonicalize document (default), else skip canonicalization
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"
->a_preserve_comment</A
-></TT
-> : preserve comments during canonicalization, else remove comments (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-></TT
-> : remove all whitespace, used for document indentation, else skip this step (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
-> : indent document by inserting whitespace, else skip this step (default)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
->a_issue_warnings</A
-></TT
-> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->a_issue_errors</A
-></TT
-> : issue all error messages on stderr (default), or ignore all error messages
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->a_collect_errors</A
-></TT
-> : all error messages are collected during processing and appended to the result document
- 			  for further processing within the calling modules
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
->a_trace</A
-></TT
-> : trace level: values: 0 -4
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
->a_proxy</A
-></TT
-> : proxy for http access, e.g. www-cache:3128
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
->a_use_curl</A
-></TT
-> : for http access via external programm curl, default is native HTTP access
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
->a_options_curl</A
-></TT
-> : more options for external program curl
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"
->a_source</A
-></TT
-> : the document source url
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
-> : default document encoding (<TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->utf8</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"
->usAscii</A
-></TT
->, ...)
-</LI
-></UL
-><P
->examples:
-</P
-><PRE
-> parseDocument [ (a_source,   &quot;test.xml&quot;)
-               , (a_validate, &quot;0&quot;)
-               , (a_encoding, isoLatin1)
-               ] emptyRoot
-</PRE
-><P
->reads document &quot;test.xml&quot; without validation and default encoding <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->isoLatin1</A
-></TT
->
-</P
-><PRE
-> parseDocument [ (a_source,         &quot;http://www.haskell.org/&quot;)
-               , (a_parse_html,     &quot;1&quot;)
-               , (a_proxy,          &quot;www-cache:3128&quot;)
-               , (a_curl,           &quot;1&quot;)
-               , (a_issue_warnings, &quot;0&quot;)
-               ] emptyRoot
-</PRE
-><P
->reads Haskell homepage with HTML parser ignoring any warnings and with http access via external program curl and proxy &quot;www-cache&quot; at port 3128
-</P
-><PRE
-> parseDocument [ (a_source,            &quot;http://www.w3c.org/&quot;)
-               , (a_parse_html,        &quot;0&quot;)                       -- default
-               , (a_validate,          &quot;1&quot;)                       -- default
-               , (a_check_namespace,   &quot;1&quot;)
-               , (a_remove_whitespace, &quot;1&quot;)
-               , (a_trace,             &quot;2&quot;)
-               ] emptyRoot
-</PRE
-><P
->read w3c home page, validate and chech namespaces, remove whitespace between tags, trace activities with level 2
-</P
-><PRE
-> parseDocument [ (a_source,   &quot;test.xml&quot;)
-               , (a_validate,        &quot;1&quot;)
-               , (a_check_namespace, &quot;1&quot;)
-               , (a_collect_errors,  &quot;1&quot;)
-               , (a_issue_errors,    &quot;0&quot;)
-               ] emptyRoot
-</PRE
-><P
->reads file &quot;test.xml&quot;, validates it, checks namespaces, does not issue any erros
- but collects errors and appends the list of errors to the single element list for the document.
- this enables the calling application to define own error handlers.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AwriteDocument"
-></A
-><B
->writeDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the main filter for writing documents
-</P
-><P
->this filter can be configured by an option list like <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"
->getXmlDocument</A
-></TT
->
-</P
-><P
->available options are
-</P
-><UL
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->a_indent</A
-></TT
-> : indent document for readability, (default: no indentation)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->a_remove_whitespace</A
-></TT
-> : remove all redundant whitespace for shorten text (default: no removal)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"
->a_output_file</A
-></TT
-> : destination file for document, default is &quot;-&quot; for stdout
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
-> : encoding of document, default is <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->a_encoding</A
-></TT
-> or <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->utf8</A
-></TT
->
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"
->a_output_xml</A
-></TT
-> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp;
-                    add XML processing instruction
-                    and encode document with respect to <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->a_output_encoding</A
-></TT
->,
-                    if explizitly switched of, the plain text is issued, this is useful
-                    for non XML output, e.g. generated Haskell code, LaTex, Java, ...
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"
->a_show_tree</A
-></TT
-> : show tree representation of document (for debugging)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"
->a_show_haskell</A
-></TT
-> : show Haskell representaion of document (for debugging)
-</LI
-><LI
-> <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->a_issue_errors</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->a_collect_errors</A
-></TT
-> : see <TT
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
->parseDocument</A
-></TT
->
-</LI
-></UL
-><P
->a typical main program running in the XmlState monad
-  has the following structure:
-</P
-><PRE
->
- main :: IO ()
- main
-     = do
-       argv &lt;- getArgs                                              -- get the commandline arguments
-       (inp, outp, options) &lt;- cmdlineOpts argv                     -- and evaluate them, return a key-value list
-                                                                    -- and input and output
-       res  &lt;- run' $ application inp outp options $ emptyRoot      -- run the application
- 
-       exitWith (if null res
-                 then ExitFailure (-1)
-                 else exitSuccess
-                )
-
- application :: String -&gt; String -&gt; Attributes -&gt; XmlStateFilter ()
- application inp outp al
-   = parseDocument (al ++ [(a_source, inp)])                        -- set options and source
-     .&gt;&gt;                                                            -- and parse document
-     processDocument                                                -- the hard work
-     .&gt;&gt;
-     writeDocument [(a_output_file, outp)]                          -- issue results
-     .&gt;&gt;
-     checkStatus                                                    -- check errors
-
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html
+++ /dev/null
@@ -1,94 +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.Parser.ProtocolHandler</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandler.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.ProtocolHandler</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetProtocolHandler"
-></A
-><B
->getProtocolHandler</B
-> :: String -&gt; URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
+++ /dev/null
@@ -1,94 +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.Parser.ProtocolHandlerFile</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerFile.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.ProtocolHandlerFile</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetFileContents"
-></A
-><B
->getFileContents</B
-> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
+++ /dev/null
@@ -1,94 +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.Parser.ProtocolHandlerHttpCurl</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetHttpContentsWithCurl"
-></A
-><B
->getHttpContentsWithCurl</B
-> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
+++ /dev/null
@@ -1,94 +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.Parser.ProtocolHandlerHttpNative</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNative</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetHttpContentsWithHttp"
-></A
-><B
->getHttpContentsWithHttp</B
-> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
+++ /dev/null
@@ -1,94 +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.Parser.ProtocolHandlerHttpNativeOrCurl</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetHttpContentsNativeOrWithCurl"
-></A
-><B
->getHttpContentsNativeOrWithCurl</B
-> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
+++ /dev/null
@@ -1,92 +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.Parser.ProtocolHandlerUtil</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerUtil.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.ProtocolHandlerUtil</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseContentType"
-></A
-><B
->parseContentType</B
-> :: Parser [(String, String)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-TagSoup.html b/doc/hdoc_filter/Text-XML-HXT-Parser-TagSoup.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-TagSoup.html
+++ /dev/null
@@ -1,124 +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.Parser.TagSoup</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/TagSoup.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.TagSoup</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->lasy HTML and simpe XML parser implemented with tagsoup
-   parsing is done with a very simple monadic top down parser
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseHtmlTagSoup"
-></A
-><B
->parseHtmlTagSoup</B
-> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; XmlTrees</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html
+++ /dev/null
@@ -1,134 +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.Parser.XhtmlEntities</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XhtmlEntities.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XhtmlEntities</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->XHTML Entity References
-</P
-><P
->This module defines a table of all
- predefined XHTML entity references
- for special or none ASCII chars including the
- predefined XML entity refs
-</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%3AxhtmlEntities"
->xhtmlEntities</A
-> :: [(String, Int)]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxhtmlEntities"
-></A
-><B
->xhtmlEntities</B
-> :: [(String, Int)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->table with all XHTML entity refs and corresponding unicode values
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html
+++ /dev/null
@@ -1,328 +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.Parser.XmlCharParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlCharParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlCharParser</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->UTF-8 character parser and simple XML token parsers
-</P
-><P
->Version : $Id: XmlCharParser.hs,v 1.2 2005<EM
->05</EM
->31 16:01:12 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%3AxmlChar"
->xmlChar</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNameChar"
->xmlNameChar</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNameStartChar"
->xmlNameStartChar</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNCNameChar"
->xmlNCNameChar</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlNCNameStartChar"
->xmlNCNameStartChar</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlLetter"
->xmlLetter</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxmlSpaceChar"
->xmlSpaceChar</A
-> :: GenParser Char state Char</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlChar"
-></A
-><B
->xmlChar</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a single Unicode character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNameChar"
-></A
-><B
->xmlNameChar</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a XML name character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNameStartChar"
-></A
-><B
->xmlNameStartChar</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a XML name start character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNCNameChar"
-></A
-><B
->xmlNCNameChar</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a XML NCName character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlNCNameStartChar"
-></A
-><B
->xmlNCNameStartChar</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a XML NCName start character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlLetter"
-></A
-><B
->xmlLetter</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"
->Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a XML letter character
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlSpaceChar"
-></A
-><B
->xmlSpaceChar</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->White Space (2.3)
-</P
-><P
->end of line handling (2.11)
- #x0D and #x0D#x0A are mapped to #x0A
- is done in XmlInput before parsing
- otherwise #x0D in internal parsing, e.g. for entities would normalize,
- would be transformed
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html
+++ /dev/null
@@ -1,320 +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.Parser.XmlDTDParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlDTDParser</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlDTDParser.hs,v 1.6 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations
-</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%3AparseXmlDTDdecl"
->parseXmlDTDdecl</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDdeclPart"
->parseXmlDTDdeclPart</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDEntityValue"
->parseXmlDTDEntityValue</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AelementDecl"
->elementDecl</A
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AattlistDecl"
->attlistDecl</A
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AentityDecl"
->entityDecl</A
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnotationDecl"
->notationDecl</A
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDdecl"
-></A
-><B
->parseXmlDTDdecl</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->parse a tokenized DTD declaration represented by a DTD tree.
- The content is represented by the children containing text and parameter entity reference nodes.
- The parameter entity reference nodes contain their value in the children list, consisting of text
- and possibly again parameter entity reference nodes. This structure is build by the parameter entity
- substitution.
- Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDdeclPart"
-></A
-><B
->parseXmlDTDdeclPart</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDEntityValue"
-></A
-><B
->parseXmlDTDEntityValue</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AelementDecl"
-></A
-><B
->elementDecl</B
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattlistDecl"
-></A
-><B
->attlistDecl</B
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityDecl"
-></A
-><B
->entityDecl</B
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnotationDecl"
-></A
-><B
->notationDecl</B
-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html
+++ /dev/null
@@ -1,230 +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.Parser.XmlDTDTokenParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDTokenParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlDTDTokenParser</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlDTDTokenParser.hs,v 1.4 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Parsec parser for tokenizing DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdDeclTokenizer"
-></A
-><B
->dtdDeclTokenizer</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdDeclStart"
-></A
-><B
->dtdDeclStart</B
-> :: GenParser Char state (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
->DTDElem</A
->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
->Attributes</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdDeclEnd"
-></A
-><B
->dtdDeclEnd</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdToken"
-></A
-><B
->dtdToken</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApeReference"
-></A
-><B
->peReference</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrValue"
-></A
-><B
->attrValue</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdtdChars"
-></A
-><B
->dtdChars</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Apercent"
-></A
-><B
->percent</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html
+++ /dev/null
@@ -1,132 +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.Parser.XmlEntities</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlEntities.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlEntities</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Predefined XML Entity References
-</P
-><P
->This module defines a table of all
- predefined XML entity references
-</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%3AxmlEntities"
->xmlEntities</A
-> :: [(String, Int)]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxmlEntities"
-></A
-><B
->xmlEntities</B
-> :: [(String, Int)]</TD
-></TR
-><TR
-><TD CLASS="doc"
->list of predefined XML entity names and their unicode values
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html
+++ /dev/null
@@ -1,526 +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.Parser.XmlInput</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlInput.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlInput</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></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%3AgetXmlContents"
->getXmlContents</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXmlEntityContents"
->getXmlEntityContents</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetUrlContents"
->getUrlContents</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetContentLength"
->getContentLength</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AguessDocEncoding"
->guessDocEncoding</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArunInLocalURIContext"
->runInLocalURIContext</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArunInNewURIContext"
->runInNewURIContext</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetBaseURI"
->getBaseURI</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsetBaseURI"
->setBaseURI</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAbsolutURI"
->getAbsolutURI</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisStandaloneDocument"
->isStandaloneDocument</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state Bool</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXmlContents"
-></A
-><B
->getXmlContents</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for reading the content of a XML document
-</P
-><P
->input is a root node with the source as an attibute
- the text is read, the encoding scheme is parsed and selected
- and the input is translated into the internal UTF-8 string representation
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXmlEntityContents"
-></A
-><B
->getXmlEntityContents</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for reading the content of an external XML entity
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"
->getXmlContents</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetUrlContents"
-></A
-><B
->getUrlContents</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the hard io operations
-</P
-><P
->for reading a file or accessing a document via http
- input must be a root node with a <TT
->source</TT
-> attribute specifying the URI
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetContentLength"
-></A
-><B
->getContentLength</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->compute the length of the data for a document read previously
- by a call of 'getUrlContents. The result is stored as an attribute
- value in the document root node. the attribute name is <TT
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"
->a_contentLength</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AguessDocEncoding"
-></A
-><B
->guessDocEncoding</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->guessEncoding uses encoding attribute and content
- to determine the encoding scheme.
-</P
-><P
->it's assumed that an encoding spec has been tried to parse before guessing the encoding.
-</P
-><P
->UTF-8 is the default encoding
-</P
-><P
->other supported encodings are ISO-8859-1 (also known as ISO-Latin-1),
- US-ASCII, UTF-16 or ISO-10646-UCS-2, UTF-16BE, UTF-16LE
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArunInLocalURIContext"
-></A
-><B
->runInLocalURIContext</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter command for saving and restoring
- the base URI
-</P
-><UL
-><LI
-> 1.parameter f :  the filter that possible changes the base URI
-</LI
-><LI
-> returns : a filter with the same effect as f, that restores the base URI after application of f
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ArunInNewURIContext"
-></A
-><B
->runInNewURIContext</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->filter command for running an action in a new URI context
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetBaseURI"
-></A
-><B
->getBaseURI</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->read the current base URI
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"
->setBaseURI</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsetBaseURI"
-></A
-><B
->setBaseURI</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state ()</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->set the base URI, all other URIs are handled relative to this base URI
-</P
-><P
->the default base URI is <TT
->file:///&lt;current-working-dir&gt;/</TT
->
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"
->getBaseURI</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetAbsolutURI"
-></A
-><B
->getAbsolutURI</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->transform an URI into an absolut URI using the current base URI
-</P
-><UL
-><LI
-> 1.parameter uri :  the URI as string
-</LI
-><LI
-> returns : the absolut URI as string or &quot;&quot; in case of an error
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisStandaloneDocument"
-></A
-><B
->isStandaloneDocument</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->XState</A
-> state Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->predicate for testing the standalone document attribute
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html
+++ /dev/null
@@ -1,452 +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.Parser.XmlOutput</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlOutput.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlOutput</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->output functions
- implemented as filer
-</P
-><P
->Version : $Id: XmlOutput.hs,v 1.3 2005<EM
->04</EM
->14 12:52:53 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%3AputXmlDoc"
->putXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlDocToFile"
->putXmlDocToFile</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlTree"
->putXmlTree</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AputXmlSource"
->putXmlSource</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhPutXmlDoc"
->hPutXmlDoc</A
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhPutXmlTree"
->hPutXmlTree</A
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhPutXmlSource"
->hPutXmlSource</A
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceF"
->traceF</A
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceMsg"
->traceMsg</A
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceTree"
->traceTree</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtraceSource"
->traceSource</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlDoc"
-></A
-><B
->putXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->document output for standard output
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"
->hPutXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlDocToFile"
-></A
-><B
->putXmlDocToFile</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->document output on a given file name
-</P
-><P
->Result is the input document
-</P
-><P
->see also : <TT
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"
->hPutXmlDoc</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"
->putXmlDoc</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlTree"
-></A
-><B
->putXmlTree</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AputXmlSource"
-></A
-><B
->putXmlSource</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhPutXmlDoc"
-></A
-><B
->hPutXmlDoc</B
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->document output for arbitrary files.
-</P
-><P
->Result is the input document
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhPutXmlTree"
-></A
-><B
->hPutXmlTree</B
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->output of tree representation for trace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AhPutXmlSource"
-></A
-><B
->hPutXmlSource</B
-> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->output of text representation for trace
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceF"
-></A
-><B
->traceF</B
-> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceMsg"
-></A
-><B
->traceMsg</B
-> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceTree"
-></A
-><B
->traceTree</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtraceSource"
-></A
-><B
->traceSource</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html
+++ /dev/null
@@ -1,1167 +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.Parser.XmlParsec</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParsec.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlParsec</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlParsec.hs,v 1.14 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Xml Parsec parser with pure filter interface
-</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%3AcharData"
->charData</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcharData%27"
->charData'</A
-> :: GenParser Char state <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%3Acomment"
->comment</A
-> :: GenParser Char state <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%3ApI"
->pI</A
-> :: GenParser Char state <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%3AcDSect"
->cDSect</A
-> :: GenParser Char state <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%3Adocument"
->document</A
-> :: GenParser Char state <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%3Adocument%27"
->document'</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aprolog"
->prolog</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxMLDecl"
->xMLDecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxMLDecl%27"
->xMLDecl'</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AversionInfo"
->versionInfo</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amisc"
->misc</A
-> :: GenParser Char state <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%3Adoctypedecl"
->doctypedecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amarkupdecl"
->markupdecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsDDecl"
->sDDecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aelement"
->element</A
-> :: GenParser Char state <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%3Acontent"
->content</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcontentWithTextDecl"
->contentWithTextDecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtextDecl"
->textDecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AencodingDecl"
->encodingDecl</A
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axread"
->xread</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlAttrValue"
->parseXmlAttrValue</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlContent"
->parseXmlContent</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDocEncodingSpec"
->parseXmlDocEncodingSpec</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDocument"
->parseXmlDocument</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDTDPart"
->parseXmlDTDPart</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlEncodingSpec"
->parseXmlEncodingSpec</A
-> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlEntityEncodingSpec"
->parseXmlEntityEncodingSpec</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlGeneralEntityValue"
->parseXmlGeneralEntityValue</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlPart"
->parseXmlPart</A
-> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlText"
->parseXmlText</A
-> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseNMToken"
->parseNMToken</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseName"
->parseName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveEncodingSpec"
->removeEncodingSpec</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharData"
-></A
-><B
->charData</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharData%27"
-></A
-><B
->charData'</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acomment"
-></A
-><B
->comment</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApI"
-></A
-><B
->pI</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcDSect"
-></A
-><B
->cDSect</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adocument"
-></A
-><B
->document</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adocument%27"
-></A
-><B
->document'</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aprolog"
-></A
-><B
->prolog</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxMLDecl"
-></A
-><B
->xMLDecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxMLDecl%27"
-></A
-><B
->xMLDecl'</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AversionInfo"
-></A
-><B
->versionInfo</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amisc"
-></A
-><B
->misc</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adoctypedecl"
-></A
-><B
->doctypedecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amarkupdecl"
-></A
-><B
->markupdecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsDDecl"
-></A
-><B
->sDDecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aelement"
-></A
-><B
->element</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acontent"
-></A
-><B
->content</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcontentWithTextDecl"
-></A
-><B
->contentWithTextDecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtextDecl"
-></A
-><B
->textDecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AencodingDecl"
-></A
-><B
->encodingDecl</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axread"
-></A
-><B
->xread</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->the inverse function to <TT
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->xshow</A
-></TT
->, (for XML content).
-</P
-><P
->the string parameter is parsed with the XML content parser.
- result is the list of trees or in case of an error a single element list with the
- error message as node. No entity or character subtitution is done.
-</P
-><P
->see also: <TT
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"
->parseXmlContent</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlAttrValue"
-></A
-><B
->parseXmlAttrValue</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Parser for attribute values
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlContent"
-></A
-><B
->parseXmlContent</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the filter version of <TT
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
->xread</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDocEncodingSpec"
-></A
-><B
->parseXmlDocEncodingSpec</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDocument"
-></A
-><B
->parseXmlDocument</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDTDPart"
-></A
-><B
->parseXmlDTDPart</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Parser for parts of a DTD
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlEncodingSpec"
-></A
-><B
->parseXmlEncodingSpec</B
-> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->try to parse a xml encoding spec.
-</P
-><UL
-><LI
-> 1.parameter encParse :  the parser for the encoding decl
-</LI
-><LI
-> 2.parameter root :  a document root
-</LI
-><LI
-> returns : the same tree, but with an additional
-			  attribute <A HREF="encoding.html"
->encoding</A
-> in the root node
-			  in case of a valid encoding spec
-			  else the unchanged tree
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlEntityEncodingSpec"
-></A
-><B
->parseXmlEntityEncodingSpec</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlGeneralEntityValue"
-></A
-><B
->parseXmlGeneralEntityValue</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Parser for general entites
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlPart"
-></A
-><B
->parseXmlPart</B
-> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->general parser for parsing arbitray parts of a XML document
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlText"
-></A
-><B
->parseXmlText</B
-> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->a more general version of <TT
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"
->parseXmlContent</A
-></TT
->.
- The parser to be used and the context are extra parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseNMToken"
-></A
-><B
->parseNMToken</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Parser for NMTOKENs
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseName"
-></A
-><B
->parseName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Parser for XML names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveEncodingSpec"
-></A
-><B
->removeEncodingSpec</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html
+++ /dev/null
@@ -1,211 +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.Parser.XmlParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlParser</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Xml Parser: the main parse filter 
-</P
-><P
->Version : $Id: XmlParser.hs,v 1.5 2005<EM
->06</EM
->06 15:57:19 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="Text-XML-HXT-Parser-XmlParsec.html"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXmlDoc"
->parseXmlDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AsubstXmlEntities"
->substXmlEntities</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</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="Text-XML-HXT-Parser-XmlParsec.html"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXmlDoc"
-></A
-><B
->parseXmlDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
->The monadic parser for a whole document.
- input must be a root node with a single text child.
- Error messages are issued and global error state is set.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsubstXmlEntities"
-></A
-><B
->substXmlEntities</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Filter for substitution of all occurences of the predefined XML entites quot, amp, lt, gt, apos
- by equivalent character references
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html
+++ /dev/null
@@ -1,778 +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.Parser.XmlTokenParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlTokenParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser.XmlTokenParser</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlTokenParser.hs,v 1.3 2005<EM
->09</EM
->02 17:09:39 hxml Exp $
-</P
-><P
->Parsec parser for XML tokens
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AallBut"
-></A
-><B
->allBut</B
-> :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; String -&gt; GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AallBut1"
-></A
-><B
->allBut1</B
-> :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; (Char -&gt; Bool) -&gt; String -&gt; GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AasciiLetter"
-></A
-><B
->asciiLetter</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrValue"
-></A
-><B
->attrValue</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Abar"
-></A
-><B
->bar</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharRef"
-></A
-><B
->charRef</B
-> :: GenParser Char state Int</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Acomma"
-></A
-><B
->comma</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Adq"
-></A
-><B
->dq</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AencName"
-></A
-><B
->encName</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityRef"
-></A
-><B
->entityRef</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityValue"
-></A
-><B
->entityValue</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aeq"
-></A
-><B
->eq</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Agt"
-></A
-><B
->gt</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Akeyword"
-></A
-><B
->keyword</B
-> :: String -&gt; GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Akeywords"
-></A
-><B
->keywords</B
-> :: [String] -&gt; GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Alpar"
-></A
-><B
->lpar</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Alt"
-></A
-><B
->lt</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aname"
-></A
-><B
->name</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Anames"
-></A
-><B
->names</B
-> :: GenParser Char state [String]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AncName"
-></A
-><B
->ncName</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Anmtoken"
-></A
-><B
->nmtoken</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Anmtokens"
-></A
-><B
->nmtokens</B
-> :: GenParser Char state [String]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApeReference"
-></A
-><B
->peReference</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApubidLiteral"
-></A
-><B
->pubidLiteral</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AqName"
-></A
-><B
->qName</B
-> :: GenParser Char state (String, String)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aquoted"
-></A
-><B
->quoted</B
-> :: GenParser Char state a -&gt; GenParser Char state a</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Areference"
-></A
-><B
->reference</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Arpar"
-></A
-><B
->rpar</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asemi"
-></A
-><B
->semi</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aseparator"
-></A
-><B
->separator</B
-> :: Char -&gt; GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsingleChar"
-></A
-><B
->singleChar</B
-> :: String -&gt; GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsingleChars"
-></A
-><B
->singleChars</B
-> :: String -&gt; GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AskipS"
-></A
-><B
->skipS</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AskipS0"
-></A
-><B
->skipS0</B
-> :: GenParser Char state ()</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsPace"
-></A
-><B
->sPace</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsPace0"
-></A
-><B
->sPace0</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Asq"
-></A
-><B
->sq</B
-> :: GenParser Char state Char</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsystemLiteral"
-></A
-><B
->systemLiteral</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AversionNum"
-></A
-><B
->versionNum</B
-> :: GenParser Char state String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AconcRes"
-></A
-><B
->concRes</B
-> :: GenParser Char state [[a]] -&gt; GenParser Char state [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkList"
-></A
-><B
->mkList</B
-> :: GenParser Char state a -&gt; GenParser Char state [a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnameT"
-></A
-><B
->nameT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnmtokenT"
-></A
-><B
->nmtokenT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityValueT"
-></A
-><B
->entityValueT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityTokensT"
-></A
-><B
->entityTokensT</B
-> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityCharT"
-></A
-><B
->entityCharT</B
-> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrValueT"
-></A
-><B
->attrValueT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattrValueT%27"
-></A
-><B
->attrValueT'</B
-> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AreferenceT"
-></A
-><B
->referenceT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcharRefT"
-></A
-><B
->charRefT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AentityRefT"
-></A
-><B
->entityRefT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3ApeReferenceT"
-></A
-><B
->peReferenceT</B
-> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AsingleCharsT"
-></A
-><B
->singleCharsT</B
-> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser.html b/doc/hdoc_filter/Text-XML-HXT-Parser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Parser.html
+++ /dev/null
@@ -1,183 +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.Parser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Parser</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Simple parse functions.
-</P
-><P
->Version : $Id: Parser.hs,v 1.2 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-><P
->the <A HREF="main.html"
->main</A
-> building blocks for an application.
- this module exports all important functions for parsing, validating and transforming XML.
- it also exports all basic datatypes and functions of the toolbox.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-DOM.html"
->Text.XML.HXT.DOM</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlParser.html"
->Text.XML.HXT.Parser.XmlParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-HtmlParser.html"
->Text.XML.HXT.Parser.HtmlParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlInput.html"
->Text.XML.HXT.Parser.XmlInput</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-XmlOutput.html"
->Text.XML.HXT.Parser.XmlOutput</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-DTDProcessing.html"
->Text.XML.HXT.Parser.DTDProcessing</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Parser-MainFunctions.html"
->Text.XML.HXT.Parser.MainFunctions</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Validator-Validation.html"
->Text.XML.HXT.Validator.Validation</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html
+++ /dev/null
@@ -1,200 +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.Validator.AttributeValueValidation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/AttributeValueValidation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.AttributeValueValidation</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module provides functions for validating attributes.
-</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%3AcheckAttributeValue"
->checkAttributeValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeAttributeValue"
->normalizeAttributeValue</A
-> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckAttributeValue"
-></A
-><B
->checkAttributeValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Checks if the attribute value meets the lexical constraints of its type.
-</P
-><UL
-><LI
-> 1.parameter dtdPart :  the children of the <TT
->DOCTYPE</TT
-> node
-</LI
-><LI
-> 2.parameter attrDecl :  the declaration of the attribute from the DTD
-</LI
-><LI
-> returns : a function which takes an element (XTag or XDTD ATTLIST),
-                    checks if the attribute value meets the lexical constraints
-                    of its type and returns a list of errors
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeAttributeValue"
-></A
-><B
->normalizeAttributeValue</B
-> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Normalizes an attribute value with respect to its type. (3.3.3 / p.29 in Spec)
-</P
-><UL
-><LI
-> 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected
-                   is a list. If the list is empty, no declaration exists.
-</LI
-><LI
-> 2.parameter value :  the attribute value to be normalized
-</LI
-><LI
-> returns : the normalized value
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html
+++ /dev/null
@@ -1,179 +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.Validator.DTDValidation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DTDValidation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.DTDValidation</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module provides functions for validating the DTD of XML documents
- represented as XmlTree.
-</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%3AremoveDoublicateDefs"
->removeDoublicateDefs</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalidateDTD"
->validateDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveDoublicateDefs"
-></A
-><B
->removeDoublicateDefs</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Removes doublicate declarations from the DTD, which first declaration is
- binding. This is the case for ATTLIST and ENTITY declarations.
-</P
-><UL
-><LI
-> returns : A function that replaces the children of DOCTYPE nodes by a list
-               where all multiple declarations are removed.
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDTD"
-></A
-><B
->validateDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Validate a DTD.
-</P
-><UL
-><LI
-> returns : a functions which takes the DTD subset of the XmlTree, checks
-                  if the DTD is valid and returns a list of errors
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html
+++ /dev/null
@@ -1,154 +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.Validator.DocTransformation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocTransformation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.DocTransformation</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module provides functions for transforming XML documents represented as
- XmlTree with respect to its DTD.
-</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%3Atransform"
->transform</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atransform"
-></A
-><B
->transform</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for transforming the document.
-</P
-><UL
-><LI
-> 1.parameter dtdPart :  the DTD subset (Node <TT
->DOCTYPE</TT
->) of the XmlTree
-</LI
-><LI
-> 2.parameter doc :  the document subset of the XmlTree
-</LI
-><LI
-> returns : a list of errors
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html
+++ /dev/null
@@ -1,154 +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.Validator.DocValidation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocValidation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.DocValidation</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module provides functions for validating XML Documents represented as
- XmlTree.
-</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%3AvalidateDoc"
->validateDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDoc"
-></A
-><B
->validateDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Validate a document.
-</P
-><UL
-><LI
-> 1.parameter dtdPart :  the DTD subset (Node <TT
->DOCTYPE</TT
->) of the XmlTree
-</LI
-><LI
-> 2.parameter doc :  the document subset of the XmlTree
-</LI
-><LI
-> returns : a list of errors
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html
+++ /dev/null
@@ -1,157 +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.Validator.IdValidation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/IdValidation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.IdValidation</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module provides functions for checking special ID<EM
->IDREF</EM
->IDREFS constraints.
-</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%3AvalidateIds"
->validateIds</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateIds"
-></A
-><B
->validateIds</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Perform the validation of the ID<EM
->IDREF</EM
->IDREFS constraints.
-</P
-><UL
-><LI
-> 1.parameter dtdPart :  the DTD subset (Node <TT
->DOCTYPE</TT
->) of the XmlTree
-</LI
-><LI
-> 2.parameter doc :  the document subset of the XmlTree
-</LI
-><LI
-> returns : a list of errors
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html b/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html
+++ /dev/null
@@ -1,969 +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.Validator.RE</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/RE.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.RE</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->A module for regular expression matching based on derivatives of regular expressions.
-</P
-><P
->The code was taken from Joe English (<A HREF="http://www.flightlab.com/~joe/sgml/validate.html"
->http://www.flightlab.com/~joe/sgml/validate.html</A
->).
- Tested and extended by Martin Schmidt.
-</P
-><P
->Further references for the algorithm:
-</P
-><P
->Janusz A. Brzozowski.
-</P
-><P
->Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. 
-</P
-><P
->Mark Hopkins.
-</P
-><P
->Regular Expression Package. Posted to comp.compilers, 1994.
-      Available per FTP at <A HREF="ftp://iecc.com/pub/file/regex.tar.gz"
->ftp://iecc.com/pub/file/regex.tar.gz</A
->.
-</P
-><P
->Version : $Id: RE.hs,v 1.1 2004<EM
->09</EM
->02 19:12:03 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"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3ARE_ZERO"
->RE_ZERO</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_UNIT"
->RE_UNIT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_SYM"
->RE_SYM</A
-> a</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_DOT"
->RE_DOT</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_REP"
->RE_REP</A
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_PLUS"
->RE_PLUS</A
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_OPT"
->RE_OPT</A
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_SEQ"
->RE_SEQ</A
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ARE_ALT"
->RE_ALT</A
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_unit"
->re_unit</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_zero"
->re_zero</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_sym"
->re_sym</A
-> :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_rep"
->re_rep</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_plus"
->re_plus</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_opt"
->re_opt</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_seq"
->re_seq</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_alt"
->re_alt</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_dot"
->re_dot</A
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckRE"
->checkRE</A
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amatches"
->matches</A
-> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Anullable"
->nullable</A
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprintRE"
->printRE</A
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ARE"
-></A
-><B
->RE</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Data type for regular expressions.
-</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 NAME="v%3ARE_ZERO"
-></A
-><B
->RE_ZERO</B
-> String</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_UNIT"
-></A
-><B
->RE_UNIT</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_SYM"
-></A
-><B
->RE_SYM</B
-> a</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_DOT"
-></A
-><B
->RE_DOT</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_REP"
-></A
-><B
->RE_REP</B
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_PLUS"
-></A
-><B
->RE_PLUS</B
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_OPT"
-></A
-><B
->RE_OPT</B
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_SEQ"
-></A
-><B
->RE_SEQ</B
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ARE_ALT"
-></A
-><B
->RE_ALT</B
-> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:RE" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq a =&gt; Eq (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->Show a =&gt; Show (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_unit"
-></A
-><B
->re_unit</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for an empty sequence.
-</P
-><UL
-><LI
-> returns : regular expression for an empty sequence
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_zero"
-></A
-><B
->re_zero</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for an empty set.
-</P
-><UL
-><LI
-> 1.parameter errMsg :  error message
-</LI
-><LI
-> returns : regular expression for an empty set
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_sym"
-></A
-><B
->re_sym</B
-> :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for accepting a symbol
-</P
-><UL
-><LI
-> 1.parameter sym :  the symbol to be accepted
-</LI
-><LI
-> returns : regular expression for accepting a symbol
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_rep"
-></A
-><B
->re_rep</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs an optional repetition (*) of a regular expression
-</P
-><UL
-><LI
-> 1.parameter re_a :  regular expression to be repeted
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_plus"
-></A
-><B
->re_plus</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a repetition (+) of a regular expression
-</P
-><UL
-><LI
-> 1.parameter re_a :  regular expression to be repeted
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_opt"
-></A
-><B
->re_opt</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs an option (?) of a regular expression
-</P
-><UL
-><LI
-> 1.parameter re_a :  regular expression to be optional
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_seq"
-></A
-><B
->re_seq</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a sequence (,) of two regular expressions
-</P
-><UL
-><LI
-> 1.parameter re_a :  first regular expression in sequence
-</LI
-><LI
-> 2.parameter re_b :  second regular expression in sequence
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_alt"
-></A
-><B
->re_alt</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs an alternative (|) of two regular expressions
-</P
-><UL
-><LI
-> 1.parameter re_a :  first regular expression of alternative
-</LI
-><LI
-> 2.parameter re_b :  second regular expression of alternative
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_dot"
-></A
-><B
->re_dot</B
-> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for accepting any singel symbol
-</P
-><UL
-><LI
-> returns : regular expression for accepting any singel symbol
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckRE"
-></A
-><B
->checkRE</B
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Checks if an input matched a regular expression. The function should be
- called after matches.
-</P
-><P
->Was the sentence used in <TT
->matches</TT
-> in the language of the regular expression?
- -&gt; matches e s == s `in` L(e)?
-</P
-><UL
-><LI
-> 1.parameter re :  the derived regular expression
-</LI
-><LI
-> returns : empty String if input matched the regular expression, otherwise
-               an error message is returned
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amatches"
-></A
-><B
->matches</B
-> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Derives a regular expression with respect to a sentence.
-</P
-><UL
-><LI
-> 1.parameter re :  regular expression
-</LI
-><LI
-> 2.parameter s :  sentence to which the regular expression is applied
-</LI
-><LI
-> returns : the derived regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Anullable"
-></A
-><B
->nullable</B
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Checks if a regular expression matches the empty sequence.
-</P
-><P
->nullable e == [] `in` L(e)
-</P
-><P
->This check indicates if a regular expression fits to a sentence or not.
-</P
-><UL
-><LI
-> 1.parameter re :  regular expression to be checked
-</LI
-><LI
-> returns : true if regular expression matches the empty sequence,
-                otherwise false
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprintRE"
-></A
-><B
->printRE</B
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a string representation of a regular expression.
-</P
-><UL
-><LI
-> 1.parameter re :  a regular expression
-</LI
-><LI
-> returns : the string representation of the regular expression
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html
+++ /dev/null
@@ -1,177 +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.Validator.Validation</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/Validation.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.Validation</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This module provides a state filter as a main function for validating XML documents.
-</P
-><P
->The real validation is done with pure filters from module <TT
-><A HREF="Text-XML-HXT-Validator.html#t%3AValidationFilter"
->ValidationFilter</A
-></TT
->
-</P
-><P
->Author : .\artin Schmidt
- Version : $Id: Validation.hs,v 1.2 2004<EM
->11</EM
->23 15:50:23 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%3AgetValidatedDoc"
->getValidatedDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Validator-ValidationFilter.html"
->Text.XML.HXT.Validator.ValidationFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetValidatedDoc"
-></A
-><B
->getValidatedDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->XmlStateFilter</A
-> state</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->monadic filter for validating and transforming a wellformed document.
-</P
-><P
->the <A HREF="main.html"
->main</A
-> function for validation.
-</P
-><P
->the input tree must consist of a root node with a complete document and DTD.
- Result is the single element list containing same tree but tranformed with respect to the DTD,
- or, in case of errors, the root with an empty list of children
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Validator-ValidationFilter.html"
->Text.XML.HXT.Validator.ValidationFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html b/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html
+++ /dev/null
@@ -1,327 +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.Validator.ValidationFilter</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/ValidationFilter.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.ValidationFilter</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->This module provides functions for validating XML documents represented as
- XmlTree.
-</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%3AgetDTDSubset"
->getDTDSubset</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Avalidate"
->validate</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalidateDTD"
->validateDTD</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalidateDoc"
->validateDoc</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremoveDoublicateDefs"
->removeDoublicateDefs</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atransform"
->transform</A
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetDTDSubset"
-></A
-><B
->getDTDSubset</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Avalidate"
-></A
-><B
->validate</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Main validation filter. Check if the DTD and the document are valid.
-</P
-><UL
-><LI
-> returns : a function which expects a complete document as XmlTree input
-                     and returns a list of all errors found.
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDTD"
-></A
-><B
->validateDTD</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Check if the DTD is valid.
-</P
-><UL
-><LI
-> returns : a function which expects an XmlTree from the parser as input
-                     and returns a list of all errors found in the DTD.
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvalidateDoc"
-></A
-><B
->validateDoc</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Check if the document corresponds to the given DTD.
-</P
-><UL
-><LI
-> returns : a function which expects a complete document as XmlTree input
-                     and returns a list of all errors found in the content part.
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremoveDoublicateDefs"
-></A
-><B
->removeDoublicateDefs</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Removes doublicate declarations from the DTD which first declaration is
- binding. This is the case for ATTLIST and ENTITY declarations.
-</P
-><UL
-><LI
-> returns : A function that replaces the children of DOCTYPE nodes by a list
-               where all multiple declarations are removed.
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Atransform"
-></A
-><B
->transform</B
-> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->filter for transforming a document with respect to the given DTD.
-</P
-><P
->Validating parsers
- are expected to  normalize attribute values and add default values.
- This function should be called after a successful validation.
-</P
-><UL
-><LI
-> returns : a function which expects a complete XML document tree
-                and returns the transformed XmlTree
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html b/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html
+++ /dev/null
@@ -1,708 +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.Validator.XmlRE</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/XmlRE.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Validator.XmlRE</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->A module for regular expression matching, adapted for XML DTDs.
-</P
-><P
->This module is based on the module RE.
-</P
-><P
->Author .\artin Schmidt
-</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcheckRE"
->checkRE</A
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Amatches"
->matches</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprintRE"
->printRE</A
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_unit"
->re_unit</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_zero"
->re_zero</A
-> :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_sym"
->re_sym</A
-> :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_rep"
->re_rep</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_plus"
->re_plus</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_opt"
->re_opt</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_seq"
->re_seq</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_alt"
->re_alt</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Are_dot"
->re_dot</A
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> 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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ARE"
-></A
-><B
->RE</B
-> a</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Data type for regular expressions.
-</TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:RE" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq a =&gt; Eq (<A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-><TR
-><TD CLASS="decl"
->Show a =&gt; Show (<A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a)</TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcheckRE"
-></A
-><B
->checkRE</B
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Checks if an input matched a regular expression. The function should be
- called after matches.
-</P
-><P
->Was the sentence used in <TT
->matches</TT
-> in the language of the regular expression?
- -&gt; matches e s == s `in` L(e)?
-</P
-><UL
-><LI
-> 1.parameter re :  the derived regular expression
-</LI
-><LI
-> returns : empty String if input matched the regular expression, otherwise
-               an error message is returned
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Amatches"
-></A
-><B
->matches</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Derives a regular expression with respect to a list of elements.
-</P
-><UL
-><LI
-> 1.parameter re :  regular expression
-</LI
-><LI
-> 2.parameter list :  list of elements to which the regular expression is applied
-</LI
-><LI
-> returns : the derived regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprintRE"
-></A
-><B
->printRE</B
-> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a string representation of a regular expression.
-</P
-><UL
-><LI
-> 1.parameter re :  a regular expression
-</LI
-><LI
-> returns : the string representation of the regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_unit"
-></A
-><B
->re_unit</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for an empty sequence.
-</P
-><UL
-><LI
-> returns : regular expression for an empty sequence
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_zero"
-></A
-><B
->re_zero</B
-> :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for an empty set.
-</P
-><UL
-><LI
-> 1.parameter errMsg :  error message
-</LI
-><LI
-> returns : regular expression for an empty set
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_sym"
-></A
-><B
->re_sym</B
-> :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for accepting a symbol
-</P
-><UL
-><LI
-> 1.parameter sym :  the symbol to be accepted
-</LI
-><LI
-> returns : regular expression for accepting a symbol
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_rep"
-></A
-><B
->re_rep</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs an optional repetition (*) of a regular expression
-</P
-><UL
-><LI
-> 1.parameter re_a :  regular expression to be repeted
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_plus"
-></A
-><B
->re_plus</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a repetition (+) of a regular expression
-</P
-><UL
-><LI
-> 1.parameter re_a :  regular expression to be repeted
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_opt"
-></A
-><B
->re_opt</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs an option (?) of a regular expression
-</P
-><UL
-><LI
-> 1.parameter re_a :  regular expression to be optional
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_seq"
-></A
-><B
->re_seq</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a sequence (,) of two regular expressions
-</P
-><UL
-><LI
-> 1.parameter re_a :  first regular expression in sequence
-</LI
-><LI
-> 2.parameter re_b :  second regular expression in sequence
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_alt"
-></A
-><B
->re_alt</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs an alternative (|) of two regular expressions
-</P
-><UL
-><LI
-> 1.parameter re_a :  first regular expression of alternative
-</LI
-><LI
-> 2.parameter re_b :  second regular expression of alternative
-</LI
-><LI
-> returns : new regular expression
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Are_dot"
-></A
-><B
->re_dot</B
-> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->RE</A
-> a</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Constructs a regular expression for accepting any singel symbol
-</P
-><UL
-><LI
-> returns : regular expression for accepting any singel symbol
-</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 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html b/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html
+++ /dev/null
@@ -1,299 +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.XPath.NavTree</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/NavTree.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.NavTree</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Navigable tree structure which allow a program to traverse
- for XPath expressions
- copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"
->http://www.flightlab.com/~joe/hxml/</A
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparentAxis"
-></A
-><B
->parentAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AancestorAxis"
-></A
-><B
->ancestorAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AancestorOrSelfAxis"
-></A
-><B
->ancestorOrSelfAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AchildAxis"
-></A
-><B
->childAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdescendantAxis"
-></A
-><B
->descendantAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AdescendantOrSelfAxis"
-></A
-><B
->descendantOrSelfAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfollowingSiblingAxis"
-></A
-><B
->followingSiblingAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprecedingSiblingAxis"
-></A
-><B
->precedingSiblingAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AselfAxis"
-></A
-><B
->selfAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AfollowingAxis"
-></A
-><B
->followingAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprecedingAxis"
-></A
-><B
->precedingAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AattributeAxis"
-></A
-><B
->attributeAxis</B
-> :: <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-> -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
->]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Data-NavTree.html"
->Data.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html
+++ /dev/null
@@ -1,298 +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.XPath.XPathArithmetic</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathArithmetic.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathArithmetic</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->The module contains arithmetic calculations according the IEEE 754 standard
- for plus, minus, unary minus, multiplication, modulo and division.
-</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%3AxPathMulti"
->xPathMulti</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxPathMod"
->xPathMod</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxPathDiv"
->xPathDiv</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxPathAdd"
->xPathAdd</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxPathUnary"
->xPathUnary</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPathMulti"
-></A
-><B
->xPathMulti</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Multiplication
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPathMod"
-></A
-><B
->xPathMod</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Modulo
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPathDiv"
-></A
-><B
->xPathDiv</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Division: the divison-operator is not according the IEEE 754 standard,
- it calculates the same as the % operator in Java and ECMAScript
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPathAdd"
-></A
-><B
->xPathAdd</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Plus and minus
-</P
-><P
->1.parameter op :  plus or minus operation
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPathUnary"
-></A
-><B
->xPathUnary</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Unary minus: the value <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"
->NaN</A
-></TT
-> is not calculatable and returned unchanged,
- all other values can be denied.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html
+++ /dev/null
@@ -1,2622 +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.XPath.XPathDataTypes</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathDataTypes.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathDataTypes</FONT
-></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 XPath.
- The Type NodeSet is based on the module <A HREF="NavTree.html"
->NavTree</A
-> which was adapted from
- HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"
->http://www.flightlab.com/~joe/hxml/</A
->)
-</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"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AExpr"
->Expr</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AGenExpr"
->GenExpr</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APathExpr"
->PathExpr</A
-> (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->) (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
->LocationPath</A
->)</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AFilterExpr"
->FilterExpr</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AVarExpr"
->VarExpr</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"
->VarName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ALiteralExpr"
->LiteralExpr</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"
->Literal</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANumberExpr"
->NumberExpr</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AFctExpr"
->FctExpr</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"
->FctName</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"
->FctArguments</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AOp"
->Op</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AOr"
->Or</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAnd"
->And</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AEq"
->Eq</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANEq"
->NEq</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ALess"
->Less</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AGreater"
->Greater</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ALessEq"
->LessEq</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AGreaterEq"
->GreaterEq</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APlus"
->Plus</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AMinus"
->Minus</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ADiv"
->Div</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AMod"
->Mod</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AMult"
->Mult</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AUnary"
->Unary</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AUnion"
->Union</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXPNumber"
->XPNumber</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AFloat"
->Float</A
-> Float</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANaN"
->NaN</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANegInf"
->NegInf</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANeg0"
->Neg0</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APos0"
->Pos0</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APosInf"
->PosInf</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ALocationPath"
->LocationPath</A
->  = <A HREF="#v%3ALocPath"
->LocPath</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
->Path</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
->XStep</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3APath"
->Path</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3ARel"
->Rel</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAbs"
->Abs</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXStep"
->XStep</A
->  = <A HREF="#v%3AStep"
->Step</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"
->AxisSpec</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->NodeTest</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AAxisSpec"
->AxisSpec</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AAncestor"
->Ancestor</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAncestorOrSelf"
->AncestorOrSelf</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AAttribute"
->Attribute</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AChild"
->Child</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ADescendant"
->Descendant</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ADescendantOrSelf"
->DescendantOrSelf</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AFollowing"
->Following</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AFollowingSibling"
->FollowingSibling</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ANamespace"
->Namespace</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AParent"
->Parent</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APreceding"
->Preceding</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3APrecedingSibling"
->PrecedingSibling</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ASelf"
->Self</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3ANodeTest"
->NodeTest</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3ANameTest"
->NameTest</A
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3API"
->PI</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3ATypeTest"
->TypeTest</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"
->XPathNode</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXPathNode"
->XPathNode</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AXPNode"
->XPNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPCommentNode"
->XPCommentNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPPINode"
->XPPINode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPTextNode"
->XPTextNode</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AName"
->Name</A
-> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"
->NamePrefix</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"
->LocalName</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANamePrefix"
->NamePrefix</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ALocalName"
->LocalName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AVarName"
->VarName</A
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"
->Name</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ALiteral"
->Literal</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AFctName"
->FctName</A
-> = String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AFctArguments"
->FctArguments</A
-> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AContext"
->Context</A
-> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"
->ConPos</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"
->ConLen</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"
->ConNode</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AConPos"
->ConPos</A
-> = Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AConLen"
->ConLen</A
-> = Int</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AConNode"
->ConNode</A
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AXPathValue"
->XPathValue</A
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->= <A HREF="#v%3AXPVNode"
->XPVNode</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"
->NodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPVBool"
->XPVBool</A
-> Bool</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPVNumber"
->XPVNumber</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPVString"
->XPVString</A
-> String</TD
-></TR
-><TR
-><TD CLASS="decl"
->| <A HREF="#v%3AXPVError"
->XPVError</A
-> String</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANavXmlTree"
->NavXmlTree</A
-> = <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</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%3ANavXmlTrees"
->NavXmlTrees</A
-> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3ANodeSet"
->NodeSet</A
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"
->NavXmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AXPathFilter"
->XPathFilter</A
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AVarTab"
->VarTab</A
-> = [(<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"
->VarName</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AKeyTab"
->KeyTab</A
-> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
->, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A HREF="#t%3AEnv"
->Env</A
-> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
->VarTab</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
->KeyTab</A
->)</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvarEnv"
->varEnv</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-XPath-NavTree.html"
->Text.XML.HXT.XPath.NavTree</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"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AExpr"
-></A
-><B
->Expr</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents expression
-</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 NAME="v%3AGenExpr"
-></A
-><B
->GenExpr</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-><TD CLASS="rdoc"
->generic expression with an operator and one or more operands
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APathExpr"
-></A
-><B
->PathExpr</B
-> (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->) (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
->LocationPath</A
->)</TD
-><TD CLASS="rdoc"
->a path expression contains an optional filter-expression
- or an optional locationpath. one expression is urgently
- necessary, both are possible
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AFilterExpr"
-></A
-><B
->FilterExpr</B
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-><TD CLASS="rdoc"
->filter-expression with zero or more predicates
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AVarExpr"
-></A
-><B
->VarExpr</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"
->VarName</A
-></TD
-><TD CLASS="rdoc"
->variable
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ALiteralExpr"
-></A
-><B
->LiteralExpr</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"
->Literal</A
-></TD
-><TD CLASS="rdoc"
->string
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANumberExpr"
-></A
-><B
->NumberExpr</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-><TD CLASS="rdoc"
->number
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AFctExpr"
-></A
-><B
->FctExpr</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"
->FctName</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"
->FctArguments</A
-></TD
-><TD CLASS="rdoc"
->a function with a name and an optional list of arguments
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Expr')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Expr" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AOp"
-></A
-><B
->Op</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents XPath operators
-</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 NAME="v%3AOr"
-></A
-><B
->Or</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAnd"
-></A
-><B
->And</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AEq"
-></A
-><B
->Eq</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANEq"
-></A
-><B
->NEq</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ALess"
-></A
-><B
->Less</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AGreater"
-></A
-><B
->Greater</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ALessEq"
-></A
-><B
->LessEq</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AGreaterEq"
-></A
-><B
->GreaterEq</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APlus"
-></A
-><B
->Plus</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AMinus"
-></A
-><B
->Minus</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ADiv"
-></A
-><B
->Div</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AMod"
-></A
-><B
->Mod</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AMult"
-></A
-><B
->Mult</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AUnary"
-></A
-><B
->Unary</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AUnion"
-></A
-><B
->Union</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Op')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Op" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Op</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXPNumber"
-></A
-><B
->XPNumber</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Represents a floating-point number according the IEEE 754 standard
-</P
-><P
->The standard includes a special Not-a-Number (NaN) value,
- positive and negative infinity, positive and negative zero.
-</P
-></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 NAME="v%3AFloat"
-></A
-><B
->Float</B
-> Float</TD
-><TD CLASS="rdoc"
->floating-point number
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANaN"
-></A
-><B
->NaN</B
-></TD
-><TD CLASS="rdoc"
->not-a-number
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANegInf"
-></A
-><B
->NegInf</B
-></TD
-><TD CLASS="rdoc"
->negative infinity
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANeg0"
-></A
-><B
->Neg0</B
-></TD
-><TD CLASS="rdoc"
->negative zero
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APos0"
-></A
-><B
->Pos0</B
-></TD
-><TD CLASS="rdoc"
->positive zero
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APosInf"
-></A
-><B
->PosInf</B
-></TD
-><TD CLASS="rdoc"
->positive infinity
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPNumber')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XPNumber" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ALocationPath"
-></A
-><B
->LocationPath</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Represents location path
-</P
-><P
->A location path consists of a sequence of one or more location steps.
-</P
-></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 NAME="v%3ALocPath"
-></A
-><B
->LocPath</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
->Path</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
->XStep</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LocationPath')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:LocationPath" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
->LocationPath</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
->LocationPath</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3APath"
-></A
-><B
->Path</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->A location path is either a relative or an absolute path.
-</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 NAME="v%3ARel"
-></A
-><B
->Rel</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAbs"
-></A
-><B
->Abs</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Path')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:Path" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
->Path</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
->Path</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXStep"
-></A
-><B
->XStep</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Represents location step
-</P
-><P
->A location step consists of an axis, a node-test and zero or more predicates.
-</P
-></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 NAME="v%3AStep"
-></A
-><B
->Step</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"
->AxisSpec</A
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->NodeTest</A
-> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XStep')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XStep" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
->XStep</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
->XStep</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AAxisSpec"
-></A
-><B
->AxisSpec</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents XPath axis
-</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 NAME="v%3AAncestor"
-></A
-><B
->Ancestor</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAncestorOrSelf"
-></A
-><B
->AncestorOrSelf</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AAttribute"
-></A
-><B
->Attribute</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AChild"
-></A
-><B
->Child</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ADescendant"
-></A
-><B
->Descendant</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ADescendantOrSelf"
-></A
-><B
->DescendantOrSelf</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AFollowing"
-></A
-><B
->Following</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AFollowingSibling"
-></A
-><B
->FollowingSibling</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ANamespace"
-></A
-><B
->Namespace</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AParent"
-></A
-><B
->Parent</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APreceding"
-></A
-><B
->Preceding</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3APrecedingSibling"
-></A
-><B
->PrecedingSibling</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ASelf"
-></A
-><B
->Self</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AxisSpec')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:AxisSpec" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"
->AxisSpec</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"
->AxisSpec</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3ANodeTest"
-></A
-><B
->NodeTest</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents XPath node-tests
-</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 NAME="v%3ANameTest"
-></A
-><B
->NameTest</B
-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
-></TD
-><TD CLASS="rdoc"
->name-test
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3API"
-></A
-><B
->PI</B
-> String</TD
-><TD CLASS="rdoc"
->processing-instruction-test with a literal argument
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3ATypeTest"
-></A
-><B
->TypeTest</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"
->XPathNode</A
-></TD
-><TD CLASS="rdoc"
->all nodetype-tests
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NodeTest')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:NodeTest" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->NodeTest</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->NodeTest</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXPathNode"
-></A
-><B
->XPathNode</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents nodetype-tests
-</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 NAME="v%3AXPNode"
-></A
-><B
->XPNode</B
-></TD
-><TD CLASS="rdoc"
->all 7 nodetypes
-  (root, element, attribute, namespace, pi, comment, text)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPCommentNode"
-></A
-><B
->XPCommentNode</B
-></TD
-><TD CLASS="rdoc"
->comment-nodes
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPPINode"
-></A
-><B
->XPPINode</B
-></TD
-><TD CLASS="rdoc"
->processing-instruction-nodes
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPTextNode"
-></A
-><B
->XPTextNode</B
-></TD
-><TD CLASS="rdoc"
->text-nodes: cdata, character data
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPathNode')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XPathNode" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"
->XPathNode</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"
->XPathNode</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AName"
-></A
-><B
->Name</B
-> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"
->NamePrefix</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"
->LocalName</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANamePrefix"
-></A
-><B
->NamePrefix</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ALocalName"
-></A
-><B
->LocalName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AVarName"
-></A
-><B
->VarName</B
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"
->Name</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Variable name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ALiteral"
-></A
-><B
->Literal</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="doc"
->a string
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AFctName"
-></A
-><B
->FctName</B
-> = String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Function name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AFctArguments"
-></A
-><B
->FctArguments</B
-> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
->Function arguments
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AContext"
-></A
-><B
->Context</B
-> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"
->ConPos</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"
->ConLen</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"
->ConNode</A
->)</TD
-></TR
-><TR
-><TD CLASS="doc"
->Evaluation context
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AConPos"
-></A
-><B
->ConPos</B
-> = Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Context position
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AConLen"
-></A
-><B
->ConLen</B
-> = Int</TD
-></TR
-><TR
-><TD CLASS="doc"
->Context length
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AConNode"
-></A
-><B
->ConNode</B
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Context node
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AXPathValue"
-></A
-><B
->XPathValue</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
->Represents XPath results
-</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 NAME="v%3AXPVNode"
-></A
-><B
->XPVNode</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"
->NodeSet</A
-></TD
-><TD CLASS="rdoc"
->node-set
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPVBool"
-></A
-><B
->XPVBool</B
-> Bool</TD
-><TD CLASS="rdoc"
->boolean value
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPVNumber"
-></A
-><B
->XPVNumber</B
-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TD
-><TD CLASS="rdoc"
->number according the IEEE 754 standard
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPVString"
-></A
-><B
->XPVString</B
-> String</TD
-><TD CLASS="rdoc"
->string value
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AXPVError"
-></A
-><B
->XPVError</B
-> String</TD
-><TD CLASS="rdoc"
->error message with text
-</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPathValue')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:XPathValue" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANavXmlTree"
-></A
-><B
->NavXmlTree</B
-> = <A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
->XNode</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Node of navigable tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANavXmlTrees"
-></A
-><B
->NavXmlTrees</B
-> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
->List of nodes of navigable tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3ANodeSet"
-></A
-><B
->NodeSet</B
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"
->NavXmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Type synonym for a list of navigable tree representation
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXPathFilter"
-></A
-><B
->XPathFilter</B
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->A functions that takes a XPath result and returns a XPath result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AVarTab"
-></A
-><B
->VarTab</B
-> = [(<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"
->VarName</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->)]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->XPath environment
-</P
-><P
->All variables are stored in the environment,
- each variable name is bound to a value.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AKeyTab"
-></A
-><B
->KeyTab</B
-> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
->QName</A
->, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
->)]</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AEnv"
-></A
-><B
->Env</B
-> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
->VarTab</A
->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
->KeyTab</A
->)</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AvarEnv"
-></A
-><B
->varEnv</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-XPath-NavTree.html"
->Text.XML.HXT.XPath.NavTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html
+++ /dev/null
@@ -1,435 +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.XPath.XPathEval</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathEval.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathEval</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XPathEval.hs,v 1.8 2006<EM
->10</EM
->12 11:51:29 hxml Exp $
-</P
-><P
->The core functions for evaluating the different types of XPath expressions.
-   Each <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-></TT
->-constructor is mapped to an evaluation function.
-</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%3AgetXPath"
->getXPath</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathWithNsEnv"
->getXPathWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathSubTrees"
->getXPathSubTrees</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathSubTreesWithNsEnv"
->getXPathSubTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathNodeSet"
->getXPathNodeSet</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathNodeSetWithNsEnv"
->getXPathNodeSetWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AevalExpr"
->evalExpr</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPath"
-></A
-><B
->getXPath</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of a document by an XPath expression.
-</P
-><P
->The main filter for selecting parts of a document via XPath.
- The string argument must be a XPath expression with an absolute location path,
- the argument tree must be a complete document tree.
- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathWithNsEnv"
-></A
-><B
->getXPathWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of a document by a namespace aware XPath expression.
-</P
-><P
->Works like <TT
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"
->getXPath</A
-></TT
-> but the prefix:localpart names in the XPath expression
- are interpreted with respect to the given namespace environment
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathSubTrees"
-></A
-><B
->getXPathSubTrees</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of an XML tree by a XPath expression.
-</P
-><P
->The main filter for selecting parts of an arbitrary XML tree via XPath.
- The string argument must be a XPath expression with an absolute location path,
- There are no restrictions on the arument tree.
-</P
-><P
->No canonicalization is performed before evaluating the query
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathSubTreesWithNsEnv"
-></A
-><B
->getXPathSubTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->XmlFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"
->getXPathSubTrees</A
-></TT
-> but with namespace aware XPath expression
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathNodeSet"
-></A
-><B
->getXPathNodeSet</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->compute the node set of an XPath query
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathNodeSetWithNsEnv"
-></A
-><B
->getXPathNodeSetWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->compute the node set of a namespace aware XPath query
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AevalExpr"
-></A
-><B
->evalExpr</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->The main evaluation entry point. 
- Each XPath-<TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-></TT
-> is mapped to an evaluation function. The <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-></TT
->-parameter contains the set of global variables
- for the evaluator, the <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-></TT
->-parameter the root of the tree in which the expression is evaluated.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html
+++ /dev/null
@@ -1,634 +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.XPath.XPathFct</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathFct.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathFct</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->The module contains the core-functions of the XPath function library.
- All functions are implemented as XFct. Each XFct contains the evaluation context,
- the variable environment and the function arguments.
-</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"
->type</SPAN
-> <A HREF="#t%3AXFct"
->XFct</A
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AevalFct"
->evalFct</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"
->FctName</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoXValue"
->toXValue</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->]</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axnumber"
->xnumber</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axboolean"
->xboolean</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Axstring"
->xstring</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetConvFct"
->getConvFct</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AstringValue"
->stringValue</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AremDups"
->remDups</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotInNodeList"
->isNotInNodeList</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
->] -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcreateDocumentOrder"
->createDocumentOrder</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AcreateDocumentOrderReverse"
->createDocumentOrderReverse</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetVarTab"
->getVarTab</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
->VarTab</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetKeyTab"
->getKeyTab</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
->KeyTab</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"
-><SPAN CLASS="keyword"
->type</SPAN
-> <A NAME="t%3AXFct"
-></A
-><B
->XFct</B
-> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Type signature for all functions which can be used in the XPath module.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AevalFct"
-></A
-><B
->evalFct</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"
->FctName</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Evaluates a function.
- Calculation of the function value is done by looking up the function name in the function table,
- check the number of arguments and calculate the funtion, if no
- argument evaluation returns an error.
-</P
-><UL
-><LI
-> returns : the function value as <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TT
->
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoXValue"
-></A
-><B
->toXValue</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Context</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
->]</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Converts a list of different <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TT
-> types in a list of one <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TT
-> type.
-</P
-><UL
-><LI
-> 1.parameter fct :  the conversion function
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axnumber"
-></A
-><B
->xnumber</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->number number(object?): converts its argument to a number
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axboolean"
-></A
-><B
->xboolean</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->boolean boolean(object): converts its argument to a boolean value
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Axstring"
-></A
-><B
->xstring</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->string string(object?): converts an object to a string
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetConvFct"
-></A
-><B
->getConvFct</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"
->XFct</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Returns the conversion function for the XPath results: string, boolean and number
- A nodeset can not be converted.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AstringValue"
-></A
-><B
->stringValue</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Returns the string-value of a node,
- the value of a namespace node is not supported
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AremDups"
-></A
-><B
->remDups</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Filter for removing identical fragment trees in a nodeset
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AisNotInNodeList"
-></A
-><B
->isNotInNodeList</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
-> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->NavXmlTree</A
->] -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Check whether a node is not a part of a node list. Needed to implement matching &amp; testing in xslt.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcreateDocumentOrder"
-></A
-><B
->createDocumentOrder</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Filter for ordering a list of Nodes in document order
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AcreateDocumentOrderReverse"
-></A
-><B
->createDocumentOrderReverse</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"
->XPathFilter</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Filter for ordering a list of Nodes in reverse document order
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetVarTab"
-></A
-><B
->getVarTab</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"
->VarTab</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Returns the table of variables from the environment
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetKeyTab"
-></A
-><B
->getKeyTab</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Env</A
-> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"
->KeyTab</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Returns the table of keys, needed by xslt, from the environment
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html
+++ /dev/null
@@ -1,300 +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.XPath.XPathKeywords</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathKeywords.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathKeywords</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->$Id: XPathKeywords.hs,v 1.1 2004<EM
->09</EM
->02 19:12:05 hxml Exp $
-</P
-><P
->the XPath keywords
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_ancestor"
-></A
-><B
->a_ancestor</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_ancestor_or_self"
-></A
-><B
->a_ancestor_or_self</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_attribute"
-></A
-><B
->a_attribute</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_child"
-></A
-><B
->a_child</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_descendant"
-></A
-><B
->a_descendant</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_descendant_or_self"
-></A
-><B
->a_descendant_or_self</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_following"
-></A
-><B
->a_following</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_following_sibling"
-></A
-><B
->a_following_sibling</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_namespace"
-></A
-><B
->a_namespace</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_parent"
-></A
-><B
->a_parent</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_preceding"
-></A
-><B
->a_preceding</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_preceding_sibling"
-></A
-><B
->a_preceding_sibling</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aa_self"
-></A
-><B
->a_self</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3An_comment"
-></A
-><B
->n_comment</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3An_text"
-></A
-><B
->n_text</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3An_processing_instruction"
-></A
-><B
->n_processing_instruction</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3An_node"
-></A
-><B
->n_node</B
-> :: String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html
+++ /dev/null
@@ -1,214 +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.XPath.XPathParser</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathParser.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathParser</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XPathParser.hs,v 1.6 2006<EM
->10</EM
->12 11:51:29 hxml Exp $
-</P
-><P
->the XPath Parser
-</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%3AparseNumber"
->parseNumber</A
-> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AparseXPath"
->parseXPath</A
-> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseNumber"
-></A
-><B
->parseNumber</B
-> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->parsing a number, parseNumber is used in <A HREF="XPathFct.html"
->XPathFct</A
->
- by the number function
-</P
-><UL
-><LI
-> returns : the parsed number as <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
->XPNumber</A
-></TT
-> float
-                or <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"
->XPVNumber</A
-></TT
-> <TT
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"
->NaN</A
-></TT
-> in case of error
-</LI
-></UL
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AparseXPath"
-></A
-><B
->parseXPath</B
-> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->the main entry point:
- parsing a XPath expression
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html
+++ /dev/null
@@ -1,166 +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.XPath.XPathToNodeSet</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToNodeSet.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathToNodeSet</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Convert an XPath result set into a node set
-</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%3AxPValue2NodeSet"
->xPValue2NodeSet</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AemptyNodeSet"
->emptyNodeSet</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPValue2NodeSet"
-></A
-><B
->xPValue2NodeSet</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Convert a a XPath-value into a XmlNodeSet represented by a tree structure
-</P
-><P
->The XmlNodeSet can be used to traverse a tree an process all
- marked nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AemptyNodeSet"
-></A
-><B
->emptyNodeSet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html
+++ /dev/null
@@ -1,294 +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.XPath.XPathToString</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToString.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath.XPathToString</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->Format an expression or value in tree- or string-representation
-</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%3Aexpr2XPathTree"
->expr2XPathTree</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-> -&gt; XPathTree</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxPValue2String"
->xPValue2String</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AxPValue2XmlTrees"
->xPValue2XmlTrees</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Ant2XPathTree"
->nt2XPathTree</A
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->NodeTest</A
-> -&gt; XPathTree</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Apred2XPathTree"
->pred2XPathTree</A
-> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->] -&gt; XPathTree</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AtoXPathTree"
->toXPathTree</A
-> :: [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aexpr2XPathTree"
-></A
-><B
->expr2XPathTree</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
-> -&gt; XPathTree</TD
-></TR
-><TR
-><TD CLASS="doc"
->Format a parsed XPath-expression in tree representation.
- Text output is done by <TT
-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"
->formatXmlTree</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPValue2String"
-></A
-><B
->xPValue2String</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Format a XPath-value in string representation.
- Text output is done by <TT
-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"
->formatXmlTree</A
-></TT
-> for node-sets (trees),
- all other values are represented as strings.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AxPValue2XmlTrees"
-></A
-><B
->xPValue2XmlTrees</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->XPathValue</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
->XmlTrees</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Convert a a XPath-value into XmlTrees.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Ant2XPathTree"
-></A
-><B
->nt2XPathTree</B
-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->NodeTest</A
-> -&gt; XPathTree</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Apred2XPathTree"
-></A
-><B
->pred2XPathTree</B
-> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Expr</A
->] -&gt; XPathTree</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AtoXPathTree"
-></A
-><B
->toXPathTree</B
-> :: [<A HREF="Data-NavTree.html#t%3ANavTree"
->NavTree</A
-> a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"
->NTree</A
-> a]</TD
-></TR
-><TR
-><TD CLASS="doc"
->Convert an navigable tree in a xmltree
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath.html b/doc/hdoc_filter/Text-XML-HXT-XPath.html
deleted file mode 100644
--- a/doc/hdoc_filter/Text-XML-HXT-XPath.html
+++ /dev/null
@@ -1,125 +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.XPath</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.XPath</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->This helper module exports elements from the basic libraries:
- XPathEval, XPathToString and XPathParser
-</P
-><P
->Author : Torben Kuseler
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-XPath-XPathEval.html"
->Text.XML.HXT.XPath.XPathEval</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-XPath-XPathToString.html"
->Text.XML.HXT.XPath.XPathToString</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-XPath-XPathParser.html"
->Text.XML.HXT.XPath.XPathParser</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-36.html b/doc/hdoc_filter/doc-index-36.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-36.html
+++ /dev/null
@@ -1,194 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index ($)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->$!!</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#v%3A%24%21%21"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->$$</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->$$&lt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24%3C"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-43.html b/doc/hdoc_filter/doc-index-43.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-43.html
+++ /dev/null
@@ -1,202 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (+)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->+++</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->+++&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
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->++=</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->+=</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-46.html b/doc/hdoc_filter/doc-index-46.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-46.html
+++ /dev/null
@@ -1,194 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (.)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->..&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->.&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->.&gt;&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-47.html b/doc/hdoc_filter/doc-index-47.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-47.html
+++ /dev/null
@@ -1,178 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (/)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->/&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-58.html b/doc/hdoc_filter/doc-index-58.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-58.html
+++ /dev/null
@@ -1,178 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (:)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->:-&gt;</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-60.html b/doc/hdoc_filter/doc-index-60.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-60.html
+++ /dev/null
@@ -1,178 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (&lt;)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->&lt;/</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-A.html b/doc/hdoc_filter/doc-index-A.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-A.html
+++ /dev/null
@@ -1,1134 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (A)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->AttrName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Attribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAttribute"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->aName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AaName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_ancestor</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->a_attribute</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_attribute"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_canonicalize</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_check_namespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_check_restrictions</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_child</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_child"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_collect_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_column</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_column"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_contentLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_default_baseuri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default_baseuri"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_descendant</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_descendant"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_descendant_or_self</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_descendant_or_self"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_canonicalize</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_check_namespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_namespaces"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_collect_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_issue_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_issue_warnings</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_preserve_comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_preserve_comment"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_remove_whitespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_remove_whitespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_use_curl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_validate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_validate_externalRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_do_not_validate_include</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_encoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_error</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_error_log</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_following</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_following"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_following_sibling</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_following_sibling"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_help</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_indent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_issue_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_issue_warnings</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_kind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_kind"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_line</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_line"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_modifier</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_modifier"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_module</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_name"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_namespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_namespace"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_no_xml_pi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_options_curl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_changes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_encoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_file</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_html</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_output_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_parent"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parse_by_mimetype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parse_html</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_parse_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_peref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_peref"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_preceding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_preceding"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_preceding_sibling</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_preceding_sibling"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_preserve_comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_propagate_errors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_propagate_errors"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_proxy</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_relax_schema</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_remove_whitespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_self</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_self"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_show_haskell</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_show_tree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_source</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_standalone</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_standalone"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_status</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_tagsoup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_trace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_type</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_type"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_url</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_url"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_use_curl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_validate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_validate_externalRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_validate_include</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_value</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_value"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_verbose</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_version</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->a_xmlns</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xmlns"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->add1Attr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addAttrInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrInt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addDTDAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddDTDAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addFatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AaddFatal"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addHeadlineToXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddHeadlineToXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->addXmlPiToDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddXmlPiToDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->allBut</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->allBut1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->application_xhtml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xhtml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xml_dtd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_dtd"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->application_xml_external_parsed_entity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_external_parsed_entity"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->asciiLetter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->atag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->attlistDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AattlistDecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->attr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->attrEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->attrValue</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AattrValue"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->attrValueT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->attrlOfDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AattrlOfDTD"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-B.html b/doc/hdoc_filter/doc-index-B.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-B.html
+++ /dev/null
@@ -1,186 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (B)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->bar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-C.html b/doc/hdoc_filter/doc-index-C.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-C.html
+++ /dev/null
@@ -1,632 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (C)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->Context</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cDSect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->canonicalizeAllNodes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->canonicalizeForXPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->canonicalizeTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cardNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AcardNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cat</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->catM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->chain</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->chain'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain%27"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeChildren</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeNode</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->changeState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AchangeState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->changeSysStateAttrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysStateAttrs"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->charData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->charRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->charRefT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->charToHexString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkAttributeValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AcheckAttributeValue"
->Text.XML.HXT.Validator.AttributeValueValidation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3AcheckRE"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AcheckRE"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkResult</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckResult"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckStatus"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->checkWellformedDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->choice</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->choiceM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->clearStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AclearStatus"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->closesHtmlTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->cmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->collapseAllXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseAllXText"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->collapseXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->comma</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->concRes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->containing</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->containingM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->content</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->contentWithTextDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-D.html b/doc/hdoc_filter/doc-index-D.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-D.html
+++ /dev/null
@@ -1,466 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (D)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->DeepSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->decimalStringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3Adecode"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decodeEmbedErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AdecodeEmbedErrors"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->decodeOne</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AdecodeOne"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->deep</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->deepSeq</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->deepest</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->del1Attr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adel1Attr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->depthNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AdepthNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><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
-><TD CLASS="indexentry"
->doctypedecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->document</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->doubles</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->dq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->dtd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adtd"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->dtdChars</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdChars"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-E.html b/doc/hdoc_filter/doc-index-E.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-E.html
+++ /dev/null
@@ -1,498 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (E)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Env</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->Error</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#t%3AError"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Expr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->element</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->emptyHtmlTags</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AemptyHtmlTags"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->emptyRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->encName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->encode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3Aencode"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->encodeOne</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Char-UTF8.html#v%3AencodeOne"
->Data.Char.UTF8</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->encodingDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->entityCharT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->entityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->entityRefT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->entityTokensT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->entityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->entityValueT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->eq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equalQNameBy</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equivQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->equivUri</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->err</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aerr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errClass</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrClass"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errorMsgHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errorMsgLogging</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLogging"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errorMsgLoggingAndToStderr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLoggingAndToStderr"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->errorMsgToStderr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgToStderr"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->escapeURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->escapeXmlAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->escapeXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->escapeXmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->etag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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</TD
-></TR
-><TR
-><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
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-F.html b/doc/hdoc_filter/doc-index-F.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-F.html
+++ /dev/null
@@ -1,322 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (F)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><TD CLASS="indexentry"
->FctExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFctExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->fatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Afatal"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->foldNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AfoldNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><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
-><TD CLASS="indexentry"
->formatNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AformatNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->formatXmlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"
->Text.XML.HXT.DOM.FormatXmlTree</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fromAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromAttrl"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->fromTreel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromTreel"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-G.html b/doc/hdoc_filter/doc-index-G.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-G.html
+++ /dev/null
@@ -1,630 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (G)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->GenExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGenExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><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
-><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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getAbsolutURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetAbsolutURI"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getChildren</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getContentLength</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetContentLength"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->getDTDSubset</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AgetDTDSubset"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getDTDValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetDTDValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getDecodingFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFct"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->getErrorMsg</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getFileContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html#v%3AgetFileContents"
->Text.XML.HXT.Parser.ProtocolHandlerFile</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHtmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AgetHtmlDoc"
->Text.XML.HXT.Parser.HtmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHttpContentsNativeOrWithCurl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html#v%3AgetHttpContentsNativeOrWithCurl"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHttpContentsWithCurl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html#v%3AgetHttpContentsWithCurl"
->Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getHttpContentsWithHttp</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html#v%3AgetHttpContentsWithHttp"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->getName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getNode</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getNsValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getOutputEncodingFct</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetOutputEncodingFct"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getProtocolHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html#v%3AgetProtocolHandler"
->Text.XML.HXT.Parser.ProtocolHandler</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->getState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AgetState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysErrorHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysErrorHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParam"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParamInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamInt"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParamTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamTree"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysParamWithDefault</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getTraceLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetTraceLevel"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getUrlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetUrlContents"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getValidatedDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-Validation.html#v%3AgetValidatedDoc"
->Text.XML.HXT.Validator.Validation</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getVarTab</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetVarTab"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getWellformedDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><TD CLASS="indexentry"
->getXPathNodeSet</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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->getXmlContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->getXmlEntityContents</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlEntityContents"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->gt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guards</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guardsM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->guessDocEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AguessDocEncoding"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-H.html b/doc/hdoc_filter/doc-index-H.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-H.html
+++ /dev/null
@@ -1,282 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (H)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->hPutXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hPutXmlSource</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlSource"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hPutXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlTree"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasLocalPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasNamespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasNsAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasOption</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasOption"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hasValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->haskellRepOfXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->hexStringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AhexStringToInt"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-I.html b/doc/hdoc_filter/doc-index-I.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-I.html
+++ /dev/null
@@ -1,1390 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (I)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->IfThen</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ifM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iff</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->indentDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->initialSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AinitialSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->insertChildrenAfter</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->insertChildrenAt</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->intToCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->intToHexString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->intValueOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AintValueOf"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->io</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Aio"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Aio"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttlist</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlist"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttlistOfElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistOfElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttlistParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisAttrNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isCondSect</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisCondSect"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isDTDElemNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisDTDElemNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isDTDName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDTDName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isDefaultAttrKind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDefaultAttrKind"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isDoctype</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDoctype"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isElemContentParamEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemContentParamEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isElemWithContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemWithContent"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isEmptyElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEmptyElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isEmptyHtmlTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisEmptyHtmlTag"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isEnumAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEnumAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isErrorNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisErrorNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isExternalParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisExternalParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isFatalError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFatalError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isFixedAttrKind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFixedAttrKind"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isHtmlMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisHtmlMimeType"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isIdAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isIdRefAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdRefAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isInnerHtmlTagOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisInnerHtmlTagOf"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isInternalParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisInternalParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isMixedContentElement</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisMixedContentElement"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isNamespaceDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AisNamespaceDecl"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isNotInNodeList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AisNotInNodeList"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isNotation</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotation"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isNotationAttrType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotationAttrType"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isNsAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isNsTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfAttrNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfPiNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfPiNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfTagNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTagNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isOfTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTextNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isParameterEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisParameterEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isPeRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPeRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isPiNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisPiNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isRequiredAttrKind</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRequiredAttrKind"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRoot"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isRootNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisRootNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isStandaloneDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AisStandaloneDocument"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isTagNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTagNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTextNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isUnparsedEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisUnparsedEntity"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isWarning</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWarning"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWhiteSpace"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXAttrNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXAttrNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCdataNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCdataNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCharRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCharRefNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCharRefNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXCmtNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCmtNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXDTD"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXDTDNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXDTDNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXEntityRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXEntityRefNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXEntityRefNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXErrorNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXErrorNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXPiNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXPiNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXTagNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTagNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXTextNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTextNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXml11SpaceChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->isXmlMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisXmlMimeType"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXmlNCNameChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->isXmlPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXmlPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isXmlPubidChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlPubidChar"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_10</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_10"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_11</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_11"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_13</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_13"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_14</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_14"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_15</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_15"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_16</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_16"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_2"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_3</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_3"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_4</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_4"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_5</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_5"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_6</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_6"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_7</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_7"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_8"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->iso8859_9</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_9"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->isoLatin1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->issueErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->issueError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->issueFatal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueFatal"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->issueWarn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueWarn"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-K.html b/doc/hdoc_filter/doc-index-K.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-K.html
+++ /dev/null
@@ -1,378 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (K)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><TD CLASS="indexentry"
->k_any</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_any"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_default</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_default"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_empty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_empty"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_entities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_entity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entity"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_enumeration</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enumeration"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_fixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_fixed"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_id</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_id"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_idref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idref"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_idrefs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idrefs"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_ignore</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ignore"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_implied</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_implied"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_include</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_include"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_ndata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ndata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_nmtoken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtoken"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_nmtokens</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtokens"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_notation</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_notation"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_pcdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_pcdata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_peref</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_peref"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_public</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_public"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_required</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_required"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->k_system</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_system"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->keyword</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->keywords</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-L.html b/doc/hdoc_filter/doc-index-L.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-L.html
+++ /dev/null
@@ -1,306 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (L)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->LiteralExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALiteralExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->LocPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALocPath"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->LocalName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->LocationPath</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->liftF</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AliftF"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->liftMf</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->localPartOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->lpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->lt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-M.html b/doc/hdoc_filter/doc-index-M.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-M.html
+++ /dev/null
@@ -1,646 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (M)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->mapNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmapNTree"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->markupdecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->matches</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Amatches"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Amatches"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->maybeString2XText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmaybeString2XText"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->misc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkLeaf</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkNTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmkNode"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkPrefixLocalPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkQAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkQAttrTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQAttrTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"
->Text.XML.HXT.DOM.QualifiedName</A
->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkQTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkQTagTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQTagTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkRootTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkRootTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkTree</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXAttrTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCdata"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCdataTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCdataTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCharRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCharRefTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCharRefTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXCmtTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCmtTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXDTD"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXDTDTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXEntityRef"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXEntityRefTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXEntityRefTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXErrorTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXErrorTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsAttrTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsAttrTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXNsTagTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXPERefTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPERefTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXPi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXPi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXPiTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPiTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXTagTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXTextTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTextTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->mkXmlDeclTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXmlDeclTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyNode0</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyQName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->modifyText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyText"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->multi</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-N.html b/doc/hdoc_filter/doc-index-N.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-N.html
+++ /dev/null
@@ -1,654 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (N)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry" COLSPAN="2"
->NTree</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NaN</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->NameTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANameTest"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->NamespaceTable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->NavXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->NodeTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->nTreeToList</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AnTreeToList"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->n_comment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_comment"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->n_node</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_node"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->n_processing_instruction</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_processing_instruction"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->name</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nameOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nameT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->names</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->namespaceOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ncName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->neg</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->newDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->newDocument'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument%27"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->newRoot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nmtoken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nmtokenT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nmtokens</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->noDoubles</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->none</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->noneM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->normalizeAttributeValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AnormalizeAttributeValue"
->Text.XML.HXT.Validator.AttributeValueValidation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->normalizeBlanks</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeBlanks"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->normalizeNumber</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->normalizeWhitespace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->notContaining</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->notationDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AnotationDecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR
-><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
-><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</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->nullable</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Anullable"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->numberLines</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLines"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->numberLinesInXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-O.html b/doc/hdoc_filter/doc-index-O.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-O.html
+++ /dev/null
@@ -1,234 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (O)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->Op</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->o</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><TD CLASS="indexentry"
->ofDTDequals</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AofDTDequals"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->orElse</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-P.html b/doc/hdoc_filter/doc-index-P.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-P.html
+++ /dev/null
@@ -1,768 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (P)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->PI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3API"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->Path</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->PathExpr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APathExpr"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->pI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->parseDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseHtmlContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseHtmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"
->Text.XML.HXT.Parser.HtmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseHtmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseHtmlTagSoup</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-TagSoup.html#v%3AparseHtmlTagSoup"
->Text.XML.HXT.Parser.TagSoup</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseHtmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseNMToken</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlAttrValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDEntityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDEntityValue"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDdecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdecl"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDTDdeclPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdeclPart"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"
->Text.XML.HXT.Parser.XmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDocEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlEntityEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlGeneralEntityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlPart</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->parseXmlText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->partitionEither</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3ApartitionEither"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->peReference</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3ApeReference"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->peReferenceT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->performAction</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->popen</TD
-><TD CLASS="indexlinks"
-><A HREF="System-PipeOpen.html#v%3Apopen"
->System.PipeOpen</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->prefixOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AprefixOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><TD CLASS="indexentry"
->printRE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3AprintRE"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AprintRE"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processAttrM</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AprocessAttrM"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processBottomUp</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processBottomUpIfNot</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processBottomUpM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processChildrenM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessDTD"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processGeneralEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessGeneralEntities"
->Text.XML.HXT.Parser.DTDProcessing</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processTopDown</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processTopDownM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->processTopDownUntil</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->prolog</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->propagateAndValidateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Namespace.html#v%3ApropagateAndValidateNamespaces"
->Text.XML.HXT.DOM.Namespace</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->propagateNamespaceEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->propagateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->pubidLiteral</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->putXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->putXmlDocToFile</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDocToFile"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->putXmlDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->putXmlSource</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlSource"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->putXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlTree"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-Q.html b/doc/hdoc_filter/doc-index-Q.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-Q.html
+++ /dev/null
@@ -1,234 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (Q)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->qName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->qattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqattr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->qetag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqetag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->qtag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqtag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->quoted</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-R.html b/doc/hdoc_filter/doc-index-R.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-R.html
+++ /dev/null
@@ -1,590 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (R)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->RE</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_ALT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ALT"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_DOT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_DOT"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_OPT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_OPT"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_PLUS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_PLUS"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_REP</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_REP"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_SEQ</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SEQ"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_SYM</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SYM"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_UNIT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_UNIT"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->RE_ZERO</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ZERO"
->Text.XML.HXT.Validator.RE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Rel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ARel"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_alt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_alt"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_alt"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_dot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_dot"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_dot"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_opt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_opt"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_opt"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_plus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_plus"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_plus"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_rep</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_rep"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_rep"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_seq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_seq"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_seq"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_sym</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_sym"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_sym"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_unit</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_unit"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_unit"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->re_zero</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_zero"
->Text.XML.HXT.Validator.RE</A
->, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_zero"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->reference</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->referenceT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->removeAllComment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllComment"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->removeAllWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->removeComment</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveComment"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->removeDocWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->removeDoublicateDefs</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AremoveDoublicateDefs"
->Text.XML.HXT.Validator.DTDValidation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AremoveDoublicateDefs"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->removeEncodingSpec</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->removeWhiteSpace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceAttrl"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->replaceQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceQName"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->rootTag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3ArootTag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->rpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->run</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Arun"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->run'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun%27"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->run0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun0"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->runHtmlParser</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"
->Text.XML.HXT.Parser.HtmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->runInLocalURIContext</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInLocalURIContext"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->runInNewURIContext</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInNewURIContext"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-S.html b/doc/hdoc_filter/doc-index-S.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-S.html
+++ /dev/null
@@ -1,898 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (S)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->STIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3ASTIO"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->StateIO</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->Step</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AStep"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->SysState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3ASysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->SysStateAttrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sDDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sPace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sPace0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->satisfies</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->semi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->separator</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->seqF</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->seqM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setBaseURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"
->Text.XML.HXT.Parser.XmlInput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setChildren</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setDefaultURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-DefaultURI.html#v%3AsetDefaultURI"
->Text.XML.HXT.Parser.DefaultURI</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setErrorMsgLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetErrorMsgLevel"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setNode</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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->setState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AsetState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysErrorHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysErrorHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysParam</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysParamInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysParamTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setSystemParams</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSystemParams"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->setTraceLevel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetTraceLevel"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showApos</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowApos"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowAttr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showBlank</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowBlank"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showContent</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowContent"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showElemType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowElemType"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showEntity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntity"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showEntityValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntityValue"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showEq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEq"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showExternalId</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowExternalId"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showGt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowGt"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showLpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLpar"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showLt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLt"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showNData</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNData"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showNL</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNL"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showPEAttr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowPEAttr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showQName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQName"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showQuot</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuot"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showQuoteString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuoteString"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showRpar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowRpar"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showSlash</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowSlash"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXCharRef"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXEntityRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXEntityRef"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXErrors</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXErrors"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXText"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlDTD"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTree"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlTrees</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->showXmlTrees'</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees%27"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->singleChar</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->singleChars</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->singleCharsT</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->singles</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->skipS</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->skipS0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->spi</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aspi"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->stag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->statusOk</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AstatusOk"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->strict</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"
->Control.Strategies.DeepSeq</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->stringEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->stringToHexString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->stringToInt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->stringToUpper</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->stringTrim</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->substChildren</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->substHtmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AsubstHtmlEntities"
->Text.XML.HXT.Parser.HtmlParsec</A
->, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->substXmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AsubstXmlEntities"
->Text.XML.HXT.Parser.XmlParser</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->swap</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Aswap"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sysState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sysStateAttrs</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateAttrs"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->sysStateErrorHandler</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateErrorHandler"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->systemLiteral</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-T.html b/doc/hdoc_filter/doc-index-T.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-T.html
+++ /dev/null
@@ -1,582 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (T)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->TFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TSFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TagName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->TypeTest</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ATypeTest"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->tName</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AtName"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->t_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->tag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->textDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->textEscapeXml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->textOfXNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtextOfXNode"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->text_html</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_html"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->text_xml</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->text_xml_external_parsed_entity</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml_external_parsed_entity"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->this</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->thisM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->toAttrl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoAttrl"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->toMaybe</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtoMaybe"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->toTreel</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoTreel"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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
-><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
-><TD CLASS="indexentry"
->trace</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Atrace"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->traceCmd</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceCmd"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->traceF</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceF"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->traceMsg</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceMsg"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->traceSource</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceSource"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->traceState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->traceTree</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceTree"
->Text.XML.HXT.Parser.XmlOutput</A
->, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->trans</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3Atrans"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transfAllCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdata"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transfAllCdataEscaped</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdataEscaped"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transfAllCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCharRef"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transfCdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdata"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transfCdataEscaped</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdataEscaped"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transfCharRef</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCharRef"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferDefaultURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferDefaultURI"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferEncoding</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferEncoding"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferMessage</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMessage"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferMimeType</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMimeType"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferPrefix</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferPrefix"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferStatus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferStatus"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferURI</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferURI"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->transferVersion</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferVersion"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->transform</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DocTransformation.html#v%3Atransform"
->Text.XML.HXT.Validator.DocTransformation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Atransform"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->trcState</TD
-><TD CLASS="indexlinks"
-><A HREF="Control-Monad-MonadStateIO.html#v%3AtrcState"
->Control.Monad.MonadStateIO</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->treeRepOfXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->txt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atxt"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-U.html b/doc/hdoc_filter/doc-index-U.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-U.html
+++ /dev/null
@@ -1,450 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (U)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->Union</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnion"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ucs2</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aucs2"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->ucs2BigEndianToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->uncurry3</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry3"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->uncurry4</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry4"
->Text.XML.HXT.DOM.Util</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->unicodeString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AunicodeString"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unicodeToLatin1</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->universalNameOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AuniversalNameOf"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->unparseXmlDoc</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AunparseXmlDoc"
->Text.XML.HXT.DOM.EditFilters</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->usAscii</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->userState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AuserState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16be</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16be"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16beToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16le</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16le"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf16leToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf8</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->utf8ToUnicode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-></TR
-><TR
-><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
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-V.html b/doc/hdoc_filter/doc-index-V.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-V.html
+++ /dev/null
@@ -1,434 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (V)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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
-><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
-><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
-><TD CLASS="indexentry"
->v_0</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_0"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_any</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_any"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_children</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_children"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_choice</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_choice"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_empty</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_empty"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_mixed</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_mixed"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_no</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_no"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_null</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_null"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_option</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_option"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_pcdata</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_pcdata"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_plus</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_plus"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_seq</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_seq"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_star</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_star"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->v_yes</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_yes"
->Text.XML.HXT.DOM.XmlKeywords</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validate</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Avalidate"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validate1Namespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->validateDTD</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AvalidateDTD"
->Text.XML.HXT.Validator.DTDValidation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDTD"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->validateDoc</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-DocValidation.html#v%3AvalidateDoc"
->Text.XML.HXT.Validator.DocValidation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Function)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDoc"
->Text.XML.HXT.Validator.ValidationFilter</A
->, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateIds</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Validator-IdValidation.html#v%3AvalidateIds"
->Text.XML.HXT.Validator.IdValidation</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->validateNamespaces</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"
->Text.XML.HXT.DOM.NamespaceFilter</A
->, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->valueOf</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AvalueOf"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->valueOfDTD</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AvalueOfDTD"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->varEnv</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AvarEnv"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->versionInfo</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->versionNum</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"
->Text.XML.HXT.Parser.XmlTokenParser</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-W.html b/doc/hdoc_filter/doc-index-W.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-W.html
+++ /dev/null
@@ -1,218 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (W)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD CLASS="indexentry"
->warn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Awarn"
->Text.XML.HXT.DOM.XmlTreeFilter</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->when</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->whenM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->whenNot</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->whenNotM</TD
-><TD CLASS="indexlinks"
-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
->Data.Tree.NTree.Filter</A
->, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->writeDocument</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"
->Text.XML.HXT.Parser.MainFunctions</A
->, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index-X.html b/doc/hdoc_filter/doc-index-X.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index-X.html
+++ /dev/null
@@ -1,750 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index (X)</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->XPVBool</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVBool"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XPVError</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVError"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XPVNode</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNode"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->XPVString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVString"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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
-><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
-><TD CLASS="indexentry"
->XPathValue</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XState</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XStep</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XmlFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XmlSFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
->Text.XML.HXT.DOM.XmlTreeTypes</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry" COLSPAN="2"
->XmlState</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->1 (Type/Class)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexannot"
->2 (Data Constructor)</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AXmlState"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->XmlStateFilter</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
->Text.XML.HXT.DOM.XmlState</A
->, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xMLDecl</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><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
-><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</TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><TD CLASS="indexentry"
->xattr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axattr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xboolean</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axboolean"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xcmt</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axcmt"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xerr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axerr"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xhtmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html#v%3AxhtmlEntities"
->Text.XML.HXT.Parser.XhtmlEntities</A
-></TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xmlContentModelToString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlContentModelToString"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xmlEntities</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlEntities.html#v%3AxmlEntities"
->Text.XML.HXT.Parser.XmlEntities</A
-></TD
-></TR
-><TR
-><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
-><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
-><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
-><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
-><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
-><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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xmlTreesToString</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToString"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xmlTreesToText</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->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.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><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
-><TD CLASS="indexentry"
->xread</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"
->Text.XML.HXT.Parser.XmlParsec</A
->, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xshow</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xstring</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axstring"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xtag</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtag"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xtext</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtext"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->xwarn</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axwarn"
->Text.XML.HXT.DOM.XmlTreeFunctions</A
->, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/doc-index.html b/doc/hdoc_filter/doc-index.html
deleted file mode 100644
--- a/doc/hdoc_filter/doc-index.html
+++ /dev/null
@@ -1,164 +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
->Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Index</TD
-></TR
-><TR
-><TD
-><TABLE CELLPADDING="0" CELLSPACING="5"
-><TR
-><TD
-><A HREF="doc-index-A.html"
->A</A
-></TD
-><TD
-><A HREF="doc-index-B.html"
->B</A
-></TD
-><TD
-><A HREF="doc-index-C.html"
->C</A
-></TD
-><TD
-><A HREF="doc-index-D.html"
->D</A
-></TD
-><TD
-><A HREF="doc-index-E.html"
->E</A
-></TD
-><TD
-><A HREF="doc-index-F.html"
->F</A
-></TD
-><TD
-><A HREF="doc-index-G.html"
->G</A
-></TD
-><TD
-><A HREF="doc-index-H.html"
->H</A
-></TD
-><TD
-><A HREF="doc-index-I.html"
->I</A
-></TD
-><TD
-><A HREF="doc-index-K.html"
->K</A
-></TD
-><TD
-><A HREF="doc-index-L.html"
->L</A
-></TD
-><TD
-><A HREF="doc-index-M.html"
->M</A
-></TD
-><TD
-><A HREF="doc-index-N.html"
->N</A
-></TD
-><TD
-><A HREF="doc-index-O.html"
->O</A
-></TD
-><TD
-><A HREF="doc-index-P.html"
->P</A
-></TD
-><TD
-><A HREF="doc-index-Q.html"
->Q</A
-></TD
-><TD
-><A HREF="doc-index-R.html"
->R</A
-></TD
-><TD
-><A HREF="doc-index-S.html"
->S</A
-></TD
-><TD
-><A HREF="doc-index-T.html"
->T</A
-></TD
-><TD
-><A HREF="doc-index-U.html"
->U</A
-></TD
-><TD
-><A HREF="doc-index-V.html"
->V</A
-></TD
-><TD
-><A HREF="doc-index-W.html"
->W</A
-></TD
-><TD
-><A HREF="doc-index-X.html"
->X</A
-></TD
-><TD
-><A HREF="doc-index-58.html"
->:</A
-></TD
-><TD
-><A HREF="doc-index-36.html"
->$</A
-></TD
-><TD
-><A HREF="doc-index-43.html"
->+</A
-></TD
-><TD
-><A HREF="doc-index-46.html"
->.</A
-></TD
-><TD
-><A HREF="doc-index-47.html"
->/</A
-></TD
-><TD
-><A HREF="doc-index-60.html"
->&lt;</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/haddock-util.js b/doc/hdoc_filter/haddock-util.js
deleted file mode 100644
--- a/doc/hdoc_filter/haddock-util.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Haddock JavaScript utilities
-function toggle(button,id)
-{
-   var n = document.getElementById(id).style;
-   if (n.display == "none")
-   {
-	button.src = "minus.gif";
-	n.display = "block";
-   }
-   else
-   {
-	button.src = "plus.gif";
-	n.display = "none";
-   }
-}
diff --git a/doc/hdoc_filter/haddock.css b/doc/hdoc_filter/haddock.css
deleted file mode 100644
--- a/doc/hdoc_filter/haddock.css
+++ /dev/null
@@ -1,260 +0,0 @@
-/* -------- Global things --------- */
-
-BODY { 
-  background-color: #ffffff;
-  color: #000000;
-  font-family: sans-serif;
-  } 
-
-A:link    { color: #0000e0; text-decoration: none }
-A:visited { color: #0000a0; text-decoration: none }
-A:hover   { background-color: #e0e0ff; text-decoration: none }
-
-TABLE.vanilla {
-  width: 100%;
-  border-width: 0px;
-  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */
-}
-
-TABLE.vanilla2 {
-  border-width: 0px;
-}
-
-/* <TT> font is a little too small in MSIE */
-TT  { font-size: 100%; }
-PRE { font-size: 100%; }
-
-LI P { margin: 0pt } 
-
-TD {
-  border-width: 0px;
-}
-
-TABLE.narrow {
-  border-width: 0px;
-}
-
-TD.s8  {  height: 8px;  }
-TD.s15 {  height: 15px; }
-
-SPAN.keyword { text-decoration: underline; }
-
-/* Resize the buttom image to match the text size */
-IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }
-
-/* --------- Contents page ---------- */
-
-DIV.node {
-  padding-left: 3em;
-}
-
-DIV.cnode {
-  padding-left: 1.75em;
-}
-
-SPAN.pkg {
-  position: absolute;
-  left: 50em;
-}
-
-/* --------- Documentation elements ---------- */
-
-TD.children {
-  padding-left: 25px;
-  }
-
-TD.synopsis {
-  padding: 2px;
-  background-color: #f0f0f0;
-  font-family: monospace
- }
-
-TD.decl { 
-  padding: 2px;
-  background-color: #f0f0f0; 
-  font-family: monospace;
-  vertical-align: top;
-  }
-
-TD.topdecl {
-  padding: 2px;
-  background-color: #f0f0f0;
-  font-family: monospace;
-  vertical-align: top;
-}
-
-TABLE.declbar {
-  border-spacing: 0px;
- }
-
-TD.declname {
-  width: 100%;
- }
-
-TD.declbut {
-  padding-left: 5px;
-  padding-right: 5px;
-  border-left-width: 1px;
-  border-left-color: #000099;
-  border-left-style: solid;
-  white-space: nowrap;
-  font-size: small;
- }
-
-/* 
-  arg is just like decl, except that wrapping is not allowed.  It is
-  used for function and constructor arguments which have a text box
-  to the right, where if wrapping is allowed the text box squashes up
-  the declaration by wrapping it.
-*/
-TD.arg { 
-  padding: 2px;
-  background-color: #f0f0f0; 
-  font-family: monospace;
-  vertical-align: top;
-  white-space: nowrap;
-  }
-
-TD.recfield { padding-left: 20px }
-
-TD.doc  { 
-  padding-top: 2px;
-  padding-left: 10px;
-  }
-
-TD.ndoc  { 
-  padding: 2px;
-  }
-
-TD.rdoc  { 
-  padding: 2px;
-  padding-left: 10px;
-  width: 100%;
-  }
-
-TD.body  { 
-  padding-left: 10px
-  }
-
-TD.pkg {
-  width: 100%;
-  padding-left: 10px
-}
-
-TD.indexentry {
-  vertical-align: top;
-  padding-right: 10px
-  }
-
-TD.indexannot {
-  vertical-align: top;
-  padding-left: 20px;
-  white-space: nowrap
-  }
-
-TD.indexlinks {
-  width: 100%
-  }
-
-/* ------- Section Headings ------- */
-
-TD.section1 {
-  padding-top: 15px;
-  font-weight: bold;
-  font-size: 150%
-  }
-
-TD.section2 {
-  padding-top: 10px;
-  font-weight: bold;
-  font-size: 130%
-  }
-
-TD.section3 {
-  padding-top: 5px;
-  font-weight: bold;
-  font-size: 110%
-  }
-
-TD.section4 {
-  font-weight: bold;
-  font-size: 100%
-  }
-
-/* -------------- The title bar at the top of the page */
-
-TD.infohead {
-  color: #ffffff;
-  font-weight: bold;
-  padding-right: 10px;
-  text-align: left;
-}
-
-TD.infoval {
-  color: #ffffff;
-  padding-right: 10px;
-  text-align: left;
-}
-
-TD.topbar {
-  background-color: #000099;
-  padding: 5px;
-}
-
-TD.title {
-  color: #ffffff;
-  padding-left: 10px;
-  width: 100%
-  }
-
-TD.topbut {
-  padding-left: 5px;
-  padding-right: 5px;
-  border-left-width: 1px;
-  border-left-color: #ffffff;
-  border-left-style: solid;
-  white-space: nowrap;
-  }
-
-TD.topbut A:link {
-  color: #ffffff
-  }
-
-TD.topbut A:visited {
-  color: #ffff00
-  }
-
-TD.topbut A:hover {
-  background-color: #6060ff;
-  }
-
-TD.topbut:hover {
-  background-color: #6060ff
-  }
-
-TD.modulebar { 
-  background-color: #0077dd;
-  padding: 5px;
-  border-top-width: 1px;
-  border-top-color: #ffffff;
-  border-top-style: solid;
-  }
-
-/* --------- The page footer --------- */
-
-TD.botbar {
-  background-color: #000099;
-  color: #ffffff;
-  padding: 5px
-  }
-TD.botbar A:link {
-  color: #ffffff;
-  text-decoration: underline
-  }
-TD.botbar A:visited {
-  color: #ffff00
-  }
-TD.botbar A:hover {
-  background-color: #6060ff
-  }
-
diff --git a/doc/hdoc_filter/haskell_icon.gif b/doc/hdoc_filter/haskell_icon.gif
deleted file mode 100644
Binary files a/doc/hdoc_filter/haskell_icon.gif and /dev/null differ
diff --git a/doc/hdoc_filter/index.html b/doc/hdoc_filter/index.html
deleted file mode 100644
--- a/doc/hdoc_filter/index.html
+++ /dev/null
@@ -1,959 +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
->Haskell Xml Toolbox 7.5: The Filter API</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.5: The Filter API</TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Modules</TD
-></TR
-><TR
-><TD
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"
->Control</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"
->Monad</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Monad-MonadStateIO.html"
->Control.Monad.MonadStateIO</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"
->Strategies</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Control-Strategies-DeepSeq.html"
->Control.Strategies.DeepSeq</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"
->Data</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 48em"
-><A HREF="Data-AssocList.html"
->Data.AssocList</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"
->Char</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Data-Char-UTF8.html"
->Data.Char.UTF8</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 48em"
-><A HREF="Data-NavTree.html"
->Data.NavTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"
->Tree</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 46em"
-><A HREF="Data-Tree-Class.html"
->Data.Tree.Class</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"
->NTree</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" 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
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"
->System</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 48em"
-><A HREF="System-PipeOpen.html"
->System.PipeOpen</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"
->Text</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"
-><TR
-><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"
->XML</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"
-><TR
-><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"
->HXT</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"
-><A HREF="Text-XML-HXT-DOM.html"
->Text.XML.HXT.DOM</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-EditFilters.html"
->Text.XML.HXT.DOM.EditFilters</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"
->Text.XML.HXT.DOM.FormatXmlTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html"
->Text.XML.HXT.DOM.IsoLatinTables</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-Namespace.html"
->Text.XML.HXT.DOM.Namespace</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"
->Text.XML.HXT.DOM.NamespaceFilter</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></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
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html"
->Text.XML.HXT.DOM.TypeDefs</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html"
->Text.XML.HXT.DOM.UTF8Decoding</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-Unicode.html"
->Text.XML.HXT.DOM.Unicode</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-Util.html"
->Text.XML.HXT.DOM.Util</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html"
->Text.XML.HXT.DOM.XmlKeywords</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><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-XmlState.html"
->Text.XML.HXT.DOM.XmlState</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTree.html"
->Text.XML.HXT.DOM.XmlTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"
->Text.XML.HXT.DOM.XmlTreeFilter</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"
->Text.XML.HXT.DOM.XmlTreeFunctions</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
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"
-><A HREF="Text-XML-HXT-Parser.html"
->Text.XML.HXT.Parser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-DTDProcessing.html"
->Text.XML.HXT.Parser.DTDProcessing</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-DefaultURI.html"
->Text.XML.HXT.Parser.DefaultURI</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html"
->Text.XML.HXT.Parser.HtmlParsec</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-HtmlParser.html"
->Text.XML.HXT.Parser.HtmlParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-MainFunctions.html"
->Text.XML.HXT.Parser.MainFunctions</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html"
->Text.XML.HXT.Parser.ProtocolHandler</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html"
->Text.XML.HXT.Parser.ProtocolHandlerFile</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html"
->Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html"
->Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html"
->Text.XML.HXT.Parser.ProtocolHandlerUtil</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-TagSoup.html"
->Text.XML.HXT.Parser.TagSoup</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html"
->Text.XML.HXT.Parser.XhtmlEntities</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlCharParser.html"
->Text.XML.HXT.Parser.XmlCharParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html"
->Text.XML.HXT.Parser.XmlDTDParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html"
->Text.XML.HXT.Parser.XmlDTDTokenParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlEntities.html"
->Text.XML.HXT.Parser.XmlEntities</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlInput.html"
->Text.XML.HXT.Parser.XmlInput</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlOutput.html"
->Text.XML.HXT.Parser.XmlOutput</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlParsec.html"
->Text.XML.HXT.Parser.XmlParsec</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlParser.html"
->Text.XML.HXT.Parser.XmlParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"
->Text.XML.HXT.Parser.XmlTokenParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"
->Validator</TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html"
->Text.XML.HXT.Validator.AttributeValueValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-DTDValidation.html"
->Text.XML.HXT.Validator.DTDValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-DocTransformation.html"
->Text.XML.HXT.Validator.DocTransformation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-DocValidation.html"
->Text.XML.HXT.Validator.DocValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-IdValidation.html"
->Text.XML.HXT.Validator.IdValidation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-RE.html"
->Text.XML.HXT.Validator.RE</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-Validation.html"
->Text.XML.HXT.Validator.Validation</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-ValidationFilter.html"
->Text.XML.HXT.Validator.ValidationFilter</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Validator-XmlRE.html"
->Text.XML.HXT.Validator.XmlRE</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:14')" ALT="show/hide"
-><A HREF="Text-XML-HXT-XPath.html"
->Text.XML.HXT.XPath</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:14" STYLE="display:block;"
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-NavTree.html"
->Text.XML.HXT.XPath.NavTree</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html"
->Text.XML.HXT.XPath.XPathArithmetic</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html"
->Text.XML.HXT.XPath.XPathDataTypes</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathEval.html"
->Text.XML.HXT.XPath.XPathEval</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathFct.html"
->Text.XML.HXT.XPath.XPathFct</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathKeywords.html"
->Text.XML.HXT.XPath.XPathKeywords</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathParser.html"
->Text.XML.HXT.XPath.XPathParser</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html"
->Text.XML.HXT.XPath.XPathToNodeSet</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-><TR
-><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-XPath-XPathToString.html"
->Text.XML.HXT.XPath.XPathToString</A
-></TD
-><TD
-></TD
-><TD
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_filter/minus.gif b/doc/hdoc_filter/minus.gif
deleted file mode 100644
Binary files a/doc/hdoc_filter/minus.gif and /dev/null differ
diff --git a/doc/hdoc_filter/plus.gif b/doc/hdoc_filter/plus.gif
deleted file mode 100644
Binary files a/doc/hdoc_filter/plus.gif and /dev/null differ
diff --git a/doc/index.html b/doc/index.html
--- a/doc/index.html
+++ b/doc/index.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
   <head>
-    <title>Haskell XML Toolbox 7.5</title>
+    <title>Haskell XML Toolbox 8.0.0</title>
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   </head>
 
   <body style="background-color: #ffffff;">
-    <h1>Haskell XML Toolbox 7.5</h1>
+    <h1>Haskell XML Toolbox 8.0.0</h1>
 
     <h3>Contents</h3>
     <ul>
@@ -19,6 +19,7 @@
       <li><a href="#change">Change history</a></li>
       <li><a href="#limit">Known problems and limitations</a></li>
       <li><a href="#port">Portability</a></li>
+      <li><a href="#filter">HXT with Filters</a>
       <li><a href="#rel">Related Work</a></li>
       <li><a href="#feed">Feedback</a></li>
     </ul>
@@ -31,17 +32,26 @@
       The <i>Haskell XML Toolbox</i> is a collection of tools for
       processing XML with
       <a href="http://www.haskell.org">Haskell</a>.
-      It is itself purely written in Haskell.
+      It is purely written in Haskell.
       The <i>Haskell XML Toolbox</i> is a project of the
       <a href="http://www.fh-wedel.de">University of Applied Sciences Wedel</a>,
-      initiated by
-      <a href="http://www.fh-wedel.de/~si/">Uwe Schmidt</a>.
-	 </p>
+    </p>
 
-	 <p>
-	 The core component of the <i>Haskell XML Toolbox</i>
-	 is a validating XML-Parser that supports almost fully the
-	 <a href="http://www.w3.org/TR/REC-xml">Extensible Markup Language (XML) 1.0 (Second Edition)</a>.
+    <p>
+      The main design goal of the <i>Haskell XML Toolbox</i>
+      is the support of various XML standards including
+      <a href="http://www.w3.org/TR/REC-xml">Extensible Markup
+	Language (XML) 1.0 (Second Edition)</a> with DTD
+      processing and Validation,
+      <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML
+	1.0 (Second Edition)</a>,
+      <a href="http://www.w3.org/TR/xpath">XML Path Language
+	(XPath)</a>,
+      <a href="http://www.w3.org/TR/xslt">XSL Transformations
+	(XSLT)</a>,
+      <a
+	href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX NG Specification</a>,
+      as well as HTML/XHTML processing.
     </p>
 
     <a name="descr"></a>
@@ -50,21 +60,25 @@
       The <i>Haskell XML Toolbox</i> bases on the ideas of
       <a href="http://www.cs.york.ac.uk/fp/HaXml/">HaXml</a> and
       <a href="http://www.flightlab.com/~joe/hxml/">HXML</a>,
-      but introduces a more general approach for processing XML with
+      but introduces a more general and flexible approach for processing XML with
       Haskell.
       The <i>Haskell XML Toolbox</i> uses a generic data model for
       representing XML documents,
       including the DTD subset and the document subset, in Haskell.
       This data model makes it possible to use filter functions
       as a uniform design of XML processing applications.
-      The whole XML parser including the validator parts
-      was implemented using this design.
-      Libraries with filters and combinators are provided for processing the generic data model.
+      The processing filters are implemented as
+      <a href="http://www.haskell.org/haskellwiki/Arrow">arrows</a>.
+      This is more flexible than the filter approach from HXML and
+      HaXml,
+      but all filter applications can easily be transformed into
+      arrows.
     </p>
 
     <p>
-      An new more flexible and typesaver API based on arrows instead
-      of filters is included since version 5.2.
+      Since version 5.2 HXT works with arrows instead of filters.
+      The filter part has been separated from this library and is
+      available in an extra package (see <a href="#filter">HXT with Filters</a>)
       There is a <em>cookbook</em> for using this arrow interface
       to build (nontrivial) applications. Manuel Ohlendorf
       has developed examples for processing RDF and has documented the
@@ -96,8 +110,16 @@
     <h3>Documentation</h3>
 
     <p>
+      The <em><a href="./hdoc/index.html">HXT API Documentation</a></em> generated
+      with <a href="http://www.haskell.org/haddock/">Haddock</a>.
+    </p>
+
+    <p>
       A (somewhat) gentle introduction to HXT is avalable in the
-      <a href="http://www.haskell.org/haskellwiki/HXT">Haskell Wiki</a>.
+      <a href="http://www.haskell.org/haskellwiki/HXT">Haskell
+	Wiki</a>.
+      There's also a page about
+      <a href="http://www.haskell.org/haskellwiki/HXT/Conversion_of_Haskell_data_from/to_XML">HXT: Conversion of Haskell data from/to XML</a> with picklers.
     </p>
 
     <p>
@@ -148,32 +170,33 @@
 	Toolbox</em> (<a href="./relaxng/thesis.pdf">PDF-document</a>).
     </p>
 
-    <p>
-      The <em><a href="./hdoc_filter/index.html">Filter API Documentation</a></em> generated
-      with <a href="http://www.haskell.org/haddock/">Haddock</a>.
-      For the new arrow interface there is a more user friendly <em><a href="./hdoc_arrow/index.html">Arrow API Documentation</a></em>
-      including only the basic types and the arrow descriptions.
-    </p>
-
     <a name="req"></a>
     <h3>Requirements</h3>
     <ul>
-      <li>ghc-6.8 or ghc-6.6 with cabal 1.2, HXT 7.5 works with
+      <li>ghc-6.8 or ghc-6.6 with cabal 1.2, HXT 8.0.0 works with
 	ghc-6.6 and cabal &lt; 1.2</li>
-      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HTTP">HTTP package</a></li>
-      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/tagsoup">tagsoup package</a></li>
-      <li>Cabal of GNU make</li>
+      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HTTP">HTTP package >= 3001.0.4</a></li>
+      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/tagsoup">tagsoup package >= 0.6</a></li>
     </ul>
+    <p>
+      It is recommended to install the versions available from
+      <a href="http://hackage.haskell.org/packages/hackage.html">Hackage</a>.
+    </p>
 
     <a name="down"></a>
     <h3>Downloads</h3>
     <p>
-      <a href="hxt-7.5.tar.gz">Haskell XML Toolbox 7.5</a>,
-      released 2008-03-01:
+      <a href="hxt-8.0.0.tar.gz">Haskell XML Toolbox 8.0.0</a>,
+      released 2008-04-24:
     </p>
     <ul>
       <li>This version works with ghc 6.8 and ghc 6.6 with cabal
 	1.2. For ghc 6.6 and cabal < 1.2 please use HXT 7.3.</li>
+      <li>This version does not contain the filter part of hxt any
+	more.
+	That functionality is separated into a package <a
+	  href="#filter">hxt-filter</a>.
+      </li>
       <li>Includes sources for building a ghc package
 	<code>hxt</code> with Cabal or make.
 	This package contains a Haskell DOM, an XML parser, a HTML parser based on parsec,
@@ -187,26 +210,18 @@
 	or with an external program <code>curl</code>
 	The HTTP module must be installed before installing the
 	toolbox.
-	In the past the installation procedure for HTTP was a bit clumsy because of further
-	dependencies on <a href="http://www.haskell.org/crypto/">The Haskell Cryptographic Library</a>
-	and <a href="http://www.n-heptane.com/nhlab/">NewBinary package</a>. The latest <a href="http://www.haskell.org/http/">HTTP module</a>
-	from 2006-07-07 has removed these dependencies and consists only of one HTTP module (not HTTP and Browser).
-	So there has only one package HTTP to be installed before installing HXT.
       </li>
       <li>Includes various examples, e.g. in example dir
 	<tt>examples/arrows/hparser/</tt>
 	a validating parser, which can be used as a starting point for
 	a HXT command line application.
       </li>
-      <li>Provides a HUnit test <code>HUnitTest</code> for testing
-	and demonstration of the available set of filters.
-      </li>
       <li>Includes an <a href="http://www.haskell.org/arrows/">arrow interface</a> with type classes and
 	overloading for a more flexible use of the filter technique.
       </li>
     </ul>
     <p>
-      A darcs repository is available under <a href="http://darcs.fh-wedel.de/hxt">http://darcs.fh-wedel.de/hxt</a>.
+      A darcs repository is available under <a href="http://darcs.fh-wedel.de/hxt/">http://darcs.fh-wedel.de/hxt</a>.
     </p>
     <a name="install"></a>
     <h3>Installation</h3>
@@ -214,7 +229,7 @@
     <p>
       Before installing this version, install the <a href="http://www.haskell.org/">Haskell HTTP module</a>.
       For a quick install with Cabal execute the following commands in
-      <tt>.../HXT-7.5</tt>
+      <tt>.../HXT-8.0.0</tt>
     </p>
     <pre>
     make setup
@@ -241,6 +256,23 @@
     <a name="change"></a>
     <h3>Change History</h3>
     <ul>
+      <li>In <a href="hxt-8.0.0.tar.gz">Version 8.0.0</a>
+	<ul>
+	  <li>
+	    Old filter interface separated from the hxt package and moved
+	    to an extra package <a href="#filter">hxt-filter</a>.
+	  </li>
+	  <li>
+	    Version numbers added in hxt.cabal for required package versions.
+	  </li>
+	  <li>
+	    DTD validation and XPath modules refactored to work with arrows instead of
+	    filters.
+	    This is done for separating the old hxt filter library
+	    from the actively developed and maintained arrow part.
+	  </li>
+	</ul>
+      </li>
       <li>In <a href="hxt-7.5.tar.gz">Version 7.5</a>
 	<ul>
 	  <li>
@@ -419,6 +451,21 @@
       </li>
     </ul>
 
+    <a name="filter"></a>
+    <h3>HXT with Filters</h3>
+    <p>
+      For older applications using the filter functionality,
+      there is an extra package <a href="hxt-filter-8.0.0.tar.gz">hxt-filter</a>.
+      This package must be installed on top of hxt.
+      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.0.0.tar.gz">hxt-filter-8.0.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://darcs.fh-wedel.de/hxt-filter/">http://darcs.fh-wedel.de/hxt-filter</a>.
+    </p>
+
     <a name="rel"></a>
     <h3>Related work</h3>
 
@@ -471,8 +518,8 @@
 	    </a>
 	  </td>
 	</tr>
-	<tr><td><i>Last modified: 2008-03-01</i></td><td>&nbsp;</td></tr>
-</table>
+	<tr><td><i>Last modified: 2008-04-24</i></td><td>&nbsp;</td></tr>
+    </table>
 
   </body>
 </html>
diff --git a/examples/Makefile b/examples/Makefile
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -3,13 +3,13 @@
 # Example Applications
 #
 
+include ../Version.mk
+
 HXT_HOME	= ..
-VERSION		= 7.5
-LASTVERSION	= 7.4
 
-EXAMPLES	= mini hparser hxpath hfilter hunit hsvg dtd2haskell arrows
-MORE_SAMPLES	= w3ctest blutgraetsche photoalbum
-DIST		= $(HXT_HOME)/dist
+EXAMPLES	= arrows
+MORE_SAMPLES	= 
+DIST		= ../$(DIST_NAME)
 DIST_DIR	= $(DIST)/examples
 
 all		:
@@ -19,7 +19,7 @@
 		fi 
 
 alllocal		:
-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i PKGFLAGS="-ignore-package hxt-$(LASTVERSION) -package-conf `pwd`/$(HXT_HOME)/lib/hxt/package.conf -package hxt" all ;)
+		$(foreach i,$(EXAMPLES),$(MAKE) -C $i PKGFLAGS="-package-conf `pwd`/$(HXT_HOME)/lib/hxt/package.conf -package hxt-$(VERSION)" all ;)
 alldist		:
 		$(foreach i,$(EXAMPLES),$(MAKE) -C $i all ;)
 
@@ -28,7 +28,7 @@
 
 dist		:
 		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		for i in $(EXAMPLES) ; do $(MAKE) -C $$i dist DIST=../$(DIST_DIR) ; done
+		$(foreach i,$(EXAMPLES),$(MAKE) -C $i dist DIST=../$(DIST_DIR);)
 		[ -d $(DIST_DIR)/xhtml ] || mkdir -p $(DIST_DIR)/xhtml
 		cp xhtml/xhtml*.dtd xhtml/xhtml*.ent xhtml/xhtml*.xml $(DIST_DIR)/xhtml
 		cp Makefile $(DIST_DIR)
@@ -36,13 +36,10 @@
 clean		:
 		$(foreach i,$(EXAMPLES),$(MAKE) -C $i $@ ;)
 
-RunTestCases	:
-		$(MAKE) -C w3ctest $@
-
 # under construction
 
 hxslt/runXslt	: hxslt/runXslt.hs
 		$(GHC) --make -o $@ $<
 
-.PHONY		: all clean test dist RunTestCases
+.PHONY		: all alllocal alldist test dist clean
 
diff --git a/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Baseball. b/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Baseball.
new file mode 100644
--- /dev/null
+++ b/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Baseball.
@@ -0,0 +1,313 @@
+{- |
+  Example for usage of pickler functions
+  to de-/serialise from/to XML
+
+  Example data is taken from haskell wiki
+  http://www.haskell.org/haskellwiki/HXT/Practical/Simple2
+-}
+
+module Main
+where
+
+import           Data.Map (Map, fromList, toList)
+import qualified Data.Map as M
+
+import Text.XML.HXT.Arrow
+
+-- Example data drawn from:
+-- http://www.ibiblio.org/xml/books/bible/examples/05/5-1.xml
+
+-- ------------------------------------------------------------
+-- the data modell
+
+data Season = Season
+    { sYear    :: Int
+    , sLeagues :: Leagues
+    }
+	      deriving (Show, Eq)
+
+type Leagues   = Map String Divisions
+
+type Divisions = Map String [Team]
+
+data Team = Team
+    { teamName :: String
+    , city     :: String
+    , players  :: [Player]
+    }
+	    deriving (Show, Eq)
+	     
+data Player = Player
+    { firstName :: String
+    , lastName  :: String
+    , position  :: String
+    , atBats    :: Maybe Int
+    , hits      :: Maybe Int
+    , era       :: Maybe Float
+    }
+	      deriving (Show, Eq)
+
+-- ------------------------------------------------------------
+-- the pickler instance declarations
+-- in this case just for uniform naming
+
+instance XmlPickler Season where
+    xpickle = xpSeason
+
+instance XmlPickler Team where
+    xpickle = xpTeam
+
+instance XmlPickler Player where
+    xpickle = xpPlayer
+
+-- ------------------------------------------------------------
+-- for every data type there is a pickler
+
+-- the XML root element
+
+xpSeason	:: PU Season
+xpSeason
+    = xpElem "SEASON" $
+      xpWrap ( uncurry Season
+	     , \ s -> (sYear s, sLeagues s)) $
+      xpPair (xpAttr "YEAR" xpickle) xpLeagues
+
+xpLeagues	:: PU Leagues
+xpLeagues
+    = xpWrap ( fromList
+	     , toList ) $
+      xpList $
+      xpElem "LEAGUE" $
+      xpPair (xpAttr "NAME" xpText) xpDivisions
+
+xpDivisions	:: PU Divisions
+xpDivisions
+    = xpWrap ( fromList
+	     , toList
+	     ) $
+      xpList $
+      xpElem "DIVISION" $
+      xpPair (xpAttr "NAME" xpText) xpickle
+
+xpTeam	:: PU Team
+xpTeam
+    = xpElem "TEAM" $
+      xpWrap ( uncurry3 Team
+	     , \ t -> (teamName t, city t, players t)) $
+      xpTriple (xpAttr "NAME" xpText) (xpAttr "CITY" xpText) (xpList xpickle)
+
+xpPlayer	:: PU Player
+xpPlayer
+    = xpElem "PLAYER" $
+      xpWrap ( \ ((f,l,p),(a,h,e)) -> Player f l p a h e
+	     , \ t -> ((firstName t, lastName t, position t),(atBats t, hits t, era t))) $
+      xpPair (xpTriple (xpAttr "GIVEN_NAME" xpText)
+	               (xpAttr "SURNAME"    xpText)
+	               (xpAttr "POSITION"   xpText))
+             (xpTriple (xpOption (xpAttr "AT_BATS" xpickle))
+	               (xpOption (xpAttr "HITS"    xpickle))
+	               (xpOption (xpAttr "ERA"     xpPrim )))
+
+
+-- ------------------------------------------------------------
+
+-- a simple pickle/unpickle application
+
+main	:: IO ()
+main
+    = do
+      runX ( xunpickleDocument xpSeason [ (a_validate,v_0)
+					, (a_trace, v_1)
+					, (a_remove_whitespace,v_1)
+					, (a_preserve_comment, v_0)
+					] "simple2.xml"
+	     >>>
+	     processSeason
+	     >>>
+	     xpickleDocument xpSeason [ (a_indent, v_1)
+				      ] "new-simple2.xml"
+	   )
+      return ()
+
+-- the dummy for processing the unpickled data
+
+processSeason	:: IOSArrow Season Season
+processSeason
+    = arrIO ( \ x -> do {print x ; return x})
+
+-- ------------------------------------------------------------
+
+-- the internal data of "simple2.xml"
+
+season1998	:: Season
+season1998
+    = Season
+      { sYear = 1998
+      , sLeagues = fromList
+	[ ( "American League"
+	  , fromList
+	    [ ( "Central"
+	      , [ Team { teamName = "White Sox"
+		       , city = "Chicago"
+		       , players = []}
+		, Team { teamName = "Royals"
+		       , city = "Kansas City"
+		       , players = []}
+		, Team { teamName = "Tigers"
+		       , city = "Detroit"
+		       , players = []}
+		, Team { teamName = "Indians"
+		       , city = "Cleveland"
+		       , players = []}
+		, Team { teamName = "Twins"
+		       , city = "Minnesota"
+		       , players = []}
+		])
+	    , ( "East"
+	      , [ Team { teamName = "Orioles"
+		       , city = "Baltimore"
+		       , players = []}
+		, Team { teamName = "Red Sox"
+		       , city = "Boston"
+		       , players = []}
+		, Team { teamName = "Yankees"
+		       , city = "New York"
+		       , players = []}
+		, Team { teamName = "Devil Rays"
+		       , city = "Tampa Bay"
+		       , players = []}
+		, Team { teamName = "Blue Jays"
+		       , city = "Toronto"
+		       , players = []}
+		])
+	    , ( "West"
+	      , [ Team { teamName = "Angels"
+		       , city = "Anaheim"
+		       , players = []}
+		, Team { teamName = "Athletics"
+		       , city = "Oakland"
+		       , players = []}
+		, Team { teamName = "Mariners"
+		       , city = "Seattle"
+		       , players = []}
+		, Team { teamName = "Rangers"
+		       , city = "Texas"
+		       , players = []}
+		])
+	    ])
+	, ( "National League"
+	  , fromList
+	    [ ( "Central"
+	      , [ Team { teamName = "Cubs"
+		       , city = "Chicago"
+		       , players = []}
+		, Team { teamName = "Reds"
+		       , city = "Cincinnati"
+		       , players = []}
+		, Team { teamName = "Astros"
+		       , city = "Houston"
+		       , players = []}
+		, Team { teamName = "Brewers"
+		       , city = "Milwaukee"
+		       , players = []}
+		, Team { teamName = "Pirates"
+		       , city = "Pittsburgh"
+		       , players = []}
+		, Team { teamName = "Cardinals"
+		       , city = "St. Louis"
+		       , players = []}
+		])
+	    , ( "East"
+	      , [ Team { teamName = "Braves"
+		       , city = "Atlanta"
+		       , players =
+			 [ Player { firstName = "Marty"
+				  , lastName = "Malloy"
+				  , position = "Second Base"
+				  , atBats = Just 28
+				  , hits = Just 5
+				  , era = Nothing}
+			 , Player { firstName = "Ozzie"
+				  , lastName = "Guillen"
+				  , position = "Shortstop"
+				  , atBats = Just 264
+				  , hits = Just 73
+				  , era = Nothing}
+			 , Player { firstName = "Danny"
+				  , lastName = "Bautista"
+				  , position = "Outfield"
+				  , atBats = Just 144
+				  , hits = Just 36
+				  , era = Nothing}
+			 , Player { firstName = "Gerald"
+				  , lastName = "Williams"
+				  , position = "Outfield"
+				  , atBats = Just 266
+				  , hits = Just 81
+				  , era = Nothing}
+			 , Player { firstName = "Tom"
+				  , lastName = "Glavine"
+				  , position = "Starting Pitcher"
+				  , atBats = Nothing
+				  , hits = Nothing
+				  , era = Just 2.47}
+			 , Player { firstName = "Javier"
+				  , lastName = "Lopez"
+				  , position = "Catcher"
+				  , atBats = Just 489
+				  , hits = Just 139
+				  , era = Nothing}
+			 , Player { firstName = "Ryan"
+				  , lastName = "Klesko"
+				  , position = "Outfield"
+				  , atBats = Just 427
+				  , hits = Just 117
+				  , era = Nothing}
+			 , Player { firstName = "Andres"
+				  , lastName = "Galarraga"
+				  , position = "First Base"
+				  , atBats = Just 555
+				  , hits = Just 169
+				  , era = Nothing}
+			 , Player { firstName = "Wes"
+				  , lastName = "Helms"
+				  , position = "Third Base"
+				  , atBats = Just 13
+				  , hits = Just 4
+				  , era = Nothing}
+			 ]}
+		, Team { teamName = "Marlins"
+		       , city = "Florida"
+		       , players = []}
+		, Team { teamName = "Expos"
+		       , city = "Montreal"
+		       , players = []}
+		, Team { teamName = "Mets"
+		       , city = "New York"
+		       , players = []}
+		, Team { teamName = "Phillies"
+		       , city = "Philadelphia"
+		       , players = []}
+		])
+	    , ( "West"
+	      , [ Team { teamName = "Diamondbacks"
+		       , city = "Arizona"
+		       , players = []}
+		, Team { teamName = "Rockies"
+		       , city = "Colorado"
+		       , players = []}
+		, Team { teamName = "Dodgers"
+		       , city = "Los Angeles"
+		       , players = []}
+		, Team { teamName = "Padres"
+		       , city = "San Diego"
+		       , players = []}
+		, Team { teamName = "Giants"
+		       , city = "San Francisco"
+		       , players = []}
+		])
+	    ])
+	]
+      }
+
+-- ------------------------------------------------------------
diff --git a/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Football. b/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Football.
new file mode 100644
--- /dev/null
+++ b/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Football.
@@ -0,0 +1,313 @@
+{- |
+  Example for usage of pickler functions
+  to de-/serialise from/to XML
+
+  Example data is taken from haskell wiki
+  http://www.haskell.org/haskellwiki/HXT/Practical/Simple2
+-}
+
+module Main
+where
+
+import           Data.Map (Map, fromList, toList)
+import qualified Data.Map as M
+
+import Text.XML.HXT.Arrow
+
+-- Example data drawn from:
+-- http://www.ibiblio.org/xml/books/bible/examples/05/5-1.xml
+
+-- ------------------------------------------------------------
+-- the data modell
+
+data Season = Season
+    { sYear    :: Int
+    , sLeagues :: Leagues
+    }
+	      deriving (Show, Eq)
+
+type Leagues   = Map String Divisions
+
+type Divisions = Map String [Team]
+
+data Team = Team
+    { teamName :: String
+    , city     :: String
+    , players  :: [Player]
+    }
+	    deriving (Show, Eq)
+	     
+data Player = Player
+    { firstName :: String
+    , lastName  :: String
+    , position  :: String
+    , atBats    :: Maybe Int
+    , hits      :: Maybe Int
+    , era       :: Maybe Float
+    }
+	      deriving (Show, Eq)
+
+-- ------------------------------------------------------------
+-- the pickler instance declarations
+-- in this case just for uniform naming
+
+instance XmlPickler Season where
+    xpickle = xpSeason
+
+instance XmlPickler Team where
+    xpickle = xpTeam
+
+instance XmlPickler Player where
+    xpickle = xpPlayer
+
+-- ------------------------------------------------------------
+-- for every data type there is a pickler
+
+-- the XML root element
+
+xpSeason	:: PU Season
+xpSeason
+    = xpElem "SEASON" $
+      xpWrap ( uncurry Season
+	     , \ s -> (sYear s, sLeagues s)) $
+      xpPair (xpAttr "YEAR" xpickle) xpLeagues
+
+xpLeagues	:: PU Leagues
+xpLeagues
+    = xpWrap ( fromList
+	     , toList ) $
+      xpList $
+      xpElem "LEAGUE" $
+      xpPair (xpAttr "NAME" xpText) xpDivisions
+
+xpDivisions	:: PU Divisions
+xpDivisions
+    = xpWrap ( fromList
+	     , toList
+	     ) $
+      xpList $
+      xpElem "DIVISION" $
+      xpPair (xpAttr "NAME" xpText) xpickle
+
+xpTeam	:: PU Team
+xpTeam
+    = xpElem "TEAM" $
+      xpWrap ( uncurry3 Team
+	     , \ t -> (teamName t, city t, players t)) $
+      xpTriple (xpAttr "NAME" xpText) (xpAttr "CITY" xpText) (xpList xpickle)
+
+xpPlayer	:: PU Player
+xpPlayer
+    = xpElem "PLAYER" $
+      xpWrap ( \ ((f,l,p),(a,h,e)) -> Player f l p a h e
+	     , \ t -> ((firstName t, lastName t, position t),(atBats t, hits t, era t))) $
+      xpPair (xpTriple (xpAttr "GIVEN_NAME" xpText)
+	               (xpAttr "SURNAME"    xpText)
+	               (xpAttr "POSITION"   xpText))
+             (xpTriple (xpOption (xpAttr "AT_BATS" xpickle))
+	               (xpOption (xpAttr "HITS"    xpickle))
+	               (xpOption (xpAttr "ERA"     xpPrim )))
+
+
+-- ------------------------------------------------------------
+
+-- a simple pickle/unpickle application
+
+main	:: IO ()
+main
+    = do
+      runX ( xunpickleDocument xpSeason [ (a_validate,v_0)
+					, (a_trace, v_1)
+					, (a_remove_whitespace,v_1)
+					, (a_preserve_comment, v_0)
+					] "simple2.xml"
+	     >>>
+	     processSeason
+	     >>>
+	     xpickleDocument xpSeason [ (a_indent, v_1)
+				      ] "new-simple2.xml"
+	   )
+      return ()
+
+-- the dummy for processing the unpickled data
+
+processSeason	:: IOSArrow Season Season
+processSeason
+    = arrIO ( \ x -> do {print x ; return x})
+
+-- ------------------------------------------------------------
+
+-- the internal data of "simple2.xml"
+
+season1998	:: Season
+season1998
+    = Season
+      { sYear = 1998
+      , sLeagues = fromList
+	[ ( "American League"
+	  , fromList
+	    [ ( "Central"
+	      , [ Team { teamName = "White Sox"
+		       , city = "Chicago"
+		       , players = []}
+		, Team { teamName = "Royals"
+		       , city = "Kansas City"
+		       , players = []}
+		, Team { teamName = "Tigers"
+		       , city = "Detroit"
+		       , players = []}
+		, Team { teamName = "Indians"
+		       , city = "Cleveland"
+		       , players = []}
+		, Team { teamName = "Twins"
+		       , city = "Minnesota"
+		       , players = []}
+		])
+	    , ( "East"
+	      , [ Team { teamName = "Orioles"
+		       , city = "Baltimore"
+		       , players = []}
+		, Team { teamName = "Red Sox"
+		       , city = "Boston"
+		       , players = []}
+		, Team { teamName = "Yankees"
+		       , city = "New York"
+		       , players = []}
+		, Team { teamName = "Devil Rays"
+		       , city = "Tampa Bay"
+		       , players = []}
+		, Team { teamName = "Blue Jays"
+		       , city = "Toronto"
+		       , players = []}
+		])
+	    , ( "West"
+	      , [ Team { teamName = "Angels"
+		       , city = "Anaheim"
+		       , players = []}
+		, Team { teamName = "Athletics"
+		       , city = "Oakland"
+		       , players = []}
+		, Team { teamName = "Mariners"
+		       , city = "Seattle"
+		       , players = []}
+		, Team { teamName = "Rangers"
+		       , city = "Texas"
+		       , players = []}
+		])
+	    ])
+	, ( "National League"
+	  , fromList
+	    [ ( "Central"
+	      , [ Team { teamName = "Cubs"
+		       , city = "Chicago"
+		       , players = []}
+		, Team { teamName = "Reds"
+		       , city = "Cincinnati"
+		       , players = []}
+		, Team { teamName = "Astros"
+		       , city = "Houston"
+		       , players = []}
+		, Team { teamName = "Brewers"
+		       , city = "Milwaukee"
+		       , players = []}
+		, Team { teamName = "Pirates"
+		       , city = "Pittsburgh"
+		       , players = []}
+		, Team { teamName = "Cardinals"
+		       , city = "St. Louis"
+		       , players = []}
+		])
+	    , ( "East"
+	      , [ Team { teamName = "Braves"
+		       , city = "Atlanta"
+		       , players =
+			 [ Player { firstName = "Marty"
+				  , lastName = "Malloy"
+				  , position = "Second Base"
+				  , atBats = Just 28
+				  , hits = Just 5
+				  , era = Nothing}
+			 , Player { firstName = "Ozzie"
+				  , lastName = "Guillen"
+				  , position = "Shortstop"
+				  , atBats = Just 264
+				  , hits = Just 73
+				  , era = Nothing}
+			 , Player { firstName = "Danny"
+				  , lastName = "Bautista"
+				  , position = "Outfield"
+				  , atBats = Just 144
+				  , hits = Just 36
+				  , era = Nothing}
+			 , Player { firstName = "Gerald"
+				  , lastName = "Williams"
+				  , position = "Outfield"
+				  , atBats = Just 266
+				  , hits = Just 81
+				  , era = Nothing}
+			 , Player { firstName = "Tom"
+				  , lastName = "Glavine"
+				  , position = "Starting Pitcher"
+				  , atBats = Nothing
+				  , hits = Nothing
+				  , era = Just 2.47}
+			 , Player { firstName = "Javier"
+				  , lastName = "Lopez"
+				  , position = "Catcher"
+				  , atBats = Just 489
+				  , hits = Just 139
+				  , era = Nothing}
+			 , Player { firstName = "Ryan"
+				  , lastName = "Klesko"
+				  , position = "Outfield"
+				  , atBats = Just 427
+				  , hits = Just 117
+				  , era = Nothing}
+			 , Player { firstName = "Andres"
+				  , lastName = "Galarraga"
+				  , position = "First Base"
+				  , atBats = Just 555
+				  , hits = Just 169
+				  , era = Nothing}
+			 , Player { firstName = "Wes"
+				  , lastName = "Helms"
+				  , position = "Third Base"
+				  , atBats = Just 13
+				  , hits = Just 4
+				  , era = Nothing}
+			 ]}
+		, Team { teamName = "Marlins"
+		       , city = "Florida"
+		       , players = []}
+		, Team { teamName = "Expos"
+		       , city = "Montreal"
+		       , players = []}
+		, Team { teamName = "Mets"
+		       , city = "New York"
+		       , players = []}
+		, Team { teamName = "Phillies"
+		       , city = "Philadelphia"
+		       , players = []}
+		])
+	    , ( "West"
+	      , [ Team { teamName = "Diamondbacks"
+		       , city = "Arizona"
+		       , players = []}
+		, Team { teamName = "Rockies"
+		       , city = "Colorado"
+		       , players = []}
+		, Team { teamName = "Dodgers"
+		       , city = "Los Angeles"
+		       , players = []}
+		, Team { teamName = "Padres"
+		       , city = "San Diego"
+		       , players = []}
+		, Team { teamName = "Giants"
+		       , city = "San Francisco"
+		       , players = []}
+		])
+	    ])
+	]
+      }
+
+-- ------------------------------------------------------------
diff --git a/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Makefile b/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Makefile
new file mode 100644
--- /dev/null
+++ b/examples/arrows/AGentleIntroductionToHXT/AGentleIntroductionToHXT/PicklerExample/Makefile
@@ -0,0 +1,41 @@
+# $Id: Makefile,v 1.2 2006/11/17 17:16:24 hxml Exp $
+#
+# hello world application of Haskell XML Toolbox
+
+HXT_HOME	= ../../../..
+PKGFLAGS	= 
+GHCFLAGS	= -W -O2
+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
+
+DIST		= $(HXT_HOME)/dist/examples/arrows/AGentleIntroductionToHXT/
+DIST_DIR	= $(DIST)/AGentleIntroductionToHXT/PicklerExample/
+
+src		= Baseball.hs
+prog		= ./Baseball
+
+all		:
+		$(MAKE) $(prog)
+
+force		:
+		$(MAKE) distclean all
+
+test		: $(prog)
+		$(prog)
+
+dist		:
+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
+		cp $(src) simple2.xm new-simple2.xm Makefile $(DIST_DIR)
+
+clean		:
+		rm -f *.o *.hi
+
+distclean	:
+		$(MAKE) clean
+		rm -f $(prog)
+
+.PHONY		: all test dist clean distclean force
+
+$(prog)		: $(src)
+		$(GHC) --make -o $@ $<
+
+
diff --git a/examples/arrows/RelaxTestSuite/TestCases.hs b/examples/arrows/RelaxTestSuite/TestCases.hs
--- a/examples/arrows/RelaxTestSuite/TestCases.hs
+++ b/examples/arrows/RelaxTestSuite/TestCases.hs
@@ -10,7 +10,7 @@
 import Text.XML.HXT.RelaxNG.Validator
 import Text.XML.HXT.RelaxNG.Schema
 import Text.XML.HXT.Arrow 
-import Text.XML.HXT.Parser	( formatXmlTree )   
+import Text.XML.HXT.DOM.FormatXmlTree
 
 import Test.HUnit
 import Data.List 
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
@@ -153,6 +153,7 @@
 readDoc	:: String -> IOSArrow b XmlTree
 readDoc src
     = readDocument [ (a_tagsoup, v_1)
+		   , (a_parse_xml, v_1)
 		   , (a_remove_whitespace, v_1)
 		   , (a_encoding, isoLatin1)
 		   , (a_issue_warnings, v_0)
diff --git a/examples/arrows/performance/Makefile b/examples/arrows/performance/Makefile
--- a/examples/arrows/performance/Makefile
+++ b/examples/arrows/performance/Makefile
@@ -43,13 +43,16 @@
 # the size of the XML file for i=20 is about 36Mb
 # these tests have run on a box with 1Gb memory
 
-tests		= 2 3 10 11 12 13 14 15 16 17 18 19 20
+tests		= 2 3 10 11 12
 
 test		: $(prog)
-		$(MAKE) genfiles
-		$(MAKE) readfiles
-		$(MAKE) pruneright
-		$(MAKE) pruneleft
+		$(MAKE) genfiles   tests="$(tests)"
+		$(MAKE) readfiles  tests="$(tests)"
+		$(MAKE) pruneright tests="$(tests)"
+		$(MAKE) pruneleft  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) ; \
diff --git a/examples/arrows/pickle/Makefile b/examples/arrows/pickle/Makefile
--- a/examples/arrows/pickle/Makefile
+++ b/examples/arrows/pickle/Makefile
@@ -10,8 +10,10 @@
 DIST		= $(HXT_HOME)/dist/examples/arrows
 DIST_DIR	= $(DIST)/pickle
 
-all		: pickleTest
+PROG		= ./pickleTest
 
+all		: $(PROG)
+
 force		:
 		$(MAKE) distclean all
 
@@ -27,11 +29,10 @@
 		cp PickleTest.hs Makefile $(DIST_DIR)
 
 clean		:
-		rm -f *.o *.hi pickle.xml
+		rm -f *.o *.hi pickle.xml $(PROG)
 
 distclean	:
 		$(MAKE) clean
-		rm -f pickleTest
 
 .PHONY		: all test dist clean distclean force
 
diff --git a/examples/dtd2haskell/DTDtoHXT.hs b/examples/dtd2haskell/DTDtoHXT.hs
deleted file mode 100644
--- a/examples/dtd2haskell/DTDtoHXT.hs
+++ /dev/null
@@ -1,434 +0,0 @@
--- |
--- DTDtoHXml - A program for generating access functions for the Haskell XML Toolbox
--- from a DTD
---
--- Author : Uwe Schmidt
---
--- Version : $Id: DTDtoHXT.hs,v 1.2 2005/04/14 12:52:51 hxml Exp $
---
--- this program may be used as example main program for the
--- Haskell XML Toolbox
-
-module Main
-where
-
-import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML
-
-import System.IO			-- import the IO and commandline option stuff
-import System.Environment
-import System.Console.GetOpt
-import System.Exit
-
-import Data.Maybe
-import Data.Char
-import Data.List
-
--- ------------------------------------------------------------
-
--- |
--- the main program
-
-main :: IO ()
-main
-    = do
-      argv <- getArgs					-- get the commandline arguments
-      al   <- cmdlineOpts argv				-- and evaluate them, return a key-value list
-      res  <- run'					-- build a XML root from the list and start parsing
-	      $ getDocumentAndGenerateHaskellCode al emptyRoot
-      exitProg (null res)				-- set return code and terminate
-
--- ------------------------------------------------------------
-
-exitProg	:: Bool -> IO a
-exitProg True	= exitWith (ExitFailure (-1))
-exitProg False	= exitWith ExitSuccess
-
--- ------------------------------------------------------------
-
-uppercaseInitials, namespaceAware, prefixUnderline	:: String
-
-uppercaseInitials	= "uppercase-initials"
-namespaceAware		= "namespace-aware"
-prefixUnderline		= "prefix-underline"
-
--- ------------------------------------------------------------
-
-generateHXmlToolboxAccessFuntions	:: XmlFilter
-generateHXmlToolboxAccessFuntions t
-    = processChildren (isXDTD `guards` genHaskell) t
-    where
-    genHaskell dt
-	= cat
-	  [ code [ sepl
-		 , "--"
-		 , "-- don't edit this module"
-		 , "-- generated with " ++ progName
-		 , "-- simple access function for Haskell XML Toolbox"
-		 , "-- generated from DTD of document: " ++ show source
-		 , ""
-		 , "module " ++ hsmodul
-		 , "where"
-		 , ""
-		 , "import Text.XML.HXT.DOM.XmlTree (XmlFilter)"
-		 , "import qualified Text.XML.HXT.DOM.XmlTree as X hiding (XmlFilter)"
-		 ]
-
-          , comm "namespace declarations"
-	  , code (map nsType nsPrefixes)
-          , comm ""
-	  , code (zipWith nsDef nsPrefixes nsUris)
-
-	  , comm "element names (tag names)"
-	  , code (map (constNameType maxElemLen "tag") elements)
-          , comm ""
-	  , code (map (constNameDef  maxElemLen "tag") elements)
-
-	  , comm "isTag test filter"
-	  , code (map isTagType elements)
-          , comm ""
-	  , code (map isTagDef  elements)
-
-          , comm "make tag nodes constructor filter"
-	  , code (map mkTagType elements)
-          , comm ""
-	  , code (map mkTagDef  elements)
-
-	  , comm "attribute names"
-	  , code (map (constNameType maxAttrLen "attr") attributes)
-	  , comm ""
-	  , code (map (constNameDef  maxAttrLen "attr") attributes)
-
-	  , comm "get attribute value access filter"
-	  , code (map getValueType attributes)
-          , comm ""
-	  , code (map getValueDef  attributes)
-
-	  , comm "has attribute test filter"
-	  , code (map hasAttrType attributes)
-          , comm ""
-	  , code (map hasAttrDef  attributes)
-
-          , comm "make attribute nodes constructor filter for computed attribute values"
-	  , code (map mkAttrType attributes)
-          , comm ""
-	  , code (map mkAttrDef attributes)
-          , comm "make attribute nodes constructor filter for string attribute values"
-	  , code (map mkSAttrType attributes)
-          , comm ""
-	  , code (map mkSAttrDef attributes)
-
-	  , comm ("end of module " ++ hsmodul)
-
-	  ]
-          $ dt
-	where
-	code	= txt . concatMap (++ "\n")
-
-	comm cm	= code [ "", sepl, "--", "-- " ++ cm, ""]		-- generate a headline comment
-
-	sepl	= "-- ----------------------------------------"
-
-	nn	= trInitial . concatMap nc				-- normalize names
-
-	nc c
-	    | c `elem` ['a'..'z'] ++ ['A'..'Z'] ++ ['0'..'9'] ++ "_"	= [c]
-	    | c == ':' || c == '-'					= "_" 
-	    | otherwise							= ("_" ++) . show . fromEnum $ c
-
-	trInitial str
-	    | null str	= str
-	    | underLn	= '_' : str
-	    | upperCs	= toUpper (head str) : tail str
-	    | otherwise	= str
-
-	modname = reverse
-		  . (\ n -> if '.' `elem` n				-- remove extension
-		            then drop 1 . dropWhile (/= '.') $ n
-		            else n
-		    )
-		  . takeWhile (/= '/')					-- remove dir path
-		  . reverse
-
-        maxLen		= maximum . (0 :) . map length
-
-	padd n x	= take n (x ++ repeat ' ')
-
-        tagPrefix	= "tag"
-	attrPrefix	= "attr"
-	nsPrefix	= "ns"
-
-	tagName n	= tagPrefix  ++ nn n
-	attName a	= attrPrefix ++ nn a
-	nspName n	= nsPrefix   ++ nn n
-
-        constNameType ln prefix n
-	    = prefix ++ padd ln (nn n) ++ " :: String"
-
-	constNameDef ln prefix n
-	    = prefix ++ padd ln (nn n) ++ " =  " ++ show n
-
-        isTagType n
-	    = "is" ++ padd maxElemLen (nn n) ++ " :: XmlFilter"
-
-        isTagDef n
-	    = "is" ++ padd maxElemLen (nn n) ++ " =  " ++
-	      ( either
-		(const ("X.isTag " ++ tagPrefix ++ nn n))
-		(\ (ns, pr, lp)
-		 -> "X.isNsTag " ++ ( if null pr
-				    then tagName n
-				    else show lp
-				  ) ++ " " ++ nspName ns
-		)
-		. quName
-		$ n
-	      )
-
-        mkTagType n
-	    = "t" ++ padd maxElemLen (nn n) ++ " :: XmlFilter"
-
-        mkTagDef n
-	    = "t" ++ padd maxElemLen (nn n) ++ " = " ++
-	      ( either
-		(const ("X.etag " ++ tagName n))
-		(\ (ns, _pr, _lp)
-		 -> "X.mkXNsTag " ++ tagName n ++ " " ++ nspName ns ++ " X.none X.none"
-		)
-		. quName
-		$ n
-	      )
-
-        hasAttrType n
-	    = "has" ++ padd maxAttrLen (nn n) ++ " :: XmlFilter"
-
-        hasAttrDef n
-	    = "has" ++ padd maxAttrLen (nn n) ++ " = " ++
-	      ( either
-		(const ("X.hasAttr " ++ attName n))
-		(\ (ns, _pr, lp)
-		 -> "X.hasNsAttr " ++ show lp ++ " " ++ nspName ns
-		)
-		. quNameAttr
-	        $ n
-	      )
-
-        mkAttrType n
-	    = "af" ++ padd maxAttrLen (nn n) ++ " :: XmlFilter -> XmlFilter"
-
-        mkAttrDef n
-	    = "af" ++ padd maxAttrLen (nn n) ++ " = " ++
-	      ( either
-		(const ("X.mkXAttr " ++ attName n))
-		(\ (ns, _pr, _lp)
-		 -> "X.mkXNsAttr " ++ attName n ++ " " ++ nspName ns
-		)
-		. quNameAttr
-	        $ n
-	      )
-
-        mkSAttrType n
-	    = "a" ++ padd maxAttrLen (nn n) ++ " :: String -> XmlFilter"
-
-        mkSAttrDef n
-	    = "a" ++ padd maxAttrLen (nn n) ++ " = \\ v -> " ++
-	      ( either
-		(const ( "X.mkXAttr " ++ attName n ++ " (X.txt v)" ))
-		(\ (ns, _pr, _lp)
-		 -> "X.mkXNsAttr " ++ attName n ++ " " ++ nspName ns ++ " (X.txt v)"
-		)
-		. quNameAttr
-	        $ n
-	      )
-
-        getValueType n
-	    = "get" ++ padd maxAttrLen (nn n) ++ " :: XmlFilter"
-
-        getValueDef n
-	    = "get" ++ padd maxAttrLen (nn n) ++ " =  " ++
-	      ( either
-		(const ("X.getValue " ++ attName n))
-		(\ (ns, _pr, lp)
-		 -> "X.getNsValue " ++ show lp ++ " " ++ nspName ns
-		)
-		. quNameAttr
-		$ n
-	      )
-
-        nsType n
-	    = nsPrefix ++ padd maxNsLen (nn n) ++ " :: String"
-
-        nsDef n v
-	    = nsPrefix ++ padd maxNsLen (nn n) ++ " =  " ++ show v
-
-        source  = xshow . getValue a_source                     $ t        
-	modul	= modname . xshow . getValue a_output_file	$ t
-	root	= xshow . (isDoctype .> getDTDValue a_name)	$ dt
-	hsmodul
-	    | null modul	= "DTD" ++ nn root
-	    | otherwise		= modul
-
-	upperCs	= satisfies (hasAttr uppercaseInitials)	$ t
-	underLn	= satisfies (hasAttr prefixUnderline)	$ t
-	nsAware = satisfies (hasAttr namespaceAware)		$ t
-
-	elements							-- select all element names from dtd 
-	    = nub
-	      . sort
-	      . map ( xshow . this)
-	      . (deep isElement .> getDTDValue a_name)
-	      $ dt
-
-        maxElemLen = maxLen . map nn $ elements
-
-        attributes
-	    = nub
-	      . sort
-	      . map ( xshow . this)
-	      . (deep isAttlist .> getDTDValue a_value)
-	      $ dt
-
-        maxAttrLen = maxLen . map nn $ attributes
-
-        nsName [] = root
-	nsName n  = n
-
-        namespaces
-	    = map (\ (n,v) -> (drop 6 n, v))
-	      . map (\ t' -> (xshow . getDTDValue a_value $ t', xshow . getDTDValue a_default $ t'))
-	      . isNSAttr
-	      $ dt
-	
-        nsPrefixes = map (nsName . fst) namespaces
-        nsUris     = map snd namespaces
-
-        maxNsLen = maxLen . map nn $ nsPrefixes
-
-        quName	:: String -> Either String (String, String, String)
-	quName	n
-	    | not nsAware		 = Left n
-	    | null lp && isNothing defns = Left n
-	    | null lp                    = Right (nsName "", "", pr)
-	    |            isNothing expns = Left n
-	    |            otherwise	 = Right (nsName pr, pr, tail lp)
-	      where
-	      (pr, lp) = span (/= ':') n
-	      defns    = lookup "" namespaces
-	      expns    = lookup pr namespaces
-
-        quNameAttr	:: String -> Either String (String, String, String)
-	quNameAttr an
-	    | ':' `elem` an	= quName an
-	    | otherwise		= Left an
-
-        isNSAttr	:: XmlFilter
-	isNSAttr
-	    = deep isAttlist
-	      .>
-	      ( ( getDTDValue a_value
-		  .>
-		  isOfText (\ s' -> s' == "xmlns" || "xmlns:" `isPrefixOf` s')
-		)
-		`guards`
-		( isFixedAttrKind `guards` this)
-	      )
-              
--- ------------------------------------------------------------
-
--- |
--- the /real/ main program
---
--- get wellformed document, validates document, propagates and check namespaces
--- and controls output
-
-getDocumentAndGenerateHaskellCode	:: Attributes -> XmlStateFilter state
-getDocumentAndGenerateHaskellCode al
-    = parseDocument ( al
-		      ++
-		      [ (a_parse_html, v_0)
-		      , (a_canonicalize, v_0)
-		      , (a_remove_whitespace, v_0)
-		      ]
-		    )
-      .>>
-      traceMsg 1 "start processing"
-      .>>
-      liftMf generateHXmlToolboxAccessFuntions
-      .>>
-      traceMsg 1 "processing finished"
-      .>>
-      traceSource
-      .>>
-      traceTree
-      .>>
-      writeDocument [ (a_output_xml, v_0)
-		    ]
-      .>>
-      checkStatus
-
--- ------------------------------------------------------------
---
--- the boring option definition and evaluation part
---
--- see doc for System.Console.GetOpt
-
-progName	:: String
-progName	= "DTDtoHXml"
-    
-options 	:: [OptDescr (String, String)]
-options
-    = selectOptions [ a_help
-		    ] generalOptions
-      ++
-      selectOptions [ a_trace
-		    , a_proxy
-		    , a_use_curl
-		    , a_options_curl
-		    , a_encoding
-		    , a_validate
-		    , a_check_namespaces
-		    ] inputOptions
-      ++
-      selectOptions [ a_output_file
-		    ] outputOptions
-      ++
-      [ Option "u"	[prefixUnderline]	(NoArg	(prefixUnderline,   v_1))	"separate tag and attribute names with a '_'"
-      , Option "U"	[uppercaseInitials]	(NoArg	(uppercaseInitials, v_1))	"transform the first char of tag and attribute names to uppercase"
-      , Option "N"	[namespaceAware]	(NoArg	(namespaceAware,    v_1))	"filter are namespace aware, if namespace attributes occur in the DTD"
-      ]
-      ++
-      showOptions
-
-usage		:: [String] -> IO a
-usage errl
-    | null errl
-	= do
-	  hPutStrLn stdout use
-	  exitProg False
-    | otherwise
-	= do
-	  hPutStrLn stderr (concat errl ++ "\n" ++ use)
-	  exitProg True
-    where
-    header = "DTDtoHXml - Generation of access function for the Haskell XML Toolbox from a DTD\n" ++
-             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"
-    use    = usageInfo header options
-
-cmdlineOpts 	:: [String] -> IO (Attributes)
-cmdlineOpts argv
-    = case (getOpt Permute options argv) of
-      (ol,n,[]  )
-	  -> do
-	     sa <- src n
-	     help (lookup a_help ol)
-	     return (ol ++ sa)
-      (_,_,errs)
-	  -> usage errs
-    where
-    src []	= return [(a_source, "")]
-    src [uri]	= return [(a_source, uri)]
-    src _	= usage  ["only one input url or file allowed\n"]
-
-    help Nothing	= return ()
-    help (Just _)	= usage []
-
--- ------------------------------------------------------------
diff --git a/examples/dtd2haskell/Makefile b/examples/dtd2haskell/Makefile
deleted file mode 100644
--- a/examples/dtd2haskell/Makefile
+++ /dev/null
@@ -1,56 +0,0 @@
-# $Id: Makefile,v 1.5 2005/04/14 12:52:51 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	= 
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./DTDtoHXT
-
-all		: $(prog)
-
-$(prog)		: $(prog).hs
-		$(GHC) --make -o $@ $<
-
-force		:
-		$(GHC) --make -o $(prog) $(prog).hs
-
-test		:
-		@echo "===> run a few generation examples"
-		$(MAKE) XHTML.o XHTML2.o XHTML3.o
-		@echo "===> the generated modules"
-		ls -l XHTML*.hs XHTML*.o
-
-EX1		= ../xhtml/xhtml.xml
-EX2		= ../photoalbum/photos.xml
-
-XHTML.o		: $(prog) $(EX1)
-		@echo "===> generate a module for XHTML access function from the XHTML DTD with naming convention is<Tag>, get<Attr>, ..."
-		$(prog) --output-file XHTML.hs --uppercase-initials $(EX1)
-		$(GHC) -c XHTML.hs
-
-XHTML2.o	: $(prog) $(EX1)
-		@echo "===> generate a module for XHTML access function from the XHTML DTD with naming convention is_<tag>, get_<attr>, ..."
-		$(prog) --output-file XHTML2.hs --prefix-underline $(EX1)
-		$(GHC) -c XHTML2.hs
-
-XHTML3.o	: $(prog) $(EX1)
-		@echo "===> same as test2, but with namespace aware access functions, if xmlns is used in DTD"
-		$(prog) --output-file XHTML3.hs --prefix-underline --namespace-aware $(EX1)
-		$(GHC) -c XHTML3.hs
-
-Photo.hs	: $(prog) $(EX2)
-		$(prog) --output-file $@ --uppercase-initials $(EX2)
-
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/dtd2haskell
-DIST_FILES	= $(prog).hs Makefile
-
-dist		:
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp $(DIST_FILES) $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) XHTML*.hs *.o *.hi
-
diff --git a/examples/hfilter/FilterExample.hs b/examples/hfilter/FilterExample.hs
deleted file mode 100644
--- a/examples/hfilter/FilterExample.hs
+++ /dev/null
@@ -1,172 +0,0 @@
--- |
--- HXPath - XPath Evaluator of the Haskell XML Toolbox
---
--- Author : Torben Kuseler, Uwe Schmidt
---
--- Version : $Id: FilterExample.hs,v 1.9 2004/09/02 19:11:50 hxml Exp $
-
-module Main(main)
-where
-
-import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML
-
-import System.IO			-- import the IO and commandline option stuff
-import System.Environment
-import System.Console.GetOpt
-import System.Exit
-
-import Network.URI
-
-import Data.Maybe
-
-
--- ------------------------------------------------------------
-
--- |
--- the main program of the Filter example 
-
-main :: IO ()
-main
-    = do
-      argv <- getArgs
-      al   <- cmdlineOpts argv
-      res  <- run' $ filterEx al emptyRoot
-      exitProg (null res)				-- set return code and terminate
-
--- ------------------------------------------------------------
-
-exitProg	:: Bool -> IO a
-exitProg True	= exitWith (ExitFailure (-1))
-exitProg False	= exitWith ExitSuccess
-
--- ------------------------------------------------------------
-
--- |
--- the /real/ main program
---
--- runs in the trivial XmlState monad (with user state set to ())
--- so IO and access to global options is possible
-
-filterEx	:: Attributes -> XmlStateFilter state
-filterEx al
-    = parseDocument al
-      .>>
-      liftMf filterDocument
-      .>>
-      writeDocument []
-      .>>
-      checkStatus
-
--- ------------------------------------------------------------
---
--- some simple selection and editing filter
-
-filterDocument	:: XmlFilter		-- the main processing filter
-filterDocument t
-    = processChildren (filterexamples xf) t
-      where
-      xf = xshow . getValue "filter" $ t
-
-filterexamples	:: String -> XmlFilter
-filterexamples "all-text"				= deep isXText
-filterexamples "all-body-text-without-whitespace"	= getAllBodyText
-filterexamples "all-a-tags-with-href-attr"		= getAllTagsWithAttr "a" "href"
-filterexamples "all-href-values-of-a-tags"		= getAllAttrValues   "a" "href"
-filterexamples "change-img-src-to-abs-uri"		= changeToAbsolutURIs "http://localhost/images/" "img" "src"
-filterexamples f					= cmt ("error: " ++ f ++ " not defined") +++ this
-
-getAllBodyText		:: XmlFilter
-getAllBodyText
-    = isTag "html" .> getChildren .> isTag "body" .> getChildren .> deep (isOfText noWhiteSpace)
-      where
-      noWhiteSpace = not . all (`elem` " \t\n")
-
-getAllTagsWithAttr	:: String -> String -> XmlFilter
-getAllTagsWithAttr tn an
-    = multi (isTag tn .> hasAttr an)
-
-getAllAttrValues	:: String -> String -> XmlFilter
-getAllAttrValues tn an
-    = multi (isTag tn .> getValue an)
-
-changeToAbsolutURIs	:: String -> String -> String -> XmlFilter
-changeToAbsolutURIs base tn an
-    = processTopDown (changeURI `when` isTag tn)
-      where
-      changeURI    = modifyAttr an (toAbsURI base)
-
-toAbsURI	:: String -> String -> String
-toAbsURI base uri
-    = fromMaybe "" $ expand
-    where
-    expand = do
-	     base' <- parseURI base
-	     uri'  <- parseURI uri
-	     abs'  <- relativeTo uri' base'
-	     return $ show abs'
-
--- ------------------------------------------------------------
---
--- the options definition part
--- see doc for System.Console.GetOpt
-
-progName	:: String
-progName	= "HXmlFilter"
-    
-options 	:: [OptDescr (String, String)]
-options
-    = generalOptions
-      ++
-      inputOptions
-      ++
-      outputOptions
-      ++
-      [ Option "f"	["filter"]		(ReqArg flt "FILTER")			( "filter to be applied, one of: " ++ nl ++
-											  "\"all-text\"," ++ nl ++
-											  "\"all-body-text-without-whitespace\"," ++ nl ++
-											  "\"all-a-tags-with-href-attr\"," ++ nl ++
-											  "\"all-href-values-of-a-tags\"," ++ nl ++
-											  "\"change-img-src-to-abs-uri\"" )
-      ]
-      ++
-      showOptions
-    where
-    nl = "\n\t\t\t\t\t  "
-    att n v	= (n, v)
-    flt = att "filter"
-
-
-usage		:: [String] -> IO a
-usage errl
-    | null errl
-	= do
-	  hPutStrLn stdout use
-	  exitProg False
-    | otherwise
-	= do
-	  hPutStrLn stderr (concat errl ++ "\n" ++ use)
-	  exitProg True
-    where
-    header = "FilterExamples - Examples for applying XML filter from the Haskell XML Toolbox\n" ++
-             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"
-    use    = usageInfo header options
-
-cmdlineOpts 	:: [String] -> IO (Attributes)
-cmdlineOpts argv
-    = case (getOpt Permute options argv) of
-      (ol,n,[]  )
-	  -> do
-	     sa <- src n
-	     help (lookup a_help ol)
-	     return (ol ++ sa)
-      (_,_,errs)
-	  -> usage errs
-    where
-    src []	= return [("source", "")]
-    src [uri]	= return [("source", uri)]
-    src _	= usage ["only one input uri or file allowed\n"]
-
-    help Nothing	= return ()
-    help (Just _)	= usage []
-
--- ------------------------------------------------------------
diff --git a/examples/hfilter/Makefile b/examples/hfilter/Makefile
deleted file mode 100644
--- a/examples/hfilter/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# $Id: Makefile,v 1.7 2005/04/14 12:52:51 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	= 
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./FilterExample
-opts		= --parse-html --do-not-issue-warnings
-runprog		= $(prog) $(opts)
-
-all		: $(prog)
-
-force		:
-		$(GHC) --make -o $(prog) $(prog).hs
-
-$(prog)		: $(prog).hs
-		$(GHC) --make -o $@ $<
-
-EX		= ./lousy.html
-
-test		: $(prog)
-		@echo "===> Filter examples"
-		@echo ; echo "===> the filter parses a document and selects or modifies parts of it"
-		@echo ; echo "===> usage" ; echo
-		./FilterExample --help
-		@echo ; sleep 2
-		@$(MAKE) test1 test2 test3 test4 test5
-
-test1		:
-		@sleep 2 ; echo ; echo "===> extract all a tags with a href attribute" ; echo ; sleep 2
-		$(runprog) --filter=all-a-tags-with-href-attr $(EX)
-		@echo
-
-test2		:
-		@sleep 2 ; echo ; echo "===> extract all href attribute values for a tags" ; echo ; sleep 2
-		$(runprog) --filter=all-href-values-of-a-tags $(EX)
-		@echo
-
-test3		:
-		@sleep 2 ; echo ; echo "===> change all src attribute values of img tags to absolut uris" ; echo ; sleep 2
-		$(runprog) --filter=change-img-src-to-abs-uri $(EX)
-		@echo
-
-test4		:
-		@sleep 2 ; echo ; echo "===> select all text" ; echo ; sleep 2
-		$(runprog) --filter=all-text $(EX)
-		@echo
-
-test5		:
-		@sleep 2 ; echo ; echo "===> select all text within body, but remove whitespace" ; echo ; sleep 2
-		$(runprog) --filter=all-body-text-without-whitespace $(EX)
-		@echo
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/hfilter
-
-dist		:
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp $(EX) Makefile $(prog).hs $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) *.o *.hi
diff --git a/examples/hfilter/lousy.html b/examples/hfilter/lousy.html
deleted file mode 100644
--- a/examples/hfilter/lousy.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>A HTML Documents with some Errors</title>
-  </head>
-
-  <body>
-    <h1>HTML
-    <h2>html
-	<p>some text and a &xxx;
-	  <p>more text
-	    </p
-    <img alt='&lt; &yyy; &gt;' src="abc.gif">
-    <table border>
-    <tr><td>1<td>2<td>3
-    </table>
-
-
-    <hr>
-    <address><a href="mailto:uwe@muehle.welt.all">Uwe
-		Schmidt</a></address>
-<!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->
-<!-- hhmts start -->
-Last modified: Mon May 12 13:11:29 CEST 2003
-<!-- hhmts end -->
-</html>
diff --git a/examples/hparser/HXmlParser.hs b/examples/hparser/HXmlParser.hs
deleted file mode 100644
--- a/examples/hparser/HXmlParser.hs
+++ /dev/null
@@ -1,136 +0,0 @@
--- |
--- HXmlParser - Validating XML Parser of the Haskell XML Toolbox
--- XML well-formed checker and validator.
---
--- Author : .\\artin Schmidt and Uwe Schmidt
---
--- Version : $Id: HXmlParser.hs,v 1.14 2005/04/14 12:52:51 hxml Exp $
---
--- this program may be used as example main program for the
--- Haskell XML Toolbox
-
-module Main
-where
-
-import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML
-
-import System.IO			-- import the IO and commandline option stuff
-import System.Environment
-import System.Console.GetOpt
-import System.Exit
-
-import Data.Maybe
-
--- ------------------------------------------------------------
-
--- |
--- the main program of the Haskell XML Validating Parser
-
-main :: IO ()
-main
-    = do
-      argv <- getArgs					-- get the commandline arguments
-      al   <- cmdlineOpts argv				-- and evaluate them, return a key-value list
-      res  <- run' $ parser al emptyRoot		-- build a XML root from the list and start parsing
-      exitProg (null res)				-- set return code and terminate
-
--- ------------------------------------------------------------
-
-exitProg	:: Bool -> IO a
-exitProg True	= exitWith (ExitFailure (-1))
-exitProg False	= exitWith ExitSuccess
-
--- ------------------------------------------------------------
-
--- |
--- the /real/ main program
---
--- get wellformed document, validates document, propagates and check namespaces
--- and controls output
-
-parser	:: Attributes -> XmlStateFilter state
-parser al
-    = parseDocument al					-- read document
-      .>>
-      traceMsg 1 "start processing"
-      .>>
-      liftMf processDocument				-- process document: in this case rather simple, just apply a pure filter
-      .>>
-      traceMsg 1 "processing finished"
-      .>>
-      traceSource
-      .>>
-      traceTree
-      .>>
-      ( writeDocument []				-- write result, all options already set with parseDocument
-	`whenNotM`
-	hasAttr "no-output"
-      )
-      .>>
-      checkStatus					-- check status
-
-processDocument	:: XmlFilter
-processDocument
-    = ( processChildren (deep isXText)			-- process document, just select text when option \"show-text\" is set
-	`when`
-	hasAttr "show-text"
-      )
-
--- ------------------------------------------------------------
---
--- the options definition part
--- see doc for System.Console.GetOpt
-
-progName	:: String
-progName	= "HXmlParser"
-    
-options 	:: [OptDescr (String, String)]
-options
-    = generalOptions
-      ++
-      inputOptions
-      ++
-      outputOptions
-      ++
-      [ Option "q"	["no-output"]		(NoArg  ("no-output", "1"))	"no output of resulting document"
-      , Option "x"	["show-text"]		(NoArg	("show-text", "1"))	"output only the raw text, remove all markup"
-      ]
-      ++
-      showOptions
-
-usage		:: [String] -> IO a
-usage errl
-    | null errl
-	= do
-	  hPutStrLn stdout use
-	  exitProg False
-    | otherwise
-	= do
-	  hPutStrLn stderr (concat errl ++ "\n" ++ use)
-	  exitProg True
-    where
-    header = "HXmlParser - Validating XML Parser of the Haskell XML Toolbox\n" ++
-             "XML well-formed checker and validator.\n\n" ++
-             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"
-    use    = usageInfo header options
-
-cmdlineOpts 	:: [String] -> IO (Attributes)
-cmdlineOpts argv
-    = case (getOpt Permute options argv) of
-      (ol,n,[])
-	  -> do
-	     sa <- src n
-	     help (lookup a_help ol) sa
-	     return (ol ++ sa)
-      (_,_,errs)
-	  -> usage errs
-    where
-    src []	= return []
-    src [uri]	= return [("source", uri)]
-    src _	= usage ["only one input uri or file allowed\n"]
-
-    help (Just _) _	= usage []
-    help Nothing []	= usage ["no input uri or file given\n"]
-    help Nothing _	= return ()
-
--- ------------------------------------------------------------
diff --git a/examples/hparser/Makefile b/examples/hparser/Makefile
deleted file mode 100644
--- a/examples/hparser/Makefile
+++ /dev/null
@@ -1,111 +0,0 @@
-# $Id: Makefile,v 1.7 2005/04/14 12:52:51 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	=
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./HXmlParser
-
-all	: $(prog)
-
-HXmlParser	: HXmlParser.hs
-		$(GHC) --make -o $@ $<
-
-force		:
-		$(GHC) --make -o $(prog) $(prog).hs
-
-test		:
-		@echo "===> run a few simple test cases with the validating parser"
-		@echo "===> first see all command line options"
-		./HXmlParser --help
-		@echo
-		$(MAKE) test0 test1 test2 test3 test4
-
-EX1		= ./example1.xml
-EXi		= ./invalid.xml
-EX2		= ../xhtml/xhtml.xml
-EX3		= ./namespace0.xml
-EX3a		= ./namespace1.xml
-EX4		= ./lousy.html
-
-EX		= $(EX1) $(EXi) $(EX3) $(EX3a) $(EX4)
-
-test0		: HXmlParser
-		@echo "===> a 1. simple valid document"
-		./HXmlParser $(EX1)
-		@echo
-		@echo "===> the dom tree of the same document (without any redundant whitespace)"
-		./HXmlParser --show-tree --remove-whitespace $(EX1)
-		@echo
-		@echo "===> the next test case contains validation erors, it must fail"
-		./HXmlParser --verbose $(EXi) || true
-		@echo
-		@echo "===> same source, but only wellformed check"
-		./HXmlParser --do-not-validate $(EXi) || true
-		@echo
-		@echo "===> only validation, no output of an XHTML source"
-		./HXmlParser --verbose --no-output $(EX2)
-		@echo
-
-test1		: HXmlParser
-		@echo "===> the source of a very simple valid document" ; echo ; sleep 2
-		cat $(EX1)
-		@sleep 2 ; echo ; echo "===> parser will emit UTF-8" ; echo ; sleep 2
-		./HXmlParser --output-encoding=UTF-8 $(EX1)
-		@echo
-		@sleep 2 ; echo ; echo "===> once again with ISO-8859-1 (latin1) output" ; echo ; sleep 2
-		./HXmlParser --output-encoding=ISO-8859-1 $(EX1)
-		@echo
-		@sleep 2 ; echo ; echo "===> once again with US-ASCII output" ; echo ; sleep 2
-		./HXmlParser --output-encoding=US-ASCII $(EX1)
-		@echo
-		@sleep 2 ; echo ; echo "===> once again with hdom tree output" ; echo ; sleep 2
-		./HXmlParser --show-tree --output-encoding=ISO-8859-1 $(EX1)
-		@echo
-		@sleep 2 ; echo ; echo "===> once again, but without any markup" ; echo ; sleep 2
-		./HXmlParser --show-text --output-encoding=ISO-8859-1 $(EX1)
-		@echo
-
-test2		: HXmlParser
-		@echo "===> the source of a xhtml document" ; echo ; sleep 2
-		cat $(EX2)
-		@echo "that document has" `cat $(EX2) | wc -l` "lines"
-		@sleep 2 ; echo ; echo "===> parser will validate this document and try to indent the output" ; echo ; sleep 2
-		./HXmlParser --indent $(EX2)
-		@sleep 2 ; echo ; echo "===> once again, but remove all markup" ; echo ; sleep 2
-		./HXmlParser --show-text --remove-whitespace $(EX2)
-		@sleep 2 ; echo ; echo "===> once again with hdom tree output" ; echo ; sleep 2
-		./HXmlParser --show-tree --remove-whitespace $(EX2)
-
-test3		: HXmlParser
-		@echo "===> namespace processing examples" ; echo ; sleep 2
-		@echo "===> namespace propagation test" ; echo ; sleep 2
-		./HXmlParser --verbose --check-namespaces  --indent --output-encoding=ISO-8859-1 $(EX3)
-		@echo
-		@echo ; sleep 2 ; echo "===> namespace propagation test: tree output with attached namespaces" ; echo ; sleep 2
-		./HXmlParser --verbose --check-namespaces  --remove-whitespace --show-tree --output-encoding=ISO-8859-1 $(EX3)
-		@echo
-		@echo ; sleep 2 ; echo "===> namespace validation test: this test produces namespace errors" ; echo ; sleep 2
-		./HXmlParser --verbose --do-not-validate --check-namespaces --indent --output-encoding=ISO-8859-1 $(EX3a) || true
-		@echo
-
-
-test4		: HXmlParser
-		@echo "===> HTML parsing examples" ; echo ; sleep 2
-		@echo "===> the source of a lousy html document" ; echo ; sleep 2
-		cat $(EX4)
-		@sleep 2 ; echo ; echo "===> parser accepts this document and tries to build a document tree" ; echo ; sleep 2
-		./HXmlParser --indent --preserve-comment --parse-html $(EX4)
-		@echo
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/hparser
-
-dist		:
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp $(EX) Makefile $(prog).hs $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) *.o *.hi
-
diff --git a/examples/hparser/example1.xml b/examples/hparser/example1.xml
deleted file mode 100644
--- a/examples/hparser/example1.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!DOCTYPE a [
-<!ATTLIST a  att1  NMTOKENS  #IMPLIED
-             att2  ID        #REQUIRED>
-<!ATTLIST b  btt2  ID        #REQUIRED
-             btt3  IDREF     #REQUIRED>
-<!ELEMENT a  (b, cü?)>
-<!ELEMENT b  EMPTY>
-<!ELEMENT cü (#PCDATA)>
-]>
-
-<?pi a processing instruction?>
-
-<a att1=" test
-          äöüß
-          test "
-   att2="root"
->
-    <b btt2="b1" btt3="root"/>
-    <cü>hello world äöüß test</cü>
-</a>
diff --git a/examples/hparser/invalid.xml b/examples/hparser/invalid.xml
deleted file mode 100644
--- a/examples/hparser/invalid.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-
-<!DOCTYPE a [
-<!ATTLIST a  att1  CDATA  #IMPLIED>
-<!ELEMENT a  (z, c?)>
-<!ELEMENT b  EMPTY>
-<!ELEMENT c  (#PCDATA)>
-]>
-
-<a att2="test">
-    <y/>
-    <c>hello world</c>
-</a>
diff --git a/examples/hparser/lousy.html b/examples/hparser/lousy.html
deleted file mode 100644
--- a/examples/hparser/lousy.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <title>A HTML Documents with some Errors</title>
-  </head>
-
-  <body>
-    <h1>HTML
-    <h2>html
-	<p>some text and a &xxx;
-	  <p>more text
-	    </p
-    <img alt='&lt; &yyy; &gt;' src="abc.gif">
-    <table border>
-    <tr><td>1<td>2<td>3
-    </table>
-
-
-    <hr>
-    <address><a href="mailto:uwe@muehle.welt.all">Uwe
-		Schmidt</a></address>
-<!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->
-<!-- hhmts start -->
-Last modified: Mon May 12 13:11:29 CEST 2003
-<!-- hhmts end -->
-</html>
diff --git a/examples/hparser/namespace0.xml b/examples/hparser/namespace0.xml
deleted file mode 100644
--- a/examples/hparser/namespace0.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
-
-<!DOCTYPE a [
-<!ATTLIST a  x:att1  NMTOKENS  #IMPLIED>
-<!ATTLIST a  x:att2  NMTOKENS  #IMPLIED>
-<!ATTLIST a  y:att3  CDATA  #FIXED "a fixed value">
-<!ATTLIST a  att4  CDATA  "&lt; default &gt;">
-<!ATTLIST a  att5  CDATA #IMPLIED>
-<!ATTLIST a  xmlns   CDATA #IMPLIED>
-<!ATTLIST a  xmlns:x CDATA #IMPLIED>
-<!ATTLIST a  xmlns:y CDATA #IMPLIED>
-<!ELEMENT a  (x:b, cü?)>
-<!ELEMENT x:b  EMPTY>
-<!ELEMENT cü  (#PCDATA)>
-]>
-
-<!-- some namespace declarations for testing namespace propagation -->
-<a xmlns="default namespace"
-   xmlns:x="namespace for x"
-   xmlns:y="namespace for y"
-   x:att2="xxx
-           yyy"
-   y:att3="a fixed value"
-   x:att1=" test
-            äöüß
-            test "
-   att5="&lt; &gt;"
->
-    <x:b/>
-    <cü>hello world äöüß test</cü>
-</a>
diff --git a/examples/hparser/namespace1.xml b/examples/hparser/namespace1.xml
deleted file mode 100644
--- a/examples/hparser/namespace1.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
-
-<!-- $Id: namespace1.xml,v 1.1 2004/03/03 12:52:19 hxml Exp $ -->
-
-<!DOCTYPE a [
-<!ATTLIST a xmlns   CDATA #IMPLIED>
-<!ATTLIST a xmlns:d CDATA #IMPLIED>
-<!ATTLIST a xmlns:x CDATA #IMPLIED>
-<!ATTLIST a xmlns:y CDATA #IMPLIED>
-<!ATTLIST a xmlns:z CDATA #IMPLIED>
-<!ELEMENT a ANY>
-
-<!-- error: a DTD part contains a not wellformed qualified Name: "a:b:c" -->
-<!ELEMENT a:b:c ANY>
-
-<!-- error: an ATTLIST declaration contains as attribute name a not wellformed qualified Name: "x:y:z" -->
-<!ATTLIST a:b:c x:y:z CDATA #IMPLIED>
-
-<!-- error: an entity or notation declaration contains a not wellformed NCName: "xyz:abc" -->
-<!ENTITY xyz:abc "123">
-<!ENTITY % xxx:yyy "zzz">
-
-]>
-
-<!-- everythin is legal here -->
-<a
-   xmlns  ="default namespace"
-   xmlns:d="default namespace"
-   xmlns:x="namespace for x"
-   xmlns:y="namespace common for y and z"
-   xmlns:z="namespace common for y and z"
-
-     att1="abc"
-   x:att1="xxx yyy"
-   y:att1="abc">
-
-  <!-- legal -->
-  <d:b attr2="xxx" d:attr2="yyy" xml:lang="de"/>
-
-  <!-- 4 x error: tag name "..." is not a wellformed qualified name -->
-  <d:tag:name/><:tag/><:/><:::/>
-
-  <!-- error: namespace for prefix in tag name "a:a" is undefined -->
-  <a:a/>
-
-  <!-- error: multiple occurences of universal names for attributes of tag "d:b" : "{namespace common for y and z}att2" -->
-  <d:b y:att2="y" z:att2="z"/>
-
-  <!-- 4 x error: attribute name "..." is not a wellformed qualified name -->
-  <d:b d:attr:name="" :attr="" :="" :::=""/>
-
-  <!-- error: namespace value of namespace declaration for "xmlns:x" has no value -->
-  <d:b xmlns:x=""/>
-
-  <!-- error: illegal namespace declaration with reserved prefix "..." starting with "xml" -->
-  <d:b xmlns:xml="something else"/><d:b xmlns:xml123="something else"/>
-
-  <!-- error: a PI contains a not wellformed NCName: "pi:pi" -->
-  <?pi:pi ?>
-</a>
diff --git a/examples/hsvg/.ghci b/examples/hsvg/.ghci
deleted file mode 100644
--- a/examples/hsvg/.ghci
+++ /dev/null
@@ -1,11 +0,0 @@
-:set -package-conf ../../lib/hxt/package.conf
-:set -package hxt
-:set -Wall
-
-:def ex0 (\ _ -> return ":set args --trace=1 --encoding=ISO-8859-1 --do-not-validate -o ISO-8859-1 example1.xml")
-
-:def x (\ _ -> return ":load TreeVisualisation\n:ex0\nmain")
-
-:x
-
-:module + IO Main
diff --git a/examples/hsvg/Makefile b/examples/hsvg/Makefile
deleted file mode 100644
--- a/examples/hsvg/Makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-# $Id: Makefile,v 1.7 2006/06/01 15:03:21 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	= 
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./TreeVisualisation
-
-all		: $(prog)
-
-force		:
-		$(GHC) --make -o $(prog) $(prog).hs
-
-$(prog)		: $(prog).hs
-		$(GHC) --make -o $@ $<
-
-# Tree Visualisation Examples
-
-proxy		:= $(shell if [ `hostname` = "si" ] ; then echo -n "--proxy=www-cache.fh-wedel.de:3128" ; else echo -n ; fi)
-
-HTV		= $(prog) -t1 --use-curl --options-curl="-L" --encoding=ISO-8859-1 --parse-html --do-not-issue-warnings --remove-whitespace
-XTV		= $(prog) -t1 --use-curl --do-not-validate --do-not-issue-warnings --remove-whitespace
-
-JPGS		= index.html.jpg \
-		  www.fh-wedel.de.index.html.jpg \
-		  www.w3.org.index.html.jpg \
-		  www.haskell.org.index.html.jpg
-
-vtree		: $(prog) $(JPGS)
-
-index.html.svg	: $(HXT_HOME)/doc/index.html
-		@echo "get Haskell XML Toolbox homepage"
-		$(HTV) --width=800 --height=400 \
-			 $< > $@
-
-www.fh-wedel.de.index.html.svg	:
-		@echo "get FH Wedel homepage"
-		$(HTV) --horizontalTree --horizontalLines --width=600 --height=800 --border 30 \
-			 http://www.fh-wedel.de/ > $@
-
-www.w3.org.index.html.svg	:
-		@echo "get www.w3.org"
-		$(XTV) --centricTree --withAttr --width=1000 --height=1000 $(proxy) \
-			 http://www.w3.org/ > $@
-
-www.haskell.org.index.html.svg	:
-		@echo "get www.haskell.org"
-		$(HTV) --horizontalLines --withAttr --width=600 --height=400 $(proxy) \
-			 http://www.haskell.org/haskellwiki/Haskell > $@
-
-%.jpg		: %.svg
-		svgtoraster -m image/jpeg -q 0.7 `pwd`/$<
-
-%.png		: %.svg
-		svgtoraster -m image/png `pwd`/$<
-
-
-test		:
-		$(MAKE) index.html.svg
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/hsvg
-DIST_FILES	= $(JPGS) $(prog).hs Makefile .ghci
-
-dist		: vtree
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp $(DIST_FILES) $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) *.o *.hi *.jpg *.png
-
-cleanvt		:
-		rm -f \
-		  index.html.jpg \
-		  www.fh-wedel.de.index.html.jpg \
-		  www.w3.org.index.html.jpg \
-		  www.haskell.org.index.html.jpg \
-		  index.html.svg \
-		  www.fh-wedel.de.index.html.svg \
-		  www.w3.org.index.html.svg \
-		  www.haskell.org.index.html.svg
-
diff --git a/examples/hsvg/TreeVisualisation.hs b/examples/hsvg/TreeVisualisation.hs
deleted file mode 100644
--- a/examples/hsvg/TreeVisualisation.hs
+++ /dev/null
@@ -1,449 +0,0 @@
--- |
--- TreeVisualisation - A Haskell XML Toolbox application for
--- a graphic representation of n-ary trees, e.g. XmlTrees
--- with SGML. Input is a XML or HTML document, output a SGML document
--- consisting of a graphical representation of the tree
---
--- Author: Uwe Schmidt uwe@fh-wedel.de
---
--- Version : $Id: TreeVisualisation.hs,v 1.9 2004/09/02 19:11:50 hxml Exp $
-
-module Main where
-
-import Text.XML.HXT.Parser
-
-import System.IO
-import System.Environment
-import System.Console.GetOpt
-
-import System.Exit
-
-import Data.Maybe
-
--- ----------------------------------------------------------
-
--- |
--- compute a layout tree for a given NTree
---
--- the layout tree has a stucture isomophic to the input tree
--- the layout is a pair of (x,y) coordinates. for every node
--- a weight is computed, the space for a tree will be proprtional to
--- the sum of the weight in the tree
-
-treeToWeightedTree	:: (Num b) => (a -> b) -> NTree a -> NTree (b, b)
-treeToWeightedTree wf (NTree n cs)
-    = (NTree (wot, woc) cs')
-      where
-      cs' = map (treeToWeightedTree wf) cs
-      woc = sum . map (\ (NTree (sum', _) _) -> sum') $ cs'
-      wot = woc + wf n
-
--- |
--- auxiliary function called by 'horizontalLayout' for doint the hard work
-
-weightedTreeToHLayout	:: (Fractional a) => a -> a -> NTree (a,a) -> NTree (a,a)
-weightedTreeToHLayout from to (NTree (_wot, woc) cs)
-    = NTree (from, to) cs'
-      where
-      len = to - from
-      cs' = layoutChildren (fromInteger 0) cs
-      layoutChildren _ []
-	  = []
-      layoutChildren start (t1@(NTree (wot1, _woc1) _cs1) : ts)
-	  = weightedTreeToHLayout from' to' t1 : layoutChildren start' ts
-	    where
-	    from'  = (start  / woc) * len + from
-	    to'    = (start' / woc) * len + from
-	    start' = start + wot1
-      
--- |
--- A horizontal layout for a tree generated with 'treeToWeightedTree'
--- is computed. The nodes are positioned in the unit square ((0,0),(1,1))
--- with the origin in the left upper corner. The root node is centered
--- at the top of the square
-
-horizontalLayout	:: (Fractional b) => (a -> b) -> NTree a -> NTree (b,b)
-horizontalLayout weightFct
-    = weightedTreeToHLayout (fromInteger 0) (fromInteger 1) . treeToWeightedTree weightFct
-
--- |
--- layout of a tree in a 1.0 x 1.0 square
--- with the root node centered at the top and the
--- deepest leaves at the bottom
-
-vTreeLayout		:: (Fractional b) => (a -> b) -> NTree a -> NTree (b,b)
-vTreeLayout weightFct t
-    = vLayout (0::Int) . horizontalLayout weightFct $ t
-      where
-      d = (depthNTree t - 1) `max` 1
-      vLayout i (NTree (l,u) cs)
-	  = NTree (x, y) cs'
-	    where
-	    x = (l + u) / fromInteger 2
-	    y = fromInteger (toInteger i) / fromInteger (toInteger d)
-	    cs' = map (vLayout (i + 1)) cs
-
-mirrorLayout		:: NTree (a,a) -> NTree (a,a)
-mirrorLayout
-    = mapNTree (\ (x,y) -> (y, x))
-      
-scaleLayout	:: (RealFrac a) => Int -> Int -> Int -> NTree (a,a) -> NTree (Int,Int)
-scaleLayout border dx dy
-    = mapNTree scale
-      where
-      scale (x,y) = (truncate (x * dx') + border, truncate (y * dy') + border)
-      dx' = fromIntegral (dx - 2 * border)
-      dy' = fromIntegral (dy - 2 * border)
-
-centricLayout	:: (Floating a) => NTree (a,a) -> NTree (a,a)
-centricLayout
-    = mapNTree center
-      where
-      center (x, y)
-	  = ((x' + 1) /2, (y' + 1) /2)
-	    where
-	    phi = (2 * x - 0.5) * pi
-	    r   = y
-	    x'  = cos phi * r
-	    y'  = sin phi * r
--- |
--- map nodes of a NTree to SVG tags
-
-mapNodesToXml	:: (a -> (Int, Int) -> XmlTrees) -> NTree a -> NTree (Int, Int) -> XmlTrees
-mapNodesToXml formatNode layoutTree orgTree
-    = concat . zipWith formatNode (nTreeToList layoutTree) $ (nTreeToList orgTree)
-
-mapNodesToSVG	:: (a -> XmlFilter) -> NTree a -> NTree (Int, Int) -> XmlTrees
-mapNodesToSVG circleLayout
-    = mapNodesToXml drawNode
-      where
-      drawNode n (x,y)
-	  = atag "circle" [ sattr "cx" (show x)
-			  , sattr "cy" (show y)
-			  , circleLayout n
-			  ] $ undefined
-
-mapEdgesToSVG	:: ((Int, Int) -> (Int, Int) -> XmlTrees) -> NTree (Int, Int) -> XmlTrees
-mapEdgesToSVG draw (NTree p1 cs)
-    = concatMap (\ t' -> mkLine t' ++ mapEdgesToSVG draw t') cs
-      where
-      mkLine (NTree p2 _) = draw p1 p2
-
-drawLine	:: XmlFilter -> (Int, Int) -> (Int, Int) -> XmlTrees
-drawLine lineAttrl p1 p2
-    = drawLines lineAttrl [p1,p2]
-
-drawHPath	:: XmlFilter -> (Int, Int) -> (Int, Int) -> XmlTrees
-drawHPath lineAttrl p1@(x1, y1) p2@(x2, y2)
-    = drawLines lineAttrl [p1, (x1,y12), (x2,y12), p2]
-      where
-      y12 = (y1 + y2) `div` 2
-
-drawVPath	:: XmlFilter -> (Int, Int) -> (Int, Int) -> XmlTrees
-drawVPath lineAttrl p1@(x1, y1) p2@(x2, y2)
-    = drawLines lineAttrl [p1, (x12,y1), (x12,y2), p2]
-      where
-      x12 = (x1 + x2) `div` 2
-
-drawLines	:: XmlFilter -> [(Int, Int)] -> XmlTrees
-drawLines attl ps
-    = concat . zipWith draw ps $ tail ps
-      where
-      draw (x1, y1) (x2, y2)
-	  = atag "line" [ sattr "x1" (show x1)
-			, sattr "y1" (show y1)
-			, sattr "x2" (show x2)
-			, sattr "y2" (show y2)
-			, attl
-			] $ undefined
-
--- |
--- filter for copying the attributes into the content part
--- the result does not correspont to a wellformed XML document
--- but for drawing the tree inclusive attributes this works fine
-
-moveAttrlToContent	:: XmlFilter
-moveAttrlToContent
-    = processChildren
-      ( processBottomUp
-	( substChildren (getAttrl +++ getChildren) `when` isXTag ) )
-
--- |
--- the main transformation filter
-
-xmlTreeToSVG	:: XmlFilter
-xmlTreeToSVG t
-    = rootTag [ getAttrl ]
-      [ getChildren
-	.>
-        isXTag						-- get the root tag
-	.>
-	cat [ dtd DOCTYPE [ sattr a_name "svg"
-			  , sattr k_public "-//W3C//DTD SVG 1.1//EN"
-			  , sattr k_system "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"
-			  ] []
-	    , tag "svg"
-	      [ sattr "width"		(show widthInt)
-	      , sattr "height"		(show heightInt)
-	      , sattr "version"		"1.1"
-	      , sattr "xmlns"		"http://www.w3.org/2000/svg"
-	      , sattr "xmlns:xlink"	"http://www.w3.org/1999/xlink"		-- currently not used
-	      ]
-	      [ stag "title" [ txt source]
-	      , tag "text" [ sattr "x" "10"		-- draw source uri
-			   , sattr "y" "22"
-			   , sattr "font-size" "12"
-			   , sattr "fill" "grey"
-			   ] [ txt ("source: " ++ source)
-			     ]
-	      , legend (10, heightInt - 5 * pixelPerLine - 10)
-		[ (tagColor,  "tag")
-		, (textColor, "text")
-		, (attrColor, "attribute")
-		, (cmtColor,  "comment")
-		, (defColor,  "others")
-				]
-	      , nodesToSVG
-		. scaleLayout borderWidthInt widthInt heightInt
-		. layoutFct
-		. vTreeLayout nSize
-	      ]
-	    ]
-      ] .> addXmlPiToDoc $ t
-      where
-      t1 = head . (getChildren .> isXTag) $ t		-- the root tag
-	   
-      pixelPerLine = 15
-
-      legend	:: (Int, Int) -> [(String, String)] -> XmlFilter
-      legend (x1, y1) ls
-	  = cat (zipWith legend1 ps ls)
-	    where
-	    ps = map (\ y' -> (x1, y1 + y' * pixelPerLine)) [0..]
-	    legend1 (x', y') (color, text)
-		= cat [ atag "circle" [ sattr "cx" (show (x' + 5))
-				      , sattr "cy" (show (y' + 10))
-				      , sattr "r" "5"
-				      , sattr "fill" color
-				      , sattr "stroke-width" lineWidth
-				      , sattr "stroke" lineColor
-				      ]
-		      , tag "text" [ sattr "x" (show (x' + pixelPerLine))
-				   , sattr "y" (show (y' + pixelPerLine))
-				   , sattr "font-size" "12"
-				   , sattr "fill" "grey"
-				   ] [ txt text
-				     ]
-		      ]
-	    
-      defValueOf attr' def' t'
-	  | null res  = def'
-	  | otherwise = res
-	  where
-	  res = valueOf attr' t'
-
-      width	    = defValueOf "width"		"800"		t
-      height        = defValueOf "height"		"600"		t
-      nodeScale     = defValueOf "nodeSize"		"1"		t
-      borderWidth   = defValueOf "borderWidth"          "20"		t
-      lineWidth     = defValueOf "lineWidht"		"1"		t
-      lineColor     = defValueOf "lineColor"		"grey"		t
-      textColor     = defValueOf "textNodeColor"	"blue"		t
-      tagColor      = defValueOf "tagNodeColor"		"red"		t
-      attrColor     = defValueOf "attrNodeColor"	"green"		t
-      cmtColor      = defValueOf "cmtNodeColor"		"magenta"	t
-      defColor      = defValueOf "defaultNodeColor"	"grey"		t
-      layout	    = defValueOf "layout"               "vertical"      t
-      lineStyle     = defValueOf "lineStyle"	        "line"          t
-      source        = valueOf a_source               			t
-
-      widthInt, heightInt, borderWidthInt	    :: Int
-
-      widthInt	    = read width  `max` 100
-      heightInt	    = read height `max` 100
-      borderWidthInt= read borderWidth
-
-      nodesToSVG t' = mapEdgesToSVG (edgeLayoutFct edgeLayout) t'
-		      ++
-		      mapNodesToSVG nodeLayout t1 t'
-
-      nodeLayout n
-	  = cat [ sattr "fill"         nColor
-		, sattr "stroke"       ( if r < 5	-- if circle too small
-					 then nColor	-- border is drawn in the same color as cirle
-					 else lineColor
-				       )
-		, sattr "stroke-width" lineWidth
-		, sattr "r"            (show r)
-		]
-	    where
-	    (nColor, nSz) = nLayout n
-	    nSz1          = nSz * (read nodeScale)
-	    r             = (round (sqrt (fromInteger (toInteger nSz1))::Double))::Int
-
-      nSize	:: XNode -> Double
-      nSize	= fromInteger . toInteger . snd . nLayout
-
-      nLayout (XTag _tn _)	= (tagColor,	9)		-- constant size for tags
-      nLayout (XText tx)	= (textColor,	length tx)
-      nLayout (XAttr _an)	= (attrColor,	4)		-- attributes are smaller than tags
-      nLayout (XCmt c)		= (cmtColor,	length c)
-      nLayout _			= (defColor,	1)		-- entities, PI's, dtd stuff, ...
-
-      layoutFct	    :: NTree (Double,Double) -> NTree (Double,Double)
-      layoutFct
-	  = fromJust . lookup layout
-	    $ [ ("vertical",	           id)
-	      , ("horizontal",	mirrorLayout )
-	      , ("centric",    centricLayout )
-	      ]
-
-      edgeLayoutFct
-	  = fromJust . lookup (layout, lineStyle)
-	    $ [ (("vertical",	"line"),	drawLine  )
-	      , (("vertical",	"fork"),	drawHPath )
-	      , (("horizontal",	"line"),	drawLine  )
-	      , (("horizontal",	"fork"),	drawVPath )
-	      , (("centric",	"line"),	drawLine  )
-	      , (("centric",	"fork"),	drawLine  )
-	      ]
-
-      edgeLayout
-	  = cat [ sattr "stroke"       lineColor
-		, sattr "stroke-width" "1"
-		]
-
--- ----------------------------------------------------------
-
--- |
--- the main program of the Haskell XML Validating Parser
-
-main :: IO ()
-main
-    = do
-      argv <- getArgs
-      al   <- cmdlineOpts argv
-      res  <- run' (xmlToSVG al emptyRoot)
-      exitProg (null res)				-- set return code and terminate
-
--- ------------------------------------------------------------
-
-exitProg	:: Bool -> IO a
-exitProg True	= exitWith (ExitFailure (-1))
-exitProg False	= exitWith ExitSuccess
-
--- ------------------------------------------------------------
-
--- |
--- the /real/ main program
---
--- runs in the trivial XmlState monad (with user state set to ())
--- so IO and access to global options is possible
-
-xmlToSVG	:: Attributes -> XmlStateFilter state
-xmlToSVG al
-    = parseDocument al					-- read document
-      .>>
-      traceMsg 1 "start processing"
-      .>>
-      liftMf
-      ( canonicalizeAllNodes
-	.>
-	( moveAttrlToContent `when` hasAttr "withAttr" )
-	.>
-	xmlTreeToSVG
-	.>
-	indentDoc
-      )
-      .>>
-      traceMsg 1 "processing finished"
-      .>>
-      traceSource
-      .>>
-      traceTree
-      .>>
-      ( writeDocument [ (a_indent, v_1) ]
-	`whenM`
-	getChildren
-      )
-      .>>
-      checkStatus
-
--- ------------------------------------------------------------
---
--- the options definition part
--- see doc for System.Console.GetOpt
-
-progName	:: String
-progName	= "TreeVisualisation"
-    
-options 	:: [OptDescr (String, String)]
-options
-    = generalOptions
-      ++
-      inputOptions
-      ++
-      outputOptions
-      ++
-      showOptions
-      ++
-      [ Option ""	["width"]		(ReqArg (nat "width")	"NUM")		"SVG image width in pixel, default: 800"
-      , Option ""	["height"]		(ReqArg (nat "height")	"NUM")		"SVG image height in pixel, default: 600"
-      , Option ""	["withAttr"]		(NoArg  (att "withAttr"	"1"))		"show tag attributes, default: no"
-      , Option ""	["nodeSize"]		(ReqArg (nat "nodeSize") "NUM")		"scale size of nodes, default: 1"
-      , Option ""	["lineWidth"]		(ReqArg (nat "lineWidth") "NUM")	"width of edges in pixel, default: 1\n"
-      , Option ""	["border"]		(ReqArg (nat "borderWidth") "NUM")	"border around tree in pixel, default: 20\n"
-
-      , Option ""	["verticalTree"]	(NoArg  (att "layout" "vertical"))	"vertical tree layout, root centered at the top border"
-      , Option ""	["horizontalTree"]	(NoArg  (att "layout" "horizontal"))	"horizontal tree layout, root centered at the left border"
-      , Option ""	["centricTree"]		(NoArg  (att "layout" "centric"))	"layout with root in the center"
-      , Option ""	["directLines"]		(NoArg  (att "lineStyle" "line"))	"edges are drawn as direct lines"
-      , Option ""	["horizontalLines"]	(NoArg  (att "lineStyle" "fork"))	"edges are drawn as a path of horizontal and vertical lines\n"
-
-      , Option ""	["textNodeColor"]	(ReqArg (att "textNodeColor") "COLOR")	"text node: color name or RGB value in format \"#RRGGBB\""
-      , Option ""	["tagNodeColor"]	(ReqArg (att "tagNodeColor") "COLOR")	"tag node color"
-      , Option ""	["attrNodeColor"]	(ReqArg (att "attrNodeColor") "COLOR")	"attribute node color"
-      , Option ""	["cmtNodeColor"]	(ReqArg (att "cmtNodeColor") "COLOR")	"comment node color"
-      , Option ""	["defaultNodeColor"]	(ReqArg (att "defNodeColor") "COLOR")	"other node color"
-      ]
-    where
-    att n v	= (n, v)
-    nat n v	= (n, filter (`elem` "0123456789") v)
-
-usage		:: [String] -> IO a
-usage errl
-    | null errl
-	= do
-	  hPutStrLn stdout use
-	  exitProg False
-    | otherwise
-	= do
-	  hPutStrLn stderr (concat errl ++ "\n" ++ use)
-	  exitProg True
-    where
-    header = "TreeVisualisation - An example application of the Haskell XML Toolbox\n" ++
-             "for the visualisation of the structure of a XML document with SVG\n" ++
-             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"
-    use    = usageInfo header options
-
-cmdlineOpts 	:: [String] -> IO (Attributes)
-cmdlineOpts argv
-    = case (getOpt Permute options argv) of
-      (ol,n,[]  )
-	  -> do
-	     sa <- src n
-	     help (lookup a_help ol)
-	     return (ol ++ sa)
-      (_,_,errs)
-	  -> usage errs
-    where
-    src []	= usage ["no input url or file given\n"]
-    src [url]	= return [("source", url)]
-    src _	= usage ["only one input uri or file allowed\n"]
-
-    help Nothing	= return ()
-    help (Just _)	= usage []
-
--- ------------------------------------------------------------
-
-
diff --git a/examples/hsvg/index.html.jpg b/examples/hsvg/index.html.jpg
deleted file mode 100644
Binary files a/examples/hsvg/index.html.jpg and /dev/null differ
diff --git a/examples/hsvg/www.fh-wedel.de.index.html.jpg b/examples/hsvg/www.fh-wedel.de.index.html.jpg
deleted file mode 100644
Binary files a/examples/hsvg/www.fh-wedel.de.index.html.jpg and /dev/null differ
diff --git a/examples/hsvg/www.haskell.org.index.html.jpg b/examples/hsvg/www.haskell.org.index.html.jpg
deleted file mode 100644
Binary files a/examples/hsvg/www.haskell.org.index.html.jpg and /dev/null differ
diff --git a/examples/hsvg/www.w3.org.index.html.jpg b/examples/hsvg/www.w3.org.index.html.jpg
deleted file mode 100644
Binary files a/examples/hsvg/www.w3.org.index.html.jpg and /dev/null differ
diff --git a/examples/hunit/HUnitExample.hs b/examples/hunit/HUnitExample.hs
deleted file mode 100644
--- a/examples/hunit/HUnitExample.hs
+++ /dev/null
@@ -1,616 +0,0 @@
--- |
--- HUnit - Haskell XML Toolbox examples and tests
---
--- Author: Uwe Schmidt uwe@fh-wedel.de
---
--- Version : $Id: HUnitExample.hs,v 1.8 2005/04/14 12:52:51 hxml Exp $
-
-module Main where
-
-import System
-import Test.HUnit
-import Text.XML.HXT.Parser
-import Data.Char
-
-aMinimalDoc	:: XmlTree
-aMinimalDoc	= mkRootTree [] (xtext "<?xml version='1.0'?><x/>")
-
-aSimpleXHTMLDoc	:: XmlTree
-aSimpleXHTMLDoc
-    = mkRootTree
-      ( xattr a_source "simple.xml" )
-      ( xtext 
-	( concatMap (++ "\n")
-	  [ "<?xml version='1.0'?>"
-	  , "<html>"
-	  , " <head><title>A Simple XHTML Document</title></head>"
-	  , " <body>"
-	  , " </body>"
-	  , "</html>"
-	  ]
-	)
-      )
-
-mkMinimalDoc	:: String -> XmlTree
-mkMinimalDoc cont
-    = mkRootTree [] (xtext cont)
-
-mkInputDoc	:: String -> XmlTree
-mkInputDoc src
-    = mkRootTree ( xattr a_source src) []
-
-mkDoc	:: String -> XmlTree
-mkDoc cont
-    = mkRootTree
-      ( xattr a_source "a test")
-      ( xtext ("<?xml version='1.0' encoding='" ++ isoLatin1 ++ "'?>\n" ++ cont) )
-
--- |
--- compare trees
-
-testEqualTrees	:: XmlTrees -> XmlTrees -> Test
-testEqualTrees e1 e2
-    = TestCase $
-      assertEqual "" e1 e2
-
--- |
--- testDocFilter creates a test for the application of a pure
--- functional filter to a XML tree. The result is converted into
--- the external string representation and compared with the expected
--- result.
---
--- see also: 'testStateFilter' and 'testEditFilter'
-
-testDocFilter	:: String -> XmlFilter -> XmlTree -> Test
-testDocFilter expected xfilter doc
-    = TestCase $
-      assertEqual "" expected (xshow $ xfilter doc)
-
--- |
--- testStateFilter creates a test for monadic filters, doing IO and using
--- the internal state, consisting of program options and status information
--- The filter is applied to a XML tree, the result is converted to a string
--- and this result is compared with the expected result.
---
--- see also: 'testEditFilter' for pure functional filters
-
-testStateFilter	:: String -> XmlStateFilter () -> XmlTree -> Test
-testStateFilter expected xfilter input
-    = TestCase $
-      do
-      res <- run' $ xfilter input
-      assertEqual "" expected (xshow res)
-
--- |
--- The test bed for edit filter for external documents.
--- The input tree must specify the external document to be read.
--- This document is checked for wellformedness, canonicalized
--- (char refs substituted, ...) and processed with the edit filter.
--- The result is transformed into the string representation and compared
--- with the expected string.
-
-testEditFilter	:: String -> XmlFilter -> XmlTree -> Test
-testEditFilter expected xfilter input
-    = TestCase $
-      do
-      res <- run'
-	     $ ( getWellformedDoc					-- read the document
-		 .>>
-		 liftMf canonicalizeAllNodes				-- normalize the document and remove <?xml ... ?> decl
-		 .>>
-		 liftMf ( processChildren xfilter )			-- apply the editing filter only to the 'real' document
-		 .>>				  			-- nodes, not to nodes surrounding the document tag
-		 putXmlTree						-- just trace output
-		 .>>
-		 liftMf getChildren					-- just for comparing the document contents
-	       )
-	     input
-      assertEqual "" expected (xshow res)
-
-
--- |
--- ausiliary function to make haskell string constants with quotes more readable
-
-singleToDoubleQuote	:: String -> String
-singleToDoubleQuote
-    = map (\ c -> if c == '\'' then '"' else c)
-
--- |
--- the complete set of test cases
-
-allTests	:: Test
-allTests
-    = TestList
-      [ constructionTests
-      , treeConstructionTests
-      , parseTests
-      , inputTests
-      , removeTests
-      , simpleSelectionTests
-      , namespaceTests
-      ]
-
--- |
--- tree versus filter construction tests
--- documents may be constructed by tree operations
--- or with the more flexible filter operations applied to an arbitray tree
-
-treeConstructionTests :: Test
-treeConstructionTests
-    = TestLabel "tree and filter construction tests" $
-      TestList $
-      map (\ (t, f) -> testEqualTrees t (f undefined) )
-      [ (xtext "xyz",				txt "xyz"			)
-      , (xcmt "cmt",				cmt "cmt"			)
-      , (xtag "img" [] [],			tag "img" [] []			)
-      , (xtag "img" [] [],			etag "img"			)
-
-      , (xtag "img" (xattr "b" "13") [],	tag "img" [sattr "b" "13"] []	)
-
-      , (xtag "img" (xattr "b" "13") [],	atag "img" [sattr "b" "13"]	)
-
-      , (xtag "t" (xattr "a" "42" ++ xattr "b" "id")
-	          (xtext "abc"),
-						tag "t" [sattr "a" "42", sattr "b" "id"]
-	 						[txt "abc"]		)
-      ]
-
--- |
--- construction tests are all applied to the empty document,
--- no information is used from that document,
--- but construction is lifted to the filter level.
--- this is more general than explicit construction.
--- in more complex examples some information may be extracted from
--- the source, some can be constant.
--- 
--- see also: 'testDocFilter'
-
-constructionTests	:: Test
-constructionTests
-    = TestLabel "document construction tests" $
-      TestList $
-      map (\ (res, f) -> testDocFilter res f undefined)		-- undefined or something else, e.g. emptyRoot
-      [ ("<x/>"		, mkXTag  "x" none none	)
-      , ("<x/>"		, tag "x"  [] []	)		-- syntactically more comfortable shortcut for mkXTag
-      , ("<x/>"		, stag "x" []		)		-- shortcut for tags without attributes
-      , ("<x/>"		, atag "x" []		)		-- shortcut for empty tags with attributes
-      , ("<x/>"		, etag "x"		)		-- shortcut for empty tags without attributes
-
-      , ("<x a=\"1\"/>"
-			, mkXTag "x" (mkXAttr "a" (mkXText "1")) none	)
-      , ("<x a=\"1\">42</x>"
-			, mkXTag "x" (mkXAttr "a" (mkXText "1")) (mkXText "42")	)
-      , ("<x a=\"1\">42</x>"
-			, tag "x" [ attr "a" $ txt "1" ] [ txt "42" ]	)
-      , ("<x a=\"1\">42</x>"
-			, tag "x" [ sattr "a" "1" ] [ txt "42" ]	)
-
-      , ("<x a=\"1\"/>"	, atag "x" [ sattr "a" "1" ]	)
-
-      , ("<x a=\"1\" b=\"2\">42<y/>43</x>"
-			, tag "x" [ sattr "a" "1"
-				  , sattr "b" "2"
-				  ] [ txt  "42"
-				    , etag "y"
-				    , txt  "43"
-				    ]	)
-      , ("<!-- a comment -->"
-			, mkXCmt $ txt " a comment "	)
-      , ("<!--a comment-->"
-			, cmt "a comment"	)		-- short cut for uncomputed comment
-
-      , ("<!-- an illegal XML comment containing 2 -- in comment text -->"
-			, cmt " an illegal XML comment containing 2 -- in comment text "	)
-
-      , ("&#42;"   	, mkXCharRef 42		)
-      , ("&lt;"    	, mkXEntityRef "lt"	)
-      , ("<![CDATA[<abc>]]>"
-			, mkXCdata $ txt "<abc>")
-      , ("<![CDATA[<abc>]]>"			-- short cut for uncomputed cdata content
-			, cdata "<abc>")
-      , ("<?abc xyz?>"	, mkXPi "abc" $ txt "xyz"	)
-      , ("<?abc xyz?>"	, spi "abc" "xyz"	)	-- short cut for an uncomputed pi content
-      ]
-
--- |
--- simple selection tests
-
-simpleSelectionTests	:: Test
-simpleSelectionTests
-    = TestLabel "simple tree selection tests" $
-      TestList $
-      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)
-      [ (src		, this	)
-      , ("1"		, getValue "a"	)
-      , (""		, getValue "b"	)
-      , (body1		, getChildren	)
-
-				-- text selection
-      , ("xyz"		, getChildren .> isXText	)
-      , ("xyz"		, getChildren .> isText "xyz"	)
-      , (""		, getChildren .> isText "abc"	)
-      , ("xyz"		, getChildren .> isOfText (>="x")	)
-      , (""		, getChildren .> isOfText (<"x")	)
-      , (""		, getChildren .> isWhiteSpace	)
-
-				-- tag selection
-      , ("<t a='42' b='id'>abc</t><img b='13'/><y x='0'/><z/>"
-			, getChildren .> isXTag	)
-
-				-- comment selection
-      , ("<!--cmt-->"	, getChildren .> isXCmt	)
-
-				-- text OR tag selection
-      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"
-			, getChildren .> (isXTag +++ isXText)	)
-
-				-- generalised OR
-      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"
-			, getChildren .> cat [isXTag, isXText]	)
-
-      , ("abc"		, getChildren .> getChildren	)
-
-				-- atribute value selection
-      , ("1"		, getValue "a"	)
-
-      , ("<t a='42' b='id'>abc</t>"
-			, getChildren .> isTag "t"	)
-
-				-- attribute selection
-      , ("<t a='42' b='id'>abc</t>"
-			, getChildren .> hasAttr "a"	)
-
-      , ("42"		, getChildren .> getValue "a"	)
-      , ("42"		, getChildren .> hasValue "a" (all isDigit)	)
-      , ("13"		, getChildren .> hasValue "b" (all isDigit)	)
-      , (""		, getChildren .> isTag "t" .> hasValue "b" (all isDigit)	)
-      , ("42"		, getChildren .> hasValue "a" (== "42")	)
-      , (""		, getChildren .> hasValue "a" (== "43")	)
-      , ("42"		, getChildren .> hasValue "a" (\ str -> ((read str)::Int) > 40)	)
-      , ("42"		, getChildren .> hasValue "a" (not . null)	)
-      , ("id13"		, getChildren .> hasValue "b" (const True)	)
-      , ("13"		, getChildren .> isTag "img" .> hasValue "b" (const True)	)
-      , (""		, getChildren .> hasValue "c" (const True)	)
-
-      , (" a='42' b='id' b='13' x='0'"
-			, getChildren .> getAttrl	)
-
-      , (" a='42' b='id'"
-			, getChildren .> isTag "t" .> getAttrl	)
-
-      , ("42id"		, getChildren .> isTag "t" .> getAttrl .> getChildren	)
-
-      , (" b='id' b='13'"
-			, getChildren .> getAttrl .> isAttr "b"	)
-
-      , (" b='13'"	, getChildren .> isTag "img" .> getAttrl .> isAttr "b"	)
-      , ("13"		, getChildren .> isTag "img" .> getAttrl .> isAttr "b" .> getChildren	)
-      , ("13"		, getChildren .> isTag "img" .> getValue "b"	)
-      , ("timgyz"	, getChildren .> getName	)
-      , ("t"		, getChildren .> isTag "t" .> getName	)
-      , ("abbx"		, getChildren .> getAttrl  .> getName	)
-      , ("bb"		, getChildren .> getAttrl  .> isAttr "b" .> getName	)
-      , ("ab"		, getChildren .> isTag "t" .> getAttrl   .> getName	)
-      , ("b"		, getChildren .> isTag "t" .> getAttrl   .> isAttr "b" .> getName	)
-
-				-- deep search for text or tags
-      , ("abcxyz"       , deep isXText	)
-      , ("abc"	        , deep (isTag "t") .> deep isXText	)
-      ]
-    where
-    src = "<r a='1'>" ++ body1 ++ "</r>"
-    body1 = "<!--cmt-->"
-	    ++ "<t a='42' b='id'>abc</t>"
-	    ++ "<img b='13'/>"
-	    ++ "xyz"
-	    ++ "<y x='0'/>"
-	    ++ "<z/>"
-
-    sDocFilter
-	= tag "r" [ sattr "a" "1" ]
-	    [ cmt "cmt"
-	    , tag "t" [ sattr "a" "42", sattr "b" "id" ]
-		[ txt "abc"
-		]
-	    , atag "img" [ sattr "b" "13" ]
-	    , txt "xyz"
-	    , atag "y" [ sattr "x" "0" ]
-	    , etag "z"
-	    ]
-    simpleDoc = head $ sDocFilter undefined
-
--- |
--- simple tests with namespaces
-
-namespaceTests	:: Test
-namespaceTests
-    = TestLabel "namespace tests" $
-      TestList $
-      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)
-      [ (src		, this	)
-					-- select all "t" tags, even nested ones (multi) and extract the text from the body
-      , ("sssaaa"	, multi (isTag "t"                    .> getChildren .> isXText)	)
-
-					-- select all text within all tags of a specific namespace
-      , ("sssaaazzzeee"	, multi (isXTag .> hasNamespace "dns" .> getChildren .> isXText)	)
-      , ("bbb"		, multi (isXTag .> hasNamespace "n1"  .> getChildren .> isXText)	)
-      , ("cccdddfffggg"	, multi (isXTag .> hasNamespace "n2"  .> getChildren .> isXText)	)
-
-					-- select all text within all tags with a specific local name
-      , ("sssaaabbbcccdddzzz"
-			, multi (isXTag .> hasLocalPart "t"   .> getChildren .> isXText)	)
-      , ("eee"		, multi (isXTag .> hasLocalPart "e"   .> getChildren .> isXText)	)
-
-					-- select all text within all tags with a specific prefix
-      , ("bbbddd"	, multi (isXTag .> hasPrefix "x"      .> getChildren .> isXText)	)
-      , ("ccc"		, multi (isXTag .> hasPrefix "y"      .> getChildren .> isXText)	)
-      , ("zzz"		, multi (isXTag .> hasPrefix "z"      .> getChildren .> isXText)	)
-      , ("sssaaaeeefffggg"
-			, multi (isXTag .> hasPrefix ""       .> getChildren .> isXText)	)
-
-					-- select all attribute values of a specific namespace
-					-- !!! the default namespace is not propagated to attribute names
-      , ("z5"		, multi (isXTag .> getAttrl .> hasNamespace "dns"   .> getChildren)	)
-      , ("2z4"		, multi (isXTag .> getAttrl .> hasNamespace "n1"    .> getChildren)	)
-      , ("x3y3u4"	, multi (isXTag .> getAttrl .> hasNamespace "n2"    .> getChildren)	)
-      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)
-
-					-- select namespaces from all namespace declarations
-      , ("dnsn1n2dnsn2n2"
-			, multi (isXTag .> getAttrl .> isNamespaceDecl .> getChildren)	)
-
-					-- all default namespace declarations
-      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)
-
-					-- all none default namespace declarations
-      , ("n1n2dnsn2"	, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> getChildren)	)
-      , ("n1n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "x" .> getChildren)	)
-      , ("n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "y" .> getChildren)	)
-      , ("dns"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "z" .> getChildren)	)
-      ]
-    where
-						-- the text representation of the tree
-						-- with ' instead of " for readablility of the string constants
-    src = "<t xmlns='dns' xmlns:x='n1' xmlns:y='n2' xmlns:z='dns'>"
-	  ++ "sss"
-	  ++ "<t a='1' x:a='2'>aaa</t>"
-	  ++ "<x:t a='x1' y:a='x3'>bbb</x:t>"
-	  ++ "<y:t a='y1' y:a='y3'>ccc</y:t>"
-	  ++ "<x:t xmlns:x='n2' x:a='u4'>ddd</x:t>"
-	  ++ "<z:t x:a='z4' z:a='z5'>zzz</z:t>"
-	  ++ "<e b='42'>eee</e>"
-	  ++ "<f xmlns='n2'>fff<g>ggg</g></f>" ++
-	  "</t>"
-
-						-- the filter for generating the test document
-    sDocFilter
-	= tag "t" [ sattr "xmlns"   "dns"	-- 4 namespace declarations
-		  , sattr "xmlns:x" "n1"
-		  , sattr "xmlns:y" "n2"
-		  , sattr "xmlns:z" "dns"
-		  ]
-            [ txt "sss"
-	    , tag "t" [ sattr "a"   "1"
-		      , sattr "x:a" "2" ]
-	        [ txt "aaa"
-		]
-	    , tag "x:t" [ sattr "a"   "x1"
-			, sattr "y:a" "x3"
-			]
-	        [ txt "bbb"
-		]
-	    , tag "y:t" [ sattr "a"   "y1"
-			, sattr "y:a" "y3"
-			]
-	        [ txt "ccc"
-		]
-	    , tag "x:t" [ sattr "xmlns:x" "n2"	-- redefinition of prefix x:
-			, sattr "x:a" "u4"
-			]
-	        [ txt "ddd"
-		]
-	    , tag "z:t" [ sattr "x:a" "z4"
-			, sattr "z:a" "z5"
-			]
-	        [ txt "zzz"
-		]
-	    , tag "e" [ sattr "b" "42" ]
-                [ txt "eee"
-		]
-	    , tag "f" [ sattr "xmlns" "n2"	-- redefinition of default namespace
-		      ]
-                [ txt "fff"
-		, tag "g" [ ]
-		    [ txt "ggg" ]
-		]
-	    ]
-						-- create document and propagate namespaces
-    simpleDoc = head $ (sDocFilter .> propagateNamespaces) undefined
-
--- |
--- minimal tests for parsing data.
---
--- the tests are document trees with a root
--- node containing a single text node with the document source.
--- That tree is passed to the parser, which substitutes the text node with the parsed xml tree.
--- In general this may be a list of trees containing also the
--- surrounding parts like the xml declaraion, the document type definition
--- possibly comments and processing instructions.
---
--- see also: 'testStateFilter'
-
-parseTests	:: Test
-parseTests
-    = TestLabel "minimal parser tests" $
-      TestList 
-      [ testStateFilter "</><x/><//>"	parseXmlDoc				mini	-- the tree inclusive root node
-      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		mini	-- only the content
-      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		min2	-- same content
-      , testStateFilter ""	(parseXmlDoc .>> liftMf getChildren)		minErr	-- syntax error: content empty
-      , testStateFilter errr	(parseXmlDoc .>> liftMf (getValue a_status))	minErr	-- syntax error reported in a_status
-      ]
-    where
-    errr	= show c_err
-    mini	= mkMinimalDoc "<x/>"
-    min2	= mkMinimalDoc "<x></x>"
-    minErr	= mkMinimalDoc "<x>"
-
-
--- |
--- simple external file containing one tag
-
-mini1		:: XmlTree
-mini1		= newDocument "mini1.xml"		-- test documents
-
--- |
--- simple external file containing one tag
-
-mini2		:: XmlTree
-mini2		= newDocument "mini2.xml"
-
--- |
--- simple not existing external file
-
-notThere	:: XmlTree
-notThere	= newDocument "notThere.xml"		-- does not exist
-
--- |
--- These test check the access to external files
--- and error reporting in case of input or parse errors
--- Some test issue tree like trace output of the documents read
--- to show the internal structure and nesting
-
-inputTests	:: Test
-inputTests
-    = TestLabel "input tests" $
-      TestList
-      [ testStateFilter "mini1.xml"
-	                        ( putXmlTree .>>
-				  liftMf (getValue a_source)
-				)					mini1
-      , testStateFilter ok	( liftMf (getValue a_status)
-				)					mini1
-      , testStateFilter ""	( liftMf getChildren
-				)					mini1
-      , testStateFilter "<x/>"	( getXmlContents .>>
-				  putXmlTree .>>
-				  liftMf getChildren
-				)					mini1
-      , testStateFilter ok	( getXmlContents .>>
-				  liftMf (getValue a_status)
-				)					mini1
-      , testStateFilter "4"	( getXmlContents .>>
-				  liftMf getContentLength .>>
-				  putXmlTree .>>
-				  liftMf (getValue a_contentLength)
-				)					mini1
-      , testStateFilter ok	( getXmlContents .>>
-				  liftMf (getValue a_status)
-				)					mini2
-      , testStateFilter ""	( getXmlContents .>>
-				  putXmlTree .>>
-				  liftMf getChildren
-				)					notThere
-      , testStateFilter fat	( getXmlContents .>>
-				  liftMf (getValue a_status)
-				)					notThere
-      ]
-    where
-    ok	= show c_ok
-    fat	= show c_fatal
-
--- |
--- A few tests for removing parts of a document tree.
--- As input tree the document in file mini2.xml is used.
-
-removeTests	:: Test
-removeTests
-    = TestLabel "document transformation tests" $
-      TestList
-      [ testEditFilter allText	getAllText				mini2
-      , testEditFilter allData  (removeAllWhiteSpace .> getAllText)	mini2
-      , testEditFilter allImp	(removeIgnorableData .> getAllText)	mini2
-      , testEditFilter allDat	(removeMeta .> getAllText)		mini2
-      ]
-    where
-    getAllText			= deep isXText
-    containsUnknownOrIgnore	= getChildren .> ( isText "unknown"
-						   +++
-						   isText "ignore"
-						 )
-    removeIgnorableData		= processTopDown ( none
-						   `when`
-						   ( isTag "data" .> containsUnknownOrIgnore )
-						 )
-    removeMeta			= processTopDown ( none
-						   `when`
-						   ( isTag "data" .> hasValue "class" ( == "meta" ) )
-						 )
-    allText	= " ignore unknown important important "
-    allData	= "ignoreunknownimportantimportant"
-    allImp	= "   important important "
-    allDat	= " ignore  important  "
-
-
-ys :: XmlTree
-ys = head $
-     tag "s:Envelope"
-     [ sattr "xmlns:s" "http://schemas.xmlsoap.org/soap/envelope/",
-       sattr "xmlns:xenc" "http://www.w3.org/2001/04/xmlenc#",
-       sattr "xmlns:eg" "http://example.org/paymentv2",
-       sattr "xmlns:wsse" "http://schemas.xmlsoap.org/ws/2002/12/secext"
-     ]
-     [ stag "s:Header"
-       [ stag "wsse:Security"
-         [ tag "wsse:BinarySecurityToken"
-           [ sattr "ValueType" "wsse:Kerberosv5ST",
-             sattr "EncodingType" "wsse:Base64Binary"
-           ]
-           [ txt "QMwcAG ..."
-           ]
-	 ]
-       ],
-       stag "s:Body"
-       [ stag "eg:OrderCurrency"
-         [ stag "eg:Name"
-           [ txt "John Smith" ],
-	   tag "eg:Amount"
-           [ sattr "Currency" "'USD'" ]
-	   [ txt "1000" ],
-	   tag "eg:CreditCard"
-           [ sattr "Limit" "'5000'",
-	     sattr "Currency" "'GBP'"
-	   ]
-	   [ stag "xenc:EncryptedData"
-             [ atag "xenc:EncryptionMethod"
-               [ sattr "Algorithm" "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" ]
-             ],
-	     stag "xenc:CipherData"
-             [ stag "xenc:CipherValue"
-               [ txt "r5KipsDV ..." ]
-             ]
-	   ]
-         ]
-       ]
-     ]
-     .> propagateNamespaces
-     .> indentDoc
-     $ undefined
-
-
-main	:: IO ()
-main
-    = do
-      c <- runTestTT allTests
-      putStrLn $ show c
-      let errs = errors c
-	  fails = failures c
-      System.exitWith (codeGet errs fails)
-
-codeGet	:: Int -> Int -> ExitCode
-codeGet errs fails
-    | fails > 0       = ExitFailure 2
-    | errs > 0        = ExitFailure 1
-    | otherwise       = ExitSuccess
-
--- ----------------------------------------------------------
diff --git a/examples/hunit/Makefile b/examples/hunit/Makefile
deleted file mode 100644
--- a/examples/hunit/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: Makefile,v 1.6 2005/04/14 12:52:51 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	=
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./HUnitExample
-
-all		: $(prog)
-
-force		:
-		$(GHC) --make $(GHCPACKAGES) -o $(prog) $(prog).hs
-
-$(prog)		: $(prog).hs
-		$(GHC) --make $(GHCPACKAGES) -o $@ $<
-
-test		: $(prog)
-		@echo "===> run HUnit examples" ; echo ; sleep 2
-		$(prog)
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/hunit
-DIST_FILES	= mini1.xml mini2.xml Makefile $(prog).hs
-
-dist		:
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp $(DIST_FILES) $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) $(prog).o $(prog).hi
-
diff --git a/examples/hunit/mini1.xml b/examples/hunit/mini1.xml
deleted file mode 100644
--- a/examples/hunit/mini1.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<x/>
diff --git a/examples/hunit/mini2.xml b/examples/hunit/mini2.xml
deleted file mode 100644
--- a/examples/hunit/mini2.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<data> <data class="data">ignore</data> <data class="meta">unknown</data> <data><data class="data">important</data> <data class="meta">important</data></data> </data>
diff --git a/examples/hxpath/HXPath.hs b/examples/hxpath/HXPath.hs
deleted file mode 100644
--- a/examples/hxpath/HXPath.hs
+++ /dev/null
@@ -1,162 +0,0 @@
--- |
--- HXPath - XPath Evaluator of the Haskell XML Toolbox
---
--- Author : Torben Kuseler, Uwe Schmidt
---
--- Version : $Id: HXPath.hs,v 1.8 2004/09/02 19:11:53 hxml Exp $
-
-module Main(main)
-where
-
-import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML
-import Text.XML.HXT.XPath
-
-import System.IO			-- import the IO and commandline option stuff
-import System.Environment
-import System.Console.GetOpt
-import System.Exit
-
-import Data.Maybe
-
-
--- ------------------------------------------------------------
-
--- |
--- the main program of the Haskell XML Validating Parser
-
-main :: IO ()
-main
-    = do
-      argv <- getArgs
-      al   <- cmdlineOpts argv
-      res  <- run'
-	      $ xpath
-		    $ newDocument' al			-- build a XML root from the list and start parsing
-      exitProg (null res)				-- set return code and terminate
-
--- ------------------------------------------------------------
-
-exitProg	:: Bool -> IO a
-exitProg True	= exitWith (ExitFailure (-1))
-exitProg False	= exitWith ExitSuccess
-
--- ------------------------------------------------------------
-
--- |
--- the /real/ main program
---
--- runs in the trivial XmlState monad (with user state set to ())
--- so IO and access to global options is possible
-
-xpath	:: XmlStateFilter state
-xpath t
-    = parseDocument []
-      .>>
-      evalXPathExpr
-      .>>
-      traceMsg 1 "evaluation finished"
-      .>>
-      traceSource
-      .>>
-      traceTree
-      .>>
-      liftMf formatXPathResult
-      .>>
-      writeDocument []
-      .>>
-      checkStatus
-      $ t
-      where
-
-      evalXPathExpr		:: XmlStateFilter state
-      evalXPathExpr t'
-	  = let
-	    expr = valueOf "expr" t'
-	    res1 = getXPath expr  t'
-            in
-	    do
-	    trace 1 ("evaluating XPath expression" ++ show expr)
-	    res2 <- issueError $$< res1
-	    return ( if length res2 == length res1
-		     then replaceChildren res2 t'
-		     else replaceChildren []   t'
-		   )
-
-      formatXPathResult 	:: XmlFilter
-      formatXPathResult t'
-	  = replaceChildren (xpRes t') t'
-	    where
-	    xpRes
-		= mkXTag "xpath-result" xpAttr formatRes
-	    xpAttr
-		= ( getAttrl
-		    .> ( isAttr "expr"
-			 +++
-			 isAttr "source"
-		       )
-		  )
-	    formatRes
-		= addFirstNL . (getChildren .> (this +++ nl))
-	    addFirstNL
-		= (nl t' ++)
-	    nl	= if newline
-		  then txt "\n"
-		  else none
-            newline
-		= satisfies (hasAttr a_indent) t'
-
--- ------------------------------------------------------------
---
--- the options definition part
--- see doc for System.Console.GetOpt
-
-progName	:: String
-progName	= "HXPath"
-    
-options 	:: [OptDescr (String, String)]
-options
-    = generalOptions
-      ++
-      inputOptions
-      ++
-      outputOptions
-
-usage		:: [String] -> IO a
-usage errl
-    | null errl
-	= do
-	  hPutStrLn stdout use
-	  exitProg False
-    | otherwise
-	= do
-	  hPutStrLn stderr (concat errl ++ "\n" ++ use)
-	  exitProg True
-    where
-    header = "HXPath - XPath Evaluator of the Haskell XML Toolbox\n" ++
-             "Usage: " ++ progName ++ " [OPTION...] <XPath expr> <URL or FILE>"
-    use    = usageInfo header options
-
-cmdlineOpts 	:: [String] -> IO (Attributes)
-cmdlineOpts argv
-    = case (getOpt Permute options argv) of
-      (ol,n,[]  )
-	  -> do
-	     help (lookup a_help ol)
-	     sa <- src n
-	     return (ol ++ sa)
-      (_,_,errs)
-	  -> usage errs
-    where
-    src [expr, url]
-	= return [(a_source, url), ("expr", expr)]
-    src []
-	= usage ["XPath expression and input file/url missing"]
-    src [_]
-	= usage ["input file/url missing"]
-    src _
-	= usage ["too many arguments"]
-
-    help Nothing	= return ()
-    help (Just _)	= usage []
-
--- ------------------------------------------------------------
diff --git a/examples/hxpath/Makefile b/examples/hxpath/Makefile
deleted file mode 100644
--- a/examples/hxpath/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-# $Id: Makefile,v 1.6 2005/04/14 12:52:52 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	= 
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./HXPath
-
-all		: $(prog)
-
-force		:
-		$(GHC) --make -o $(prog) $(prog).hs
-
-$(prog)		: $(prog).hs
-		$(GHC) --make -o $@ $<
-
-EX		= ../xhtml/xhtml.xml
-
-test		: $(prog)
-		@echo "===> XPath extraction examples" ; echo ; sleep 2
-		@$(MAKE) test1 test2 test3 test4
-
-test1		:
-		@echo "===> extract all text from the XHTML document" ; echo ; sleep 2
-		$(prog) --do-not-validate "/html/body/descendant-or-self::text()" $(EX)
-		@echo
-
-test2		:
-		@echo "===> extract the 42. paragraph from the XHTML document" ; echo ; sleep 2
-		$(prog) --do-not-validate "/descendant::p[position()=42]" $(EX)
-		@echo
-
-test3		:
-		@echo "===> extract the text of all top level h1 tags from the XHTML document" ; echo ; sleep 2
-		$(prog) --indent --do-not-validate "/child::html/child::body/child::h1/descendant-or-self::text()" $(EX)
-		@echo
-
-test4		:
-		@echo "===> extract all href attributes from a tags from the XHTML document" ; echo ; sleep 2
-		$(prog) --indent --do-not-validate "/descendant::a/attribute::href" $(EX)
-		@echo
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/hxpath
-
-dist		:
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp Makefile $(prog).hs $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) *.hi *.o
diff --git a/examples/mini/Makefile b/examples/mini/Makefile
deleted file mode 100644
--- a/examples/mini/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id: Makefile,v 1.5 2005/04/14 12:52:52 hxml Exp $
-
-HXT_HOME	= ../..
-PKGFLAGS	=
-GHCFLAGS	= -Wall -O2
-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
-
-prog		= ./ParseExample
-
-all		: $(prog)
-
-force		:
-		$(GHC) --make -o $(prog) $(prog).hs
-
-$(prog)		: $(prog).hs
-		$(GHC) --make -o $@ $<
-
-test		: $(prog)
-		@echo "===> a very simple test"
-		@echo "===> a xml source"
-		@cat example1.xml
-		@sleep 2; echo "===> parse, validate and normalise the document"
-		$(prog) example1.xml
-
-DIST		= $(HXT_HOME)/dist/examples
-DIST_DIR	= $(DIST)/mini
-
-dist		:
-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp example1.xml Makefile $(prog).hs $(DIST_DIR)
-
-clean		:
-		rm -f $(prog) *.o *.hi
-
diff --git a/examples/mini/ParseExample.hs b/examples/mini/ParseExample.hs
deleted file mode 100644
--- a/examples/mini/ParseExample.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- |
--- This is a simple example for parsing and validating an XML file and printing the generated
--- XmlTree to standard out.
---
--- Author : .\\artin Schmidt
--- Version : $Id: ParseExample.hs,v 1.4 2004/09/02 19:11:53 hxml Exp $
-
-module Main(main)
-where
-
-import Text.XML.HXT.Parser
-
-import System.IO
-import System
-
---
--- call this program with a single parameter for the file or uri to be processed
--- e.g. ParseExample example1.xml
-
-main :: IO ()
-main
-    = do
-      argv <- getArgs
-			      -- take the first cmdline argument as source name
-			      -- start the XState monad with the runParser command
-      res  <- run' $ parser [(a_source, head argv)] emptyRoot
-      exitProg res
-
--- run a command in the XState monad.
--- this monad includes the IO monad, a system state for global options
--- and a user definable state (type parameter state). This user state is
--- set to () (the empty state) by the run' command.
--- There are more general run commands: run, run0 in case of a proccessing
--- function, that requires e.g. an environment
-
-parser	:: Attributes -> XmlStateFilter ()
-parser al
-    = parseDocument al
-      .>>
-      writeDocument [(a_indent, v_1)]	-- indent document and output to stdout
-      .>>
-      checkStatus			-- check status
-
--- ------------------------------------------------------------
-
-exitProg	:: [a] -> IO ()
-exitProg []	= exitWith (ExitFailure (-1))
-exitProg _	= exitWith ExitSuccess
-
--- ------------------------------------------------------------
diff --git a/examples/mini/example1.xml b/examples/mini/example1.xml
deleted file mode 100644
--- a/examples/mini/example1.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!DOCTYPE a [
-<!ATTLIST a  att1  NMTOKENS  #IMPLIED
-             att2  ID        #REQUIRED>
-<!ATTLIST b  btt2  ID        #REQUIRED
-             btt3  IDREF     #REQUIRED>
-<!ELEMENT a  (b, cü?)>
-<!ELEMENT b  EMPTY>
-<!ELEMENT cü (#PCDATA)>
-]>
-
-<?pi a processing instruction?>
-
-<a att1=" test
-          äöüß
-          test "
-   att2="root"
->
-    <b btt2="b1" btt3="root"/>
-    <cü>hello world äöüß test</cü>
-</a>
diff --git a/hxt.cabal b/hxt.cabal
--- a/hxt.cabal
+++ b/hxt.cabal
@@ -1,6 +1,6 @@
 -- arch-tag: Haskell XML Toolbox main description file
 name: hxt
-version: 7.5
+version: 8.0.0
 license: OtherLicense
 license-file: LICENCE
 maintainer: Uwe Schmidt <uwe@fh-wedel.de>
@@ -29,7 +29,6 @@
   Control.Arrow.ListArrow,
   Control.Arrow.ListArrows,
   Control.Arrow.StateListArrow,
-  Control.Monad.MonadStateIO,
   Control.Strategies.DeepSeq,
   Data.AssocList,
   Data.Char.UTF8,
@@ -39,7 +38,6 @@
   Data.Tree.NTree.TypeDefs,
   System.PipeOpen,
   Text.XML.HXT.Arrow,
-  Text.XML.HXT.Arrow.DOMInterface,
   Text.XML.HXT.Arrow.DTDProcessing,
   Text.XML.HXT.Arrow.DocumentInput,
   Text.XML.HXT.Arrow.DocumentOutput,
@@ -58,40 +56,34 @@
   Text.XML.HXT.Arrow.XPathSimple,
   Text.XML.HXT.Arrow.XmlArrow,
   Text.XML.HXT.Arrow.XmlIOStateArrow,
-  Text.XML.HXT.Arrow.XmlNode,
-  Text.XML.HXT.DOM,
-  Text.XML.HXT.DOM.EditFilters,
+  Text.XML.HXT.Arrow.XmlRegex,
   Text.XML.HXT.DOM.FormatXmlTree,
+  Text.XML.HXT.DOM.Interface,
   Text.XML.HXT.DOM.IsoLatinTables,
-  Text.XML.HXT.DOM.Namespace,
-  Text.XML.HXT.DOM.NamespaceFilter,
   Text.XML.HXT.DOM.NamespacePredicates,
   Text.XML.HXT.DOM.QualifiedName,
+  Text.XML.HXT.DOM.ShowXml,
   Text.XML.HXT.DOM.TypeDefs,
   Text.XML.HXT.DOM.UTF8Decoding,
   Text.XML.HXT.DOM.Unicode,
   Text.XML.HXT.DOM.Util,
   Text.XML.HXT.DOM.XmlKeywords,
+  Text.XML.HXT.DOM.XmlNode,
   Text.XML.HXT.DOM.XmlOptions,
-  Text.XML.HXT.DOM.XmlState,
-  Text.XML.HXT.DOM.XmlTree,
-  Text.XML.HXT.DOM.XmlTreeFilter,
-  Text.XML.HXT.DOM.XmlTreeFunctions,
   Text.XML.HXT.DOM.XmlTreeTypes,
+  Text.XML.HXT.DTDValidation.AttributeValueValidation,
+  Text.XML.HXT.DTDValidation.DTDValidation,
+  Text.XML.HXT.DTDValidation.DocTransformation,
+  Text.XML.HXT.DTDValidation.DocValidation,
+  Text.XML.HXT.DTDValidation.IdValidation,
+  Text.XML.HXT.DTDValidation.RE,
+  Text.XML.HXT.DTDValidation.TypeDefs,
+  Text.XML.HXT.DTDValidation.Validation,
+  Text.XML.HXT.DTDValidation.XmlRE,
   Text.XML.HXT.IO.GetFILE,
   Text.XML.HXT.IO.GetHTTPCurl,
   Text.XML.HXT.IO.GetHTTPNative,
-  Text.XML.HXT.Parser,
-  Text.XML.HXT.Parser.DTDProcessing,
-  Text.XML.HXT.Parser.DefaultURI,
   Text.XML.HXT.Parser.HtmlParsec,
-  Text.XML.HXT.Parser.HtmlParser,
-  Text.XML.HXT.Parser.MainFunctions,
-  Text.XML.HXT.Parser.ProtocolHandler,
-  Text.XML.HXT.Parser.ProtocolHandlerFile,
-  Text.XML.HXT.Parser.ProtocolHandlerHttpCurl,
-  Text.XML.HXT.Parser.ProtocolHandlerHttpNative,
-  Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl,
   Text.XML.HXT.Parser.ProtocolHandlerUtil,
   Text.XML.HXT.Parser.TagSoup,
   Text.XML.HXT.Parser.XhtmlEntities,
@@ -99,10 +91,7 @@
   Text.XML.HXT.Parser.XmlDTDParser,
   Text.XML.HXT.Parser.XmlDTDTokenParser,
   Text.XML.HXT.Parser.XmlEntities,
-  Text.XML.HXT.Parser.XmlInput,
-  Text.XML.HXT.Parser.XmlOutput,
   Text.XML.HXT.Parser.XmlParsec,
-  Text.XML.HXT.Parser.XmlParser,
   Text.XML.HXT.Parser.XmlTokenParser,
   Text.XML.HXT.RelaxNG,
   Text.XML.HXT.RelaxNG.BasicArrows,
@@ -124,15 +113,6 @@
   Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C,
   Text.XML.HXT.RelaxNG.XmlSchema.Regex,
   Text.XML.HXT.RelaxNG.XmlSchema.RegexParser,
-  Text.XML.HXT.Validator.AttributeValueValidation,
-  Text.XML.HXT.Validator.DTDValidation,
-  Text.XML.HXT.Validator.DocTransformation,
-  Text.XML.HXT.Validator.DocValidation,
-  Text.XML.HXT.Validator.IdValidation,
-  Text.XML.HXT.Validator.RE,
-  Text.XML.HXT.Validator.Validation,
-  Text.XML.HXT.Validator.ValidationFilter,
-  Text.XML.HXT.Validator.XmlRE,
   Text.XML.HXT.XPath,
   Text.XML.HXT.XPath.NavTree,
   Text.XML.HXT.XPath.XPathArithmetic,
@@ -150,11 +130,12 @@
   Text.XML.HXT.XSLT.Names,
   Text.XML.HXT.XSLT.XsltArrows
  hs-source-dirs: src
- ghc-options: -Wall -fglasgow-exts
+ ghc-options: -Wall
+ extensions: MultiParamTypeClasses DeriveDataTypeable FunctionalDependencies FlexibleInstances
 
- build-depends: base, haskell98, parsec, HTTP, HUnit, network, tagsoup
+ build-depends: base, haskell98 >= 1, parsec >= 2.1 && < 3, HTTP >= 3001.0.4, HUnit >= 1.2, network >= 2.1, tagsoup >= 0.6
  if flag(splitBase)
-   build-depends: base >= 3, containers, directory, process
+   build-depends: base >= 3, containers >= 0.1, directory >= 1, process >= 1
  else
    build-depends: base < 3
 
diff --git a/src/Control/Arrow/ArrowIf.hs b/src/Control/Arrow/ArrowIf.hs
--- a/src/Control/Arrow/ArrowIf.hs
+++ b/src/Control/Arrow/ArrowIf.hs
@@ -85,6 +85,11 @@
     guardsP		:: (b -> Bool) -> a b d -> a b d
     f `guardsP` g	= ifP f g none
 
+    -- | shortcut for @ f `guards` this @
+
+    filterA		:: a b c -> a b b
+    filterA f		= ifA f this none
+
     -- | @ f \`containing\` g @ : keep only those results from f for which g holds
     --
     -- definition: @ f \`containing\` g = f >>> g \`guards\` this @
diff --git a/src/Control/Arrow/IOListArrow.hs b/src/Control/Arrow/IOListArrow.hs
--- a/src/Control/Arrow/IOListArrow.hs
+++ b/src/Control/Arrow/IOListArrow.hs
@@ -8,9 +8,8 @@
    Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: IOListArrow.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $
 
-Implementation of pure list arrows with io
+   Implementation of pure list arrows with IO
 
 -}
 
diff --git a/src/Control/Monad/MonadStateIO.hs b/src/Control/Monad/MonadStateIO.hs
deleted file mode 100644
--- a/src/Control/Monad/MonadStateIO.hs
+++ /dev/null
@@ -1,94 +0,0 @@
--- |
--- general usefull state monad for a local state and IO
---
--- Version : $Id: MonadStateIO.hs,v 1.1 2004/09/02 19:11:55 hxml Exp $
-
-
-module Control.Monad.MonadStateIO
-    ( module Control.Monad.MonadStateIO
-    )
-where
-
-import System.IO
-
--- ------------------------------------------------------------
-
-newtype StateIO state res = STIO { trans :: state -> IO (res, state) }
-
-instance Monad (StateIO state) where
-    return v
-	= STIO ( \s -> return (v, s))
-
-    STIO cmd >>= f
-	= STIO ( \s ->
-		  cmd s >>= \ (rl, s') ->
-		  (trans . f) rl s'
-		)
-
--- ------------------------------------------------------------
--- |
--- lift IO command to 'StateIO'
-
-io :: IO a -> StateIO state a
-io iocmd
-    = STIO ( \s ->
-	     do
-	     a <- iocmd
-	     return (a, s)
-	   )
-
--- ------------------------------------------------------------
-
--- |
--- state inspection command: a \"show\"-like function is applied to the state
--- and the result is written to stderr.
-
-trcState	:: (state -> String) -> StateIO state ()
-trcState fct
-    = STIO ( \s ->
-	      do
-	      hPutStr stderr $ fct s
-	      return ((), s)
-	    )
-
--- ------------------------------------------------------------
---
--- state access commands
-
--- |
--- change the state with a given function and return the new state
-
-changeState	:: (state -> state) -> StateIO state state
-changeState f
-    = STIO ( \s ->
-	     let s' = f s
-	     in
-	     return (s', s')
-	    )
-
--- |
--- set the state
-
-setState	:: state -> StateIO state state
-setState s
-    = changeState ( \_ -> s )
-
--- |
--- read the state
-
-getState	:: StateIO state state
-getState
-    = changeState id
-
--- ------------------------------------------------------------
--- |
--- run a 'StateIO' command with an initial state
-
-run :: state -> StateIO state res -> IO res
-run initialState (STIO cmd)
-    = do
-      (res, _finalState) <- cmd initialState
-      return res
-
-
--- ------------------------------------------------------------
diff --git a/src/Data/NavTree.hs b/src/Data/NavTree.hs
--- a/src/Data/NavTree.hs
+++ b/src/Data/NavTree.hs
@@ -6,11 +6,11 @@
 
 module Data.NavTree
     ( module Data.NavTree
-    , module Data.Tree.NTree.Filter
+    , module Data.Tree.NTree.TypeDefs
     )
 where
 
-import Data.Tree.NTree.Filter
+import Data.Tree.NTree.TypeDefs
 import Data.Maybe
 
 -- -----------------------------------------------------------------------------
diff --git a/src/HXT.hs b/src/HXT.hs
--- a/src/HXT.hs
+++ b/src/HXT.hs
@@ -7,7 +7,6 @@
     ) -}
 where
 
-import Text.XML.HXT.Parser as Parser
-import Text.XML.HXT.XPath as XPath
-import Text.XML.HXT.Arrow as Arrow
-import Text.XML.HXT.RelaxNG as Relax
+import Text.XML.HXT.XPath as XPath()
+import Text.XML.HXT.Arrow as Arrow()
+import Text.XML.HXT.RelaxNG as Relax()
diff --git a/src/Makefile b/src/Makefile
--- a/src/Makefile
+++ b/src/Makefile
@@ -2,7 +2,8 @@
 #
 # global names and dirs
 
-VERSION		= 7.5
+include ../Version.mk
+
 HXT_HOME	= ..
 HXT_HOME_PATH	= $(shell cd $(HXT_HOME) ; pwd)
 PACKAGE_DIR	= $(HXT_HOME_PATH)/lib/hxt
@@ -51,65 +52,118 @@
 #
 # hxt package variables and rules
 
-HXT_SRC		= $(wildcard ./Data/*.hs) \
-		  $(wildcard ./Data/Char/*.hs) \
-		  $(wildcard ./Data/Tree/*.hs) \
-		  $(wildcard ./Data/Tree/NTree/*.hs) \
-		  $(wildcard ./Control/Arrow/*.hs) \
-		  $(wildcard ./Control/Monad/*.hs) \
-		  $(wildcard ./Control/Strategies/*.hs) \
-		  $(wildcard ./System/*.hs) \
-		  $(wildcard ./Text/XML/HXT/[DPX]*.hs) \
-		  $(wildcard ./Text/XML/HXT/DOM/*.hs) \
-		  $(wildcard ./Text/XML/HXT/Parser/*.hs) \
-		  $(wildcard ./Text/XML/HXT/Validator/*.hs) \
-		  $(wildcard ./Text/XML/HXT/XPath/*.hs) \
-		  $(wildcard ./Text/XML/HXT/Arrow.hs) \
-		  $(wildcard ./Text/XML/HXT/Arrow/[DEGNPRWX]*.hs) \
-		  $(wildcard ./Text/XML/HXT/Arrow/Pickle/*.hs) \
-		  $(wildcard ./Text/XML/HXT/IO/*.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG/*.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/[BC]*.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG/XmlSchema/*.hs) \
-		  $(wildcard ./Text/XML/HXT/XSLT/[ACNX]*.hs)
-
-HXT_SRC_FILTER	= $(wildcard ./Data/*.hs) \
-		  $(wildcard ./Data/Char/*.hs) \
-		  $(wildcard ./Data/Tree/*.hs) \
-		  $(wildcard ./Data/Tree/NTree/*.hs) \
-		  $(wildcard ./Control/Monad/*.hs) \
-		  $(wildcard ./Control/Strategies/*.hs) \
-		  $(wildcard ./System/*.hs) \
-		  $(wildcard ./Text/XML/HXT/[DIPX]*.hs) \
-		  $(wildcard ./Text/XML/HXT/DOM/*.hs) \
-		  $(wildcard ./Text/XML/HXT/Parser/*.hs) \
-		  $(wildcard ./Text/XML/HXT/Validator/*.hs) \
-		  $(wildcard ./Text/XML/HXT/XPath/*.hs) \
-
-HXT_SRC_ARROW	= $(wildcard ./Data/*.hs) \
-		  $(wildcard ./Data/Char/*.hs) \
-		  $(wildcard ./Data/Tree/*.hs) \
-		  $(wildcard ./Data/Tree/NTree/T*.hs) \
-		  $(wildcard ./Control/Arrow/*.hs) \
-		  $(wildcard ./Control/Monad/*.hs) \
-		  $(wildcard ./Control/Strategies/*.hs) \
-		  $(wildcard ./Text/XML/HXT/[A]*.hs) \
-		  $(wildcard ./Text/XML/HXT/DOM/NamespacePredicates.hs) \
-		  $(wildcard ./Text/XML/HXT/DOM/[IQTU]*.hs) \
-		  $(wildcard ./Text/XML/HXT/DOM/XmlKeywords.hs) \
-		  $(wildcard ./Text/XML/HXT/Parser/XmlOptions.hs) \
-		  $(wildcard ./Text/XML/HXT/Arrow.hs) \
-		  $(wildcard ./Text/XML/HXT/Arrow/[DEGNPRWX]*.hs) \
-		  $(wildcard ./Text/XML/HXT/Arrow/Pickle/*.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG/[DSV]*.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/[BC]*.hs) \
-		  $(wildcard ./Text/XML/HXT/RelaxNG/XmlSchema/*.hs) \
-		  $(wildcard ./Text/XML/HXT/XSLT/[ACNX]*.hs)
-
-
-# HXT_OBJ		= $(patsubst %.lhs,%.o,$(patsubst %.hs,%.o,$(HXT_SRC)))		# no .lhs sources
-# HXT_HI		= $(patsubst %.lhs,%.hi,$(patsubst %.hs,%.hi,$(HXT_SRC)))
+HXT_SRC	= \
+	Control/Arrow/ArrowIf.hs \
+	Control/Arrow/ArrowIO.hs \
+	Control/Arrow/ArrowList.hs \
+	Control/Arrow/ArrowState.hs \
+	Control/Arrow/ArrowStrict.hs \
+	Control/Arrow/ArrowTree.hs \
+	Control/Arrow/IOListArrow.hs \
+	Control/Arrow/IOStateListArrow.hs \
+	Control/Arrow/ListArrow.hs \
+	Control/Arrow/ListArrows.hs \
+	Control/Arrow/StateListArrow.hs \
+	Control/Strategies/DeepSeq.hs \
+	Data/AssocList.hs \
+	Data/Char/UTF8.hs \
+	Data/NavTree.hs \
+	Data/Tree/Class.hs \
+	Data/Tree/NTree/Filter.hs \
+	Data/Tree/NTree/TypeDefs.hs \
+	System/PipeOpen.hs \
+	Text/XML/HXT/Arrow/DocumentInput.hs \
+	Text/XML/HXT/Arrow/DocumentOutput.hs \
+	Text/XML/HXT/Arrow/DTDProcessing.hs \
+	Text/XML/HXT/Arrow/Edit.hs \
+	Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs \
+	Text/XML/HXT/Arrow.hs \
+	Text/XML/HXT/Arrow/Namespace.hs \
+	Text/XML/HXT/Arrow/ParserInterface.hs \
+	Text/XML/HXT/Arrow/Pickle/DTD.hs \
+	Text/XML/HXT/Arrow/Pickle.hs \
+	Text/XML/HXT/Arrow/Pickle/Schema.hs \
+	Text/XML/HXT/Arrow/Pickle/Xml.hs \
+	Text/XML/HXT/Arrow/ProcessDocument.hs \
+	Text/XML/HXT/Arrow/ReadDocument.hs \
+	Text/XML/HXT/Arrow/WriteDocument.hs \
+	Text/XML/HXT/Arrow/XmlArrow.hs \
+	Text/XML/HXT/Arrow/XmlIOStateArrow.hs \
+	Text/XML/HXT/Arrow/XmlRegex.hs \
+	Text/XML/HXT/Arrow/XPath.hs \
+	Text/XML/HXT/Arrow/XPathSimple.hs \
+	Text/XML/HXT/DOM/FormatXmlTree.hs \
+	Text/XML/HXT/DOM/Interface.hs \
+	Text/XML/HXT/DOM/IsoLatinTables.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 \
+	Text/XML/HXT/DOM/Unicode.hs \
+	Text/XML/HXT/DOM/UTF8Decoding.hs \
+	Text/XML/HXT/DOM/Util.hs \
+	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 \
+	Text/XML/HXT/DTDValidation/DTDValidation.hs \
+	Text/XML/HXT/DTDValidation/IdValidation.hs \
+	Text/XML/HXT/DTDValidation/RE.hs \
+	Text/XML/HXT/DTDValidation/TypeDefs.hs \
+	Text/XML/HXT/DTDValidation/Validation.hs \
+	Text/XML/HXT/DTDValidation/XmlRE.hs \
+	Text/XML/HXT/IO/GetFILE.hs \
+	Text/XML/HXT/IO/GetHTTPCurl.hs \
+	Text/XML/HXT/IO/GetHTTPNative.hs \
+	Text/XML/HXT/Parser/HtmlParsec.hs \
+	Text/XML/HXT/Parser/ProtocolHandlerUtil.hs \
+	Text/XML/HXT/Parser/TagSoup.hs \
+	Text/XML/HXT/Parser/XhtmlEntities.hs \
+	Text/XML/HXT/Parser/XmlCharParser.hs \
+	Text/XML/HXT/Parser/XmlDTDParser.hs \
+	Text/XML/HXT/Parser/XmlDTDTokenParser.hs \
+	Text/XML/HXT/Parser/XmlEntities.hs \
+	Text/XML/HXT/Parser/XmlParsec.hs \
+	Text/XML/HXT/Parser/XmlTokenParser.hs \
+	Text/XML/HXT/RelaxNG/BasicArrows.hs \
+	Text/XML/HXT/RelaxNG/CreatePattern.hs \
+	Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs \
+	Text/XML/HXT/RelaxNG/DataTypeLibraries.hs \
+	Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs \
+	Text/XML/HXT/RelaxNG/DataTypes.hs \
+	Text/XML/HXT/RelaxNG.hs \
+	Text/XML/HXT/RelaxNG/PatternFunctions.hs \
+	Text/XML/HXT/RelaxNG/PatternToString.hs \
+	Text/XML/HXT/RelaxNG/SchemaGrammar.hs \
+	Text/XML/HXT/RelaxNG/Schema.hs \
+	Text/XML/HXT/RelaxNG/Simplification.hs \
+	Text/XML/HXT/RelaxNG/Unicode/Blocks.hs \
+	Text/XML/HXT/RelaxNG/Unicode/CharProps.hs \
+	Text/XML/HXT/RelaxNG/Utils.hs \
+	Text/XML/HXT/RelaxNG/Validation.hs \
+	Text/XML/HXT/RelaxNG/Validator.hs \
+	Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs \
+	Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs \
+	Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs \
+	Text/XML/HXT/XPath.hs \
+	Text/XML/HXT/XPath/NavTree.hs \
+	Text/XML/HXT/XPath/XPathArithmetic.hs \
+	Text/XML/HXT/XPath/XPathDataTypes.hs \
+	Text/XML/HXT/XPath/XPathEval.hs \
+	Text/XML/HXT/XPath/XPathFct.hs \
+	Text/XML/HXT/XPath/XPathKeywords.hs \
+	Text/XML/HXT/XPath/XPathParser.hs \
+	Text/XML/HXT/XPath/XPathToNodeSet.hs \
+	Text/XML/HXT/XPath/XPathToString.hs \
+	Text/XML/HXT/XSLT/Application.hs \
+	Text/XML/HXT/XSLT/Common.hs \
+	Text/XML/HXT/XSLT/Compilation.hs \
+	Text/XML/HXT/XSLT/CompiledStylesheet.hs \
+	Text/XML/HXT/XSLT/Names.hs \
+	Text/XML/HXT/XSLT/XsltArrows.hs
 
 HXT_OBJ		= $(HXT_SRC:.hs=.o)
 HXT_HI		= $(HXT_SRC:.hs=.hi)
@@ -211,21 +265,8 @@
 clean_packages	:
 		$(MAKE) clean_$(HXT_PACKAGE)
 
-doc		: $(HXT_SRC)
-		[ -d $(HDOC_DIR) ] || mkdir -p $(HDOC_DIR)
-		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The complete API" -o $(HDOC_DIR) $(HXT_SRC)
-
-doc_arrow	: $(HXT_SRC_ARROW)
-		[ -d $(HDOC_DIR_ARROW) ] || mkdir -p $(HDOC_DIR_ARROW)
-		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The Arrow API" -o $(HDOC_DIR_ARROW) $(HXT_SRC_ARROW)
-
-doc_filter	: $(HXT_SRC_FILTER)
-		[ -d $(HDOC_DIR_FILTER) ] || mkdir -p $(HDOC_DIR_FILTER)
-		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The Filter API" -o $(HDOC_DIR_FILTER) $(HXT_SRC_FILTER)
-
 clean		:
 		$(MAKE) clean_packages
-		$(MAKE) -C ./Text/XML/HXT/ProtocolHandler clean
 		rm -rf $(LOCAL_INSTALL_DIR) hxt-package.conf ../hxt.cabal
 
 clean_$(HXT_PACKAGE)	:
@@ -233,11 +274,10 @@
 
 # ------------------------------------------------------------
 
-DIST		= $(HXT_HOME)/dist
+DIST		= ../$(DIST_NAME)
 DIST_DIR	= $(DIST)/src
 DIST_FILES	= Makefile \
 		  $(HXT_SRC) $(HXT_DRIVER:.o=.hs) hxt-package.hs \
-		  ./Text/XML/HXT/ProtocolHandler/ProtocolHandler.hs ./Text/XML/HXT/ProtocolHandler/Makefile \
 		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/G*.hs) \
 		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/Makefile) \
 		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/*.txt)
diff --git a/src/Text/XML/HXT/Arrow.hs b/src/Text/XML/HXT/Arrow.hs
--- a/src/Text/XML/HXT/Arrow.hs
+++ b/src/Text/XML/HXT/Arrow.hs
@@ -23,7 +23,7 @@
 module Text.XML.HXT.Arrow
     ( module Control.Arrow.ListArrows
 
-    , module Text.XML.HXT.Arrow.DOMInterface
+    , module Text.XML.HXT.DOM.Interface
 
     , module Text.XML.HXT.Arrow.XmlArrow
     , module Text.XML.HXT.Arrow.XmlIOStateArrow
@@ -45,9 +45,9 @@
 
 import Control.Arrow.ListArrows			-- arrow classes
 
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.DocumentInput
 import Text.XML.HXT.Arrow.DocumentOutput
-import Text.XML.HXT.Arrow.DOMInterface
 import Text.XML.HXT.Arrow.Edit
 import Text.XML.HXT.Arrow.GeneralEntitySubstitution
 import Text.XML.HXT.Arrow.Namespace
@@ -57,6 +57,7 @@
 import Text.XML.HXT.Arrow.WriteDocument
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
+import Text.XML.HXT.Arrow.XmlRegex ()		-- import this "by hand"
 import Text.XML.HXT.Arrow.XPath
 import qualified				-- just for adding the module to the lib
        Text.XML.HXT.Arrow.XPathSimple as XPS ()
diff --git a/src/Text/XML/HXT/Arrow/DOMInterface.hs b/src/Text/XML/HXT/Arrow/DOMInterface.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Arrow/DOMInterface.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- |
--- The interface to the DOM data types and constants
---
--- Version : $Id: DOMInterface.hs,v 1.2 2006/11/09 20:27:42 hxml Exp $
---
-
-
-module Text.XML.HXT.Arrow.DOMInterface
-    ( 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
-    )
-where
-
-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
-
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Arrow/DTDProcessing.hs b/src/Text/XML/HXT/Arrow/DTDProcessing.hs
--- a/src/Text/XML/HXT/Arrow/DTDProcessing.hs
+++ b/src/Text/XML/HXT/Arrow/DTDProcessing.hs
@@ -30,9 +30,9 @@
 import Control.Arrow.ArrowIf
 import Control.Arrow.ArrowTree
 
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode as XN
 
-import Text.XML.HXT.Arrow.DOMInterface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
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
@@ -40,7 +40,7 @@
 import qualified Text.XML.HXT.IO.GetHTTPNative	as HTTP
 import qualified Text.XML.HXT.IO.GetHTTPCurl	as CURL
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
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
@@ -16,7 +16,7 @@
 import Text.XML.HXT.DOM.Unicode
     ( getOutputEncodingFct )
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
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
@@ -62,10 +62,12 @@
 
 import Control.Arrow.ListArrow
 
-import Text.XML.HXT.Arrow.DOMInterface
 import Text.XML.HXT.Arrow.XmlArrow
 
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
+import Text.XML.HXT.DOM.Interface
+
+import qualified
+       Text.XML.HXT.DOM.XmlNode as XN
 
 import Text.XML.HXT.DOM.Unicode
     ( isXmlSpaceChar )
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
@@ -25,7 +25,7 @@
 import Control.Arrow.ArrowIf
 import Control.Arrow.ArrowTree
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
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
@@ -38,7 +38,7 @@
 import Control.Arrow.ArrowTree
 import Control.Arrow.ListArrow
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 
 import Data.Maybe
diff --git a/src/Text/XML/HXT/Arrow/ParserInterface.hs b/src/Text/XML/HXT/Arrow/ParserInterface.hs
--- a/src/Text/XML/HXT/Arrow/ParserInterface.hs
+++ b/src/Text/XML/HXT/Arrow/ParserInterface.hs
@@ -16,14 +16,14 @@
 import Text.XML.HXT.Parser.XmlEntities	( xmlEntities   )
 import Text.XML.HXT.Parser.XhtmlEntities( xhtmlEntities )
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 
 import qualified Text.XML.HXT.Parser.TagSoup		 as TS
 import qualified Text.XML.HXT.Parser.HtmlParsec          as HP
 import qualified Text.XML.HXT.Parser.XmlParsec           as XP
 import qualified Text.XML.HXT.Parser.XmlDTDParser	 as DP
-import qualified Text.XML.HXT.Validator.ValidationFilter as VA
+import qualified Text.XML.HXT.DTDValidation.Validation   as VA
 
 -- ------------------------------------------------------------
 
@@ -78,8 +78,12 @@
 validateDoc
   , transformDoc		:: ArrowList a => a XmlTree XmlTree
 
-validateDoc			= arrL VA.validate
-transformDoc			= arrL VA.transform
+validateDoc			= fromLA VA.validate
+transformDoc			= fromLA VA.transform
+
+-- old stuff
+-- validateDoc			= arrL VA.validate
+-- transformDoc			= arrL VA.transform
 
 -- ------------------------------------------------------------
 
diff --git a/src/Text/XML/HXT/Arrow/Pickle.hs b/src/Text/XML/HXT/Arrow/Pickle.hs
--- a/src/Text/XML/HXT/Arrow/Pickle.hs
+++ b/src/Text/XML/HXT/Arrow/Pickle.hs
@@ -95,7 +95,7 @@
 
 import           Control.Arrow.ListArrows
 
-import           Text.XML.HXT.Arrow.DOMInterface
+import           Text.XML.HXT.DOM.Interface
 import           Text.XML.HXT.Arrow.XmlArrow
 import           Text.XML.HXT.Arrow.XmlIOStateArrow
 import           Text.XML.HXT.Arrow.ReadDocument
@@ -114,13 +114,15 @@
 -- The pickler converts a value into an XML tree, this is written out with
 -- 'Text.XML.HXT.Arrow.writeDocument'. The option list is passed to 'Text.XML.HXT.Arrow.writeDocument'
 --
--- An options evaluated by this arrow is 'a_addDTD'.
+-- An option evaluated by this arrow is 'a_addDTD'.
 -- If 'a_addDTD' is set ('v_1'), the pickler DTD is added as an inline DTD into the document.
 
 xpickleDocument		:: PU a -> Attributes -> String -> IOStateArrow s a XmlTree
 xpickleDocument xp al dest
     = xpickleVal xp
       >>>
+      traceMsg 1 "xpickleVal applied"
+      >>>
       ( if lookup1 a_addDTD al == v_1
 	then replaceChildren ( (constA undefined >>> xpickleDTD xp >>> getChildren)
 			       <+>
@@ -150,7 +152,11 @@
 xunpickleDocument xp al src
 			= readDocument al src
 			  >>>
+			  traceMsg 1 ("xunpickleVal for " ++ show src ++ " started")
+			  >>>
 			  xunpickleVal xp
+			  >>>
+			  traceMsg 1 ("xunpickleVal for " ++ show src ++ " finished")
 
 -- | Write out the DTD generated out of a pickler. Calls 'xpicklerDTD'
 
diff --git a/src/Text/XML/HXT/Arrow/Pickle/DTD.hs b/src/Text/XML/HXT/Arrow/Pickle/DTD.hs
--- a/src/Text/XML/HXT/Arrow/Pickle/DTD.hs
+++ b/src/Text/XML/HXT/Arrow/Pickle/DTD.hs
@@ -22,10 +22,10 @@
 
 import           Data.Maybe
 
+import qualified Text.XML.HXT.DOM.XmlNode as XN
 
-import           Text.XML.HXT.Arrow.DOMInterface
+import           Text.XML.HXT.DOM.Interface
 import           Text.XML.HXT.Arrow.Pickle.Schema
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
 import           Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C
 
 -- ------------------------------------------------------------
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
@@ -41,10 +41,11 @@
 
 import           Data.Maybe
 
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode as XN
+
 import           Control.Arrow.ListArrows
-import           Text.XML.HXT.Arrow.DOMInterface
 import           Text.XML.HXT.Arrow.XmlArrow
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
 import           Text.XML.HXT.Arrow.Pickle.Schema
 
 -- ------------------------------------------------------------
@@ -255,6 +256,15 @@
     toQuint   ~(a, ~(b, ~(c, ~(d, e)))) = (a,  b,  c,  d, e   )
     fromQuint ~(a,   b,   c,   d, e   ) = (a, (b, (c, (d, e))))
 
+-- | Like 'xpPair' and 'xpTriple' but for 6-tuples
+
+xp6Tuple	:: PU a -> PU b -> PU c -> PU d -> PU e -> PU f -> PU (a, b, c, d, e, f)
+xp6Tuple pa pb pc pd pe pf
+    = xpWrap (toSix, fromSix) (xpPair pa (xpPair pb (xpPair pc (xpPair pd (xpPair pe pf)))))
+    where
+    toSix   ~(a, ~(b, ~(c, ~(d, ~(e, f))))) = (a,  b,  c,  d,  e, f    )
+    fromSix ~(a,   b,   c,   d,   e, f)     = (a, (b, (c, (d, (e, f)))))
+
 -- | Pickle a string into an XML text node
 --
 -- One of the most often used primitive picklers. Attention:
@@ -309,7 +319,7 @@
 -- | Pickle an arbitrary value by applyling show during pickling
 -- and read during unpickling.
 --
--- Real pickling is then done with 'xpString'.
+-- Real pickling is then done with 'xpText'.
 -- One of the most often used pimitive picklers. Applicable for all
 -- types which are instances of @Read@ and @Show@
 
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
@@ -31,7 +31,7 @@
 import Control.Arrow.ArrowIf
 import Control.Arrow.ArrowTree
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
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
@@ -28,7 +28,7 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
@@ -222,8 +222,8 @@
 	    | isHtml
 	      || 
 	      withTagSoup		= parseHtmlDocument			-- parse as HTML or with tagsoup XML
-					  withNamespaces
 					  withTagSoup
+					  withNamespaces
 					  issueW
 					  (not (hasOption a_canonicalize) && preserveCmt)
 					  removeWS
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
@@ -28,7 +28,7 @@
 import Control.Arrow.ArrowIf
 import Control.Arrow.ArrowTree
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
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
@@ -54,7 +54,7 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 
 import Text.XML.HXT.Arrow.Edit
@@ -228,7 +228,12 @@
 
 processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> NsEnv -> String -> a XmlTree XmlTree
 processXPathTreesWithNsEnv f nsEnv query
-    = processFromNodeSet f $< getXPathNodeSetWithNsEnv nsEnv query
+    = choiceA
+      [ isRoot :-> processChildren pns
+      , this   :-> pns
+      ]
+    where
+    pns = processFromNodeSet f $< getXPathNodeSetWithNsEnv nsEnv query
 
 -- |
 -- process all subtrees specified by a previously computed node set in bottom up manner
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
@@ -50,7 +50,7 @@
 import Text.ParserCombinators.Parsec
     ( runParser )
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 
 import qualified Text.XML.HXT.Arrow.XPath as XP
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
@@ -10,9 +10,10 @@
    Portability: portable
    Version    : $Id: XmlArrow.hs,v 1.34 2006/11/02 16:43:39 hxml Exp $
 
-Basic arrows for processing XML documents
+   Basic arrows for processing XML documents
 
-All arrows use IO and a global state for options, errorhandling, ...
+   All arrows use IO and a global state for options, errorhandling, ...
+
 -}
 
 -- ------------------------------------------------------------
@@ -33,11 +34,12 @@
 import Control.Arrow.IOListArrow
 import Control.Arrow.IOStateListArrow
 
-import           Text.XML.HXT.DOM.TypeDefs
-import qualified Text.XML.HXT.DOM           as XD ( t_root, xshow )
-import           Text.XML.HXT.DOM.Unicode         ( isXmlSpaceChar )
-
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
+import           Text.XML.HXT.DOM.Interface
+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
 
@@ -105,7 +107,7 @@
 
     -- | test for root node (element with name \"\/\")
     isRoot		:: a XmlTree XmlTree
-    isRoot		= isElem >>> hasName XD.t_root
+    isRoot		= isA XN.isRoot
 
     -- | test for text nodes with text, for which a predicate holds
     --
@@ -253,7 +255,7 @@
 
     -- | construction of an element node with name \"\/\" for document roots
     root		::           [a n XmlTree] -> [a n XmlTree] -> a n XmlTree
-    root		= mkelem XD.t_root
+    root		= mkelem t_root
 
     -- | alias for 'mkAttr'
     qattr		:: QName -> a n XmlTree -> a n XmlTree
@@ -552,7 +554,7 @@
 
     -- | apply an arrow to the input and convert the resulting XML trees into a string representation
     xshow		:: a n XmlTree -> a n String
-    xshow f		= f >. XD.xshow
+    xshow f		= f >. XS.xshow
 
 {- | Document Type Definition 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
@@ -10,22 +10,22 @@
    Portability: portable
    Version    : $Id: XmlIOStateArrow.hs,v 1.39 2006/11/09 20:27:42 hxml Exp $
 
-the basic state arrows for XML processing
+   the basic state arrows for XML processing
 
-A state is needed for global processing options,
-like encoding options, document base URI, trace levels
-and error message handling
+   A state is needed for global processing options,
+   like encoding options, document base URI, trace levels
+   and error message handling
 
-The state is separated into a user defined state
-and a system state. The system state contains variables
-for error message handling, for tracing, for the document base
-for accessing XML documents with relative references, e.g. DTDs,
-and a global key value store. This assoc list has strings as keys
-and lists of XmlTrees as values. It is used to store arbitrary
-XML and text values, e.g. user defined global options.
+   The state is separated into a user defined state
+   and a system state. The system state contains variables
+   for error message handling, for tracing, for the document base
+   for accessing XML documents with relative references, e.g. DTDs,
+   and a global key value store. This assoc list has strings as keys
+   and lists of XmlTrees as values. It is used to store arbitrary
+   XML and text values, e.g. user defined global options.
 
-The user defined part of the store is in the default case empty, defined as ().
-It can be extended with an arbitray data type
+   The user defined part of the store is in the default case empty, defined as ().
+   It can be extended with an arbitray data type
 
 -}
 
@@ -130,7 +130,7 @@
 
 import Control.Strategies.DeepSeq
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 
 import Text.XML.HXT.Arrow.Edit
diff --git a/src/Text/XML/HXT/Arrow/XmlNode.hs b/src/Text/XML/HXT/Arrow/XmlNode.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Arrow/XmlNode.hs
+++ /dev/null
@@ -1,326 +0,0 @@
--- ------------------------------------------------------------
-
-{- |
-   Module     : Text.XML.HXT.Arrow.XmlNode
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
-   License    : MIT
-
-
-   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-   Stability  : experimental
-   Portability: portable
-   Version    : $Id: XmlNode.hs,v 1.14 2006/08/28 19:14:15 hxml Exp $
-
-   Interface for XmlArrow to basic data types NTree and XmlTree
-
--}
-
--- ------------------------------------------------------------
-
-module Text.XML.HXT.Arrow.XmlNode
-    ( module Text.XML.HXT.Arrow.XmlNode
-    , module Data.Tree.NTree.TypeDefs
-    )
-where
-
-import Control.Monad
-
-import Data.Tree.NTree.TypeDefs
-import Data.Maybe
-
-import Text.XML.HXT.Arrow.DOMInterface
-
-class XmlNode a where
-    -- discriminating predicates
-
-    isText		:: a -> Bool
-    isCharRef		:: a -> Bool
-    isEntityRef		:: a -> Bool
-    isCmt		:: a -> Bool
-    isCdata		:: a -> Bool
-    isPi		:: a -> Bool
-    isElem		:: a -> Bool
-    isRoot		:: a -> Bool
-    isDTD		:: a -> Bool
-    isAttr		:: a -> Bool
-    isError		:: a -> Bool
-
-    -- constructor functions for leave nodes
-
-    mkText		:: String -> a
-    mkCharRef		:: Int    -> a
-    mkEntityRef		:: String -> a
-    mkCmt		:: String -> a
-    mkCdata		:: String -> a
-    mkPi		:: QName  -> XmlTrees -> a
-    mkError		:: Int    -> String   -> a
-
-    -- selectors
-
-    getText		:: a -> Maybe String
-    getCharRef		:: a -> Maybe Int
-    getEntityRef	:: a -> Maybe String
-    getCmt		:: a -> Maybe String
-    getCdata		:: a -> Maybe String
-    getPiName		:: a -> Maybe QName
-    getPiContent	:: a -> Maybe XmlTrees
-    getElemName		:: a -> Maybe QName
-    getAttrl		:: a -> Maybe XmlTrees
-    getDTDPart		:: a -> Maybe DTDElem
-    getDTDAttrl		:: a -> Maybe Attributes
-    getAttrName		:: a -> Maybe QName
-    getErrorLevel	:: a -> Maybe Int
-    getErrorMsg		:: a -> Maybe String
-
-    -- derived selectors
-
-    getName		:: a -> Maybe QName
-    getQualifiedName	:: a -> Maybe String
-    getUniversalName	:: a -> Maybe String
-    getUniversalUri	:: a -> Maybe String
-    getLocalPart	:: a -> Maybe String
-    getNamePrefix	:: a -> Maybe String
-    getNamespaceUri	:: a -> Maybe String
-
-    -- "modifier" functions
-
-    changeText		:: (String   -> String)   -> a -> a
-    changeCmt		:: (String   -> String)   -> a -> a
-    changeName		:: (QName    -> QName)    -> a -> a
-    changeElemName	:: (QName    -> QName)    -> a -> a
-    changeAttrl		:: (XmlTrees -> XmlTrees) -> a -> a
-    changeAttrName	:: (QName    -> QName)    -> a -> a
-    changePiName	:: (QName    -> QName)    -> a -> a
-    changeDTDAttrl	:: (Attributes -> Attributes) -> a -> a
-
-    setText		:: String   -> a -> a
-    setCmt		:: String   -> a -> a
-    setName		:: QName    -> a -> a
-    setElemName		:: QName    -> a -> a
-    setElemAttrl	:: XmlTrees -> a -> a
-    setAttrName		:: QName    -> a -> a
-    setPiName		:: QName    -> a -> a
-    setDTDAttrl		:: Attributes -> a -> a
-
-    -- default implementations
-
-    getName n		= getElemName n `mplus` getAttrName n `mplus` getPiName n
-    getQualifiedName n	= getName n >>= \ n' -> return (qualifiedName n')
-    getUniversalName n	= getName n >>= \ n' -> return (universalName n')
-    getUniversalUri n	= getName n >>= \ n' -> return (universalUri n')
-    getLocalPart n	= getName n >>= \ n' -> return (localPart n')
-    getNamePrefix n	= getName n >>= \ n' -> return (namePrefix n')
-    getNamespaceUri n	= getName n >>= \ n' -> return (namespaceUri n')
-
-    setText t		= changeText     (const t)
-    setCmt c		= changeCmt      (const c)
-    setName n		= changeName     (const n)
-    setElemName n	= changeElemName (const n)
-    setElemAttrl al	= changeAttrl    (const al)
-    setAttrName	n	= changeAttrName (const n)
-    setPiName	n	= changePiName   (const n)
-    setDTDAttrl	al	= changeDTDAttrl (const al)
-
--- XNode and XmlTree are instances of XmlNode
-
-instance XmlNode XNode where
-    isText (XText _)		= True
-    isText _			= False
-
-    isCharRef (XCharRef _)	= True
-    isCharRef _			= False
-
-    isEntityRef (XEntityRef _)	= True
-    isEntityRef _		= False
-
-    isCmt (XCmt _)		= True
-    isCmt _			= False
-
-    isCdata (XCdata _)		= True
-    isCdata _			= False
-
-    isPi (XPi _ _)		= True
-    isPi _			= False
-
-    isElem (XTag _ _)		= True
-    isElem _			= False
-
-    isRoot t                    = isElem t
-				  &&
-				  fromMaybe "" (getQualifiedName t) == t_root
-
-    isDTD (XDTD _ _)		= True
-    isDTD _			= False
-
-    isAttr (XAttr _)		= True
-    isAttr _			= False
-
-    isError (XError _ _)	= True
-    isError _			= False
-
-
-    mkText t			= XText t
-    mkCharRef c			= XCharRef c
-    mkEntityRef e		= XEntityRef e
-    mkCmt c			= XCmt c
-    mkCdata d			= XCdata d
-    mkPi n c			= XPi n (if null c then [] else [mkAttr (mkName a_value) c])
-    mkError l msg		= XError l msg
-
-
-    getText (XText t)		= Just t
-    getText _			= Nothing
-
-    getCharRef (XCharRef c)	= Just c
-    getCharRef _		= Nothing
-
-    getEntityRef (XEntityRef e)	= Just e
-    getEntityRef _		= Nothing
-
-    getCmt (XCmt c)		= Just c
-    getCmt _			= Nothing
-
-    getCdata (XCdata d)		= Just d
-    getCdata _			= Nothing
-
-    getPiName (XPi n _)		= Just n
-    getPiName _			= Nothing
-
-    getPiContent (XPi _ c)	= Just c
-    getPiContent _		= Nothing
-
-    getElemName (XTag n _)	= Just n
-    getElemName _		= Nothing
-
-    getAttrl (XTag _ al)	= Just al
-    getAttrl (XPi  _ al)	= Just al
-    getAttrl _			= Nothing
-
-    getDTDPart (XDTD p _)	= Just p
-    getDTDPart _		= Nothing
-
-    getDTDAttrl (XDTD _ al)	= Just al
-    getDTDAttrl _		= Nothing
-
-    getAttrName (XAttr n)	= Just n
-    getAttrName _		= Nothing
-
-    getErrorLevel (XError l _)	= Just l
-    getErrorLevel _		= Nothing
-
-    getErrorMsg (XError _ m)	= Just m
-    getErrorMsg _		= Nothing
-
-    changeText cf (XText t)		= XText (cf t)
-    changeText _ _			= error "changeText undefined"
-
-    changeCmt cf (XCmt c)		= XCmt (cf c)
-    changeCmt _ _			= error "changeCmt undefined"
-
-    changeName cf (XTag n al)		= XTag (cf n) al
-    changeName cf (XAttr n)		= XAttr (cf n)
-    changeName cf (XPi n al)		= XPi (cf n) al
-    changeName _ _			= error "changeName undefined"
-
-    changeElemName cf (XTag n al)	= XTag (cf n) al
-    changeElemName _ _			= error "changeElemName undefined"
-
-    changeAttrl cf (XTag n al)		= XTag n (cf al)
-    changeAttrl cf (XPi  n al)		= XPi  n (cf al)
-    changeAttrl _ _			= error "changeAttrl undefined"
-
-    changeAttrName cf (XAttr n)		= XAttr (cf n)
-    changeAttrName _ _			= error "changeAttrName undefined"
-
-    changePiName cf (XPi n al)		= XPi (cf n) al
-    changePiName _ _			= error "changeAttrName undefined"
-
-    changeDTDAttrl cf (XDTD p al)	= XDTD p (cf al)
-    changeDTDAttrl _ _			= error "changeDTDAttrl undefined"
-
-mkElementNode	:: QName -> XmlTrees -> XNode
-mkElementNode	= XTag
-
-mkAttrNode	:: QName -> XNode
-mkAttrNode	= XAttr
-
-mkDTDNode	:: DTDElem -> Attributes -> XNode
-mkDTDNode	= XDTD
-
-instance XmlNode a => XmlNode (NTree a) where
-    isText		= isText      . getNode
-    isCharRef		= isCharRef   . getNode
-    isEntityRef		= isEntityRef . getNode
-    isCmt		= isCmt       . getNode
-    isCdata		= isCdata     . getNode
-    isPi		= isPi        . getNode
-    isElem		= isElem      . getNode
-    isRoot		= isRoot      . getNode
-    isDTD		= isDTD       . getNode
-    isAttr		= isAttr      . getNode
-    isError		= isError     . getNode
-
-    mkText		= mkLeaf . mkText
-    mkCharRef		= mkLeaf . mkCharRef
-    mkEntityRef		= mkLeaf . mkEntityRef
-    mkCmt		= mkLeaf . mkCmt
-    mkCdata		= mkLeaf . mkCdata
-    mkPi n		= mkLeaf . mkPi n
-    mkError l		= mkLeaf . mkError l
-
-    getText		= getText       . getNode
-    getCharRef		= getCharRef    . getNode
-    getEntityRef	= getEntityRef  . getNode
-    getCmt		= getCmt        . getNode
-    getCdata		= getCdata      . getNode
-    getPiName		= getPiName     . getNode
-    getPiContent	= getPiContent  . getNode
-    getElemName		= getElemName   . getNode
-    getAttrl		= getAttrl      . getNode
-    getDTDPart		= getDTDPart    . getNode
-    getDTDAttrl		= getDTDAttrl   . getNode
-    getAttrName		= getAttrName   . getNode
-    getErrorLevel	= getErrorLevel . getNode
-    getErrorMsg		= getErrorMsg   . getNode
-
-    changeText cf	= changeNode (changeText cf)
-    changeCmt cf	= changeNode (changeCmt  cf)
-    changeName cf	= changeNode (changeName cf)
-    changeElemName cf	= changeNode (changeElemName cf)
-    changeAttrl cf	= changeNode (changeAttrl cf)
-    changeAttrName cf	= changeNode (changeAttrName cf)
-    changePiName cf	= changeNode (changePiName cf)
-    changeDTDAttrl cf	= changeNode (changeDTDAttrl cf)
-
-mkElement	:: QName -> XmlTrees -> XmlTrees -> XmlTree
-mkElement n al	= mkTree (mkElementNode n al)
-
-mkRoot		:: XmlTrees -> XmlTrees -> XmlTree
-mkRoot al	= mkTree (mkElementNode (mkSNsName t_root) al)
-
-mkAttr		:: QName -> XmlTrees -> XmlTree
-mkAttr n	= mkTree (mkAttrNode n)
-
-mkDTDElem	:: DTDElem -> Attributes -> XmlTrees -> XmlTree
-mkDTDElem e al	= mkTree (mkDTDNode e al)
-
-addAttr		:: XmlTree -> XmlTrees -> XmlTrees
-addAttr a al
-    | isAttr a	= add al
-    | otherwise	= al
-    where
-    an = (qualifiedName . fromJust . getAttrName) a
-    add []
-	= [a]
-    add (a1:al1)
-	| isAttr a1
-	  &&
-	  (qualifiedName . fromJust . getAttrName) a1 == an
-	    = a : al1
-	| otherwise
-	    = a1 : add al1
-
-mergeAttrl	:: XmlTrees -> XmlTrees -> XmlTrees
-mergeAttrl 	= foldr addAttr
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Arrow/XmlRegex.hs b/src/Text/XML/HXT/Arrow/XmlRegex.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/Arrow/XmlRegex.hs
@@ -0,0 +1,304 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.Arrow.XmlRegex
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   Regular Expression Matcher working on lists of XmlTrees
+
+   It's intendet to import this module with an explicit
+   import declaration for not spoiling the namespace
+   with these somewhat special arrows
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.Arrow.XmlRegex
+    ( XmlRegex
+    , mkZero
+    , mkUnit
+    , mkPrim
+    , mkPrimA
+    , mkDot
+    , mkStar
+    , mkAlt
+    , mkSeq
+    , mkRep
+    , mkRng
+    , mkOpt
+    , nullable
+    , delta
+    , matchXmlRegex
+    , splitXmlRegex
+    , scanXmlRegex
+    , matchRegexA
+    , splitRegexA
+    , scanRegexA
+    )
+where
+
+import Control.Arrow.ListArrows
+
+import Data.Maybe
+
+import Text.XML.HXT.DOM.Interface
+
+-- ------------------------------------------------------------
+-- the exported regex arrows
+
+-- | check whether a sequence of XmlTrees match an Xml regular expression
+--
+-- The arrow for 'matchXmlRegex'.
+--
+-- The expession is build up from simple arrows acting as predicate ('mkPrimA') for
+-- an XmlTree and of the usual cobinators for sequence ('mkSeq'), repetition
+-- ('mkStar', mkRep', 'mkRng') and choice ('mkAlt', 'mkOpt')
+
+matchRegexA		:: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree XmlTrees
+matchRegexA re ts	= ts >>. (\ s -> maybe [] (const [s]) . matchXmlRegex re $ s)
+
+-- | split the sequence of trees computed by the filter a into
+--
+-- The arrow for 'splitXmlRegex'.
+--
+-- a first part matching the regex and a rest,
+-- if a prefix of the input sequence does not match the regex, the arrow fails
+-- else the pair containing the result lists is returned
+
+splitRegexA		:: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree (XmlTrees, XmlTrees)
+splitRegexA re ts	= ts >>. (maybeToList . splitXmlRegex re)
+
+-- | scan the input sequence with a regex and give the result as a list of lists of trees back
+-- the regex must at least match one input tree, so the empty sequence should not match the regex
+--
+-- The arrow for 'scanXmlRegex'.
+
+scanRegexA		:: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree XmlTrees
+scanRegexA re ts	= ts >>. (fromMaybe [] . scanXmlRegex re)
+
+-- ------------------------------------------------------------
+
+data XmlRegex	= Zero String
+		| Unit
+		| Sym (XmlTree -> Bool)
+		| Dot
+		| Star XmlRegex
+		| Alt XmlRegex XmlRegex
+		| Seq XmlRegex XmlRegex
+		| Rep Int XmlRegex		-- 1 or more repetitions
+		| Rng Int Int XmlRegex	-- n..m repetitions
+
+-- ------------------------------------------------------------
+
+{- just for documentation
+
+class Inv a where
+    inv		:: a -> Bool
+
+instance Inv XmlRegex where
+    inv (Zero _)	= True
+    inv Unit		= True
+    inv (Sym p)		= p holds for some XmlTrees
+    inv Dot		= True
+    inv (Star e)	= inv e
+    inv (Alt e1 e2)	= inv e1 &&
+			  inv e2
+    inv (Seq e1 e2)	= inv e1 &&
+			  inv e2
+    inv (Rep i e)	= i > 0 && inv e
+    inv (Rng i j e)	= (i < j || (i == j && i > 1)) &&
+			  inv e
+-}
+-- ------------------------------------------------------------
+--
+-- smart constructors
+
+mkZero		:: String -> XmlRegex
+mkZero		= Zero
+
+mkUnit		:: XmlRegex
+mkUnit		= Unit
+
+mkPrim		:: (XmlTree -> Bool) -> XmlRegex
+mkPrim		= Sym
+
+mkPrimA		:: LA XmlTree XmlTree -> XmlRegex
+mkPrimA a	= mkPrim (not . null . runLA a)
+
+mkDot	:: XmlRegex
+mkDot	= Dot
+
+mkStar			:: XmlRegex -> XmlRegex
+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	:: XmlRegex -> XmlRegex
+rmStar (Alt e1 e2)	= mkAlt (rmStar e1) (rmStar e2)
+rmStar (Star e1)	= rmStar e1
+rmStar (Rep 1 e1)	= rmStar e1
+rmStar e1		= e1
+
+mkAlt					:: XmlRegex -> XmlRegex -> XmlRegex
+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)		= mkPrim $ \ x -> p1 x || p2 x	-- 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
+mkAlt e1 e2				= Alt e1 e2
+
+mkSeq				:: XmlRegex -> XmlRegex -> XmlRegex
+mkSeq e1@(Zero _) _e2		= e1
+mkSeq _e1         e2@(Zero _)	= e2
+mkSeq Unit        e2		= e2
+mkSeq e1          Unit		= e1
+mkSeq (Seq e1 e2) e3		= mkSeq e1 (mkSeq e2 e3)
+mkSeq e1 e2			= Seq e1 e2
+
+mkRep		:: Int -> XmlRegex -> XmlRegex
+mkRep 0 e			= mkStar e
+mkRep _ e@(Zero _)		= e
+mkRep _ e@Unit			= e
+mkRep i e			= Rep i e
+
+mkRng	:: Int -> Int -> XmlRegex -> XmlRegex
+mkRng 0  0  _e			= mkUnit
+mkRng 1  1  e			= e
+mkRng lb ub _e
+    | lb > ub			= Zero $
+				  "illegal range " ++
+				  show lb ++ ".." ++ show ub
+mkRng _l _u e@(Zero _)		= e
+mkRng _l _u e@Unit		= e
+mkRng lb ub e			= Rng lb ub e
+
+mkOpt	:: XmlRegex -> XmlRegex
+mkOpt	= mkRng 0 1
+
+-- ------------------------------------------------------------
+
+instance Show XmlRegex where
+    show (Zero s)	= "{err:" ++ s ++ "}"
+    show Unit		= "()"
+    show (Sym _p)	= "{single tree pred}"
+    show Dot		= "."
+    show (Star e)	= "(" ++ show e ++ ")*"
+    show (Alt e1 e2)	= "(" ++ show e1 ++ "|" ++ show e2 ++ ")"
+    show (Seq e1 e2)	= show e1 ++ show e2
+    show (Rep 1 e)	= "(" ++ show e ++ ")+"
+    show (Rep i e)	= "(" ++ show e ++ "){" ++ show i ++ ",}"
+    show (Rng 0 1 e)	= "(" ++ show e ++ ")?"
+    show (Rng i j e)	= "(" ++ show e ++ "){" ++ show i ++ "," ++ show j ++ "}"
+
+-- ------------------------------------------------------------
+
+nullable	:: XmlRegex -> Bool
+nullable (Zero _)	= False
+nullable Unit		= True
+nullable (Sym _p)	= False		-- assumption: p holds for at least one tree
+nullable Dot		= False
+nullable (Star _)	= True
+nullable (Alt e1 e2)	= nullable e1 ||
+			  nullable e2
+nullable (Seq e1 e2)	= nullable e1 &&
+			  nullable e2
+nullable (Rep _i e)	= nullable e
+nullable (Rng i _ e)	= i == 0 ||
+			  nullable e
+
+-- ------------------------------------------------------------
+
+delta	:: XmlRegex -> XmlTree -> XmlRegex
+delta e@(Zero _)  _	= e
+delta Unit        c	= mkZero $
+			  "unexpected char " ++ show c
+delta (Sym p)     c
+    | p c		= mkUnit
+    | otherwise		= mkZero $
+			  "unexpected tree " ++ show c
+delta Dot         _	= mkUnit
+delta e@(Star e1) c	= mkSeq (delta e1 c) e
+delta (Alt e1 e2) c	= mkAlt (delta e1 c) (delta e2 c)
+delta (Seq e1 e2) c
+    | nullable e1	= mkAlt (mkSeq (delta e1 c) e2) (delta e2 c)
+    | otherwise		= mkSeq (delta e1 c) e2
+delta (Rep i e)   c	= mkSeq (delta e c) (mkRep (i-1) e)
+delta (Rng i j e) c	= mkSeq (delta e c) (mkRng ((i-1) `max` 0) (j-1) e)
+
+-- ------------------------------------------------------------
+
+delta'		:: XmlRegex -> XmlTrees -> XmlRegex
+delta'		= foldl delta
+
+-- | match a sequence of XML trees with a regular expression over trees
+--
+-- If the input matches, the result is Nothing, else Just an error message is returned
+
+matchXmlRegex		:: XmlRegex -> XmlTrees -> Maybe String
+matchXmlRegex e
+    = res . delta' e
+    where
+    res (Zero er)	= Just er
+    res re
+	| nullable re	= Nothing	-- o.k.
+	| otherwise	= Just $ "input does not match " ++ show e
+
+-- ------------------------------------------------------------
+
+-- | split a sequence of XML trees into a pair of a a matching prefix and a rest
+--
+-- If there is no matching prefix, Nothing is returned
+
+splitXmlRegex		:: XmlRegex -> XmlTrees -> Maybe (XmlTrees, XmlTrees)
+splitXmlRegex re	= splitXmlRegex' re []
+
+splitXmlRegex' 		:: XmlRegex -> XmlTrees -> XmlTrees -> Maybe (XmlTrees, XmlTrees)
+splitXmlRegex' re res []
+    | nullable re	= Just (reverse res, [])
+    | otherwise		= Nothing
+
+splitXmlRegex' (Zero _) _ _
+			= Nothing
+
+splitXmlRegex' re res xs@(x:xs')
+    | isJust res'	= res'
+    | nullable re	= Just (reverse res, xs)
+    | otherwise		= Nothing
+    where
+    re'  = delta re x
+    res' = splitXmlRegex' re' (x:res) xs'
+
+-- ------------------------------------------------------------
+
+-- | scan a sequence of XML trees and split it into parts matching the given regex
+--
+-- If the parts cannot be split because of a missing match, or because of the
+-- empty sequence as match, Nothing is returned
+
+scanXmlRegex				:: XmlRegex -> XmlTrees -> Maybe [XmlTrees]
+scanXmlRegex re ts			= scanXmlRegex' re (splitXmlRegex re ts)
+
+scanXmlRegex'				:: XmlRegex -> Maybe (XmlTrees, XmlTrees) -> Maybe [XmlTrees]
+scanXmlRegex' _  Nothing		= Nothing
+scanXmlRegex' _  (Just (rs, []))	= Just [rs]
+scanXmlRegex' _  (Just ([], _))		= Nothing	-- re is nullable (the empty word matches), nothing split off
+							-- would give infinite list of empty lists
+scanXmlRegex' re (Just (rs, rest))
+    | isNothing res			= Nothing
+    | otherwise				= Just (rs : fromJust res)
+    where
+    res = scanXmlRegex' re (splitXmlRegex re rest)
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM.hs b/src/Text/XML/HXT/DOM.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- |
--- DOM data types and functions
---
--- Version : $Id: DOM.hs,v 1.2 2006/11/12 14:52:59 hxml Exp $
---
---
--- export of all basic datatypes and functions of the toolbox DOM.
---
-
-module Text.XML.HXT.DOM
-    ( module Text.XML.HXT.DOM.XmlTree
-    , module Text.XML.HXT.DOM.XmlState
-    , module Text.XML.HXT.DOM.EditFilters
-    , module Text.XML.HXT.DOM.FormatXmlTree
-    , module Text.XML.HXT.DOM.Namespace
-    , module Text.XML.HXT.DOM.XmlOptions
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.XmlState
-import Text.XML.HXT.DOM.EditFilters
-import Text.XML.HXT.DOM.FormatXmlTree
-import Text.XML.HXT.DOM.Namespace
-import Text.XML.HXT.DOM.XmlOptions
-
--- ------------------------------------------------------------
-
diff --git a/src/Text/XML/HXT/DOM/EditFilters.hs b/src/Text/XML/HXT/DOM/EditFilters.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/EditFilters.hs
+++ /dev/null
@@ -1,569 +0,0 @@
--- |
--- XML editing filters
---
--- Version : $Id: EditFilters.hs,v 1.5 2006/11/12 14:52:59 hxml Exp $
-
-module Text.XML.HXT.DOM.EditFilters
-    ( canonicalizeTree
-    , canonicalizeAllNodes
-    , canonicalizeForXPath
-
-    , collapseXText
-    , collapseAllXText
-
-    , indentDoc
-
-    , removeWhiteSpace
-    , removeAllWhiteSpace
-    , removeDocWhiteSpace
-
-    , removeComment
-    , removeAllComment
-
-    , transfCdata		, transfAllCdata	-- CDATA to text
-    , transfCdataEscaped	, transfAllCdataEscaped	-- CDATA to text
-    , transfCharRef		, transfAllCharRef	-- &#nnn; to text
-
-    , escapeXmlDoc
-    , escapeXmlText
-    , escapeXmlAttrValue
-
-    , unparseXmlDoc
-    , numberLinesInXmlDoc	, numberLines
-    , treeRepOfXmlDoc
-    , haskellRepOfXmlDoc
-    , addHeadlineToXmlDoc
-    , addXmlPiToDoc
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.Unicode
-    ( getOutputEncodingFct)
-
-import Text.XML.HXT.DOM.FormatXmlTree
-    ( formatXmlContents )
-
-import Data.Maybe
-
--- ------------------------------------------------------------
-
--- |
--- remove Comments
-
-removeComment		:: XmlFilter
-removeComment		= none `when` isXCmt
-
--- |
--- remove all Comments recursively
-
-removeAllComment	:: XmlFilter
-removeAllComment	= processBottomUp removeComment
-
--- ------------------------------------------------------------
-
--- |
--- simple filter for removing whitespace.
---
--- no check on sigificant whitespace is done.
---
---
--- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'
-
-removeWhiteSpace	:: XmlFilter
-removeWhiteSpace	= none `when` isWhiteSpace
-
--- |
--- simple recursive filter for removing all whitespace.
---
--- removes all text nodes in a tree that consist only of whitespace.
---
---
--- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'
-
-removeAllWhiteSpace	:: XmlFilter
-removeAllWhiteSpace	= processBottomUp removeWhiteSpace
-
--- ------------------------------------------------------------
--- |
--- converts CDATA sections in whole document tree into normal text nodes
-
-transfAllCdataEscaped	:: XmlFilter
-transfAllCdataEscaped	= processBottomUp transfCdataEscaped
-
--- |
--- converts CDATA section in normal text nodes
-
-transfCdataEscaped	:: XmlFilter
-transfCdataEscaped (NTree (XCdata str) _)
-    = xtext str
-
-transfCdataEscaped n
-    = [n]
-
-
--- ------------------------------------------------------------
--- |
--- converts CDATA sections in whole document tree
-
-transfAllCdata		:: XmlFilter
-transfAllCdata		= processBottomUp transfCdata
-
--- |
--- converts CDATA section in normal text sections
-
-transfCdata		:: XmlFilter
-transfCdata (NTree (XCdata str) _)
-    = xtext str
-
-transfCdata n
-    = [n]
-
-
--- ------------------------------------------------------------
--- |
--- converts character references to normal text
-
-transfCharRef		:: XmlFilter
-transfCharRef (NTree (XCharRef i) _)
-    = xtext $ [toEnum i]
-
-transfCharRef n
-    = [n]
-
--- ------------------------------------------------------------
--- |
--- recursively converts all character references to normal text
-
-transfAllCharRef	:: XmlFilter
-transfAllCharRef	= processBottomUp transfCharRef
-
--- ------------------------------------------------------------
-
--- |
--- Applies some "Canonical XML" rules to the nodes of a tree.
---
--- The rule differ slightly for canonical XML and XPath in handling of comments
---
--- Note: This is not the whole canonicalization as it is specified by the W3C
--- Recommendation. Adding attribute defaults or sorting attributes in lexicographic
--- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.
--- Replacing entities or line feed normalization is done by the parser.
---
---
--- Not implemented yet:
---
---  - Whitespace within start and end tags is normalized
---
---  - Special characters in attribute values and character content are replaced by character references
---
--- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'
-
-canonicalizeTree	:: XmlFilter -> XmlFilter
-canonicalizeTree toBeRemoved
-    = processChildren (none `when` isXText)
-      .>
-      processBottomUp canonicalize1Node
-      where
-      canonicalize1Node	:: XmlFilter
-      canonicalize1Node
-	  = (deep isXPi `when` isXDTD)		-- remove DTD parts, except PIs
-	    .>
-	    (none `when` toBeRemoved)		-- remove unintersting nodes
-	    .>
-	    ( processAttr ( processChildren transfCharRef
-			    .>
-			    collapseXText
-			  ) `when` isXTag)
-	    .>
-	    transfCdata				-- CDATA -> text
-	    .>
-	    transfCharRef			-- Char refs -> text
-	    .>
-	    collapseXText			-- combine text
-
-
--- |
--- canonicalize tree and remove comments and \<?xml ... ?> declarations
---
--- see 'canonicalizeTree'
-
-canonicalizeAllNodes	:: XmlFilter
-canonicalizeAllNodes
-    = canonicalizeTree (isXCmt		-- remove comment
-			+++
-			isPi t_xml	-- remove xml declaration
-		       )
-
--- |
--- Canonicalize a tree for XPath
--- Comment nodes are not removed
---
--- see 'canonicalizeTree'
-
-canonicalizeForXPath	:: XmlFilter
-canonicalizeForXPath
-    = canonicalizeTree (isPi t_xml)
-
--- ------------------------------------------------------------
-
--- |
--- Collects sequences of child XText nodes into one XText node.
-
-collapseXText		:: XmlFilter
-collapseXText n
-    = replaceChildren (collapseXText' $ getChildren n) n
-    where
-    collapseXText' :: XmlSFilter
-    collapseXText' ((NTree n1 _) : (NTree n2 _) : zs)
-	| isXTextNode n1 && isXTextNode n2
-            = collapseXText' $ (xtext (t1 ++ t2)) ++ zs
-	      where
-	      t1 = textOfXNode n1
-	      t2 = textOfXNode n2
-
-    collapseXText' (x:xs)
-        = x : (collapseXText' xs)
-
-    collapseXText' []
-        = []
-
-
--- |
--- Applies collapseXText recursively.
---
---
--- see also : 'collapseXText'
-
-collapseAllXText	:: XmlFilter
-collapseAllXText	= processBottomUp collapseXText
-
-
--- ------------------------------------------------------------
---
-
--- |
--- filter for indenting a document tree for pretty printing.
---
--- the tree is traversed for inserting whitespace for tag indentation.
---
--- whitespace is only inserted or changed at places, where it isn't significant,
--- is's not inserted between tags and text containing non whitespace chars.
---
--- whitespace is only inserted or changed at places, where it's not significant.
--- preserving whitespace may be controlled in a document tree
--- by a tag attribute @xml:space@
---
--- allowed values for this attribute are @default | preserve@.
---
--- input is a complete document tree.
--- result the semantically equivalent formatted tree.
---
---
--- see also : 'removeDocWhiteSpace'
-
-indentDoc	:: XmlFilter
-indentDoc 
-    = modifyChildren (indentRootChildren $$)
-      `when`
-      isRoot
-      where
-      indentRootChildren	:: XmlFilter
-      indentRootChildren
-	  = insertNL `o` indentChild `o` removeText
-	    where
-	    removeText
-		= none `when` isXText
-	    insertNL
-		= this +++ txt "\n"
-	    indentChild
-		= modifyChildren (indentTrees (insertIndentation 2) False 1)
-		  `whenNot`
-		  isXDTD		-- DTD elements are not indented
-
--- |
--- filter for removing all not significant whitespace.
---
--- the tree traversed for removing whitespace between tags,
--- that was inserted for indentation and readability.
--- whitespace is only removed at places, where it's not significat
--- preserving whitespace may be controlled in a document tree
--- by a tag attribute @xml:space@
---
--- allowed values for this attribute are @default | preserve@
---
--- input is root node of the document to be cleaned up
--- output the semantically equivalent simplified tree
---
---
--- see also : 'indentDoc', 'removeAllWhiteSpace'
-
-removeDocWhiteSpace	:: XmlFilter
-removeDocWhiteSpace
-    =  processChildren processRootElement
-      `when`
-      isRoot
-      where
-      processRootElement	:: XmlFilter
-      processRootElement
-	  = removeText .> processChild
-	    where
-	    removeText
-		= none `when` isWhiteSpace
-	    processChild
-		= choice [ isXDTD
-			   :-> removeAllWhiteSpace			-- whitespace in DTD is redundant
-			 , this
-			   :-> modifyChildren				-- same strategie as for indentation
-			         (indentTrees insertNothing False 1)
-			 ]
-
-indentTrees	:: (Int -> XmlFilter) -> Bool -> Int -> XmlTrees -> XmlTrees
-indentTrees _ _ _ []
-    = []
-indentTrees indentFilter preserveSpace level ts
-    = (lsf $$ ls) ++ indentRest rs
-      where
-      (ls, rs)
-	  = break (satisfies isXTag) ts
-
-      isSignificant	:: Bool
-      isSignificant
-	  = preserveSpace
-	    ||
-	    any (satisfies isSignificantPart) ls
-
-      isSignificantPart	:: XmlFilter
-      isSignificantPart
-	  = cat [ isXText `guards` neg isWhiteSpace
-		, isXCdata
-		, isXCharRef
-		, isXEntityRef
-		]
-
-      lsf	:: XmlFilter
-      lsf
-	  | isSignificant
-	      = this
-	  | otherwise
-	      = (none `when` isWhiteSpace)
-                .>
-                (indentFilter level +++ this)
-
-      indentRest	:: XmlSFilter
-
-      indentRest []
-	  | isSignificant
-	      = []
-	  | otherwise
-	      = indentFilter (level - 1) (mkXTextTree "")
-
-      indentRest (t':ts')
-	      = ( (modifyChildren indentChildren .> lsf)
-		  `when`
-                  isXTag
-		  $ t'
-		)
-                ++
-		( if null ts'
-		  then indentRest ts'
-		  else indentTrees indentFilter preserveSpace level ts'
-		)
-		where
-		xmlSpaceAttrName  = "xml:space"
-		xmlSpaceAttrValue = valueOf xmlSpaceAttrName t'
-		preserveSpace'
-		    = fromMaybe preserveSpace
-		      .
-		      lookup xmlSpaceAttrValue
-                      $ [ ("preserve", True)
-			, ("default",  False)
-			]
-		indentChildren
-		    | all (satisfies isWhiteSpace) $ getChildren t'
-			= (none $$)
-		    | otherwise
-			= indentTrees indentFilter preserveSpace' (level + 1)
-
--- filter for indenting tags
-
-insertIndentation	:: Int -> Int -> XmlFilter
-insertIndentation indentWidth level
-    = txt ('\n' : replicate (level * indentWidth) ' ')
-
--- filter for removing all whitespace
-
-insertNothing		:: Int -> XmlFilter
-insertNothing _		= none
-
--- ------------------------------------------------------------
-
--- |
--- escape XmlText,
--- transform all special XML chars into CharRefs
-
-escapeString	:: (Char -> Bool) -> String -> XmlTrees
-escapeString _isEsc []
-    = []
-escapeString isEsc (c:s1)
-    | isEsc c
-	= mkXCharRefTree (fromEnum c) : escapeString isEsc s1
-escapeString isEsc s
-    = mkXTextTree s1 : escapeString isEsc s2
-      where
-      (s1, s2) = break isEsc s
-
-escapeText		:: (Char -> Bool) -> XmlFilter
-escapeText isEsc (NTree n _)
-    | isXTextNode n
-	= escapeString isEsc (textOfXNode n)
-
-escapeText isEsc (NTree (XCmt c) _)
-    = xcmt (xshow . escapeString isEsc $ c)
-
-escapeText _ t
-    = [t]
-
--- |
--- convert the special XML chars in a text or comment node
--- into character references
---
--- see also 'escapeXmlDoc'
- 
-escapeXmlText		:: XmlFilter
-escapeXmlText		= escapeText (`elem` "<&")	-- no escape for ", ' and > required: XML standard 2.4
-
--- |
--- convert the special XML chars in an attribute value into
--- charachter references. Not only the XML specials but also \\n, \\r and \\t are converted
---
--- see also: 'escapeXmlDoc', 'escapeXmlText'
-
-escapeXmlAttrValue	:: XmlFilter
-escapeXmlAttrValue	= escapeText (`elem` "<>\"\'&\n\r\t")
-
--- |
--- convert the special XML chars \", \<, \>, & and \' in a document to char references,
--- attribute values are converted with 'escapeXmlAttrValue'
---
--- see also: 'escapeXmlText', 'escapeXmlAttrValue'
-
-escapeXmlDoc		:: XmlFilter
-escapeXmlDoc
-    = choice [ isXTag  :-> (processChildren (escapeXmlDoc)
-			    .>
-			    processAttr escVal
-			   )
-	     , isXText :-> escapeXmlText
-	     -- , isXCmt  :-> escapeXmlText -- no escape in comments reqired: XML standard 2.4
-	     , isXDTD  :-> processTopDown escDTD
-	     , this    :-> this
-	     ]
-      where
-      escVal   = processChildren escapeXmlAttrValue
-      escDTD   = escVal `when` (isEntity +++ isParameterEntity)
-
--- ------------------------------------------------------------
-
--- |
--- convert a document tree into an output string representation
--- with respect to the output encoding.
---
--- The children of the document root are stubstituted by
--- a single text node for the text representation of the document.
---
--- Encoding of the document is performed with respect
--- to the @output-encoding@ attribute in the root node, or if not present,
--- of the @encoding@ attribute for the original input encoding.
--- If the encoding is not specified or not supported, UTF-8 is taken.
-
-unparseXmlDoc	:: XmlFilter
-unparseXmlDoc n
-    = modifyChildren ((modifyText encFct $$) . xmlTreesToText) n
-    where
-    encFct = fromMaybe id (getOutputEncodingFct (encSpec n))
-
-encSpec :: XmlTree -> String
-encSpec n
-    = head . filter (not . null)
-      $ [ valueOf a_output_encoding n
-	, valueOf a_encoding n
-	, utf8
-	]
-
--- ------------------------------------------------------------
---
--- add or modify a XML directive for a document
--- for specifying the encoding scheme
-
-addXmlPiToDoc		:: XmlFilter
-addXmlPiToDoc n
-    = ( modifyChildren addX				-- add <?xml ...>, if neccessary
-	`whenNot`
-	(getChildren .> isPi t_xml)
-      )
-      .>
-      processChildren ( addAttr a_encoding enc		-- set or replace encoding="..."
-			`when`
-			isPi t_xml
-		      )
-      $ n
-    where
-    enc = encSpec n
-    addX cs = mkXmlDeclTree (xattr a_version "1.0") : xtext "\n" ++ cs
-
--- ------------------------------------------------------------
-
--- |
--- convert a document into a text and add line numbers to the text representation.
--- 
--- Result is a root node with a single text node as child.
--- Useful for debugging and trace output.
--- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'
-
-numberLinesInXmlDoc	:: XmlFilter
-numberLinesInXmlDoc
-    = modifyChildren ((modifyText numberLines $$) . xmlTreesToText)
-
-numberLines	:: String -> String
-numberLines str
-    = concat $
-      zipWith (\ n l -> lineNr n ++ l ++ "\n") [1..] (lines str)
-      where
-      lineNr	:: Int -> String
-      lineNr n	= (reverse (take 6(reverse (show n) ++ replicate 6 ' '))) ++ "  "
-
--- ------------------------------------------------------------
-
--- |
--- convert a document into a text representation in tree form.
---
--- Useful for debugging and trace output.
--- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'
-
-treeRepOfXmlDoc		:: XmlFilter
-treeRepOfXmlDoc
-    = rootTag [getAttrl] [formatXmlContents]
-
--- |
--- convert a document into a Haskell representation (with show).
---
--- Useful for debugging and trace output.
--- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'
-
-haskellRepOfXmlDoc	:: XmlFilter
-haskellRepOfXmlDoc n
-    = rootTag [getAttrl] [txt $ show n] n
-
--- ------------------------------------------------------------
-
-addHeadlineToXmlDoc	:: XmlFilter
-addHeadlineToXmlDoc n
-    = replaceChildren (xtext title ++ getChildren n ++ xtext "\n") n
-      where
-      headline  = "content of: " ++ valueOf a_source n
-      underline = map (\_ -> '=') headline
-      title     = "\n" ++ headline ++ "\n" ++ underline ++ "\n\n"
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/FormatXmlTree.hs b/src/Text/XML/HXT/DOM/FormatXmlTree.hs
--- a/src/Text/XML/HXT/DOM/FormatXmlTree.hs
+++ b/src/Text/XML/HXT/DOM/FormatXmlTree.hs
@@ -1,43 +1,65 @@
--- |
--- format a xml tree in tree representation
---
--- Version : $Id: FormatXmlTree.hs,v 1.2 2006/05/01 18:56:24 hxml Exp $
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.DOM.FormatXmlTree
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
 
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   Format a xml tree in tree representation
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.DOM.FormatXmlTree
     ( formatXmlTree
     , formatXmlContents
     )
 where
 
-import Text.XML.HXT.DOM.XmlTree
+import Text.XML.HXT.DOM.Interface
+import Text.XML.HXT.DOM.ShowXml
+import Text.XML.HXT.DOM.XmlNode
 
+import Data.Maybe
+
 -- ------------------------------------------------------------
 
 
-formatXmlContents	:: XmlFilter
+formatXmlContents	:: XmlTree -> XmlTrees
 formatXmlContents t
-    = [mkXTextTree (formatXmlTree t)]
+    = [mkText (formatXmlTree t)]
 
 formatXmlTree		:: XmlTree  -> String
 formatXmlTree
     = formatTree xnode2String
 
 xnode2String	:: XNode -> String
-xnode2String (XTag n al)
-    = "XTag " ++ showQn n ++ concatMap showAl al
+xnode2String n
+    | isElem n
+	= "XTag " ++ showName n ++ showAtts n
+    | isPi n
+	= "XPi "  ++ showName n ++ showAtts n
+    | otherwise
+	= show n
+    where
 
-xnode2String (XPi n al)
-    = "XPi "  ++ showQn n ++ concatMap showAl al
+showName	:: XNode -> String
+showName	= maybe "" showQn . getName
 
-xnode2String n
-    = show n
+showAtts	:: XNode -> String
+showAtts	= concatMap showAl . fromMaybe [] . getAttrl
 
 showAl		:: XmlTree -> String
-showAl (NTree (XAttr an) av)
-    = "\n|   " ++ showQn an ++ "=" ++ show (xshow av)
-showAl t
-    = show t
+showAl t	-- (NTree (XAttr an) av)
+    | isAttr t
+	= "\n|   " ++ (maybe "" showQn . getName $ t) ++ "=" ++ show (xshow . getChildren $ t)
+    | otherwise
+	= show t
 
 showQn		:: QName -> String
 showQn n
diff --git a/src/Text/XML/HXT/DOM/Interface.hs b/src/Text/XML/HXT/DOM/Interface.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DOM/Interface.hs
@@ -0,0 +1,36 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DOM.Interface
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   The interface to the primitive DOM data types and constants
+   and utility functions
+
+-}
+
+-- ------------------------------------------------------------
+
+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
+    )
+where
+
+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
+
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/Namespace.hs b/src/Text/XML/HXT/DOM/Namespace.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/Namespace.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- |
--- main namespace filter for propagation, checking, tracing and error handling
---
--- $Id: Namespace.hs,v 1.3 2005/01/06 10:48:07 hxml Exp $
---
-module Text.XML.HXT.DOM.Namespace
-    ( module Text.XML.HXT.DOM.Namespace
-    , module Text.XML.HXT.DOM.NamespaceFilter
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.XmlState
-import Text.XML.HXT.DOM.NamespaceFilter
-
-import Text.XML.HXT.Parser.XmlOutput
-    ( traceTree
-    , traceSource
-    , traceMsg
-    )
-
--- -----------------------------------------------------------------------------
-
--- |
--- propagate all namespace declarations, check namespace constraints and issue errors.
--- If no error was found, result is the unchanged input tree, else the root node \"\/\" with an empty document is returned.
---
--- see also : 'propagateNamespaces', 'validateNamespaces'
-
-propagateAndValidateNamespaces	:: XmlStateFilter a
-propagateAndValidateNamespaces
-    = traceMsg 2 "propagating namespaces"
-      .>>
-      liftMf propagateNamespaces
-      .>>
-      traceTree
-      .>>
-      traceSource
-      .>>
-      traceMsg 2 "validating namespaces"
-      .>>
-      validate
-    where
-    validate	:: XmlStateFilter a
-    validate t
-	= let
-	  errs = validateNamespaces t
-	  in if null errs
-	     then thisM t
-	     else do
-		  liftF this $$< errs
-		  return (setStatus c_err "namespace propagation" t)
-	  
--- -----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/NamespaceFilter.hs b/src/Text/XML/HXT/DOM/NamespaceFilter.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/NamespaceFilter.hs
+++ /dev/null
@@ -1,226 +0,0 @@
--- |
--- Namespace filter
---
--- $Id: NamespaceFilter.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $
---
--- Namespaces are processed with two main filter, 'propagateNamespaces'
--- and 'validateNamespaces'.
---
--- 'propagateNamespaces' takes a XML tree and
--- attaches extra namespace info at every tag name and attribute name.
--- So after processing a tree with 'propagateNamespaces', the access functions
--- "namespaceOf" and "universalNameOf" deliver the associated namespace (or \"\")
--- for tag names and attribute names.
---
--- 'validateNamespaces' checks whether names are wellformed related to the XML namespace definition.
--- whether a legal namespace is declared for all prefixes, and whether attribute names are unique
--- related to universal names.
-
-module Text.XML.HXT.DOM.NamespaceFilter
-    ( module Text.XML.HXT.DOM.NamespaceFilter
-    , module Text.XML.HXT.DOM.NamespacePredicates
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.NamespacePredicates
-
-import Text.XML.HXT.DOM.Util
-    ( doubles )
-
--- -----------------------------------------------------------------------------
---
-
--- |
--- Type for the namespace association list, used when propagating namespaces by
--- modifying the 'QName' values in a tree
-
-type NamespaceTable = NsEnv
-
--- -----------------------------------------------------------------------------
-
--- |
--- propagate all namespace declarations \"xmlns:ns=...\" to all
--- tag and attribute nodes of a document.
---
--- This filter does not check for illegal use of namespaces.
--- The real work is done by 'propagateNamespaceEnv'.
---
--- The filter may be applied repeatedly if neccessary.
-
-propagateNamespaces	:: XmlFilter
-propagateNamespaces	= propagateNamespaceEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]
-
--- |
--- attaches the namespace info given by the namespace table
--- to a tag node and its attributes and children.
-
-propagateNamespaceEnv	:: NamespaceTable -> XmlFilter
-propagateNamespaceEnv env n
-    = ( ( processAttr (attachNamespaceUrisToAttr newEnv)
-	  .>
-	  processChildren (propagateNamespaceEnv newEnv)
-	  .>
-	  modifyQName (setNamespace newEnv)
-	)
-	`when`
-	isXTag
-      )
-      $ n
-    where
-    nsAttrs	= getAttrl				-- scan all attributes
-		  .>
-		  isOfAttr ( (\ (px, lp)
-			     -> (px == a_xmlns		-- check for prefix or whole name is "xmlns"
-				 &&
-				 lp /= ":"		-- check for none empty local part, "xmlns:" is not a legal name
-				)
-			     )
-			     . span (/= ':')		-- break the name into a pair ("prefix", ":localPart")
-			     . qualifiedName		-- select attribute name
-			   )
-		  $ n
-    nsDecl	= zip (map (drop 1			-- drop the ":", empty local part represents default name space
-			    . snd			-- take the local part with leading ":"
-			    . span (/= ':')		-- break it like above
-			    . nameOf			-- select attribute name
-			   ) nsAttrs)
-		      (map (xshow
-			    .
-			    getChildren
-			   ) nsAttrs)
-    newEnv	= addEntries nsDecl env
-
-    attachNamespaceUrisToAttr	:: NamespaceTable -> XmlFilter
-    attachNamespaceUrisToAttr attrEnv
-	= ( isOfAttr ( (\ (px, lp)
-			-> ( (not . null . drop 1) lp	-- prefix and local part must not be empty
-			     &&
-			     (not . null) px
-			   )
-		       )
-		       . span (/= ':')			-- break the name into a pair ("prefix", ":localPart")
-		       . qualifiedName			-- select attribute name
-		     )
-	    `guards`
-	    modifyQName (setNamespace attrEnv)
-	  )
-          `orElse`
-	  ( modifyQName (const xmlnsQN)			-- "xmlns" ist the only attr name without prefix but with an associated namespace URI
-	    `when`
-	    isAttr a_xmlns
-	  )
-
--- -----------------------------------------------------------------------------
-
--- |
--- validate the namespace constraints in a whole tree.
--- result is the list of errors concerning namespaces.
--- Work is done by applying 'validate1Namespaces' to all nodes.
--- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'
--- and 'isWellformedNSDecl' are applied to the appropriate tags and attributes.
-
-validateNamespaces	:: XmlFilter
-validateNamespaces
-    = choice [ isRoot
-               :-> getChildren .> validateNamespaces		-- root is correct by definition
-	     , this
-	       :-> multi validate1Namespaces
-	     ]
-
--- |
--- a single node for namespace constrains.
-
-validate1Namespaces	:: XmlFilter
-validate1Namespaces
-    = choice [ isXTag
-	       :->
-	       cat [ isOfTag ( not . isWellformedQName )
-		     `guards`
-		     (\ n -> err ("tag name " ++ show (nameOf n) ++ " is not a wellformed qualified name") n )
-
-		   , isOfTag ( not . isDeclaredNamespace )
-		     `guards`
-		     (\ n -> err ("namespace for prefix in tag name " ++ show (nameOf n) ++ " is undefined") n )
-
-                   , (\ n -> ( let
-		               dbls = doubles ((map universalNameOf . getAttrl) n)
-		               in
-		               if null dbls
-		               then none
-                               else err ( "multiple occurences of universal names for attributes of tag "
-					  ++ show (nameOf n)
-					  ++ " : " ++ foldr1 (\ x y -> x ++ ", " ++ y) (map show dbls)
-					)
-			     ) $ n
-		     )
-
-		   , getAttrl .> validate1Namespaces
-		   ]
-
-	     , isXAttr
-	       :->
-	       cat [ isOfAttr ( not . isWellformedQName )
-		     `guards`
-		     (\ n -> err ("attribute name " ++ show (nameOf n) ++ " is not a wellformed qualified name") n )
-
-		   , isOfAttr ( not . isDeclaredNamespace )
-	             `guards`
-		     (\ n -> err ("namespace for prefix in attribute name " ++ show (nameOf n) ++ " is undefined") n )
-
-                   , ( hasPrefix a_xmlns .> neg (xmlTreesToText . getChildren) )
-		     `guards`
-		     (\ n -> err ("namespace value of namespace declaration for " ++ show (nameOf n) ++ " has no value") n )
-
-                   , isOfAttr ( not . isWellformedNSDecl )
-		     `guards`
-		     (\ n -> err ("illegal namespace declaration with reserved prefix " ++ show (localPartOf n) ++ " starting with \"xml\"") n )
-	           ]
-
-             , isXDTD
-	       :->
-	       cat [ ( ( isDoctype +++ isAttlist +++ isElement +++ isDTDName )
-		       .>
-		       isOf ( not . isWellformedQualifiedName . valueOfDTD a_name )
-		     )
-		     `guards`
-                     (\ n -> err ("a DTD part contains a not wellformed qualified Name: " ++ show (valueOfDTD a_name n)) n )
-
-		   , ( isAttlist
-		       .>
-		       isOf ( not . isWellformedQualifiedName . valueOfDTD a_value )
-		     )
-		     `guards`
-                     (\ n -> err ("an ATTLIST declaration contains as attribute name a not wellformed qualified Name: " ++ show (valueOfDTD a_value n)) n )
-
-                   , ( ( isEntity +++ isParameterEntity +++ isNotation )
-		       .>
-		       isOf ( not . isNCName . valueOfDTD a_name )
-		     )
-                     `guards`
-                     (\ n -> err ("an entity or notation declaration contains a not wellformed NCName: " ++ show (valueOfDTD a_name n)) n )
-		   ]
-             , isXPi
-	       :->
-	       ( isOf ( not . isNCName . nameOf )
-	         `guards`
-                 (\ n -> err ("a PI contains a not wellformed NCName: " ++ show (nameOf n)) n )
-	       )
-	     ]
-
--- -----------------------------------------------------------------------------
-
-isNamespaceDecl	:: XmlFilter
-isNamespaceDecl
-    = isOfAttr xmlnsName
-      where
-      xmlnsName	:: AttrName -> Bool
-      xmlnsName a
-	  = px == a_xmlns
-	    &&
-	    ( null ln || head ln == ':')
-	  where
-	  (px, ln) = splitAt 5 . qualifiedName $ a
-
--- -----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/ShowXml.hs b/src/Text/XML/HXT/DOM/ShowXml.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DOM/ShowXml.hs
@@ -0,0 +1,406 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DOM.ShowXml
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   XML tree conversion to external string representation
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DOM.ShowXml
+    ( xshow
+    , showElemType
+    )
+where
+
+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
+
+-- -----------------------------------------------------------------------------
+--
+-- the toString conversion functions
+
+-- |
+-- convert the result of a filter into a string
+--
+-- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation 
+
+xshow	:: XmlTrees -> String
+xshow [(NTree (XText s) _)]	= s			-- special case optimisation
+xshow ts			= showXmlTrees ts ""
+
+-- ------------------------------------------------------------
+
+showXmlTree		:: XmlTree  -> String -> String
+
+showXmlTree (NTree (XText s) _)
+    = showString s
+
+showXmlTree (NTree (XCharRef i) _)
+    = showString "&#" . showString (show i) . showChar ';'
+
+showXmlTree (NTree (XEntityRef r) _)
+    = showString "&" . showString r . showChar ';'
+
+showXmlTree (NTree (XCmt c) _)
+    = showString "<!--" . showString c . showString "-->"
+
+showXmlTree (NTree (XCdata d) _)
+    = showString "<![CDATA[" . showString d . showString "]]>"
+
+showXmlTree (NTree (XPi n al) _)
+    = showString "<?"
+      .
+      showQName n
+      .
+      (foldr (.) id . map showPiAttr) al
+      .
+      showString "?>"
+      where
+      showPiAttr	:: XmlTree -> String -> String
+      showPiAttr a@(NTree (XAttr an) cs)
+	  | qualifiedName an == a_value
+	      = showBlank . showXmlTrees cs
+	  | otherwise
+	      = showXmlTree a
+      showPiAttr _
+	  = id
+
+showXmlTree (NTree (XTag t al) [])
+    = showLt . showQName t . showXmlTrees al . showSlash . showGt
+
+showXmlTree (NTree (XTag t al) cs)
+    = showLt . showQName t . showXmlTrees al . showGt
+      . showXmlTrees cs
+      . showLt . showSlash . showQName t . showGt
+
+showXmlTree (NTree (XDTD de al) cs)
+    = showXmlDTD de al cs
+
+showXmlTree (NTree (XAttr an) cs)
+    = showBlank . showQName an . showEq . showQuoteString (xshow cs)
+
+showXmlTree (NTree (XError l e) _)
+    = showString "<!-- ERROR (" . shows l . showString "):\n" . showString e . showString "\n-->"
+
+-- ------------------------------------------------------------
+
+showXmlTrees		:: XmlTrees -> String -> String
+showXmlTrees		= foldr (.) id . map showXmlTree
+
+showXmlTrees'		:: XmlTrees -> String -> String
+showXmlTrees'		= foldr (\ x y -> x . showNL . y) id . map showXmlTree
+
+-- ------------------------------------------------------------
+
+showQName		:: QName -> String -> String
+showQName
+    = showString . qualifiedName
+
+-- ------------------------------------------------------------
+
+showQuoteString		:: String -> String -> String
+showQuoteString s
+    | '\"' `elem` s
+	= showApos . showString s . showApos
+    | otherwise
+	= showQuot . showString s . showQuot
+
+
+-- ------------------------------------------------------------
+
+showAttr	:: String -> Attributes -> String -> String
+showAttr k al
+    = showString (fromMaybe "" . lookup k $ al)
+
+-- ------------------------------------------------------------
+
+showPEAttr	:: Attributes -> String -> String
+showPEAttr al
+    = showPE (lookup a_peref al)
+      where
+      showPE (Just pe) = showChar '%' . showString pe . showChar ';'
+      showPE Nothing   = id
+
+-- ------------------------------------------------------------
+
+showExternalId	:: Attributes -> String -> String
+showExternalId al
+    = id2Str (lookup k_system al) (lookup k_public al)
+      where
+      id2Str Nothing  Nothing  = id
+      id2Str (Just s) Nothing  = showBlank . showString k_system . showBlank . showQuoteString s
+      id2Str Nothing  (Just p) = showBlank . showString k_public . showBlank . showQuoteString p
+      id2Str (Just s) (Just p) = showBlank . showString k_public . showBlank . showQuoteString p . showBlank . showQuoteString s
+
+-- ------------------------------------------------------------
+
+showNData	:: Attributes -> String -> String
+showNData al
+    = nd2Str (lookup k_ndata al)
+      where
+      nd2Str Nothing	= id
+      nd2Str (Just v)	= showBlank . showString k_ndata . showBlank . showString v
+
+-- ------------------------------------------------------------
+
+showXmlDTD		:: DTDElem -> Attributes -> XmlTrees -> String -> String
+
+showXmlDTD DOCTYPE al cs
+    = showString "<!DOCTYPE "
+      .
+      showAttr a_name al
+      .
+      showExternalId al
+      .
+      showInternalDTD cs
+      .
+      showString ">"
+      where
+      showInternalDTD [] = id
+      showInternalDTD ds = showString " [\n" . showXmlTrees' ds . showChar ']'
+
+showXmlDTD ELEMENT al cs
+    = showString "<!ELEMENT "
+      .
+      showAttr a_name al
+      .
+      showBlank
+      .
+      showElemType (lookup1 a_type al) cs
+      .
+      showString " >"
+
+showXmlDTD ATTLIST al cs
+    = showString "<!ATTLIST "
+      .
+      ( if isNothing . lookup a_name $ al
+	then
+	showXmlTrees cs
+	else
+	showAttr a_name al
+	.
+	showBlank
+	.
+	( case lookup a_value al of
+	  Nothing -> ( showPEAttr
+		       . fromMaybe [] . getDTDAttrl
+		       . head
+		     ) cs
+	  Just a  -> ( showString a
+	               .
+                       showAttrType (lookup1 a_type al)
+                       .
+                       showAttrKind (lookup1 a_kind al)
+		     )
+	)
+      )
+      .
+      showString " >"
+      where
+      showAttrType t
+	  | t == k_peref
+	      = showBlank . showPEAttr al
+	  | t == k_enumeration
+	      = showAttrEnum
+	  | t == k_notation
+	      = showBlank . showString k_notation . showAttrEnum
+	  | otherwise
+	      = showBlank . showString t
+
+      showAttrEnum
+	  = showString " ("
+	    .
+	    foldr1 (\ s1 s2 -> s1 . showString " | " .  s2) (map (getEnum . fromMaybe [] . getDTDAttrl) cs)
+	    .
+	    showString ")"
+	    where
+	    getEnum	:: Attributes -> String -> String
+	    getEnum l = showAttr a_name l . showPEAttr l
+
+      showAttrKind k
+	  | k == k_default
+	      = showBlank . showQuoteString (lookup1 a_default al)
+	  | k == k_fixed
+	      = showBlank . showString k_fixed
+		.
+		showBlank . showQuoteString (lookup1 a_default al)
+	  | k == ""
+	      = id
+	  | otherwise
+	      = showBlank . showString k
+
+showXmlDTD NOTATION al _cs
+    = showString "<!NOTATION "
+      .
+      showAttr a_name al
+      .
+      showExternalId al
+      .
+      showString " >"
+
+showXmlDTD PENTITY al cs
+    = showEntity "% " al cs
+
+showXmlDTD ENTITY al cs
+    = showEntity "" al cs
+
+showXmlDTD PEREF al _cs
+    = showPEAttr al
+
+showXmlDTD CONDSECT _ (c1 : cs)
+    = showString "<![ "
+      .
+      showXmlTree c1
+      .
+      showString " [\n"
+      .
+      showXmlTrees cs
+      .
+      showString "]]>"
+
+showXmlDTD CONTENT al cs
+    = showContent (mkDTDElem CONTENT al cs)
+
+showXmlDTD NAME al _cs
+    = showAttr a_name al
+
+showXmlDTD de al _cs
+    = showString "NOT YET IMPLEMETED: " . showString (show de) . showBlank . showString (show al) . showString " [...]\n"
+
+-- ------------------------------------------------------------
+
+showElemType	:: String -> XmlTrees -> String -> String
+showElemType t cs
+    | t == v_pcdata
+	= showLpar . showString v_pcdata . showRpar
+
+    | t == v_mixed && (not . null) cs
+	= showLpar
+	  .
+	  showString v_pcdata
+	  .
+	  ( foldr (.) id . map (mixedContent . selAttrl . getNode) ) cs1
+	  .
+          showRpar
+	  .
+	  showAttr a_modifier al1
+    | t == v_mixed				-- incorrect tree, e.g. after erronius pe substitution
+	= showLpar
+	  .
+	  showRpar
+    | t == v_children && (not . null) cs
+	= showContent (head cs)
+    | t == v_children
+	= showLpar
+	  . showRpar
+    | t == k_peref
+	= foldr (.) id . map showContent $ cs
+    | otherwise
+	= showString t
+    where
+    [(NTree (XDTD CONTENT al1) cs1)] = cs
+
+    mixedContent :: Attributes -> String -> String
+    mixedContent l
+	= showString " | " . showAttr a_name l . showPEAttr l
+
+    selAttrl (XDTD _ as) = as
+    selAttrl (XText tex) = [(a_name, tex)]
+    selAttrl _           = []
+
+-- ------------------------------------------------------------
+
+showContent	:: XmlTree -> String -> String
+showContent (NTree (XDTD de al) cs)
+    = cont2String de
+      where
+      cont2String	:: DTDElem -> String -> String
+      cont2String NAME
+	  = showAttr a_name al
+      cont2String PEREF
+	  = showPEAttr al
+      cont2String CONTENT
+	  = showLpar
+	    .
+	    foldr1 (combine (lookup1 a_kind al)) (map showContent cs)
+            .
+            showRpar
+            .
+            showAttr a_modifier al
+      cont2String n
+	  = error ("cont2string " ++ show n ++ " is undefined")
+      combine k s1 s2
+	  = s1
+	    .
+	    showString ( if k == v_seq
+			 then ", "
+			 else " | "
+		       )
+            .
+            s2
+
+showContent n
+    = showXmlTree n
+
+-- ------------------------------------------------------------
+
+showEntity	:: String -> Attributes -> XmlTrees -> String -> String
+
+showEntity kind al cs
+    = showString "<!ENTITY "
+      .
+      showString kind
+      .
+      showAttr a_name al
+      .
+      showExternalId al
+      .
+      showNData al
+      .
+      showEntityValue cs
+      .
+      showString " >"
+
+-- ------------------------------------------------------------
+
+showEntityValue	:: XmlTrees -> String -> String
+
+showEntityValue []
+    = id
+
+showEntityValue cs
+    = showBlank . showQuoteString (xshow cs)
+
+-- ------------------------------------------------------------
+
+showBlank,
+  showEq, showLt, showGt, showSlash, showApos, showQuot, showLpar, showRpar, showNL :: String -> String
+
+showBlank	= showChar ' '
+showEq		= showChar '='
+showLt		= showChar '<'
+showGt		= showChar '>'
+showSlash	= showChar '/'
+showApos	= showChar '\''
+showQuot	= showChar '\"'
+showLpar	= showChar '('
+showRpar	= showChar ')'
+showNL		= showChar '\n'
+
+-- -----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/XmlNode.hs b/src/Text/XML/HXT/DOM/XmlNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DOM/XmlNode.hs
@@ -0,0 +1,333 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DOM.XmlNode
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   Interface for XmlArrow to basic data types NTree and XmlTree
+
+   If this module must be used in code working with arrows,
+   it should be imported qualified e.g. @as XN@, to prevent name clashes.
+
+   For code working on the \"node and tree level\" this module
+   is the interface for writing code without using the
+   constructor functions of 'XNode' and 'NTree' directly
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DOM.XmlNode
+    ( module Text.XML.HXT.DOM.XmlNode
+    , module Data.Tree.NTree.TypeDefs
+    )
+where
+
+import Control.Monad
+
+import Data.Tree.NTree.TypeDefs
+
+import Data.Maybe
+
+import Text.XML.HXT.DOM.Interface
+
+class XmlNode a where
+    -- discriminating predicates
+
+    isText		:: a -> Bool
+    isCharRef		:: a -> Bool
+    isEntityRef		:: a -> Bool
+    isCmt		:: a -> Bool
+    isCdata		:: a -> Bool
+    isPi		:: a -> Bool
+    isElem		:: a -> Bool
+    isRoot		:: a -> Bool
+    isDTD		:: a -> Bool
+    isAttr		:: a -> Bool
+    isError		:: a -> Bool
+
+    -- constructor functions for leave nodes
+
+    mkText		:: String -> a
+    mkCharRef		:: Int    -> a
+    mkEntityRef		:: String -> a
+    mkCmt		:: String -> a
+    mkCdata		:: String -> a
+    mkPi		:: QName  -> XmlTrees -> a
+    mkError		:: Int    -> String   -> a
+
+    -- selectors
+
+    getText		:: a -> Maybe String
+    getCharRef		:: a -> Maybe Int
+    getEntityRef	:: a -> Maybe String
+    getCmt		:: a -> Maybe String
+    getCdata		:: a -> Maybe String
+    getPiName		:: a -> Maybe QName
+    getPiContent	:: a -> Maybe XmlTrees
+    getElemName		:: a -> Maybe QName
+    getAttrl		:: a -> Maybe XmlTrees
+    getDTDPart		:: a -> Maybe DTDElem
+    getDTDAttrl		:: a -> Maybe Attributes
+    getAttrName		:: a -> Maybe QName
+    getErrorLevel	:: a -> Maybe Int
+    getErrorMsg		:: a -> Maybe String
+
+    -- derived selectors
+
+    getName		:: a -> Maybe QName
+    getQualifiedName	:: a -> Maybe String
+    getUniversalName	:: a -> Maybe String
+    getUniversalUri	:: a -> Maybe String
+    getLocalPart	:: a -> Maybe String
+    getNamePrefix	:: a -> Maybe String
+    getNamespaceUri	:: a -> Maybe String
+
+    -- "modifier" functions
+
+    changeText		:: (String   -> String)   -> a -> a
+    changeCmt		:: (String   -> String)   -> a -> a
+    changeName		:: (QName    -> QName)    -> a -> a
+    changeElemName	:: (QName    -> QName)    -> a -> a
+    changeAttrl		:: (XmlTrees -> XmlTrees) -> a -> a
+    changeAttrName	:: (QName    -> QName)    -> a -> a
+    changePiName	:: (QName    -> QName)    -> a -> a
+    changeDTDAttrl	:: (Attributes -> Attributes) -> a -> a
+
+    setText		:: String   -> a -> a
+    setCmt		:: String   -> a -> a
+    setName		:: QName    -> a -> a
+    setElemName		:: QName    -> a -> a
+    setElemAttrl	:: XmlTrees -> a -> a
+    setAttrName		:: QName    -> a -> a
+    setPiName		:: QName    -> a -> a
+    setDTDAttrl		:: Attributes -> a -> a
+
+    -- default implementations
+
+    getName n		= getElemName n `mplus` getAttrName n `mplus` getPiName n
+    getQualifiedName n	= getName n >>= \ n' -> return (qualifiedName n')
+    getUniversalName n	= getName n >>= \ n' -> return (universalName n')
+    getUniversalUri n	= getName n >>= \ n' -> return (universalUri n')
+    getLocalPart n	= getName n >>= \ n' -> return (localPart n')
+    getNamePrefix n	= getName n >>= \ n' -> return (namePrefix n')
+    getNamespaceUri n	= getName n >>= \ n' -> return (namespaceUri n')
+
+    setText t		= changeText     (const t)
+    setCmt c		= changeCmt      (const c)
+    setName n		= changeName     (const n)
+    setElemName n	= changeElemName (const n)
+    setElemAttrl al	= changeAttrl    (const al)
+    setAttrName	n	= changeAttrName (const n)
+    setPiName	n	= changePiName   (const n)
+    setDTDAttrl	al	= changeDTDAttrl (const al)
+
+-- XNode and XmlTree are instances of XmlNode
+
+instance XmlNode XNode where
+    isText (XText _)		= True
+    isText _			= False
+
+    isCharRef (XCharRef _)	= True
+    isCharRef _			= False
+
+    isEntityRef (XEntityRef _)	= True
+    isEntityRef _		= False
+
+    isCmt (XCmt _)		= True
+    isCmt _			= False
+
+    isCdata (XCdata _)		= True
+    isCdata _			= False
+
+    isPi (XPi _ _)		= True
+    isPi _			= False
+
+    isElem (XTag _ _)		= True
+    isElem _			= False
+
+    isRoot t                    = isElem t
+				  &&
+				  fromMaybe "" (getQualifiedName t) == t_root
+
+    isDTD (XDTD _ _)		= True
+    isDTD _			= False
+
+    isAttr (XAttr _)		= True
+    isAttr _			= False
+
+    isError (XError _ _)	= True
+    isError _			= False
+
+
+    mkText t			= XText t
+    mkCharRef c			= XCharRef c
+    mkEntityRef e		= XEntityRef e
+    mkCmt c			= XCmt c
+    mkCdata d			= XCdata d
+    mkPi n c			= XPi n (if null c then [] else [mkAttr (mkName a_value) c])
+    mkError l msg		= XError l msg
+
+
+    getText (XText t)		= Just t
+    getText _			= Nothing
+
+    getCharRef (XCharRef c)	= Just c
+    getCharRef _		= Nothing
+
+    getEntityRef (XEntityRef e)	= Just e
+    getEntityRef _		= Nothing
+
+    getCmt (XCmt c)		= Just c
+    getCmt _			= Nothing
+
+    getCdata (XCdata d)		= Just d
+    getCdata _			= Nothing
+
+    getPiName (XPi n _)		= Just n
+    getPiName _			= Nothing
+
+    getPiContent (XPi _ c)	= Just c
+    getPiContent _		= Nothing
+
+    getElemName (XTag n _)	= Just n
+    getElemName _		= Nothing
+
+    getAttrl (XTag _ al)	= Just al
+    getAttrl (XPi  _ al)	= Just al
+    getAttrl _			= Nothing
+
+    getDTDPart (XDTD p _)	= Just p
+    getDTDPart _		= Nothing
+
+    getDTDAttrl (XDTD _ al)	= Just al
+    getDTDAttrl _		= Nothing
+
+    getAttrName (XAttr n)	= Just n
+    getAttrName _		= Nothing
+
+    getErrorLevel (XError l _)	= Just l
+    getErrorLevel _		= Nothing
+
+    getErrorMsg (XError _ m)	= Just m
+    getErrorMsg _		= Nothing
+
+    changeText cf (XText t)		= XText (cf t)
+    changeText _ _			= error "changeText undefined"
+
+    changeCmt cf (XCmt c)		= XCmt (cf c)
+    changeCmt _ _			= error "changeCmt undefined"
+
+    changeName cf (XTag n al)		= XTag (cf n) al
+    changeName cf (XAttr n)		= XAttr (cf n)
+    changeName cf (XPi n al)		= XPi (cf n) al
+    changeName _ _			= error "changeName undefined"
+
+    changeElemName cf (XTag n al)	= XTag (cf n) al
+    changeElemName _ _			= error "changeElemName undefined"
+
+    changeAttrl cf (XTag n al)		= XTag n (cf al)
+    changeAttrl cf (XPi  n al)		= XPi  n (cf al)
+    changeAttrl _ _			= error "changeAttrl undefined"
+
+    changeAttrName cf (XAttr n)		= XAttr (cf n)
+    changeAttrName _ _			= error "changeAttrName undefined"
+
+    changePiName cf (XPi n al)		= XPi (cf n) al
+    changePiName _ _			= error "changeAttrName undefined"
+
+    changeDTDAttrl cf (XDTD p al)	= XDTD p (cf al)
+    changeDTDAttrl _ _			= error "changeDTDAttrl undefined"
+
+mkElementNode	:: QName -> XmlTrees -> XNode
+mkElementNode	= XTag
+
+mkAttrNode	:: QName -> XNode
+mkAttrNode	= XAttr
+
+mkDTDNode	:: DTDElem -> Attributes -> XNode
+mkDTDNode	= XDTD
+
+instance XmlNode a => XmlNode (NTree a) where
+    isText		= isText      . getNode
+    isCharRef		= isCharRef   . getNode
+    isEntityRef		= isEntityRef . getNode
+    isCmt		= isCmt       . getNode
+    isCdata		= isCdata     . getNode
+    isPi		= isPi        . getNode
+    isElem		= isElem      . getNode
+    isRoot		= isRoot      . getNode
+    isDTD		= isDTD       . getNode
+    isAttr		= isAttr      . getNode
+    isError		= isError     . getNode
+
+    mkText		= mkLeaf . mkText
+    mkCharRef		= mkLeaf . mkCharRef
+    mkEntityRef		= mkLeaf . mkEntityRef
+    mkCmt		= mkLeaf . mkCmt
+    mkCdata		= mkLeaf . mkCdata
+    mkPi n		= mkLeaf . mkPi n
+    mkError l		= mkLeaf . mkError l
+
+    getText		= getText       . getNode
+    getCharRef		= getCharRef    . getNode
+    getEntityRef	= getEntityRef  . getNode
+    getCmt		= getCmt        . getNode
+    getCdata		= getCdata      . getNode
+    getPiName		= getPiName     . getNode
+    getPiContent	= getPiContent  . getNode
+    getElemName		= getElemName   . getNode
+    getAttrl		= getAttrl      . getNode
+    getDTDPart		= getDTDPart    . getNode
+    getDTDAttrl		= getDTDAttrl   . getNode
+    getAttrName		= getAttrName   . getNode
+    getErrorLevel	= getErrorLevel . getNode
+    getErrorMsg		= getErrorMsg   . getNode
+
+    changeText cf	= changeNode (changeText cf)
+    changeCmt cf	= changeNode (changeCmt  cf)
+    changeName cf	= changeNode (changeName cf)
+    changeElemName cf	= changeNode (changeElemName cf)
+    changeAttrl cf	= changeNode (changeAttrl cf)
+    changeAttrName cf	= changeNode (changeAttrName cf)
+    changePiName cf	= changeNode (changePiName cf)
+    changeDTDAttrl cf	= changeNode (changeDTDAttrl cf)
+
+mkElement	:: QName -> XmlTrees -> XmlTrees -> XmlTree
+mkElement n al	= mkTree (mkElementNode n al)
+
+mkRoot		:: XmlTrees -> XmlTrees -> XmlTree
+mkRoot al	= mkTree (mkElementNode (mkSNsName t_root) al)
+
+mkAttr		:: QName -> XmlTrees -> XmlTree
+mkAttr n	= mkTree (mkAttrNode n)
+
+mkDTDElem	:: DTDElem -> Attributes -> XmlTrees -> XmlTree
+mkDTDElem e al	= mkTree (mkDTDNode e al)
+
+addAttr		:: XmlTree -> XmlTrees -> XmlTrees
+addAttr a al
+    | isAttr a	= add al
+    | otherwise	= al
+    where
+    an = (qualifiedName . fromJust . getAttrName) a
+    add []
+	= [a]
+    add (a1:al1)
+	| isAttr a1
+	  &&
+	  (qualifiedName . fromJust . getAttrName) a1 == an
+	    = a : al1
+	| otherwise
+	    = a1 : add al1
+
+mergeAttrl	:: XmlTrees -> XmlTrees -> XmlTrees
+mergeAttrl 	= foldr addAttr
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/XmlState.hs b/src/Text/XML/HXT/DOM/XmlState.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/XmlState.hs
+++ /dev/null
@@ -1,689 +0,0 @@
--- |
--- This module provides a Monad for an internal state and IO commands.
--- The state consists of two parts, the user state and the system state
--- user state ist a type parameter, the system state is a list
--- name-value pair. If the user state is not needed, the type parameter
--- can be instantiated with @()@.
---
--- Furthermore there are types for Xml filter working on this monad
--- and functions for manipulating the state components
--- and for lifting i\/o commands and XmlFilter to monad filters.
---
--- Error reporting functions are also located in this module.
---
--- Version : $Id: XmlState.hs,v 1.3 2005/05/27 13:15:23 hxml Exp $
-
-module Text.XML.HXT.DOM.XmlState
-    ( module Text.XML.HXT.DOM.XmlState
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import qualified Control.Monad.MonadStateIO as MonadStateIO
-
-import System.IO
-import Data.Maybe
-
--- ------------------------------------------------------------
-
--- |
--- The internal system state consists of a list of name-value pairs
--- of type @(String, XmlTrees)@, so arbitrary lists of trees can be stored.
--- For options, often only strings are used as values, so a set of access
--- functions with string values is available
--- The error handling method can be controlled by an error handler filter,
--- the default filter issues the errors on stderr
-
-data SysState			= SysState { sysStateAttrs		:: ! SysStateAttrs
-					   , sysStateErrorHandler	:: ! (XmlStateFilter ())
-					   }
-
-type SysStateAttrs		= AssocList String XmlTrees
-
--- |
--- The State has a system and a user part
--- the user state is a type parameter
-
-data XmlState state		= XmlState { sysState	:: ! SysState
-					   , userState	:: ! state
-					   }
-
--- |
--- The monad type for commands. It is an instance of "StateIO" from the
--- general module "Control.Monad.MonadStateIO".
-
-type XState state res		= MonadStateIO.StateIO (XmlState state) res
-
--- |
--- The "XmlFilter" type for filters working on a state
-
-type XmlStateFilter state	= XmlTree -> XState state XmlTrees
-
--- ------------------------------------------------------------
---
--- user defined state
--- access functions
-
--- |
--- change the user state
---
---    * 1.parameter fct :  the user state change function
---
---    - returns : the new state
-
-changeState	:: (state -> state) -> XState state state
-changeState f
-    = do
-      ns <- MonadStateIO.changeState f'
-      return (userState ns)
-      where
-      f' s = s { userState = f (userState s) }
-
--- |
--- set the user state.
---
---    * 1.parameter s :  the new state
---
---    - returns : the new state
-
-setState	:: state -> XState state state
-setState s
-    = changeState ( \_ -> s )
-
--- |
--- read the user state
---
---    - returns : the current state
-
-getState	:: XState state state
-getState
-    = changeState id
-
--- ------------------------------------------------------------
-
--- |
--- change the system part of the state.
---
--- see also : 'changeState'
-
-changeSysState	:: (SysState -> SysState) -> XState state SysState
-changeSysState f
-    = do
-      ns <- MonadStateIO.changeState f'
-      return (sysState ns)
-      where
-      f' s = s { sysState = f (sysState s) }
-
--- |
--- set the system part of the state.
---
--- see also : 'setState'
-
-setSysState		:: SysState -> XState state SysState
-setSysState s
-    = changeSysState ( \_ -> s )
-
--- |
--- read the system part of the state.
---
--- see also : 'getState'
-
-getSysState		:: XState state SysState
-getSysState
-    = changeSysState id
-
--- |
--- the initial system state
---
--- an empty list of attribute value pairs
-
-initialSysState		:: SysState
-initialSysState
-    = SysState { sysStateAttrs        = []
-	       , sysStateErrorHandler = errorMsgToStderr
-	       }
-
--- |
--- change the attributes in the system state
-
-changeSysStateAttrs		:: (SysStateAttrs -> SysStateAttrs) -> (SysState -> SysState)
-changeSysStateAttrs cf sstate
-    = sstate { sysStateAttrs = cf (sysStateAttrs sstate) }
-
-
--- |
--- set the error message handler
-
-setSysErrorHandler		:: XmlStateFilter () -> XState state ()
-setSysErrorHandler ehf
-    = do
-      changeSysState (\ s -> s { sysStateErrorHandler = ehf })
-      return ()
-
--- |
--- get the error handler
-
-getSysErrorHandler		:: XState state (XmlStateFilter ())
-getSysErrorHandler
-    = do
-      s <- getSysState
-      return (sysStateErrorHandler s)
-
--- ------------------------------------------------------------
-
--- |
--- set or change a single system parameter.
---
---    * 1.parameter name :  the name of the parameter
---
---    - 2.parameter value :  the list of associated trees
---
---    - returns : nothing
---
--- see also : 'setSysParam', 'setSysParamInt'
-
-setSysParamTree		:: String -> XmlTrees -> XState state ()
-setSysParamTree name val
-    = do
-      changeSysState (changeSysStateAttrs (addEntry name val))
-      return ()
-
--- |
--- set or change a single system parameter of type string.
---
---    * 1.parameter name :  the name of the parameter
---
---    - 2.parameter value :  the (new) string value
---
---    - returns : nothing
---
--- see also : 'setSysParamTree', setSysParamInt
-
-setSysParam		:: String -> String -> XState state ()
-setSysParam name val
-    = setSysParamTree name (xtext val)
-
--- |
--- set or change a single integer type system parameter
---
--- see also : 'setSysParam'
-
-setSysParamInt		:: String -> Int -> XState state ()
-setSysParamInt name val	= setSysParam name (show val)
-
--- |
--- add (or change) all attributes of the document root to the system state
---     - returns : this
-
-setSystemParams	:: XmlStateFilter state
-setSystemParams t
-    = do
-      changeSysState (changeSysStateAttrs (addEntries (toTreel . getAttrl $ t)))
-      thisM t
-
--- ------------------------------------------------------------
-
--- |
--- read a system parameter
---
---    * 1.parameter name :  the name of the parameter
---
---    - returns : the list of tres associated with the key, or the empty list for unknown parameters
-
-getSysParamTree		:: String -> XState state XmlTrees
-getSysParamTree name
-    = do
-      s <- getSysState
-      return (lookup1 name (sysStateAttrs s))
-
--- |
--- read a system string parameter
---
---    * 1.parameter name :  the name of the parameter
---
---    - returns : the value, or the empty string for unknown parameters
-
-getSysParam		:: String -> XState state String
-getSysParam name
-    = do
-      ts <- getSysParamTree name
-      return (xshow ts)
-
--- |
--- read a system parameter or return a default value
---
---    * 1.parameter name :  the name of the parameter
---
---    - 2.parameter default :  the default value
---
---    - returns : the value if found, else the default
-
-getSysParamWithDefault	:: String -> String -> XState state String
-getSysParamWithDefault name def
-    = do
-      val <- getSysParam name
-      return ( if null val
-	       then def
-	       else val
-	     )
-
--- |
--- read an integer system parameter
---
---    * 1.parameter name : 
---
---    - 2.parameter default : 
---
--- see also : 'getSysParamWithDefault'
-
-getSysParamInt	:: String -> Int -> XState state Int
-getSysParamInt var def
-    = do
-      val <- getSysParamWithDefault var (show def)
-      return (read val)
-
--- ------------------------------------------------------------
-
--- |
--- exec a XState command with initial state.
---
---    * 1.parameter initalState :  the inital user state
---
---    - 2.parameter cmd :  the command
---
---    - returns : the i\/o command with result and user state
-
-run0		:: XmlState state -> XState state res -> IO (res, XmlState state)
-run0 initialState (MonadStateIO.STIO cmd)
-    = do
-      (res, finalState) <- cmd initialState
-      return (res, finalState)
-
--- |
--- exec a XState command with initial user state.
--- ignore final user state.
--- like run0, but ignore the resulting user state
-
-run		:: state -> XState state res -> IO res
-run initialUserState cmd
-    = do
-      (res, _finalState) <- run0 (XmlState initialSysState initialUserState) cmd
-      return res
-
--- |
--- exec a XState command in th IO monad.
--- like run with the empty state ().
-
-run'		:: XState () res -> IO res
-run'		= run ()
-
--- ------------------------------------------------------------
-
--- |
--- run a command in a new user state.
--- chain the system state part,
--- init new system state with the current one, run the command and
--- update the old system state with the resulting new system state
---
---    * 1.parameter initialUserState :  the initial user state
---
---    - 2.parameter cmd :  the command
---
---    - returns : the result of executing cmd and the final state
-
-chain'		:: state1 -> XState state1 res -> XState state0 (res, state1)
-chain' initialUserState1 cmd1
-    = do
-      sysState0 <- getSysState
-      (res, finalState1) <- io $ run0 (XmlState sysState0 initialUserState1) cmd1
-      setSysState (sysState finalState1)
-      return (res, (userState finalState1))
-
--- |
--- like chain' but forget the final user state
---
---    * 1.parameter initialUserState :  the initial user state
---
---    - 2.parameter cmd :  the command
---
---    - returns : only the result of executing cmd
-
-chain		:: state1 -> XState state1 res -> XState state0 res
-chain initialUserState1 cmd1
-    = do
-      (res, _) <- chain' initialUserState1 cmd1
-      return res
-
--- ------------------------------------------------------------
---
--- lift functions
-
--- |
--- lift a XmlFilter to a XmlStateFilter filter
--- issue all error nodes as error messages
--- and remove the error nodes from the result
---
---    * 1.parameter f :  the filter
---
---    - returns : the filter running in the state monad
---
---		  all errors are filtered from the result and issued on stderr
-
-liftF		:: XmlFilter -> XmlStateFilter state
-liftF f		= liftMf f .>> issueError
-
--- |
--- lift an I\/O command
---
---    * 1.parameter cmd :  the i\/o command
---
---    - returns : the i\/o command lifted to the XML state monad
-
-io		:: IO a -> XState state a
-io		= MonadStateIO.io
-
--- ------------------------------------------------------------
---
-
--- |
--- set the trace level.
---
--- convention:
---
--- 0: no trace output (default)
---
--- 1: trace important computation steps, e.g. accessing a document
---
--- 2: trace small computation steps
---
--- 3: output an intermediate result XmlTree in XML source format
---
--- 4: output an intermediate result XmlTree in tree representation
---
---    * 1.parameter level :  the trace level
---
---    - returns : nothing
-
-setTraceLevel	:: Int -> XState state ()
-setTraceLevel l	= setSysParamInt a_trace l
-
--- |
--- get the current trace level.
---
---    - returns : the current trace level
-
-getTraceLevel	:: XState state Int
-getTraceLevel	= getSysParamInt a_trace 0
-
--- |
--- trace output for arbitray commands.
---
---    * 1.parameter level :  the trace level,
---			  for which the command will be execuded
---			  if level \<= current trace level
---
---    - 2.parameter cmd :  the command to be executed
---
---    - returns : nothing
-
-traceCmd	:: Int -> XState state a -> XState state ()
-traceCmd level cmd
-    = do
-      trcLevel <- getTraceLevel
-      if level <= trcLevel
-        then do
-	     _ <- cmd
-	     return ()
-        else return ()
-
--- |
--- trace output function for simple text.
---
---    * 1.parameter level :  like in traceCmd
---
---    - 2.parameter str :  the test
---
---    - returns : nothing
-
-trace		:: Int -> String -> XState state ()
-trace level str
-    = traceCmd level
-      $ do
-	io $ hPutStrLn stderr ("-- (" ++ show level ++ ") " ++ str)
-
--- |
--- trace output of the user part of the program state.
---
---    * 1.parameter level :  like in traceCmd
---
---    - 2.parameter showFct :  the toString function
---
---    - returns : nothing
-
-traceState	:: Int -> (state -> String) -> XState state ()
-traceState level fct
-    = traceCmd level
-      $ do
-	s <- getState
-	io $ hPutStrLn stderr (fct s)
-
--- ------------------------------------------------------------
---
--- error functions
-
--- |
--- filter to reset the state attribute 'a_status'
---    - returns : this
-
-clearStatus	:: XmlStateFilter state
-clearStatus t
-    = do
-      setSysParamInt a_status c_ok
-      thisM t
-
--- |
--- report an error message.
---
---    - returns : if the input tree n represents an error, @res = []@
---		  and the error is processed by the errror handler filter (default: error is issued on stderr)
---		  else @res = [n]@
---
--- see also : 'issueErr'
-
-issueError	:: XmlStateFilter state
-issueError
-    = (setErrorMsgLevel .>> errorMsgHandler .>> noneM)
-      `whenM`
-      isXError
-
-errorMsgHandler	:: XmlStateFilter state
-errorMsgHandler
-    = performAction
-      ( \ t -> chain' () ( do
-			   ehf <- getSysErrorHandler
-			   ehf t
-			   return ()
-			 )
-      )
-
--- |
--- set the error level in system state
-
-setErrorMsgLevel	:: XmlStateFilter state
-setErrorMsgLevel
-    = performAction
-      ( \ (NTree (XError level _str) _cs) ->
-	do
-	errLevel <- getSysParamInt a_status 0
-	setSysParamInt a_status (max errLevel level)
-      )
-
--- |
--- default error handler for writing errors to stderr
-
-errorMsgToStderr	:: XmlStateFilter state
-errorMsgToStderr
-    = performAction
-      ( \ (NTree (XError level str) _cs) ->
-	io $ hPutStrLn stderr ("\n" ++ errClass level ++ ": " ++ str)
-      )
-
--- |
--- error message handler for collecting all error messages
--- all messages are stored under attribute 'a_error_log'
--- they can be read with @getSysParamTree a_error_log@ or by
--- applying the filter 'getErrorMsg' to the root node
-
-errorMsgLogging		:: XmlStateFilter state
-errorMsgLogging
-    = performAction
-      ( \ t ->
-	do
-	errLog <- getSysParamTree a_error_log
-	setSysParamTree a_error_log (t : errLog)
-      )
-
-errorMsgLoggingAndToStderr      :: XmlStateFilter state
-errorMsgLoggingAndToStderr	= errorMsgLogging.>> errorMsgToStderr
-
--- |
--- the filter for reading all collected error mesages
---
--- result is the list of error messages, the input tree is ignored
-
-getErrorMsg	:: XmlStateFilter state
-getErrorMsg _t
-    = do
-      el <- getSysParamTree a_error_log
-      setSysParamTree a_error_log []
-      return (reverse el)
-
--- |
--- error level translation
--- 'c_warn' (1) : warning,
--- 'c_err' (2): error (e.g. parse error, validation error, ...),
--- 'c_fatal' (3) : fatal error (document access error, internal error, ...)
-
-errClass	:: Int -> String
-errClass l
-    = fromMaybe "fatal error" . lookup l $ msgList
-      where
-      msgList	= [ (c_ok,	"no error")
-		  , (c_warn,	"warning")
-		  , (c_err,	"error")
-		  , (c_fatal,	"fatal error")
-		  ]
-
--- |
--- short cut for issuing a warning
---
--- see also : 'issueError', 'issueErr'
-
-issueWarn	:: String -> XmlStateFilter state
-issueWarn msg	= liftMf (warn msg) .>> issueError
-
--- |
--- short cut for issuing an error
---
--- see also : 'issueError'
-
-issueErr	:: String -> XmlStateFilter state
-issueErr msg	= liftMf (err msg) .>> issueError
-
--- |
--- short cut for issuing a fatal error
---
--- see also : 'issueError', 'issueErr'
-
-issueFatal	:: String -> XmlStateFilter state
-issueFatal msg	= liftMf (fatal msg) .>> issueError
-
-
--- ------------------------------------------------------------
---
--- issue an error, add the error to the document root tree
--- and return the tree
-
-addFatal	:: String -> XmlStateFilter state
-addFatal msg
-    = liftF ( fatal msg
-	      +++
-	      setStatus c_fatal "accessing documents"
-	    )
-
--- ------------------------------------------------------------
-
--- |
--- checks the value of the attribute 'a_status' in a document root.
--- if it contains a value greater or equal to 'c_err', an error with error message
--- stored in attribute 'a_module' is issued and the filter acts as the 'noneM' filter
--- else its the 'thisM' filter
-
-checkStatus	:: XmlStateFilter state
-checkStatus t
-    = if status >= c_err
-      then do
-	   errorMsgHandler (mkXErrorTree c_warn (errClass status ++ "s detected in " ++ msg) [])
-	   noneM t
-	else
-           thisM t
-    where
-    status = intValueOf a_status t
-    msg    =    valueOf a_module t
-
--- |
--- add the error level and the module where the error occured
--- to the attributes of a document root node and remove the children when level is greater or equal to 'c_err'
-
-setStatus	:: Int -> String -> XmlFilter
-setStatus level msg
-    = ( addAttrInt a_status level
-	.>
-	addAttr a_module msg
-	.>
-	( if level >= c_err
-	  then replaceChildren []
-	  else this
-	)
-      )
-      `when` isRoot
-
--- |
--- check whether tree is a document root and the status attribute has a value less than 'c_err'
-
-statusOk	:: XmlFilter
-statusOk
-    = isRoot
-      .>
-      isOf (\ t -> not (intValueOf a_status t >= c_err))
--- |
--- check whether the error level attribute in the system state
--- is set to error, in this case the children of the document root are
--- removed and error info is added as attributes with 'setStatus'
--- else nothing is changed
-
-checkResult	:: String -> XmlStateFilter state
-checkResult msg t
-    = do
-      level <- getSysParamInt a_status 0
-      ( if level <= c_warn
-	then thisM
-	else liftMf ( setStatus level msg )
-        ) t
-
--- |
--- monadic filter for processing the attribute list of a tag.
--- for other trees this filter acts like 'noneM'
---
--- see also : 'processAttr', 'processAttrl'
-
-processAttrM				:: XmlStateFilter a -> XmlStateFilter a
-processAttrM f t
-    = do
-      res <- f $$< al
-      return $ replaceAttrl res t
-    where
-    al = getAttrl t
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/XmlTree.hs b/src/Text/XML/HXT/DOM/XmlTree.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/XmlTree.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- |
--- This helper module exports elements from the basic libraries:
--- XmlTreeTypes, XmlKeywords, XNodeFunctions, XmlTreeFunctions and XmlTreeFilter
---
--- Version : $Id: XmlTree.hs,v 1.1 2004/09/02 19:11:58 hxml Exp $
-
-module Text.XML.HXT.DOM.XmlTree
-    ( module Text.XML.HXT.DOM.XmlTreeTypes
-    , module Text.XML.HXT.DOM.XmlKeywords
-    , module Text.XML.HXT.DOM.XmlTreeFunctions
-    , module Text.XML.HXT.DOM.XmlTreeFilter
-    )
-
-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.XmlTreeFunctions	-- tree constructors and selector
-import Text.XML.HXT.DOM.XmlTreeFilter		-- basic filter
-
-
diff --git a/src/Text/XML/HXT/DOM/XmlTreeFilter.hs b/src/Text/XML/HXT/DOM/XmlTreeFilter.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/XmlTreeFilter.hs
+++ /dev/null
@@ -1,957 +0,0 @@
--- |
--- basic XmlTree filter
---
--- Version : $Id: XmlTreeFilter.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $
-
-module Text.XML.HXT.DOM.XmlTreeFilter
-    ( module Text.XML.HXT.DOM.XmlTreeFilter
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTreeTypes
-import Text.XML.HXT.DOM.XmlTreeFunctions
-import Text.XML.HXT.DOM.XmlKeywords
-import Text.XML.HXT.DOM.Unicode	( isXmlSpaceChar	)
-import Text.XML.HXT.DOM.Util	( decimalStringToInt	)
-
-import Data.List		( partition	)
-
-infixl 7 += , ++=
-
--- -----------------------------------------------------------------------------
---
--- filter predicates
-
--- |
--- test whether the root of a tree contains a document root node.
-
-isRoot			:: XmlFilter
-isRoot			= isOfNode (isTagNode t_root)
-
--- |
--- test whether the root of a tree contains a tag node.
---
--- see also: 'isNsTag'
-
-isTag			:: String -> XmlFilter
-isTag tn		= isOfNode (isTagNode tn)
-
--- |
--- namespace aware test whether the root of a tree contains a tag node. Parameters are the local part and namespace.
--- Only usable after namespace propagation.
---
--- see also: 'isTag'
-
-isNsTag			:: String -> String -> XmlFilter
-isNsTag lp ns		= isOfTag (\ t -> localPart t == lp && namespaceUri t == ns)
-
--- |
--- test whether the root of a tree has a given local name
--- see also : 'hasNamespace', 'hasPrefix', 'isTag', 'isAttr'
-
-hasLocalPart		:: String -> XmlFilter
-hasLocalPart lp		= isOf ((== lp) . localPartOf)
-
--- |
--- test whether the root of a tree has a given prefix name
--- see also : 'hasNamespace', 'hasLocalPart', 'isTag', 'isAttr'
-
-hasPrefix		:: String -> XmlFilter
-hasPrefix px		= isOf ((== px) . prefixOf)
-
--- |
--- test whether the root of a tree belongs to a given namespace
--- see also : 'isTag', 'isAttr', 'hasLocalPart', 'hasPrefix'
-
-hasNamespace		:: String -> XmlFilter
-hasNamespace ns		= isOf ((== ns) . namespaceOf)
-
--- |
--- test whether the root of a tree contains a tag node with a special name.
-
-isOfTag			:: (TagName -> Bool) -> XmlFilter
-isOfTag			= isOfNode . isOfTagNode
-
--- |
--- test whether the node of a tree is a XTag node or a XPi node with an attibute of a specific name
---
--- see also: 'isAttr', 'hasNsAttr'
-
-hasAttr			:: String -> XmlFilter
-hasAttr an		= (getAttrl .> isAttr an) `guards` this
-
--- |
--- test whether the tree is a XTag node with an attibute of a specific local name and namespace uri
---
--- see also: 'hasAttr', 'isNsAttr'
-
-hasNsAttr		:: String -> String -> XmlFilter
-hasNsAttr an ns		= (getAttrl .> isNsAttr an ns) `guards` this
-
--- |
--- test whether the given node is a XTag node or a XPI node with an attribute with a value with a specific property.
--- In case of a match, the attribute value represented by a text node is returned as single element list,
--- else the empty list is the result.
---
--- see also : 'getValue'
-
-hasValue		:: String -> (String -> Bool) -> XmlFilter
-hasValue a p t
-   | (not . null) att
-     &&
-     p val
-       = xtext val
-   | otherwise
-       = []
-   where
-   att = getAttrl .> isAttr a $ t
-   val = xshow . getChildren $$ att
-
--- |
--- test whether the tree is a processing instruction with a given name.
-
-isPi			:: String -> XmlFilter
-isPi pn			= isOfNode (isPiNode pn)
-
--- |
--- test whether the tree is a \<?xml ... ?\> declaration
-
-isXmlPi			:: XmlFilter
-isXmlPi			= isPi t_xml
-
--- |
--- test whether the root of a tree contains a processing instruction of a special name.
-
-isOfPi			:: (TagName -> Bool) -> XmlFilter
-isOfPi			= isOfNode . isOfPiNode
-
--- -----------------------------------------------------------------------------
-
--- simple XNode Filter predicates
---
-
--- |
--- test whether the root of a tree contains a CDATA node.
-
-isXCdata		:: XmlFilter
-isXCdata		= isOfNode isXCdataNode
-
--- |
--- test whether the root of a tree contains a character reference node.
-
-isXCharRef		:: XmlFilter
-isXCharRef		= isOfNode isXCharRefNode
-
--- |
--- test whether the root of a tree contains a comment node.
-
-isXCmt			:: XmlFilter
-isXCmt			= isOfNode isXCmtNode
-
--- |
--- test whether the root of a tree contains a DTD part.
-
-isXDTD			:: XmlFilter
-isXDTD			= isOfNode isXDTDNode
-
--- |
--- test whether the root of a tree contains an entity reference node.
-
-isXEntityRef		:: XmlFilter
-isXEntityRef		= isOfNode isXEntityRefNode
-
--- |
--- test whether the root of a tree contains an error node.
-
-isXError		:: XmlFilter
-isXError		= isOfNode isXErrorNode
-
--- |
--- test whether the root of a tree contains a processing instruction node.
-
-isXPi			:: XmlFilter
-isXPi			= isOfNode isXPiNode
-
--- |
--- test whether the root of a tree contains a tag node.
-
-isXTag			:: XmlFilter
-isXTag			= isOfNode isXTagNode
-
--- |
--- test whether the root of a tree contains an attribute node.
-
-isXAttr			:: XmlFilter
-isXAttr			= isOfNode isXAttrNode
-
--- |
--- test whether the root of a tree is an attribute node for a given attribute name
-
-isAttr			:: String -> XmlFilter
-isAttr an		= isOfNode (isAttrNode an)
-
--- |
--- namespace aware test whether the tree contains an attribute node. Parameters are the local part of the atribute name and the namespace.
--- Only usable after namespace propagation.
---
--- see also: 'isNsTag', 'isAttr', 'hasNsAttr'
-
-isNsAttr		:: String -> String -> XmlFilter
-isNsAttr lp ns		= isOfAttr (\ a -> localPart a == lp && namespaceUri a == ns)
-
--- |
--- general test for an attribute name
-
-isOfAttr		:: (AttrName -> Bool) -> XmlFilter
-isOfAttr		= isOfNode . isOfAttrNode
-
--- |
--- test whether the root of a tree contains a text node.
-
-isXText			:: XmlFilter
-isXText			= isOfNode isXTextNode
-
--- |
--- test whether the root of a tree contains a special text.
-
-isText			:: String -> XmlFilter
-isText t		= isOfNode (isTextNode t)
-
--- |
--- test whether the root of a tree contains a text node with a special property
-
-isOfText		:: (String -> Bool) -> XmlFilter
-isOfText		= isOfNode . isOfTextNode
-
--- |
--- test whether the root of a tree contains a text node only with whitespace.
-
-isWhiteSpace		:: XmlFilter
-isWhiteSpace
-    = isOfNode isWS
-      where
-      isWS n
-	  = isXTextNode n
-	    && all isXmlSpaceChar (textOfXNode n)
-
--- ------------------------------------------------------------
---
--- XDTD Predicates
-
--- |
--- test whether the root of a tree contains a DOCTYPE DTD part.
-
-isDoctype			:: XmlFilter
-isDoctype			= isOfNode (isDTDElemNode DOCTYPE)
-
--- |
--- test whether the root of a tree contains an ATTLIST DTD part.
-
-isAttlist			:: XmlFilter
-isAttlist			= isOfNode (isDTDElemNode ATTLIST)
-
--- |
--- test whether the root of a tree contains an ELEMENT DTD part.
-
-isElement			:: XmlFilter
-isElement			= isOfNode (isDTDElemNode ELEMENT)
-
--- |
--- test whether the root of a tree contains an ENTITY DTD part.
-
-isEntity			:: XmlFilter
-isEntity			= isOfNode (isDTDElemNode ENTITY)
-
--- |
--- test whether the root of a tree contains a parameter ENTITY reference.
-
-isPeRef				:: XmlFilter
-isPeRef				= isOfNode (isDTDElemNode PEREF)
-
--- |
--- test whether the root of a tree contains a DTD name part.
-
-isDTDName			:: XmlFilter
-isDTDName			= isOfNode (isDTDElemNode NAME)
-
--- |
--- test whether the root of a tree contains a conditional section DTD part.
-
-isCondSect			:: XmlFilter
-isCondSect			= isOfNode (isDTDElemNode CONDSECT)
-
--- |
--- test whether the root of a tree contains a parameter entity declaration.
-
-isParameterEntity		:: XmlFilter
-isParameterEntity		= isOfNode (isDTDElemNode PENTITY)
-
--- |
--- test whether the root of a tree contains a NOTATION DTD part.
-
-isNotation			:: XmlFilter
-isNotation			= isOfNode (isDTDElemNode NOTATION)
-
--- ATTLIST predicates
-
-isDefaultAttrKind		:: XmlFilter
-isDefaultAttrKind		= isOf (a_kind `ofDTDequals` k_default)
-
-isEnumAttrType			:: XmlFilter
-isEnumAttrType			= isOf (a_type `ofDTDequals` k_enumeration)
-
-isFixedAttrKind			:: XmlFilter
-isFixedAttrKind			= isOf (a_kind `ofDTDequals` k_fixed)
-
-isIdAttrType			:: XmlFilter
-isIdAttrType			= isOf (a_type `ofDTDequals` k_id)
-
-isIdRefAttrType			:: XmlFilter
-isIdRefAttrType			= isOf ((`elem` [k_idref, k_idrefs]) . valueOfDTD a_type)
-
-isNotationAttrType		:: XmlFilter
-isNotationAttrType		= isOf (a_type `ofDTDequals` k_notation)
-
-isRequiredAttrKind		:: XmlFilter
-isRequiredAttrKind		= isOf (a_kind `ofDTDequals` k_required)
-
-isAttlistParameterEntity	:: XmlFilter
-isAttlistParameterEntity	= isAttlist .> isOf (a_type `ofDTDequals` k_peref)
-
--- ELEMENT predicates
-
-isEmptyElement			:: XmlFilter
-isEmptyElement			= isOf (a_type `ofDTDequals` k_empty)
-
-isMixedContentElement		:: XmlFilter
-isMixedContentElement		= isOf (a_type `ofDTDequals` v_mixed)
-
-isElemWithContent		:: XmlFilter
-isElemWithContent		= isElement
-				  .>
-				  isOf ((`elem` [v_mixed, v_children]) . valueOfDTD a_type)
-
-isAttlistOfElement		:: String -> XmlFilter
-isAttlistOfElement el		= isAttlist
-				  .>
-				  isOf (a_name `ofDTDequals` el)
-
-isElemContentParamEntity	:: XmlFilter
-isElemContentParamEntity	= isElement
-				  .>
-				  isOf (a_type `ofDTDequals` k_peref)
-
--- ENTITY predicates
-
-isUnparsedEntity		:: XmlFilter
-isUnparsedEntity		= isOf (hasEntry k_ndata . attrlOfDTD)
-
-isExternalParameterEntity	:: XmlFilter
-isExternalParameterEntity	= isParameterEntity
-				  .>
-				  isOf (hasEntry k_system . attrlOfDTD)
-
-isInternalParameterEntity	:: XmlFilter
-isInternalParameterEntity	= isParameterEntity
-				  .> isOf (not . hasEntry k_system . attrlOfDTD)
-
--- -----------------------------------------------------------------------------
-
--- |
--- test whether the root of a tree contains an error node for a warning.
-
-isWarning 			:: XmlFilter
-isWarning			= isOfNode $ isErrorNode c_warn
-
--- |
--- test whether the root of a tree contains an error node for an error.
-
-isError 			:: XmlFilter
-isError				= isOfNode $ isErrorNode c_err
-
--- |
--- test whether the root of a tree contains an error node for a fatal error.
-
-isFatalError 			:: XmlFilter
-isFatalError			= isOfNode $ isErrorNode c_fatal
-
--- -----------------------------------------------------------------------------
---
--- constructor filter
-
--- |
--- constructor filter for a tag node.
--- a new tree is constructed.
--- the attributes and the children are computed by applying the aproprate filter to the input tree
---
---    * 1.parameter n :  the tag name
---
---    - 2.parameter af :  the filter for the attribute list
---
---    - 3.parameter cf :  the filter for the children
---
---    - returns : the constructor filter
-
-mkXTag		:: String -> XmlFilter -> XmlFilter -> XmlFilter
-mkXTag n af cf
-    = \ t -> [ mkXTagTree n (af t) (cf t) ]
-
--- | Version with qualified names of 'mkXTag'
-
-mkQTag		:: QName -> XmlFilter -> XmlFilter -> XmlFilter
-mkQTag q af cf
-    = \ t -> [ mkQTagTree q (af t) (cf t) ]
-
--- |
--- constructor filter for a tag node.
--- a new tree is constructed.
--- the attributes and the children are computed by applying the aproprate filter to the input tree
---
---    * 1.parameter n :  the tag name in form of prefix:localpart
---
---    - 2.parameter ns:   the namespace uri
---
---    - 3.parameter af :  the filter for the attribute list
---
---    - 4.parameter cf :  the filter for the children
---
---    - returns : the constructor filter
-
-mkXNsTag	:: String -> String -> XmlFilter -> XmlFilter -> XmlFilter
-mkXNsTag n ns af cf
-    = \ t -> [ mkXNsTagTree n ns (af t) (cf t) ]
-
--- |
--- filter for attribute construction.
--- a new tree with attribute name and a value computed by a filter
--- is build.
-
-mkXAttr		:: String -> XmlFilter -> XmlFilter
-mkXAttr n af
-    = \ t -> [ mkXAttrTree n (af t) ]
-
--- | Qualified version 'mkXAttr'
-
-mkQAttr		:: QName -> XmlFilter -> XmlFilter
-mkQAttr q af
-    = \ t -> [ mkQAttrTree q (af t) ]
-
--- |
--- filter for attribute construction.
--- a new tree with attribute name and namespace and a value computed by a filter
--- is build.
-
-mkXNsAttr	:: String -> String -> XmlFilter -> XmlFilter
-mkXNsAttr n ns af
-    = \ t -> [ mkXNsAttrTree n ns (af t) ]
-
--- |
--- constructor filter for a text node.
--- a new tree is constructed.
--- the input tree is ignored.
-
-mkXText		:: String                          -> XmlFilter
-mkXText		= mkNTree . mkXTextTree
-
--- |
--- constructor filter for a character reference node.
--- a new tree is constructed.
--- the input tree is ignored.
-
-mkXCharRef	:: Int                             -> XmlFilter
-mkXCharRef	= mkNTree . mkXCharRefTree
-
--- |
--- constructor filter for an entity reference node.
--- a new tree is constructed.
--- the input tree is ignored.
-
-mkXEntityRef	:: String                          -> XmlFilter
-mkXEntityRef	= mkNTree . mkXEntityRefTree
-
--- |
--- constructor filter for a comment node.
--- a new tree is constructed.
--- the xml string representation of the filter result
--- forms the comment
-
-mkXCmt		:: XmlFilter -> XmlFilter
-mkXCmt cf
-    = \ t -> [ mkXCmtTree ((xshow . cf) t) ]
-
--- |
--- constructor filter for a DTD part.
--- a new tree is constructed.
--- the input tree is ignored.
-
-mkXDTD		:: DTDElem -> Attributes -> XmlTrees -> XmlFilter
-mkXDTD n al	= mkNTree . mkXDTDTree n al
-
--- |
--- constructor filter for a CDATA section node.
--- a new tree is constructed.
--- the input tree is ignored.
-
-mkXCdata	:: XmlFilter -> XmlFilter
-mkXCdata cf
-    = \ t -> [ mkXCdataTree ((xshow . cf) t) ]
-
--- |
--- constructor filter for a processing instruction
--- a new tree is constructed from the text representation
--- of the input tree
-
-mkXPi		:: String -> XmlFilter -> XmlFilter
-mkXPi piName cf
-    = \ t -> [ mkXPiTree piName ((xshow . cf) t) ]
-
--- |
--- constructor filter for an error message node.
--- a new tree is constructed.
--- the input tree is ignored.
-
-mkXError	:: Int -> String                   -> XmlFilter
-mkXError l s	= this . mkXErrorTree l s . this
-
--- -----------------------------------------------------------------------------
---
--- selector filters
-
--- |
--- filter for selecting the name of a tag node, an attribute node or a pi node.
--- Result of the filter is a single element list with a text node or the empty list
-
-getName	::             XmlFilter
-getName t
-    | null s    = []
-    | otherwise = xtext s
-    where
-    s = nameOf t
-
--- |
--- filter for selecting the attibute list
-
-getAttrl	:: XmlFilter
-getAttrl
-    = selAttrl . getNode
-    where
-    selAttrl (XTag _ al) = al
-    selAttrl (XPi  _ al) = al
-    selAttrl _           = []
-
--- |
--- filter for selecting the value of an attribute in a tag node.
--- Result of the filter is a single element list with a text node or the empty list
---
--- see also : 'hasValue', 'getNsValue'
-
-getValue		:: String -> XmlFilter
-getValue a		= xmlTreesToText . (getAttrl .> isAttr a .> getChildren)
-
--- |
--- filter for selecting the value of an attribute with namespace in a tag node.
--- Result of the filter is a single element list with a text node or the empty list
---
--- see also : 'getValue', 'isNsAttr'
-
-getNsValue		:: String -> String -> XmlFilter
-getNsValue lp ns	= xmlTreesToText . (getAttrl .> isNsAttr lp ns .> getChildren)
-
--- |
--- filter for selecting an attribute of a DTD node.
--- Result of the filter is a single element list with a text node or the empty list
-
-getDTDValue		:: String -> XmlFilter
-getDTDValue a		= xtext . valueOfDTD a
-
--- |
--- filter for selecting content of a comment.
--- Result of the filter is a single element list with a text node or the empty list
-
-getXCmt			:: XmlFilter
-getXCmt
-    = selCmt . getNode
-      where
-      selCmt (XCmt c)	= xtext c
-      selCmt _          = []
-
--- |
--- filter for selecting the CDATA content.
--- Result of the filter is a single element list with a text node or the empty list
-
-getXCdata		:: XmlFilter
-getXCdata
-    = selData . getNode
-      where
-      selData (XCdata d)	= xtext d
-      selData _			= []
-
--- -----------------------------------------------------------------------------
---
--- edit filter
-
--- |
--- edit filter for changing the name of a tag node, an attribute or a pi.
--- result of the filter is a single element list with a tag node or the empty list
-
-replaceQName				:: String -> XmlFilter
-replaceQName n				= modifyQName (const (mkName n))
-
--- |
--- edit filter for changing the text of a text node.
--- result of the filter is a single element list with a text node or the empty list
---
--- example for editing all text nodes of a tree with an edit function @f@:
---
--- @processBottomUp (modifyText f \`when\` isXText)@
-
-modifyText				:: (String -> String) -> XmlFilter
-modifyText f t@(NTree n _)
-    | isXTextNode n			= replaceNode (XText (f (textOfXNode n))) t
-modifyText _ _				= []
-
--- |
--- edit filter for changing the name of a tag node.
--- result of the filter is a single element list with a text node or the empty list
-
-modifyQName				::  (TagName -> TagName) -> XmlFilter
-modifyQName f (NTree (XTag n al) cs)	= [NTree (XTag (f n) al) cs]
-modifyQName f (NTree (XPi  n al) cs)	= [NTree (XPi  (f n) al) cs]
-modifyQName f (NTree (XAttr n)   cs)	= [NTree (XAttr (f n)  ) cs]
-modifyQName _ _			= []
-
--- -----------------------------------------------------------------------------
-
--- |
--- process the attribute list of a tag node with a tree list filter.
--- for other trees this filter acts like 'none'
-
-processAttrl				:: XmlSFilter -> XmlFilter
-processAttrl f t
-    = replaceAttrl (f al) t
-      where
-      al = getAttrl t
-
--- |
--- elementwise processing of the attributes of a tag.
--- for other trees this filter acts like 'none'
---
--- see also : 'processAttrl'
-processAttr				:: XmlFilter -> XmlFilter
-processAttr f
-    = processAttrl (f $$)
-
--- |
--- replace an attribute list
--- to be renamed when replaceAttrl is eliminated
-
-replaceAttrl				:: XmlTrees -> XmlFilter
-replaceAttrl al (NTree (XTag n _al) cs)	= [ NTree (XTag n al) cs ]
-replaceAttrl al (NTree (XPi  n _al) cs)	= [ NTree (XPi  n al) cs ]
-replaceAttrl _ _			= []
-
--- |
--- delete an attribute from the attribute list of a tag tree
-
-del1Attr				:: String -> XmlFilter
-del1Attr an				= processAttr (none `when` isAttr an)
-
--- |
--- add an attribute to the attribute list of a tag.
--- If the attribute already exists, it\'s substituted,
---
--- see also: 'sattr', '+='
-
-add1Attr				:: XmlTree -> XmlFilter
-add1Attr a@(NTree (XAttr an) _av) t
-    = replaceAttrl (replace al) t
-      where
-      al = getAttrl t
-      replace [] = [a]
-      replace (a1 : as)
-	  | satisfies (isAttr (qualifiedName an)) a1
-	      = a : as
-	  | otherwise
-	      = a1 : replace as
-
-add1Attr _ t
-    = this t
-
--- |
--- adds an attribute list computed by a filter, uses 'add1Attr'.
---
--- see also: '+='
-
-addAttrl				:: XmlFilter -> XmlFilter
-addAttrl attrFilter t
-    = ((foldl (.>) this . map add1Attr) al) t
-      where
-      al = attrFilter t
-
--- |
--- add or change an attribute with a given string as value for a XTag or XPi tree,
--- uses 'add1Attr'.
-
-addAttr					:: String -> String -> XmlFilter
-addAttr an av
-    = add1Attr (mkXAttrTree an (if null av then [] else xtext av))
-
--- |
--- add or change an attribute with an Int value.
--- uses 'addAttr'.
-
-addAttrInt				:: String -> Int -> XmlFilter
-addAttrInt an av
-    = addAttr an (show av)
-
--- |
--- edit filter for changing the value of an attribute in a tag node.
--- result of the filter is a single element list with the tag node or the empty list.
---
---    * 1.parameter n :  the name of the attribute
---
---    - 2.parameter f :  the edit function for the attribute value
---
---    - returns : the edit filter
-
-modifyAttr				:: String -> (String -> String) -> XmlFilter
-modifyAttr an f
-    = processAttr (modifyValue `when` isAttr an)
-      where
-      modifyValue = modifyChildren ((modifyText f $$) . xmlTreesToText)
-
--- |
--- add or change an attribute of a DTD tree
-
-addDTDAttr				:: String -> String -> XmlFilter
-addDTDAttr an av (NTree (XDTD e al) cs)
-    = [NTree (XDTD e (addEntry an av al)) cs]
-
-addDTDAttr _ _ _
-    = []
-
-
--- -----------------------------------------------------------------------------
---
-
--- |
--- convenient function for tag node tree construction
---
--- infixl 7
---
--- filter combinator for tag tree constrcution
--- take a 1. filter for computing a tag node tree (or a whole list of tag node trees)
--- then add all trees computed by the 2. filter to the attribute list when they represent attributes
--- else append them to the list of children.
---
--- if the 1. filter computes a list of tag nodes, the results of the 2. filter are added to all trees
---
--- example: @ etag \"a\" += sattr \"href\" \"\#42\" += txt \"the answer\" @
--- gives the tree @ \<a href=\"\#42\"\>the answer\<\/a\> @
---
--- example: @ ( etag \"a\" +++ etag \"b\" ) += sattr \"x\" \"42\" @
--- gives the tree @ \<a x=\"42\"\/\>\<b x=\"42\"\/\> @
---
--- see also : 'etag', 'tag', 'add1Attr', 'modifyChildren', '++='
-
-(+=)	:: XmlFilter -> XmlFilter -> XmlFilter
-(+=) tf cf t
-    = concat
-      [ ( isXTag `guards` ( addaf .> addcf )) $ t'
-	| t' <- tf t
-      ]
-    where
-    (as, cs) = partition (satisfies isXAttr) . cf $ t
-
-    addaf | null as   = this
-          | otherwise = addAttrl (const as)
-
-    addcf | null cs   = this
-          | otherwise = modifyChildren (++ cs)
-
--- |
--- convenient filter function adding a whole list of trees, just for not writing to many ( ... ).
---
--- infixl 7
---
--- @ f ++= gl  == f += cat gl @
---
--- see also : '+='
-
-(++=)	:: XmlFilter -> [XmlFilter] -> XmlFilter
-tf ++= cfs
-    = tf += cat cfs
-
--- -----------------------------------------------------------------------------
---
--- string access functions
-
--- |
--- combination of 'getValue' and conversion into a String
-
-valueOf			:: String -> XmlTree -> String
-valueOf a		= xshow . getValue a
-
--- |
--- combination of 'getValue' and conversion to a Int
-
-intValueOf		:: String -> XmlTree -> Int
-intValueOf a		= decimalStringToInt . valueOf a
-
--- -----------------------------------------------------------------------------
---
--- convenient filter (short cuts)
-
--- |
--- variant of mkXTag with a list of filters for the attributes and a list of filters for the children.
--- this variant leads to a more readable source for a complicated construction filter
--- than the simple solution with a combination of 'mkXTag' and 'cat'.
---
--- see also : 'mkXTag', 'stag', 'etag', 'cat', '+='
-
-tag		:: String -> [XmlFilter] -> [XmlFilter] -> XmlFilter
-tag n afs cfs	= mkXTag n (cat afs) (cat cfs)
-
--- |
--- variant of tag, useful for tags without attributes and with a list of filters for
--- constructing the children
---
--- see also : 'mkXTag', 'tag', 'etag', 'cat', '+='
-
-stag		:: String -> [XmlFilter] -> XmlFilter
-stag n cfs	= mkXTag n none (cat cfs)
-
--- |
--- variant of tag, useful for tags with attributes but without children
---
--- see also : 'mkXTag', 'tag', 'stag', 'etag', 'cat'
-
-atag		:: String -> [XmlFilter] -> XmlFilter
-atag n cfs	= mkXTag n (cat cfs) none
-
--- |
--- Short cut for empty tags without attributes
---
--- see also : 'tag', 'atag', 'stag', 'mkXTag' and '+='
-
-etag		:: String -> XmlFilter
-etag n		= mkXTag n none none
-
--- | Qualified version of etag
-
-qetag		:: QName -> XmlFilter
-qetag q		= mkQTag q none none
-
--- | Alias for mkQTag
-
-qtag		:: QName -> XmlFilter -> XmlFilter -> XmlFilter
-qtag = mkQTag
-
-
--- |
--- filter for creating a document root node with a list of filters for the attributes and a list of filters for the document.
---
--- see also : 'tag'
-
-rootTag		:: [XmlFilter] -> [XmlFilter] -> XmlFilter
-rootTag afs cfs	= mkXTag t_root (cat afs) (cat cfs)
-
--- |
--- Alias for 'mkXAttr'
-
-attr		:: String -> XmlFilter -> XmlFilter
-attr		= mkXAttr
-
--- | Alias for mkQAttr
-qattr		:: QName -> XmlFilter -> XmlFilter
-qattr = mkQAttr
-
--- |
--- short cut for attribute construction with string constants
---
--- set also : 'attr', 'mkXAttr' and 'mkXText'
-
-sattr		:: String -> String -> XmlFilter
-sattr a v	= mkXAttr a (mkXText v)
-
--- |
--- short cut for 'mkXText'
-
-txt		:: String  -> XmlFilter
-txt		= mkXText
-
--- |
--- short cut for simple comment
--- the input tree is ignored
---
--- see also : 'mkXCmt'
-
-cmt		:: String  -> XmlFilter
-cmt c		= mkXCmt (txt c)
-
--- |
--- short cut for generating simple processing instructions (spi)
--- the input tree is ignored
---
--- @spi \"xyz\" \"abc\"@ is equal to @mkXPi \"xyz\" (txt \"abc\")@
--- (the name pi is already used in prelude)
-
-spi		:: String -> String -> XmlFilter
-spi n c		= mkXPi n (txt c)
-
--- |
--- short cut for generating simple cdata sections,
--- the input tree is ignored
-
-cdata		:: String -> XmlFilter
-cdata s		= mkXCdata (txt s)
-
--- |
--- DTD part generation with filter for attributes and children
--- see also: 'mkXDTDTree'
-
-dtd		:: DTDElem -> [XmlFilter] -> [XmlFilter] -> XmlFilter
-dtd dtdpart afs cfs t
-    = mkXDTD dtdpart (toAttrl . cat afs $ t) (cat cfs t) $ t
-
--- |
--- short cut for mkXError c_warn.
---
--- see also : 'mkXError'
-
-warn		:: String -> XmlFilter
-warn		= mkXError c_warn
-
--- |
--- short cut for mkXError c_fatal.
---
--- see also : 'mkXError'
-
-err		:: String -> XmlFilter
-err		= mkXError c_err
-
--- |
--- short cut for mkXError c_fatal.
---
--- see also : 'mkXError'
-
-fatal		::  String -> XmlFilter
-fatal		= mkXError c_fatal
-
--- |
--- check whether an option is set
---
--- reads the value of an attribute, usually applied to a document root node,
--- and checks if the value represents True. The following strings are interpreted
--- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".
-
-hasOption	:: String -> XmlFilter
-hasOption opt
-    = getValue opt .> isOfText isSet
-      where
-      isSet x
-	  = x `elem` ["1", "True", "true", "yes", "Yes"]
-
-
--- -----------------------------------------------------------------------------
-
diff --git a/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs b/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs
+++ /dev/null
@@ -1,905 +0,0 @@
--- |
--- basic XmlTree functions
---
--- Version : $Id: XmlTreeFunctions.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $
-
-module Text.XML.HXT.DOM.XmlTreeFunctions
-    ( module Text.XML.HXT.DOM.XmlTreeFunctions
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTreeTypes
-import Text.XML.HXT.DOM.XmlKeywords
-
-import Data.Maybe
-
--- -----------------------------------------------------------------------------
---
--- XNode Predicates
---
-
-isXCdataNode			:: XNode -> Bool
-isXCdataNode (XCdata _)		= True
-isXCdataNode _			= False
-
-isXCharRefNode			:: XNode -> Bool
-isXCharRefNode (XCharRef _)	= True
-isXCharRefNode _		= False
-
-isXCmtNode			:: XNode -> Bool
-isXCmtNode (XCmt _)		= True
-isXCmtNode _			= False
-
-isXDTDNode			:: XNode -> Bool
-isXDTDNode (XDTD _ _)		= True
-isXDTDNode _			= False
-
-isXAttrNode			:: XNode -> Bool
-isXAttrNode (XAttr _)		= True
-isXAttrNode _			= False
-
-isXEntityRefNode		:: XNode -> Bool
-isXEntityRefNode (XEntityRef _)	= True
-isXEntityRefNode _		= False
-
-isXErrorNode			:: XNode -> Bool
-isXErrorNode (XError _ _)	= True
-isXErrorNode _			= False
-
-isXPiNode			:: XNode -> Bool
-isXPiNode (XPi _ _)		= True
-isXPiNode _			= False
-
-isXTagNode			:: XNode -> Bool
-isXTagNode  (XTag _ _)		= True
-isXTagNode _			= False
-
-isXTextNode			:: XNode -> Bool
-isXTextNode (XText _)		= True
-isXTextNode _			= False
-
--- -----------------------------------------------------------------------------
-
-isRootNode			:: XNode -> Bool
-isRootNode			= isTagNode t_root
-
-isTagNode			:: String -> XNode -> Bool
-isTagNode n			= isOfTagNode ((== n) . qualifiedName)
-
-isOfTagNode			:: (TagName -> Bool) -> XNode -> Bool
-isOfTagNode p (XTag n _)	= p n
-isOfTagNode _ _			= False
-
-isAttrNode			:: String -> XNode -> Bool
-isAttrNode n			= isOfAttrNode ((== n) . qualifiedName)
-
-isOfAttrNode			:: (AttrName -> Bool) -> XNode -> Bool
-isOfAttrNode p (XAttr n)	= p n
-isOfAttrNode _ _		= False
-
-isTextNode			:: String -> XNode -> Bool
-isTextNode t			= isOfTextNode (== t)
-
-isOfTextNode			:: (String -> Bool) -> XNode -> Bool
-isOfTextNode p (XText t)	= p t
-isOfTextNode _ _		= False
-
-isPiNode			:: String -> XNode -> Bool
-isPiNode n			= isOfPiNode ((== n) . qualifiedName)
-
-isOfPiNode			:: (TagName -> Bool) -> XNode -> Bool
-isOfPiNode p (XPi n _)		= p n
-isOfPiNode _ _			= False
-
-isDTDElemNode 			:: DTDElem -> XNode -> Bool
-isDTDElemNode e	(XDTD n _)	= n == e
-isDTDElemNode _ _		= False
-
-isErrorNode 			:: Int -> XNode -> Bool
-isErrorNode l (XError l'  _)    = l == l'
-isErrorNode _ _  = False
-
--- -----------------------------------------------------------------------------
-
-textOfXNode			:: XNode -> String
-textOfXNode (XText t)		= t
-textOfXNode _			= ""
-
--- -----------------------------------------------------------------------------
---
--- XmlTree constructors
-
--- |
--- Create a tree with a tag node.
---
---    * 1.parameter n :  the name of the tag
---
---    - 2.parameter al :  the tag attribte list
---
---    - 3.parameter cs :  the list of children
---
---    - returns : the new tree
-
-mkXTagTree		:: String -> XmlTrees -> XmlTrees -> XmlTree
-mkXTagTree n al cs	= mkNode (XTag (mkName n) al) cs
-
--- | Version with qualified name of 'mkXTagTree'
-
-mkQTagTree		:: QName -> XmlTrees -> XmlTrees -> XmlTree
-mkQTagTree q al cs	= mkNode (XTag q al) cs
-
--- |
--- create a tree with a namespace aware tag node.
---
---    * 1.parameter n :  the prefix:localpart of the tag
---
---    - 2.parameter ns:  the namespace uri
---
---    - 3.parameter al :  the tag attribte list
---
---    - 4.parameter cs :  the list of children
---
---    - returns : the new tree
---
--- see also: 'mkXTagTree'
-
-mkXNsTagTree		:: String -> String -> XmlTrees -> XmlTrees -> XmlTree
-mkXNsTagTree n ns al cs	= mkNode (XTag (mkNsName n ns) al) cs
-
--- |
--- creates a new document tree with empty contents.
---
---   * 1.parameter al : the attribute list for the root node
---
--- returns a single node tree with tag name \"\/\" indicating a root and
--- with empty list of children
---
--- see also : 'emptyRoot'
-
-newRoot			:: XmlTrees -> XmlTree
-newRoot al		= mkXTagTree t_root al []
-
--- | the empty document tree
---
--- see also : 'newRoot'
-
-emptyRoot		:: XmlTree
-emptyRoot		= newRoot []
-
--- |
--- create a new empty document with source name as parameter
-
-newDocument		:: String -> XmlTree
-newDocument n
-    = newDocument' [(a_source, n), (a_status, show c_ok)]
-
--- |
--- create a new empty document with a list of attributes for source location and options
---
--- see also : 'newDocument'
-
-newDocument'		:: Attributes -> XmlTree
-newDocument' al
-    = newRoot (fromAttrl al)
-
--- |
--- create a document root tree.
---
---    * 1.parameter al :  the attribute list for the root. This list must contain at
---		  least an attribute \"source\" that contains the URI of the document to be processed
---
---    - 2.parameter cs :  the list for the document content
---
---    - returns : the document root
-
-mkRootTree		:: XmlTrees -> XmlTrees -> XmlTree
-mkRootTree al cs	= mkXTagTree t_root al cs
-
--- |
--- create a leaf for a text element.
---
---    * 1.parameter txt :  the text
---
---    - returns : the tree with the single node containing the text
-
-mkXTextTree		:: String -> XmlTree
-mkXTextTree s		= mkLeaf (XText s)
-
--- |
--- create a leaf for a char reference.
---
---    * 1.parameter i :  the integer representing the Unicode char
---
---    - returns : the tree with the single node containing the char reference
-
-mkXCharRefTree		:: Int -> XmlTree
-mkXCharRefTree s	= mkLeaf (XCharRef s)
-
--- |
--- create a leaf for an entity reference.
---
---    * 1.parameter n :  the name of the entity reference
---
---    - returns : the tree with the single node containing the entity reference
-
-mkXEntityRefTree	:: String -> XmlTree
-mkXEntityRefTree s	= mkLeaf (XEntityRef s)
-
--- |
--- create a leaf for a comment,
---
---    * 1.parameter c :  the comment text
---
---    - returns : the tree with the single node containing the comment
-
-mkXCmtTree		:: String -> XmlTree
-mkXCmtTree c		= mkLeaf (XCmt c)
-
--- |
--- create a tree for a part of a DTD
---
---    * 1.parameter d :  the type of the DTD part
---
---    - 2.parameter al :  the attribute list for the DTD part
---
---    - 3.parameter ds :  the possibly empty list of components for the DTD part
---
---    - returns : the tree with the composed DTD part
-
-mkXDTDTree		:: DTDElem -> Attributes -> XmlTrees -> XmlTree
-mkXDTDTree d al	ds	= mkNode (XDTD d al) ds
-
-
--- |
--- create an attribute tree as part of a tag attribute list of tag nodes
---
---    * 1.parameter al : the attribute name
---
---    - 2.parameter av : the attribute value as tree list, usually containing a single text node
-
-mkXAttrTree		:: String -> XmlTrees -> XmlTree
-mkXAttrTree an av	= mkNode (XAttr (mkName an)) av
-
--- | Qualified version of 'mkXAttrTree'
-
-mkQAttrTree		:: QName -> XmlTrees -> XmlTree
-mkQAttrTree aq av	= mkNode (XAttr aq) av
-
-
--- |
--- create an attribute tree with a namespace
---
---    * 1.parameter al : the attribute name
---
---    - 2.parameter ns : namespace uri
---
---    - 3.parameter av : the attribute value as tree list, usually containing a single text node
---
--- see also: 'mkXAttrTree', 'mkXNsTagTree'
-
-mkXNsAttrTree		:: String -> String -> XmlTrees -> XmlTree
-mkXNsAttrTree an ns av	= mkNode (XAttr (mkNsName an ns)) av
-
--- |
--- create a parameter entity reference DTD part.
---
---    * 1.parameter ref :  the name of the reference
---
---    - returns : the DTD part for a PERef
-
-mkXPERefTree		:: String -> XmlTree
-mkXPERefTree ref	= mkLeaf (XDTD PEREF [(a_peref, ref)])
-
--- |
--- create a processing instruction tree.
---
---    * 1.parameter n :  the name of the PI
---
---    - 2.parameter str :  the content of a PI
---
---    - returns : the processing instruction tree with a single attribute \"value\"
---      with the str parameter as attribute value, with @valueOf a_value@ applied to the result tree
---      the content of the PI can be selected
-
-mkXPiTree	:: String -> String -> XmlTree
-mkXPiTree n str	= mkLeaf (XPi (mkName n) (xattr a_value str))
-
--- |
--- create xml declaration
-
-mkXmlDeclTree	:: XmlTrees -> XmlTree
-mkXmlDeclTree al = mkLeaf (XPi (mkName t_xml) al)
-
--- |
--- create a CDATA section tree.
---
---    * 1.parameter s :  the content of the CDATA section
---
---    - returns : the tree for the CDATA section
-
-mkXCdataTree		:: String -> XmlTree
-mkXCdataTree s		= mkLeaf (XCdata s)
-
--- |
--- create an error tree.
---
---    * 1.parameter l :  the level of the error (warning, error fatal)
---
---    - 2.parameter msg :  the error message
---
---    - 3.parameter cs :  the context, where the error was detected
-
-mkXErrorTree		:: Int -> String -> XmlTrees -> XmlTree
-mkXErrorTree l s cs	= mkNode (XError l s) cs
-
-maybeString2XText	:: Maybe String -> XmlTrees
-maybeString2XText	= map mkXTextTree . maybeToList
-
--- ------------------------------------------------------------
---
--- text selection
-
-showXText	:: XmlTrees -> String
-showXText
-    = concatMap showT
-      where
-      showT (NTree (XText      t) _) = t
-      showT _                        = ""
-
-showXCharRef	:: XmlTrees -> String
-showXCharRef
-    = concatMap showT
-      where
-      showT (NTree (XCharRef   r) _) = "&#" ++ show r ++ ";"
-      showT _                        = ""
-
-showXEntityRef	:: XmlTrees -> String
-showXEntityRef
-    = concatMap showT
-      where
-      showT (NTree (XEntityRef r) _) = "&" ++ r ++ ";"
-      showT _                        = ""
-
-showXErrors	:: XmlTrees -> String
-showXErrors
-    = concatMap showE
-      where
-      showE (NTree (XError level str) _) = msg level ++ ": " ++ str ++ "\n"
-      showE _                            = ""
-
-      msg :: Int -> String
-      msg l
-          | l == c_warn = "Warning"
-          | l == c_err  = "Error"
-          | otherwise   = "Fatal error"
-
--- ------------------------------------------------------------
---
--- the toString conversion functions
-
--- |
--- convert the result of a filter into a string
---
--- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation 
-
-xshow	:: XmlTrees -> String
-xshow [(NTree (XText s) _)]	= s			-- special case optimisation
-xshow ts			= showXmlTrees ts ""
-
--- |
--- old name for 'xshow' (deprecated)
-
-xmlTreesToString	:: XmlTrees -> String
-xmlTreesToString	= xshow
-
--- |
--- conversion of a filter result into a text node
---
--- see also : 'xshow'
-
-xmlTreesToText		:: XmlSFilter
-xmlTreesToText ts@[(NTree (XText _) _)]	= ts		-- special case optimisation
-xmlTreesToText ts@[]			= ts
-xmlTreesToText ts			= xtext . xshow $ ts
-
--- ------------------------------------------------------------
-
-xmlContentModelToString	:: XmlTree -> String
-xmlContentModelToString (NTree (XDTD ELEMENT al) cs)
-    = showElemType (lookup1 a_type al) cs ""
-
-xmlContentModelToString _
-    = ""
-
--- ------------------------------------------------------------
-
-showXmlTree		:: XmlTree  -> String -> String
-
-showXmlTree (NTree (XText s) _)
-    = showString s
-
-showXmlTree (NTree (XCharRef i) _)
-    = showString "&#" . showString (show i) . showChar ';'
-
-showXmlTree (NTree (XEntityRef r) _)
-    = showString "&" . showString r . showChar ';'
-
-showXmlTree (NTree (XCmt c) _)
-    = showString "<!--" . showString c . showString "-->"
-
-showXmlTree (NTree (XCdata d) _)
-    = showString "<![CDATA[" . showString d . showString "]]>"
-
-showXmlTree (NTree (XPi n al) _)
-    = showString "<?"
-      .
-      showQName n
-      .
-      (foldr (.) id . map showPiAttr) al
-      .
-      showString "?>"
-      where
-      showPiAttr	:: XmlTree -> String -> String
-      showPiAttr a@(NTree (XAttr an) cs)
-	  | qualifiedName an == a_value
-	      = showBlank . showXmlTrees cs
-	  | otherwise
-	      = showXmlTree a
-      showPiAttr _
-	  = id
-
-showXmlTree (NTree (XTag t al) [])
-    = showLt . showQName t . showXmlTrees al . showSlash . showGt
-
-showXmlTree (NTree (XTag t al) cs)
-    = showLt . showQName t . showXmlTrees al . showGt
-      . showXmlTrees cs
-      . showLt . showSlash . showQName t . showGt
-
-showXmlTree (NTree (XDTD de al) cs)
-    = showXmlDTD de al cs
-
-showXmlTree (NTree (XAttr an) cs)
-    = showBlank . showQName an . showEq . showQuoteString (xshow cs)
-
-showXmlTree (NTree (XError l e) _)
-    = showString "<!-- ERROR (" . shows l . showString "):\n" . showString e . showString "\n-->"
-
--- ------------------------------------------------------------
-
-showXmlTrees		:: XmlTrees -> String -> String
-showXmlTrees		= foldr (.) id . map showXmlTree
-
-showXmlTrees'		:: XmlTrees -> String -> String
-showXmlTrees'		= foldr (\ x y -> x . showNL . y) id . map showXmlTree
-
--- ------------------------------------------------------------
-
-showQName		:: QName -> String -> String
-showQName
-    = showString . qualifiedName
-
--- ------------------------------------------------------------
-
-showQuoteString		:: String -> String -> String
-showQuoteString s
-    | '\"' `elem` s
-	= showApos . showString s . showApos
-    | otherwise
-	= showQuot . showString s . showQuot
-
-
--- ------------------------------------------------------------
-
-showAttr	:: String -> Attributes -> String -> String
-showAttr k al
-    = showString (fromMaybe "" . lookup k $ al)
-
--- ------------------------------------------------------------
-
-showPEAttr	:: Attributes -> String -> String
-showPEAttr al
-    = showPE (lookup a_peref al)
-      where
-      showPE (Just pe) = showChar '%' . showString pe . showChar ';'
-      showPE Nothing   = id
-
--- ------------------------------------------------------------
-
-showExternalId	:: Attributes -> String -> String
-showExternalId al
-    = id2Str (lookup k_system al) (lookup k_public al)
-      where
-      id2Str Nothing  Nothing  = id
-      id2Str (Just s) Nothing  = showBlank . showString k_system . showBlank . showQuoteString s
-      id2Str Nothing  (Just p) = showBlank . showString k_public . showBlank . showQuoteString p
-      id2Str (Just s) (Just p) = showBlank . showString k_public . showBlank . showQuoteString p . showBlank . showQuoteString s
-
--- ------------------------------------------------------------
-
-showNData	:: Attributes -> String -> String
-showNData al
-    = nd2Str (lookup k_ndata al)
-      where
-      nd2Str Nothing	= id
-      nd2Str (Just v)	= showBlank . showString k_ndata . showBlank . showString v
-
--- ------------------------------------------------------------
-
-showXmlDTD		:: DTDElem -> Attributes -> XmlTrees -> String -> String
-
-showXmlDTD DOCTYPE al cs
-    = showString "<!DOCTYPE "
-      .
-      showAttr a_name al
-      .
-      showExternalId al
-      .
-      showInternalDTD cs
-      .
-      showString ">"
-      where
-      showInternalDTD [] = id
-      showInternalDTD ds = showString " [\n" . showXmlTrees' ds . showChar ']'
-
-showXmlDTD ELEMENT al cs
-    = showString "<!ELEMENT "
-      .
-      showAttr a_name al
-      .
-      showBlank
-      .
-      showElemType (lookup1 a_type al) cs
-      .
-      showString " >"
-
-showXmlDTD ATTLIST al cs
-    = showString "<!ATTLIST "
-      .
-      ( if isNothing . lookup a_name $ al
-	then
-	showXmlTrees cs
-	else
-	showAttr a_name al
-	.
-	showBlank
-	.
-	( case lookup a_value al of
-	  Nothing -> ( showPEAttr
-		       . attrlOfDTD
-		       . head
-		     ) cs
-	  Just a  -> ( showString a
-	               .
-                       showAttrType (lookup1 a_type al)
-                       .
-                       showAttrKind (lookup1 a_kind al)
-		     )
-	)
-      )
-      .
-      showString " >"
-      where
-      showAttrType t
-	  | t == k_peref
-	      = showBlank . showPEAttr al
-	  | t == k_enumeration
-	      = showAttrEnum
-	  | t == k_notation
-	      = showBlank . showString k_notation . showAttrEnum
-	  | otherwise
-	      = showBlank . showString t
-
-      showAttrEnum
-	  = showString " ("
-	    .
-	    foldr1 (\ s1 s2 -> s1 . showString " | " .  s2) (map (getEnum . attrlOfDTD) cs)
-	    .
-	    showString ")"
-	    where
-	    getEnum	:: Attributes -> String -> String
-	    getEnum l = showAttr a_name l . showPEAttr l
-
-      showAttrKind k
-	  | k == k_default
-	      = showBlank . showQuoteString (lookup1 a_default al)
-	  | k == k_fixed
-	      = showBlank . showString k_fixed
-		.
-		showBlank . showQuoteString (lookup1 a_default al)
-	  | k == ""
-	      = id
-	  | otherwise
-	      = showBlank . showString k
-
-showXmlDTD NOTATION al _cs
-    = showString "<!NOTATION "
-      .
-      showAttr a_name al
-      .
-      showExternalId al
-      .
-      showString " >"
-
-showXmlDTD PENTITY al cs
-    = showEntity "% " al cs
-
-showXmlDTD ENTITY al cs
-    = showEntity "" al cs
-
-showXmlDTD PEREF al _cs
-    = showPEAttr al
-
-showXmlDTD CONDSECT _ (c1 : cs)
-    = showString "<![ "
-      .
-      showXmlTree c1
-      .
-      showString " [\n"
-      .
-      showXmlTrees cs
-      .
-      showString "]]>"
-
-showXmlDTD CONTENT al cs
-    = showContent (mkXDTDTree CONTENT al cs)
-
-showXmlDTD NAME al _cs
-    = showAttr a_name al
-
-showXmlDTD de al _cs
-    = showString "NOT YET IMPLEMETED: " . showString (show de) . showBlank . showString (show al) . showString " [...]\n"
-
--- ------------------------------------------------------------
-
-showElemType	:: String -> XmlTrees -> String -> String
-showElemType t cs
-    | t == v_pcdata
-	= showLpar . showString v_pcdata . showRpar
-
-    | t == v_mixed && (not . null) cs
-	= showLpar
-	  .
-	  showString v_pcdata
-	  .
-	  ( foldr (.) id . map (mixedContent . selAttrl . getNode) ) cs1
-	  .
-          showRpar
-	  .
-	  showAttr a_modifier al1
-    | t == v_mixed				-- incorrect tree, e.g. after erronius pe substitution
-	= showLpar
-	  .
-	  showRpar
-    | t == v_children && (not . null) cs
-	= showContent (head cs)
-    | t == v_children
-	= showLpar
-	  . showRpar
-    | t == k_peref
-	= foldr (.) id . map showContent $ cs
-    | otherwise
-	= showString t
-    where
-    [(NTree (XDTD CONTENT al1) cs1)] = cs
-
-    mixedContent :: Attributes -> String -> String
-    mixedContent l
-	= showString " | " . showAttr a_name l . showPEAttr l
-
-    selAttrl (XDTD _ as) = as
-    selAttrl (XText tex) = [(a_name, tex)]
-    selAttrl _           = []
-
--- ------------------------------------------------------------
-
-showContent	:: XmlTree -> String -> String
-showContent (NTree (XDTD de al) cs)
-    = cont2String de
-      where
-      cont2String	:: DTDElem -> String -> String
-      cont2String NAME
-	  = showAttr a_name al
-      cont2String PEREF
-	  = showPEAttr al
-      cont2String CONTENT
-	  = showLpar
-	    .
-	    foldr1 (combine (lookup1 a_kind al)) (map showContent cs)
-            .
-            showRpar
-            .
-            showAttr a_modifier al
-      cont2String n
-	  = error ("cont2string " ++ show n ++ " is undefined")
-      combine k s1 s2
-	  = s1
-	    .
-	    showString ( if k == v_seq
-			 then ", "
-			 else " | "
-		       )
-            .
-            s2
-
-showContent n
-    = showXmlTree n
-
--- ------------------------------------------------------------
-
-showEntity	:: String -> Attributes -> XmlTrees -> String -> String
-
-showEntity kind al cs
-    = showString "<!ENTITY "
-      .
-      showString kind
-      .
-      showAttr a_name al
-      .
-      showExternalId al
-      .
-      showNData al
-      .
-      showEntityValue cs
-      .
-      showString " >"
-
--- ------------------------------------------------------------
-
-showEntityValue	:: XmlTrees -> String -> String
-
-showEntityValue []
-    = id
-
-showEntityValue cs
-    = showBlank . showQuoteString (xshow cs)
-
--- ------------------------------------------------------------
-
-showBlank,
-  showEq, showLt, showGt, showSlash, showApos, showQuot, showLpar, showRpar, showNL :: String -> String
-
-showBlank	= showChar ' '
-showEq		= showChar '='
-showLt		= showChar '<'
-showGt		= showChar '>'
-showSlash	= showChar '/'
-showApos	= showChar '\''
-showQuot	= showChar '\"'
-showLpar	= showChar '('
-showRpar	= showChar ')'
-showNL		= showChar '\n'
-
--- -----------------------------------------------------------------------------
---
--- string access functions
-
--- |
--- select the name of a node. For tags, attributes and pi\'s the name string
--- is returned, else the empty string.
-
-nameOf				:: XmlTree -> String
-nameOf
-    = selName . getNode
-      where
-      selName (XTag  n _)	= qualifiedName n
-      selName (XAttr n  )	= qualifiedName n
-      selName (XPi   n _)	= qualifiedName n
-      selName _			= ""
-
--- |
--- select the local part of a name of a node. For tags, attributes the name string
--- is returned, for pi's the whole name, else the empty string.
-
-localPartOf				:: XmlTree -> String
-localPartOf
-    = selName . getNode
-      where
-      selName (XTag  n _)	= localPart n
-      selName (XAttr n  )	= localPart n
-      selName (XPi   n _)	= qualifiedName n
-      selName _			= ""
-
--- |
--- select the namespace URI of a tag or an attribute tree, else the empty string is returned
--- see also : 'nameOf'
-
-namespaceOf				:: XmlTree -> String
-namespaceOf
-    = selName . getNode
-      where
-      selName (XTag n _)	= namespaceUri n
-      selName (XAttr n )	= namespaceUri n
-      selName _			= ""
-
--- |
--- select the namespace prefix of a tag or an attribute tree, else the empty string is returned
--- see also : 'nameOf', 'localPartOf'
-
-prefixOf				:: XmlTree -> String
-prefixOf
-    = selName . getNode
-      where
-      selName (XTag n _)	= namePrefix n
-      selName (XAttr n )	= namePrefix n
-      selName _			= ""
-
--- |
--- select the universal name (namespace uri ++ localPart) of a tag or an attribute tree, else the empty string is returned
--- see also : 'nameOf', 'namespaceOf'
-
-universalNameOf				:: XmlTree -> String
-universalNameOf
-    = selName . getNode
-      where
-      selName (XTag n _)	= universalName n
-      selName (XAttr n )	= universalName n
-      selName _			= ""
-
--- |
--- select the attributes of a dtd tree
-
-attrlOfDTD				:: XmlTree -> Attributes
-attrlOfDTD (NTree (XDTD _ al) _)	= al
-attrlOfDTD _				= []
-
-
--- |
--- select a special attribute of a DTD part
-
-valueOfDTD		:: String -> XmlTree -> String
-valueOfDTD n		= lookup1 n . attrlOfDTD
-
--- |
--- test an attribute of a DTD part
-
-ofDTDequals	:: String -> String -> XmlTree -> Bool
-ofDTDequals n v	= (== v) . valueOfDTD n
-
--- -----------------------------------------------------------------------------
---
--- convenient functions
-
-xcmt		:: String -> XmlTrees
-xcmt cmt	= [ mkXCmtTree cmt ]
-
-xerr		:: String -> XmlTrees
-xerr msg	= [ mkXErrorTree c_err msg []]
-
-xwarn		:: String -> XmlTrees
-xwarn msg	= [ mkXErrorTree c_warn msg []]
-
-xtext		:: String -> XmlTrees
-xtext t		= [ mkXTextTree t]
-
-xtag		:: String -> XmlTrees -> XmlTrees -> XmlTrees
-xtag t al cl	= [ mkXTagTree t al cl ]
-
-xattr		:: String -> String -> XmlTrees
-xattr n v	= [ mkXAttrTree n (xtext v) ]
-
--- -----------------------------------------------------------------------------
---
--- conversion functions: XmlTrees <-> Attributes
-
-toTreel		:: XmlTrees -> AssocList String XmlTrees
-toTreel
-    = concatMap toTree
-      where
-      toTree (NTree (XAttr n) cs) = [(qualifiedName n, cs)]
-      toTree _			  = []
-
-toAttrl		:: XmlTrees -> Attributes
-toAttrl
-    = map (\ (k,tl) -> (k, xshow tl)) . toTreel
-
-
-fromTreel	:: AssocList String XmlTrees -> XmlTrees
-fromTreel
-    = map (\ (k,tl) -> mkXAttrTree k tl)
-
-fromAttrl	:: Attributes -> XmlTrees
-fromAttrl
-    = fromTreel . map (\ (k,v) -> (k, xtext v))
-
--- -----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DTDValidation/AttributeValueValidation.hs b/src/Text/XML/HXT/DTDValidation/AttributeValueValidation.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/AttributeValueValidation.hs
@@ -0,0 +1,342 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.TypeDefs
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides functions for validating attributes.
+
+   The main functions are:
+
+    - Check if the attribute value meets the lexical constraints of its type
+
+    - Normalization of an attribute value
+-}
+
+-- ------------------------------------------------------------
+
+-- Special namings in source code:
+--
+--  - nd - XDTD node
+--
+--  - n  - XTag node
+--
+
+module Text.XML.HXT.DTDValidation.AttributeValueValidation
+    ( checkAttributeValue
+    , normalizeAttributeValue
+    )
+where
+
+import Text.XML.HXT.Parser.XmlParsec
+    ( parseNMToken
+    , parseName
+    )
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+
+import Text.XML.HXT.DOM.Util
+
+-- |
+-- Checks if the attribute value meets the lexical constraints of its type.
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - returns : a function which takes an element (XTag or XDTD ATTLIST),
+--                    checks if the attribute value meets the lexical constraints
+--                    of its type and returns a list of errors
+
+checkAttributeValue :: XmlTrees -> XmlTree -> XmlArrow
+checkAttributeValue dtdPart attrDecl
+    | isDTDAttlistNode attrDecl
+	= choiceA
+	  [ isElem       :-> ( checkAttrVal $< getAttrValue attrName )
+	  , isDTDAttlist :-> ( checkAttrVal $< (getDTDAttrl >>^ dtd_default) )
+	  , this	     :-> none
+	  ]
+    | otherwise
+	= none
+      where
+      al	= getDTDAttributes attrDecl
+      attrName	= dtd_value al
+      attrType  = dtd_type  al
+      checkAttrVal attrValue
+	  = checkValue attrType dtdPart normalizedVal attrDecl
+	    where
+	    normalizedVal = normalizeAttributeValue (Just attrDecl) attrValue
+
+-- |
+-- Dispatches the attibute check by the attribute type.
+--
+--    * 1.parameter typ :  the attribute type
+--
+--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 3.parameter attrValue :  the normalized attribute value to be checked
+--
+--    - 4.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - returns : a functions which takes an element (XTag or XDTD ATTLIST),
+--                        checks if the attribute value meets the lexical constraints
+--                        of its type and returns a list of errors
+
+checkValue :: String -> XmlTrees -> String -> XmlTree -> XmlArrow
+checkValue typ dtdPart attrValue attrDecl
+	| typ == k_cdata	= none
+	| typ == k_enumeration	= checkValueEnumeration attrDecl attrValue
+	| typ == k_entity	= checkValueEntity dtdPart attrDecl attrValue
+	| typ == k_entities	= checkValueEntities dtdPart attrDecl attrValue
+	| typ == k_id		= checkValueId attrDecl attrValue
+	| typ == k_idref	= checkValueIdref attrDecl attrValue
+	| typ == k_idrefs	= checkValueIdrefs attrDecl attrValue
+	| typ == k_nmtoken	= checkValueNmtoken attrDecl attrValue
+	| typ == k_nmtokens	= checkValueNmtokens attrDecl attrValue
+	| typ == k_notation	= checkValueEnumeration attrDecl attrValue
+	| otherwise		= error ("Attribute type " ++ show typ ++ " unknown.")
+
+-- |
+-- Checks the value of Enumeration attribute types. (3.3.1 \/ p.27 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 2.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueEnumeration :: XmlTree -> String -> XmlArrow
+checkValueEnumeration attrDecl attrValue
+    | isDTDAttlistNode attrDecl
+      &&
+      attrValue `notElem` enumVals
+	= err ( "Attribute " ++ show (dtd_value al) ++ " for element " ++ show (dtd_name al) ++
+                " must have a value from list "++ show enumVals {- ++ " but has value " ++ show attrValue-} ++ ".")
+    | otherwise
+	= none
+      where
+      al	= getDTDAttributes attrDecl
+
+      enumVals :: [String]
+      enumVals = map (dtd_name . getDTDAttributes) $ (runLA getChildren attrDecl)
+
+-- |
+-- Checks the value of ENTITY attribute types. (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the
+--                    unparsed entity declarations
+--
+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 3.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueEntity :: XmlTrees -> XmlTree -> String -> XmlArrow
+checkValueEntity dtdPart attrDecl attrValue
+    | isDTDAttlistNode attrDecl
+      &&
+      attrValue `notElem` upEntities
+	= err ( "Entity " ++ show attrValue ++ " of attribute " ++ show (dtd_value al) ++
+                " for element " ++ show (dtd_name al) ++ " is not unparsed. " ++
+                "The following unparsed entities exist: " ++ show upEntities ++ ".")
+    | otherwise
+	= none
+      where
+      al	= getDTDAttributes attrDecl
+
+      upEntities :: [String]
+      upEntities = map (dtd_name . getDTDAttributes) (isUnparsedEntity $$ dtdPart)
+
+-- |
+-- Checks the value of ENTITIES attribute types. (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the
+--                    unparsed entity declarations
+--
+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 3.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueEntities ::XmlTrees -> XmlTree -> String -> XmlArrow
+checkValueEntities dtdPart attrDecl attrValue
+    | isDTDAttlistNode attrDecl
+	= if null valueList
+	  then err ("Attribute " ++ show (dtd_value al) ++ " of element " ++
+                    show (dtd_name al) ++ " must be one or more names.")
+          else catA . map (checkValueEntity dtdPart attrDecl) $ valueList
+    | otherwise
+	= none
+      where
+      al	= getDTDAttributes attrDecl
+      valueList = words attrValue
+
+-- |
+-- Checks the value of NMTOKEN attribute types. (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 2.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueNmtoken :: XmlTree -> String -> XmlArrow
+checkValueNmtoken attrDecl attrValue
+    | isDTDAttlistNode attrDecl
+	= constA attrValue >>> checkNmtoken
+    | otherwise
+	= none
+      where
+      al	= getDTDAttributes attrDecl
+      checkNmtoken
+	  = mkText >>> arrL (parseNMToken "")
+	    >>>
+	    isError
+	    >>>
+	    getErrorMsg
+	    >>>
+	    arr (\ s -> ( "Attribute value " ++ show attrValue ++ " of attribute " ++ show (dtd_value al) ++
+			  " for element " ++ show (dtd_name al) ++ " must be a name token, "++ (lines s) !! 1 ++".") )
+            >>>
+	    mkError c_err
+
+-- |
+-- Checks the value of NMTOKENS attribute types. (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 2.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueNmtokens :: XmlTree -> String -> XmlArrow
+checkValueNmtokens attrDecl attrValue
+    | isDTDAttlistNode attrDecl
+	= if null valueList
+	  then err ( "Attribute "++ show (dtd_value al) ++" of element " ++
+                     show (dtd_name al) ++ " must be one or more name tokens.")
+          else catA . map (checkValueNmtoken attrDecl) $ valueList
+    | otherwise
+	= none
+      where
+      al	= getDTDAttributes attrDecl
+      valueList = words attrValue
+
+-- |
+-- Checks the value of ID attribute types. (3.3.1 \/ p.25 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 2.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueId :: XmlTree -> String -> XmlArrow
+checkValueId attrDecl attrValue
+    = checkForName "Attribute value" attrDecl attrValue
+
+
+-- |
+-- Checks the value of IDREF attribute types. (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 2.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueIdref :: XmlTree -> String -> XmlArrow
+checkValueIdref attrDecl attrValue
+    = checkForName "Attribute value" attrDecl attrValue
+
+
+-- |
+-- Checks the value of IDREFS attribute types. (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 2.parameter attrValue :  the normalized attribute value to be checked
+
+checkValueIdrefs :: XmlTree -> String -> XmlArrow
+checkValueIdrefs attrDecl attrValue
+    = catA . map (checkValueIdref attrDecl) . words $ attrValue
+
+
+
+-- -----------------------------------------------------------------------------
+-- General helper functions for checking attribute values
+--
+
+-- |
+-- Checks if the value of an attribute is a name.
+--
+--    * 1.parameter msg :  error message, should be "Entity" or "Attribute value"
+--
+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
+--
+--    - 3.parameter attrValue :  the normalized attribute value to be checked
+
+checkForName ::  String -> XmlTree -> String -> XmlArrow
+checkForName msg attrDecl attrValue
+    | isDTDAttlistNode attrDecl
+	= constA attrValue >>> checkName
+    | otherwise
+	= none
+    where
+    al	= getDTDAttributes attrDecl
+    checkName
+	= mkText >>> arrL (parseName "")
+	  >>>
+	  isError
+	  >>>
+	  getErrorMsg
+	  >>>
+	  arr (\s -> ( msg ++ " " ++ show attrValue ++" of attribute " ++ show (dtd_value al) ++
+		       " for element "++ show (dtd_name al) ++" must be a name, " ++ (lines s) !! 1 ++ ".") )
+          >>>
+	  mkError c_err
+
+-- -----------------------------------------------------------------------------
+
+-- |
+-- Normalizes an attribute value with respect to its type. (3.3.3 \/ p.29 in Spec)
+--
+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected
+--                   is a list. If the list is empty, no declaration exists.
+--
+--    - 2.parameter value :  the attribute value to be normalized
+--
+--    - returns : the normalized value
+--
+normalizeAttributeValue :: Maybe XmlTree -> String -> String
+normalizeAttributeValue (Just attrDecl) value
+    = normalizeAttribute attrType
+      where
+      al	     = getDTDAttributes attrDecl
+      attrType = dtd_type al
+
+      normalizeAttribute :: String -> String
+      normalizeAttribute typ
+          | typ == k_cdata	= cdataNormalization value
+          | otherwise		= otherNormalization value
+
+-- Attribute not declared in DTD, normalization as CDATA
+normalizeAttributeValue Nothing value
+    = cdataNormalization value
+
+-- ------------------------------------------------------------
+-- Helper functions for normalization
+
+-- |
+-- Normalization of CDATA attribute values.
+-- is already done when parsing
+-- during entity substituion for attribute values
+
+cdataNormalization :: String -> String
+cdataNormalization = id
+
+-- | Normalization of attribute values other than CDATA.
+
+otherNormalization :: String -> String
+otherNormalization = reduceWSSequences . stringTrim . cdataNormalization
+
+-- | Reduce whitespace sequences to a single whitespace.
+
+reduceWSSequences :: String -> String
+reduceWSSequences str = unwords (words str)
+
+-- ------------------------------------------------------------
+
diff --git a/src/Text/XML/HXT/DTDValidation/DTDValidation.hs b/src/Text/XML/HXT/DTDValidation/DTDValidation.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/DTDValidation.hs
@@ -0,0 +1,590 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.TypeDefs
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides functions for validating the DTD of XML documents
+   represented as XmlTree.
+
+   Unlike other popular XML validation tools the validation process returns
+   a list of errors instead of aborting after the first error was found.
+
+
+   Unlike validation of the document, the DTD branch is traversed four times:
+
+    - Validation of Notations
+
+    - Validation of Unparsed Entities
+
+    - Validation of Element declarations
+
+    - Validation of Attribute declarations
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.DTDValidation
+    ( removeDoublicateDefs
+    , validateDTD
+    )
+where
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+import Text.XML.HXT.DTDValidation.AttributeValueValidation
+
+-- |
+-- Validate a DTD.
+--
+--    - returns : a functions which takes the DTD subset of the XmlTree, checks
+--                  if the DTD is valid and returns a list of errors
+
+validateDTD :: XmlArrow
+validateDTD -- dtdPart
+    = isDTDDoctype
+      `guards`
+      ( listA getChildren
+	>>>
+	( validateParts $<< (getNotationNames &&& getElemNames) )
+      )
+    where
+    validateParts notationNames elemNames
+	= validateNotations
+	  <+>
+	  validateEntities notationNames
+          <+>
+	  validateElements elemNames
+	  <+>
+	  validateAttributes elemNames notationNames
+
+    getNotationNames	:: LA [XmlTree] [String]
+    getNotationNames	= listA $ unlistA >>> isDTDNotation >>> getDTDAttrValue a_name
+
+    getElemNames	:: LA [XmlTree] [String]
+    getElemNames	= listA $ unlistA >>> isDTDElement  >>> getDTDAttrValue a_name
+
+-- ------------------------------------------------------------
+
+checkName	:: String -> SLA [String] XmlTree XmlTree -> SLA [String] XmlTree XmlTree
+checkName name msg
+    = ifA ( getState
+	    >>>
+	    isA (name `elem`)
+	  )
+      msg
+      (nextState (name:) >>> none)
+
+-- ------------------------------------------------------------
+
+-- |
+-- Validation of Notations, checks if all notation names are unique.
+-- Validity constraint: Unique Notation Name (4.7 \/ p.44 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - returns : a list of errors
+
+validateNotations :: LA XmlTrees XmlTree
+validateNotations
+    = fromSLA [] ( unlistA
+		   >>>
+		   isDTDNotation
+		   >>>
+		   (checkForUniqueNotation $< getDTDAttrl)
+		 )
+      where
+      checkForUniqueNotation :: Attributes -> SLA [String] XmlTree XmlTree
+      checkForUniqueNotation al
+	  = checkName name $
+	    err ( "Notation "++ show name ++ " was already specified." )
+	  where
+	  name = dtd_name al
+
+-- |
+-- Validation of Entities.
+--
+-- 1. Issues a warning if entities are declared multiple times.
+--
+--    Optional warning: (4.2 \/ p.35 in Spec) 
+--
+--
+-- 2. Validates that a notation is declared for an unparsed entity.
+--
+--    Validity constraint: Notation Declared (4.2.2 \/ p.36 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter notationNames :  list of all notation names declared in the DTD
+--
+--    - returns : a list of errors
+
+validateEntities	:: [String] -> LA XmlTrees XmlTree
+validateEntities notationNames
+    = ( fromSLA [] ( unlistA
+		     >>>
+		     isDTDEntity
+		     >>>
+		     (checkForUniqueEntity $< getDTDAttrl)
+		   )
+      )
+      <+>
+      ( unlistA
+	>>>
+	isUnparsedEntity
+	>>>
+	(checkNotationDecl $< getDTDAttrl)
+      )
+      where
+
+      -- Check if entities are declared multiple times
+
+      checkForUniqueEntity	:: Attributes -> SLA [String] XmlTree XmlTree
+      checkForUniqueEntity al
+	  = checkName name $
+	    warn ( "Entity "++ show name ++ " was already specified. " ++
+		    "First declaration will be used." )
+	  where
+	  name = dtd_name al
+
+      -- Find unparsed entities for which no notation is specified
+
+      checkNotationDecl		:: Attributes -> XmlArrow
+      checkNotationDecl al
+	  | notationName `elem` notationNames
+	      = none
+	  | otherwise
+	      = err ( "The notation " ++ show notationName ++ " must be declared " ++
+	              "when referenced in the unparsed entity declaration for " ++
+		      show upEntityName ++ "."
+		    )
+	  where
+	  notationName = lookup1 k_ndata al
+	  upEntityName = dtd_name  al
+
+-- |
+-- Validation of Element declarations.
+--
+-- 1. Validates that an element is not declared multiple times.
+--
+--    Validity constraint: Unique Element Type Declaration (3.2 \/ p.21 in Spec) 
+--
+--
+-- 2. Validates that an element name only appears once in a mixed-content declaration.
+--
+--    Validity constraint: No Duplicate Types (3.2 \/ p.21 in Spec) 
+--
+--
+-- 3. Issues a warning if an element mentioned in a content model is not declared in the
+--    DTD.
+--
+--    Optional warning: (3.2 \/ p.21 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter elemNames :  list of all element names declared in the DTD
+--
+--    - returns : a list of errors
+
+
+validateElements	:: [String] -> LA XmlTrees XmlTree
+validateElements elemNames -- dtdPart
+    = ( fromSLA [] ( unlistA
+		     >>>
+		     isDTDElement
+		     >>>
+		     (checkForUniqueElement $< getDTDAttrl)
+		   )
+      )
+      <+>
+      ( unlistA
+	>>>
+	isMixedContentElement
+	>>>
+	(checkMixedContent $< getDTDAttrl)
+      )
+      <+>
+      ( unlistA
+	>>>
+	isDTDElement
+	>>>
+	(checkContentModel elemNames $< getDTDAttrl)
+      )
+      where
+
+      -- Validates that an element is not declared multiple times
+
+      checkForUniqueElement :: Attributes -> SLA [String] XmlTree XmlTree
+      checkForUniqueElement al
+	  = checkName name $
+	    err ( "Element type " ++ show name ++
+		  " must not be declared more than once." )
+	  where
+	  name = dtd_name al
+
+      -- Validates that an element name only appears once in a mixed-content declaration
+
+      checkMixedContent	:: Attributes -> XmlArrow
+      checkMixedContent al
+	  = fromSLA [] ( getChildren
+			 >>>
+			 getChildren
+			 >>>
+			 isDTDName
+			 >>>
+			 (check $< getDTDAttrl)
+		       )
+	    where
+	    elemName = dtd_name al
+	    check al'
+		= checkName name $
+		  err ( "The element type " ++ show name ++
+			 " was already specified in the mixed-content model of the element declaration " ++
+		         show elemName ++ "." )
+		where
+		name = dtd_name al'
+
+      -- Issues a warning if an element mentioned in a content model is not
+      -- declared in the DTD.
+      checkContentModel :: [String] -> Attributes -> XmlArrow
+      checkContentModel names al
+	  | cm `elem` [v_children, v_mixed]
+	      = getChildren >>> checkContent
+	  | otherwise
+	      = none
+	  where
+	  elemName = dtd_name al
+	  cm       = dtd_type al
+
+	  checkContent :: XmlArrow
+	  checkContent
+	      = choiceA
+		[ isDTDName    :-> ( checkName' $< getDTDAttrl )
+		, isDTDContent :-> ( getChildren >>> checkContent )
+		, this         :-> none
+		]
+	      where
+	      checkName' al'
+		  | childElemName `elem` names
+		      = none
+		  | otherwise
+		      = warn ( "The element type "++ show childElemName ++
+			       ", used in content model of element "++ show elemName ++
+			       ", is not declared."
+			     )
+		  where
+		  childElemName = dtd_name al'
+
+-- |
+-- Validation of Attribute declarations.
+--
+-- (1) Issues a warning if an attribute is declared for an element type not itself
+--    decared.
+--
+--    Optinal warning: (3.3 \/ p. 24 in Spec)
+--
+--
+-- 2. Issues a warning if more than one definition is provided for the same
+--    attribute of a given element type. Fist declaration is binding, later
+--    definitions are ignored.
+--
+--    Optional warning: (3.3 \/ p.24 in Spec)
+--
+--
+-- 3. Issues a warning if the same Nmtoken occures more than once in enumerated
+--    attribute types of a single element type.
+--
+--    Optional warning: (3.3.1 \/ p.27 in Spec) 
+--
+--
+-- 4. Validates that an element type has not more than one ID attribute defined.
+--
+--    Validity constraint: One ID per Element Type (3.3.1 \/ p.26 in Spec) 
+--
+--
+-- 5. Validates that an element type has not more than one NOTATION attribute defined.
+--
+--    Validity constraint: One Notation per Element Type (3.3.1 \/ p.27 in Spec) 
+--
+--
+-- 6. Validates that an ID attributes has the type #IMPLIED or #REQUIRED.
+--
+--    Validity constraint: ID Attribute Default (3.3.1 \/ p.26 in Spec) 
+--
+--
+-- 7. Validates that all referenced notations are declared.
+--
+--    Validity constraint: Notation Attributes (3.3.1 \/ p.27 in Spec) 
+--
+--
+-- 8. Validates that notations are not declared for EMPTY elements.
+--
+--    Validity constraint: No Notation on Empty Element (3.3.1 \/p.27 in Spec) 
+--
+--
+-- 9. Validates that the default value matches the lexical constraints of it's type.
+--
+--    Validity constraint: Attribute default legal (3.3.2 \/ p.28 in Spec)
+--
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter elemNames :  list of all element names declared in the DTD
+--
+--    - 3.parameter notationNames :  list of all notation names declared in the DTD
+--
+--    - returns : a list of errors
+
+validateAttributes :: [String] -> [String] -> LA XmlTrees XmlTree
+validateAttributes elemNames notationNames
+    = -- 1. Find attributes for which no elements are declared
+      ( runCheck this (checkDeclaredElements elemNames) )
+      <+>
+      -- 2. Find attributes which are declared more than once
+      ( runNameCheck this checkForUniqueAttributeDeclaration )
+      <+>
+      -- 3. Find enumerated attribute types which nmtokens are declared more than once
+      ( runCheck (isEnumAttrType `orElse` isNotationAttrType) checkEnumeratedTypes )
+      <+>
+      -- 4. Validate that there exists only one ID attribute for an element
+      ( runNameCheck isIdAttrType checkForUniqueId )
+      <+>
+      -- 5. Validate that there exists only one NOTATION attribute for an element
+      ( runNameCheck isNotationAttrType checkForUniqueNotation )
+      <+>
+      -- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED
+      ( runCheck isIdAttrType checkIdKindConstraint )
+      <+>
+      -- 7. Validate that all referenced notations are declared
+      ( runCheck isNotationAttrType (checkNotationDeclaration notationNames) )
+      <+>
+      -- 8. Validate that notations are not declared for EMPTY elements
+      ( checkNoNotationForEmptyElements $< listA ( unlistA
+						   >>>
+						   isEmptyElement
+						   >>>
+						   getDTDAttrValue a_name
+						 )
+      )
+      <+>
+      -- 9. Validate that the default value matches the lexical constraints of it's type
+      ( checkDefaultValueTypes $< this )
+
+      where
+      -- ------------------------------------------------------------
+      -- control structures
+
+      runCheck select check
+	  = unlistA >>> isDTDAttlist
+	    >>>
+	    select
+	    >>>
+	    (check $< getDTDAttrl)
+      
+      runNameCheck select check
+	  = fromSLA [] $ runCheck select check
+
+      --------------------------------------------------------------------------
+
+      -- 1. Find attributes for which no elements are declared
+
+      checkDeclaredElements :: [String] -> Attributes -> XmlArrow
+      checkDeclaredElements elemNames' al
+	  | en `elem` elemNames'
+	      = none
+	  | otherwise
+	      = warn ( "The element type \""++ en ++ "\" used in dclaration "++
+		       "of attribute \""++ an ++"\" is not declared."
+		     )
+	  where
+	  en = dtd_name al
+	  an = dtd_value al
+
+      --------------------------------------------------------------------------
+
+      -- 2. Find attributes which are declared more than once
+
+      checkForUniqueAttributeDeclaration ::  Attributes -> SLA [String] XmlTree XmlTree
+      checkForUniqueAttributeDeclaration al
+	  = checkName name $
+	    warn ( "Attribute \""++ aname ++"\" for element type \""++
+		   ename ++"\" is already declared. First "++
+		   "declaration will be used." )
+	  where
+	  ename = dtd_name al
+	  aname = dtd_value al
+	  name  = ename ++ "|" ++ aname
+
+      --------------------------------------------------------------------------
+
+      -- 3. Find enumerated attribute types which nmtokens are declared more than once
+
+      checkEnumeratedTypes :: Attributes -> XmlArrow
+      checkEnumeratedTypes al
+          = fromSLA [] ( getChildren
+			 >>>
+			 isDTDName
+			 >>>
+			 (checkForUniqueType $< getDTDAttrl)
+		       )
+	  where
+	  checkForUniqueType :: Attributes -> SLA [String] XmlTree XmlTree
+          checkForUniqueType al'
+	      = checkName nmtoken $
+	        warn ( "Nmtoken \""++ nmtoken ++"\" should not "++
+		       "occur more than once in attribute \""++ dtd_value al ++
+		       "\" for element \""++ dtd_name al ++ "\"." )
+	      where
+	      nmtoken = dtd_name al'
+
+      --------------------------------------------------------------------------
+
+      -- 4. Validate that there exists only one ID attribute for an element
+
+      checkForUniqueId :: Attributes -> SLA [String] XmlTree XmlTree
+      checkForUniqueId al
+	  = checkName ename $
+	    err ( "Element \""++ ename ++ "\" already has attribute of type "++
+		  "ID, another attribute \""++ dtd_value al ++ "\" of type ID is "++
+		  "not permitted." )
+	  where
+	  ename = dtd_name al
+
+      --------------------------------------------------------------------------
+
+      -- 5. Validate that there exists only one NOTATION attribute for an element
+
+      checkForUniqueNotation :: Attributes -> SLA [String] XmlTree XmlTree
+      checkForUniqueNotation al
+	  = checkName ename $
+	    err ( "Element \""++ ename ++ "\" already has attribute of type "++
+		  "NOTATION, another attribute \""++ dtd_value al ++ "\" of type NOTATION "++
+		  "is not permitted." )
+	  where
+	  ename = dtd_name al
+
+      --------------------------------------------------------------------------
+
+      -- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED
+
+      checkIdKindConstraint :: Attributes -> XmlArrow
+      checkIdKindConstraint al
+	  | attKind `elem` [k_implied, k_required]
+	      = none
+	  | otherwise
+	      = err ( "ID attribute \""++ dtd_value al ++"\" must have a declared default "++
+	              "of \"#IMPLIED\" or \"REQUIRED\"")
+	  where
+	  attKind = dtd_kind al
+
+
+      --------------------------------------------------------------------------
+
+      -- 7. Validate that all referenced notations are declared
+
+      checkNotationDeclaration :: [String] -> Attributes -> XmlArrow
+      checkNotationDeclaration notations al
+          = getChildren
+	    >>>
+	    isDTDName
+	    >>>
+	    (checkNotations $< getDTDAttrl)
+	  where
+	  checkNotations :: Attributes -> XmlArrow
+	  checkNotations al'
+	      | notation `elem` notations
+		  = none
+	      | otherwise
+		  = err ( "The notation \""++ notation ++"\" must be declared when "++
+		          "referenced in the notation type list for attribute \""++ dtd_value al ++
+			  "\" of element \""++ dtd_name al ++"\"."
+			)
+              where
+	      notation = dtd_name al'
+
+      --------------------------------------------------------------------------
+
+      -- 8. Validate that notations are not declared for EMPTY elements
+
+      checkNoNotationForEmptyElements :: [String] -> LA XmlTrees XmlTree
+      checkNoNotationForEmptyElements emptyElems
+	  = unlistA
+	    >>>
+	    isDTDAttlist
+	    >>>
+	    isNotationAttrType
+	    >>>
+	    (checkNoNotationForEmptyElement $< getDTDAttrl)
+	  where
+	  checkNoNotationForEmptyElement :: Attributes -> XmlArrow
+	  checkNoNotationForEmptyElement al
+	      | ename `elem` emptyElems
+		  = err ( "Attribute \""++ dtd_value al ++"\" of type NOTATION must not be "++
+			  "declared on the element \""++ ename ++"\" declared EMPTY."
+			)
+              | otherwise
+		  = none
+	      where
+	      ename = dtd_name al
+
+      --------------------------------------------------------------------------
+
+      -- 9. Validate that default values meet the lexical constraints of the attribute types
+
+      checkDefaultValueTypes :: XmlTrees -> LA XmlTrees XmlTree
+      checkDefaultValueTypes dtdPart'
+	  = unlistA >>> isDTDAttlist
+	    >>>
+	    isDefaultAttrKind
+	    >>>
+            (checkAttributeValue dtdPart' $< this)
+
+-- ------------------------------------------------------------
+
+-- |
+-- Removes doublicate declarations from the DTD, which first declaration is
+-- binding. This is the case for ATTLIST and ENTITY declarations.
+--
+--    - returns : A function that replaces the children of DOCTYPE nodes by a list
+--               where all multiple declarations are removed.
+
+removeDoublicateDefs :: XmlArrow
+removeDoublicateDefs
+    = replaceChildren
+      ( fromSLA [] ( getChildren
+		     >>>
+		     choiceA [ isDTDAttlist :-> (removeDoubleAttlist $< getDTDAttrl)
+			     , isDTDEntity  :-> (removeDoubleEntity  $< getDTDAttrl)
+			     , this         :-> this
+			     ]
+		   )
+      )
+      `when`
+      isDTDDoctype
+    where
+    checkName' n'
+	= ifA ( getState
+		>>>
+		isA (n' `elem`)
+	      )
+	  none
+	  (this >>> perform (nextState (n':)))
+
+    removeDoubleAttlist :: Attributes -> SLA [String] XmlTree XmlTree
+    removeDoubleAttlist al
+	= checkName' elemAttr
+	where
+	elemAttr = elemName ++ "|" ++ attrName
+	attrName = dtd_value al
+	elemName = dtd_name al
+
+    removeDoubleEntity	:: Attributes -> SLA [String] XmlTree XmlTree
+    removeDoubleEntity al
+        = checkName' (dtd_name al)
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DTDValidation/DocTransformation.hs b/src/Text/XML/HXT/DTDValidation/DocTransformation.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/DocTransformation.hs
@@ -0,0 +1,210 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.DocTransformation
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides functions for transforming XML documents represented as
+   XmlTree with respect to its DTD.
+
+   Transforming an XML document with respect to its DTD means:
+
+    - add all attributes with default values
+
+    - normalize all attribute values
+
+    - sort all attributes in lexical order
+
+   Note: Transformation should be started after validation.
+
+   Before the document is validated, a lookup-table is build on the basis of
+   the DTD which maps element names to their transformation functions.
+   After this initialization phase the whole document is traversed in preorder
+   and every element is transformed by the XmlFilter from the lookup-table.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.DocTransformation
+    ( transform
+    )
+where
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+import Text.XML.HXT.DTDValidation.AttributeValueValidation
+
+import Data.Maybe
+import Data.List
+import Data.Ord
+
+-- ------------------------------------------------------------
+
+-- |
+-- Lookup-table which maps element names to their transformation functions. The
+-- transformation functions are XmlArrows.
+
+type TransEnvTable	= [TransEnv]
+type TransEnv 		= (ElemName, TransFct)
+type ElemName		= String
+type TransFct		= XmlArrow
+
+
+-- ------------------------------------------------------------
+
+-- |
+-- filter for transforming the document.
+--
+--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree
+--
+--    - 2.parameter doc :  the document subset of the XmlTree
+--
+--    - returns : a list of errors
+
+transform :: XmlTree -> XmlArrow
+transform dtdPart
+    = traverseTree transTable
+    where
+    transTable = buildAllTransformationFunctions (runLA getChildren dtdPart)
+
+-- |
+-- Traverse the XmlTree in preorder.
+--
+--    * 1.parameter transEnv :  lookup-table which maps element names to their transformation functions
+--
+--    - returns : the whole transformed document
+
+traverseTree :: TransEnvTable -> XmlArrow
+traverseTree transEnv
+    = processTopDown
+      ( ( (transFct $< getName)
+	  >>>
+	  processChildren (traverseTree transEnv)
+	)
+       `when`
+       isElem
+      )
+    where
+    transFct		:: String -> XmlArrow
+    transFct name	= fromMaybe this . lookup name $ transEnv
+
+-- |
+-- Build all transformation functions.
+--
+--    * 1.parameter dtdPart :  the DTD subset, root node should be of type @DOCTYPE@
+--
+--    - returns : lookup-table which maps element names to their transformation functions
+
+buildAllTransformationFunctions :: XmlTrees -> TransEnvTable
+buildAllTransformationFunctions dtdNodes
+    = (t_root, this)
+      :
+      concatMap (buildTransformationFunctions dtdNodes) dtdNodes
+
+-- |
+-- Build transformation functions for an element.
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    * 1.parameter nd :  element declaration for which the transformation functions are
+--                    created
+--
+--    - returns : entry for the lookup-table
+
+buildTransformationFunctions :: XmlTrees -> XmlTree -> [TransEnv]
+
+buildTransformationFunctions dtdPart dn
+    | isDTDElementNode dn	= [(name, transFct)]
+    | otherwise			= []
+    where
+    al		= getDTDAttributes dn
+    name	= dtd_name al
+    transFct	= setDefaultAttributeValues dtdPart dn
+		  >>>
+		  normalizeAttributeValues dtdPart dn
+		  >>>
+		  lexicographicAttributeOrder
+
+-- ------------------------------------------------------------
+
+-- |
+-- Sort the attributes of an element in lexicographic order.
+--
+--    * returns : a function which takes an element (XTag), sorts its
+--                  attributes in lexicographic order and returns the changed element
+
+lexicographicAttributeOrder :: XmlArrow
+lexicographicAttributeOrder
+    = setAttrl (getAttrl >>. sortAttrl)
+      where
+      sortAttrl		:: XmlTrees -> XmlTrees
+      sortAttrl		= sortBy (comparing nameOfAttr)
+
+-- |
+-- Normalize attribute values.
+--
+--    * returns : a function which takes an element (XTag), normalizes its
+--                  attribute values and returns the changed element
+
+normalizeAttributeValues :: XmlTrees -> XmlTree -> XmlArrow
+normalizeAttributeValues dtdPart dn
+    | isDTDElementNode dn	= processAttrl (normalizeAttr $< getName)
+    | otherwise			= this
+    where
+    al		 = getDTDAttributes dn
+    elemName	 = dtd_name al
+    declaredAtts = isAttlistOfElement elemName $$ dtdPart
+
+    normalizeAttr :: String -> XmlArrow
+    normalizeAttr nameOfAtt
+	= normalizeAttrValue ( if null attDescr
+			       then Nothing
+			       else Just (head attDescr)
+			     )
+	  where
+	  attDescr = filter ((== nameOfAtt) . valueOfDTD a_value) declaredAtts
+
+    normalizeAttrValue :: Maybe XmlTree -> XmlArrow
+    normalizeAttrValue descr
+	= replaceChildren ((xshow getChildren >>^ normalizeAttributeValue descr) >>> mkText)
+
+-- |
+-- Set default attribute values if they are not set.
+--
+--    * returns : a function which takes an element (XTag), adds missing attribute
+--                  defaults and returns the changed element
+
+setDefaultAttributeValues :: XmlTrees -> XmlTree -> XmlArrow
+setDefaultAttributeValues dtdPart dn
+    | isDTDElementNode dn	= seqA (map setDefault defaultAtts)
+    | otherwise			= this
+    where
+    elemName	= dtd_name . getDTDAttributes $ dn
+    defaultAtts	= ( isAttlistOfElement elemName
+		    >>>
+		    ( isFixedAttrKind		-- select attributes with default values
+		      `orElse`
+		      isDefaultAttrKind
+		    )
+		  ) $$ dtdPart
+
+    setDefault	:: XmlTree -> XmlArrow
+    setDefault attrDescr			-- add the default attributes
+	  = ( addAttr attName defaultValue	-- to tag nodes with missing attributes
+	      `whenNot`
+	      hasAttr attName
+	    )
+	    `when`
+	    isElem
+	where
+	al		= getDTDAttributes attrDescr
+	attName		= dtd_value   al
+	defaultValue	= dtd_default al
+
+-- ------------------------------------------------------------
+
diff --git a/src/Text/XML/HXT/DTDValidation/DocValidation.hs b/src/Text/XML/HXT/DTDValidation/DocValidation.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/DocValidation.hs
@@ -0,0 +1,523 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.TypeDefs
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides functions for validating XML Documents represented as
+   XmlTree.
+
+   Unlike other popular XML validation tools the validation process returns
+   a list of errors instead of aborting after the first error was found.
+
+   Before the document is validated, a lookup-table is build on the basis of
+   the DTD which maps element names to their validation functions.
+   After this initialization phase the whole document is traversed in preorder
+   and every element is validated by the XmlFilter from the lookup-table.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.DocValidation
+    ( validateDoc
+    )
+where
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+
+import Text.XML.HXT.DTDValidation.AttributeValueValidation
+import Text.XML.HXT.DTDValidation.XmlRE
+
+import Data.Maybe
+
+-- ------------------------------------------------------------
+
+-- |
+-- Lookup-table which maps element names to their validation functions. The
+-- validation functions are XmlArrows.
+
+type ValiEnvTable	= [ValiEnv]
+type ValiEnv 		= (ElemName, ValFct)
+type ElemName		= String
+type ValFct		= XmlArrow
+
+
+-- ------------------------------------------------------------
+
+-- |
+-- Validate a document.
+--
+--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree
+--
+--    - 2.parameter doc :  the document subset of the XmlTree
+--
+--    - returns : a list of errors
+
+validateDoc	:: XmlTree -> XmlArrow
+validateDoc dtdPart
+    = traverseTree valTable
+    where
+    valTable = buildAllValidationFunctions dtdPart
+
+
+-- |
+-- Traverse the XmlTree in preorder.
+--
+--    * 1.parameter valiEnv :  lookup-table which maps element names to their validation functions
+--
+--    - returns : list of errors
+
+traverseTree	:: ValiEnvTable -> XmlArrow
+traverseTree valiEnv
+    = choiceA [ isElem	:-> (valFct $< getQName)
+	      , this	:-> none
+	      ]
+      <+>
+      ( getChildren >>> traverseTree valiEnv )
+    where
+    valFct	:: QName -> XmlArrow
+    valFct name	= case (lookup (qualifiedName name) valiEnv) of
+		  Nothing -> err ("Element " ++ show (qualifiedName name) ++ " not declared in DTD.")
+		  Just f  -> f
+
+-- ------------------------------------------------------------
+
+-- |
+-- Build all validation functions.
+--
+--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@
+--
+--    - returns : lookup-table which maps element names to their validation functions
+
+buildAllValidationFunctions :: XmlTree -> ValiEnvTable
+buildAllValidationFunctions dtdPart
+    = concat $
+      buildValidateRoot dtdPart :	      -- construct a list of validation filters for all element declarations
+      map (buildValidateFunctions dtdNodes) dtdNodes
+      where
+      dtdNodes = runLA getChildren dtdPart
+
+-- |
+-- Build a validation function for the document root. By root node @\/@
+-- is meant, which is the topmost dummy created by the parser.
+--
+--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@
+--
+--    - returns : entry for the lookup-table
+
+buildValidateRoot :: XmlTree -> [ValiEnv]
+buildValidateRoot dn
+    | isDTDDoctypeNode dn	= [(t_root, valFct)]
+    | otherwise			= []
+      where
+      name	= dtd_name . getDTDAttributes $ dn
+
+      valFct	:: XmlArrow
+      valFct	= isElem
+		  `guards`
+		  ( checkRegex (re_sym name)
+		    >>>
+		    msgToErr (("Root Element must be " ++ show name ++ ". ") ++)
+		  )
+
+checkRegex	:: RE String -> LA XmlTree String
+checkRegex re	= listA getChildren
+		  >>> arr (\ cs -> checkRE (matches re cs))
+
+-- |
+-- Build validation functions for an element.
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter nd :  element declaration for which the validation functions are
+--                   created
+--
+--    - returns : entry for the lookup-table
+
+buildValidateFunctions :: XmlTrees -> XmlTree -> [ValiEnv]
+
+buildValidateFunctions dtdPart dn
+    | isDTDElementNode dn	= [(elemName, valFct)]
+    | otherwise			= []
+      where
+      elemName = dtd_name . getDTDAttributes $ dn
+
+      valFct :: XmlArrow
+      valFct = buildContentValidation dn
+               <+>
+	       buildAttributeValidation dtdPart dn
+
+-- ------------------------------------------------------------
+
+
+-- |
+-- Build validation functions for the content model of an element.
+-- Validity constraint: Element Valid (3 \/ p.18 in Spec)
+--
+--    * 1.parameter nd :  element declaration for which the content validation functions
+--                  are built
+--
+--    - returns : a function which takes an element (XTag), checks if its
+--                  children match its content model and returns a list of errors
+
+buildContentValidation :: XmlTree -> XmlArrow
+buildContentValidation nd
+    = contentValidation attrType nd
+      where
+      attrType = dtd_type . getDTDAttributes $ nd
+
+
+      -- Delegates construction of the validation function on the basis of the
+      -- content model type
+      contentValidation :: String -> XmlTree -> XmlArrow
+      contentValidation typ dn
+          | typ == k_pcdata   = contentValidationPcdata
+          | typ == k_empty    = contentValidationEmpty
+          | typ == k_any      = contentValidationAny
+          | typ == v_children = contentValidationChildren cs
+          | typ == v_mixed    = contentValidationMixed cs
+          | otherwise         = none
+	  where
+	  cs = runLA getChildren dn
+
+      -- Checks #PCDATA content models
+      contentValidationPcdata :: XmlArrow
+      contentValidationPcdata
+	  = isElem `guards` (contentVal $< getQName)
+	    where
+	    contentVal name
+		= checkRegex (re_rep (re_sym k_pcdata))
+		  >>>
+		  msgToErr ( ( "The content of element " ++
+			       show (qualifiedName name) ++
+			       " must match (#PCDATA). "
+			     ) ++
+			   )
+
+      -- Checks EMPTY content models
+      contentValidationEmpty :: XmlArrow
+      contentValidationEmpty
+	  = isElem `guards` (contentVal $< getQName)
+	    where
+	    contentVal name
+		= checkRegex re_unit
+		  >>>
+		  msgToErr ( ( "The content of element " ++
+				 show (qualifiedName name) ++
+				 " must match EMPTY. "
+			     ) ++
+			   )
+
+      -- Checks ANY content models
+      contentValidationAny :: XmlArrow
+      contentValidationAny
+	  = isElem `guards` (contentVal $< getName)
+	    where
+	    contentVal name
+		= checkRegex (re_rep (re_dot))
+		  >>>
+		  msgToErr ( ( "The content of element " ++
+			       show name ++
+			       " must match ANY. "
+			     ) ++
+			   )
+
+      -- Checks "children" content models
+      contentValidationChildren :: XmlTrees -> XmlArrow
+      contentValidationChildren cm
+	  = isElem `guards` (contentVal $< getName)
+	    where
+	    contentVal name
+		= checkRegex re
+		  >>>
+		  msgToErr ( ( "The content of element " ++
+			       show name ++
+			       " must match " ++ printRE re ++ ". "
+			     ) ++
+			   )
+	    re = createRE (head cm)
+
+      -- Checks "mixed content" content models
+      contentValidationMixed :: XmlTrees -> XmlArrow
+      contentValidationMixed cm
+	  = isElem `guards` (contentVal $< getName)
+	    where
+	    contentVal name
+		= checkRegex re
+		  >>>
+		  msgToErr ( ( "The content of element " ++
+			       show name ++
+			       " must match " ++ printRE re ++ ". "
+			     ) ++
+			   )
+	    re = re_rep (re_alt (re_sym k_pcdata) (createRE (head cm)))
+
+-- |
+-- Build a regular expression from the content model. The regular expression
+-- is provided by the module XmlRE.
+--
+--    * 1.parameter nd :  node of the content model. Expected: @CONTENT@ or
+--              @NAME@
+--
+--    - returns : regular expression of the content model
+
+createRE	::  XmlTree -> RE String
+createRE dn
+    | isDTDContentNode dn
+	= processModifier modifier
+    | isDTDNameNode dn
+	= re_sym name
+    | otherwise
+	= error ("createRE: illegeal parameter:\n" ++ show dn)
+    where
+    al		= getDTDAttributes dn
+    name	= dtd_name     al
+    modifier 	= dtd_modifier al
+    kind     	= dtd_kind     al
+    cs		= runLA getChildren dn
+
+    processModifier :: String -> RE String
+    processModifier m
+        | m == v_plus	  = re_plus (processKind kind)
+	| m == v_star	  = re_rep  (processKind kind)
+	| m == v_option	  = re_opt  (processKind kind)
+	| m == v_null	  = processKind kind
+	| otherwise       = error ("Unknown modifier: " ++ show m)
+
+    processKind :: String -> RE String
+    processKind k
+        | k == v_seq	  = makeSequence cs
+	| k == v_choice	  = makeChoice cs
+	| otherwise	  = error ("Unknown kind: " ++ show k)
+
+    makeSequence :: XmlTrees -> RE String
+    makeSequence []     = re_unit
+    makeSequence (x:xs) = re_seq (createRE x) (makeSequence xs)
+
+    makeChoice :: XmlTrees -> RE String
+    makeChoice []       = re_zero ""
+    makeChoice (x:xs)   = re_alt (createRE x) (makeChoice xs)
+
+-- ------------------------------------------------------------
+
+-- |
+-- Build validation functions for the attributes of an element.
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter nd :  element declaration for which the attribute validation functions
+--                  are created
+--
+--    - returns : a function which takes an element (XTag), checks if its
+--                  attributes are valid and returns a list of errors
+
+buildAttributeValidation :: XmlTrees -> XmlTree -> XmlArrow
+buildAttributeValidation dtdPart nd =
+    noDoublicateAttributes
+    <+>
+    checkNotDeclardAttributes attrDecls nd
+    <+>
+    checkRequiredAttributes attrDecls nd
+    <+>
+    checkFixedAttributes attrDecls nd
+    <+>
+    checkValuesOfAttributes attrDecls dtdPart nd
+    where
+    attrDecls = isDTDAttlist $$ dtdPart
+
+
+-- |
+-- Validate that all attributes of an element are unique.
+-- Well-formdness constraint: Unique AttSpec (3.1 \/ p.19 in Spec)
+--
+--    - returns : a function which takes an element (XTag), checks if its
+--                  attributes are unique and returns a list of errors
+
+noDoublicateAttributes	:: XmlArrow
+noDoublicateAttributes
+    = isElem
+      `guards`
+      ( noDoubles' $< getName )
+    where
+    noDoubles' elemName
+	= listA (getAttrl >>> getName)
+	  >>> applyA (arr (catA . map toErr . doubles . reverse))
+	where
+	toErr n1 = err ( "Attribute " ++ show n1 ++
+			 " was already specified for element " ++
+			 show elemName ++ "."
+		       )
+
+-- |
+-- Validate that all \#REQUIRED attributes are provided.
+-- Validity constraint: Required Attributes (3.3.2 \/ p.28 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter nd :  element declaration which attributes have to be checked
+--
+--    - returns : a function which takes an element (XTag), checks if all
+--                  required attributes are provided and returns a list of errors
+
+checkRequiredAttributes	:: XmlTrees -> XmlTree -> XmlArrow
+checkRequiredAttributes attrDecls dn
+    | isDTDElementNode dn
+	= isElem
+	  `guards`
+	  ( checkRequired $< getName )
+    | otherwise
+	= none
+      where
+      elemName     = dtd_name . getDTDAttributes $ dn
+      requiredAtts = (isAttlistOfElement elemName >>> isRequiredAttrKind) $$ attrDecls
+
+      checkRequired :: String -> XmlArrow
+      checkRequired name
+	  = catA . map checkReq $ requiredAtts
+	  where
+	  checkReq	:: XmlTree -> XmlArrow
+	  checkReq attrDecl
+	      = neg (hasAttr attName)
+		`guards`
+		err ( "Attribute " ++ show attName ++ " must be declared for element type " ++
+		      show name ++ "." )
+	      where
+	      attName = dtd_value . getDTDAttributes $ attrDecl
+
+-- |
+-- Validate that \#FIXED attributes match the default value.
+-- Validity constraint: Fixed Attribute Default (3.3.2 \/ p.28 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter nd :  element declaration which attributes have to be checked
+--
+--    - returns : a function which takes an element (XTag), checks if all
+--                  fixed attributes match the default value and returns a list of errors
+
+checkFixedAttributes :: XmlTrees -> XmlTree -> XmlArrow
+checkFixedAttributes attrDecls dn
+    | isDTDElementNode dn
+	= isElem
+	  `guards`
+	  ( checkFixed $< getName )
+    | otherwise
+	= none
+      where
+      elemName  = dtd_name . getDTDAttributes $ dn
+      fixedAtts = (isAttlistOfElement elemName >>> isFixedAttrKind) $$ attrDecls
+
+      checkFixed :: String -> XmlArrow
+      checkFixed name
+	  = catA . map checkFix $ fixedAtts
+	  where
+	  checkFix	:: XmlTree -> XmlArrow
+	  checkFix an
+	      |  isDTDAttlistNode an
+		  = checkFixedVal $< getAttrValue attName
+	      | otherwise
+		  = none
+	      where
+	      al'	= getDTDAttributes an
+	      attName   = dtd_value   al'
+	      defa	= dtd_default al'
+	      fixedValue = normalizeAttributeValue (Just an) defa
+
+              checkFixedVal	:: String -> XmlArrow
+	      checkFixedVal val
+		  = ( ( hasAttr attName
+			>>>
+			isA (const (attValue /= fixedValue))
+		      )
+		      `guards`
+		      err ( "Attribute " ++ show attName ++ " of element " ++ show name ++
+			    " with value " ++ show attValue ++ " must have a value of " ++
+			    show fixedValue ++ "." )
+		    )
+		  where
+		  attValue   = normalizeAttributeValue (Just an) val
+
+-- |
+-- Validate that an element has no attributes which are not declared.
+-- Validity constraint: Attribute Value Type (3.1 \/ p.19 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter nd :  element declaration which attributes have to be checked
+--
+--    - returns : a function which takes an element (XTag), checks if all
+--                  attributes are declared and returns a list of errors
+
+checkNotDeclardAttributes :: XmlTrees -> XmlTree -> XmlArrow
+checkNotDeclardAttributes attrDecls elemDescr
+    = checkNotDeclared
+      where
+      elemName = valueOfDTD a_name elemDescr
+      decls    = isAttlistOfElement elemName $$ attrDecls
+
+      checkNotDeclared :: XmlArrow
+      checkNotDeclared
+	  = isElem
+	    `guards`
+	    ( getAttrl >>> searchForDeclaredAtt elemName decls )
+
+      searchForDeclaredAtt :: String -> XmlTrees -> XmlArrow
+      searchForDeclaredAtt name (dn : xs)
+	  | isDTDAttlistNode dn
+	      = ( getName >>> isA ( (dtd_value . getDTDAttributes $ dn) /= ) )
+		`guards`
+		searchForDeclaredAtt name xs
+	  | otherwise
+	      = searchForDeclaredAtt name xs
+
+      searchForDeclaredAtt name []
+	  = mkErr $< getName
+	    where
+	    mkErr n = err ( "Attribute " ++ show n ++ " of element " ++
+			    show name ++ " is not declared in DTD." )
+
+-- |
+-- Validate that the attribute value meets the lexical constraints of its type.
+-- Validity constaint: Attribute Value Type (3.1 \/ p.19 in Spec)
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter nd :  element declaration which attributes have to be checked
+--
+--    - returns : a function which takes an element (XTag), checks if all
+--                  attributes meet the lexical constraints and returns a list of errors
+
+checkValuesOfAttributes :: XmlTrees -> XmlTrees -> XmlTree -> XmlArrow
+checkValuesOfAttributes attrDecls dtdPart elemDescr
+    = checkValues
+      where
+      elemName	= dtd_name . getDTDAttributes $ elemDescr
+      decls     = isAttlistOfElement elemName $$ attrDecls
+
+      checkValues :: XmlArrow
+      checkValues
+	  = isElem
+	    `guards`
+	    ( checkValue $< getAttrl )
+
+      checkValue att
+	  = catA . map checkVal $ decls
+	    where
+	    checkVal :: XmlTree -> XmlArrow
+	    checkVal attrDecl
+		| isDTDAttlistNode attrDecl
+		  &&
+		  nameOfAttr att == dtd_value al'
+		      = checkAttributeValue dtdPart attrDecl
+		| otherwise
+		    = none
+		where
+		al' = getDTDAttributes attrDecl
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DTDValidation/IdValidation.hs b/src/Text/XML/HXT/DTDValidation/IdValidation.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/IdValidation.hs
@@ -0,0 +1,266 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.IdValidation
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides functions for checking special ID/IDREF/IDREFS constraints.
+
+   Checking special ID\/IDREF\/IDREFS constraints means:
+
+    - checking that all ID values are unique.
+
+    - checking that all IDREF\/IDREFS values match the value of some ID attribute
+
+   ID-Validation should be started before or after validating the document.
+
+   First all nodes with ID attributes are collected from the document, then
+   it is validated that values of ID attributes do not occure more than once.
+   During a second iteration over the document it is validated that there exists
+   an ID attribute value for IDREF\/IDREFS attribute values.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.IdValidation
+    ( validateIds
+    )
+where
+
+import Data.Maybe
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+import Text.XML.HXT.DTDValidation.AttributeValueValidation
+
+-- ------------------------------------------------------------
+
+-- |
+-- Lookup-table which maps element names to their validation functions. The
+-- validation functions are XmlFilters.
+
+type IdEnvTable		= [IdEnv]
+type IdEnv 		= (ElemName, IdFct)
+type ElemName		= String
+type IdFct		= XmlArrow
+
+-- ------------------------------------------------------------
+
+-- |
+-- Perform the validation of the ID/IDREF/IDREFS constraints.
+--
+--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree
+--
+--    - 2.parameter doc :  the document subset of the XmlTree
+--
+--    - returns : a list of errors
+
+validateIds :: XmlTree -> XmlArrow
+validateIds dtdPart
+    = validateIds' $< listA (traverseTree idEnv)
+      where
+      idAttrTypes = runLA (getChildren >>> isIdAttrType) dtdPart
+      elements	  = runLA (getChildren >>> isDTDElement) dtdPart
+      atts        = runLA (getChildren >>> isDTDAttlist) dtdPart
+      idEnv	  = buildIdCollectorFcts idAttrTypes
+
+      validateIds'	:: XmlTrees -> XmlArrow
+      validateIds' idNodeList
+	  = ( constA idNodeList >>> checkForUniqueIds idAttrTypes )
+	    <+>
+	    checkIdReferences idRefEnv
+	  where
+	  idRefEnv   = buildIdrefValidationFcts idAttrTypes elements atts idNodeList
+
+
+
+-- |
+-- Traverse the XmlTree in preorder.
+--
+--    * 1.parameter idEnv :  lookup-table which maps element names to their validation functions
+--
+--    - returns : list of errors
+
+traverseTree :: IdEnvTable -> XmlArrow
+traverseTree idEnv
+    = multi (isElem `guards` (idFct $< getName))
+      where
+      idFct 		:: String -> XmlArrow
+      idFct name	= fromMaybe none . lookup name $ idEnv
+
+-- |
+-- Returns the value of an element's ID attribute. The attribute name has to be
+-- retrieved first from the DTD.
+--
+--    * 1.parameter dtdPart :  list of ID attribute definitions from the DTD
+--
+--    - 2.parameter n :  element which ID attribute value should be returned
+--
+--    - returns : normalized value of the ID attribute
+
+getIdValue	:: XmlTrees -> XmlTree -> String
+getIdValue dns
+    = concat . runLA (single getIdValue')
+    where
+    getIdValue'	:: LA XmlTree String
+    getIdValue'
+	= isElem `guards` catA (map getIdVal dns)
+	where
+	getIdVal dn
+	    | isDTDAttlistNode dn	= hasName elemName
+					  `guards`
+					  ( getAttrValue0 attrName
+					    >>>
+					    arr (normalizeAttributeValue (Just dn))
+					  )
+	    | otherwise			= none
+	    where
+	    al       = getDTDAttributes dn
+	    elemName = dtd_name  al
+	    attrName = dtd_value al
+
+-- ------------------------------------------------------------
+
+
+-- |
+-- Build collector functions which return XTag nodes with ID attributes from
+-- a document.
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - returns : lookup-table which maps element names to their collector function
+
+buildIdCollectorFcts :: XmlTrees -> IdEnvTable
+buildIdCollectorFcts idAttrTypes
+    = concatMap buildIdCollectorFct idAttrTypes
+      where
+      buildIdCollectorFct :: XmlTree -> [IdEnv]
+      buildIdCollectorFct dn
+	  | isDTDAttlistNode dn	= [(elemName, hasAttr attrName)]
+	  | otherwise		= []
+	  where
+	  al       = getDTDAttributes dn
+          elemName = dtd_name  al
+	  attrName = dtd_value al
+
+-- |
+-- Build validation functions for checking if IDREF\/IDREFS values match a value
+-- of some ID attributes.
+--
+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - 2.parameter idNodeList :  list of all XTag nodes with ID attributes
+--
+--    - returns : lookup-table which maps element names to their validation function
+
+buildIdrefValidationFcts :: XmlTrees -> XmlTrees -> XmlTrees -> XmlTrees -> IdEnvTable
+buildIdrefValidationFcts idAttrTypes elements atts idNodeList
+    = concatMap buildElemValidationFct elements
+      where
+      idValueList = map (getIdValue idAttrTypes) idNodeList
+
+      buildElemValidationFct :: XmlTree -> [IdEnv]
+      buildElemValidationFct dn
+	  | isDTDElementNode dn	= [(elemName, buildIdrefValidationFct idRefAttrTypes)]
+	  | otherwise		= []
+	  where
+	  al             = getDTDAttributes dn
+	  elemName       = dtd_name al
+	  idRefAttrTypes = (isAttlistOfElement elemName >>> isIdRefAttrType) $$ atts
+
+      buildIdrefValidationFct :: XmlTrees -> XmlArrow
+      buildIdrefValidationFct
+	  = catA . map buildIdref
+
+      buildIdref	:: XmlTree -> XmlArrow
+      buildIdref dn
+	  | isDTDAttlistNode dn	= isElem >>> (checkIdref $< getName)
+	  | otherwise		= none
+	  where
+	  al             = getDTDAttributes dn
+	  attrName = dtd_value al
+	  attrType = dtd_type  al
+
+	  checkIdref :: String -> XmlArrow
+	  checkIdref name
+	      = hasAttr attrName
+		`guards`
+		( checkIdVal $< getAttrValue attrName )
+	      where
+	      checkIdVal	:: String -> XmlArrow
+	      checkIdVal av
+		  | attrType == k_idref
+		      = checkValueDeclared attrValue
+		  | null valueList
+		      = err ( "Attribute " ++ show attrName ++
+			      " of Element " ++ show name ++
+			      " must have at least one name."
+			    )
+		  | otherwise
+		      = catA . map checkValueDeclared $ valueList
+		  where
+		  valueList = words attrValue
+		  attrValue = normalizeAttributeValue (Just dn) av
+
+	  checkValueDeclared :: String -> XmlArrow
+	  checkValueDeclared  attrValue
+	      = if attrValue `elem` idValueList
+		then none
+		else err ( "An Element with identifier " ++ show attrValue ++
+		           " must appear in the document."
+			 )
+
+-- ------------------------------------------------------------
+
+
+-- |
+-- Validate that all ID values are unique within a document.
+-- Validity constraint: ID (3.3.1 \/p. 25 in Spec)
+--
+--    * 1.parameter idNodeList :  list of all XTag nodes with ID attributes
+--
+--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node
+--
+--    - returns : a list of errors
+
+checkForUniqueIds :: XmlTrees -> LA XmlTrees XmlTree
+checkForUniqueIds idAttrTypes		 -- idNodeList
+    = fromSLA [] ( unlistA
+		   >>>
+		   isElem
+		   >>>
+		   (checkForUniqueId $<< getName &&& this)
+		 )
+      where
+      checkForUniqueId :: String -> XmlTree -> SLA [String] XmlTree XmlTree
+      checkForUniqueId name x
+	  = ifA ( getState
+		  >>>
+		  isA (attrValue `elem`)
+		)
+	    (err ( "Attribute value " ++ show attrValue ++ " of type ID for element " ++
+	           show name ++ " must be unique within the document." ))
+            (nextState (attrValue:) >>> none)
+	  where
+	  attrValue = getIdValue (isAttlistOfElement name $$ idAttrTypes) x
+
+-- |
+-- Validate that all IDREF\/IDREFS values match the value of some ID attribute.
+-- Validity constraint: IDREF (3.3.1 \/ p.26 in Spec)
+--
+--    * 1.parameter idRefEnv :  lookup-table which maps element names to their validation function
+--
+--    - 2.parameter doc :  the document to validate
+--
+--    - returns : a list of errors
+
+checkIdReferences :: IdEnvTable -> LA XmlTree XmlTree
+checkIdReferences idRefEnv
+    = traverseTree idRefEnv
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DTDValidation/RE.hs b/src/Text/XML/HXT/DTDValidation/RE.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/RE.hs
@@ -0,0 +1,341 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.RE
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   A module for regular expression matching based on derivatives of regular expressions.
+
+   The code was taken from Joe English (<http://www.flightlab.com/~joe/sgml/validate.html>).
+   Tested and extended by Martin Schmidt.
+
+   Further references for the algorithm:
+
+   Janusz A. Brzozowski.
+
+   	Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. 
+
+   Mark Hopkins.
+
+	Regular Expression Package. Posted to comp.compilers, 1994.
+        Available per FTP at <ftp://iecc.com/pub/file/regex.tar.gz>.
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.RE
+    ( RE(..)
+
+    , re_unit
+    , re_zero
+    , re_sym
+    , re_rep
+    , re_plus
+    , re_opt
+    , re_seq
+    , re_alt
+    , re_dot
+
+    , checkRE
+    , matches
+    , nullable
+    , printRE
+  )
+where
+
+-- |
+-- Data type for regular expressions.
+
+data RE a =
+	RE_ZERO	String		--' L(0)   = {} (empty set)
+	| RE_UNIT		--' L(1)   = { [] } (empty sequence)
+	| RE_SYM a		--' L(x)   = { [x] }
+	| RE_DOT                --' accept any single symbol
+	| RE_REP (RE a)		--' L(e*)  = { [] } `union` L(e+)
+	| RE_PLUS (RE a)	--' L(e+)  = { x ++ y | x <- L(e), y <- L(e*) }
+	| RE_OPT (RE a)		--' L(e?)  = L(e) `union` { [] }
+	| RE_SEQ (RE a) (RE a)	--' L(e,f) = { x ++ y | x <- L(e), y <- L(f) }
+	| RE_ALT (RE a) (RE a)	--' L(e|f) = L(e) `union` L(f)
+	deriving (Show, Eq)
+
+
+
+-- ------------------------------------------------------------
+-- Constructor functions to simplify regular expressions when constructing them.
+
+-- |
+-- Constructs a regular expression for an empty set.
+--
+--    * 1.parameter errMsg :  error message
+--
+--    - returns : regular expression for an empty set
+
+re_zero			:: String -> RE a
+re_zero m		= RE_ZERO m
+
+
+-- |
+-- Constructs a regular expression for an empty sequence.
+--
+--    - returns : regular expression for an empty sequence
+
+re_unit			:: RE a
+re_unit			= RE_UNIT
+
+
+-- |
+-- Constructs a regular expression for accepting a symbol
+--
+--    * 1.parameter sym :  the symbol to be accepted
+--
+--    - returns : regular expression for accepting a symbol
+
+re_sym			:: a -> RE a
+re_sym x		= RE_SYM x
+
+
+-- |
+-- Constructs a regular expression for accepting any singel symbol
+--
+--    - returns : regular expression for accepting any singel symbol
+
+re_dot			:: RE a
+re_dot			= RE_DOT
+
+
+-- |
+-- Constructs an optional repetition (*) of a regular expression
+--
+--    * 1.parameter re_a :  regular expression to be repeted
+--
+--    - returns : new regular expression
+
+re_rep			:: RE a -> RE a
+re_rep RE_UNIT		= RE_UNIT
+re_rep (RE_ZERO _)	= RE_UNIT
+re_rep e@(RE_REP _)	= RE_REP (rem_rep e)		-- remove nested reps
+re_rep e@(RE_ALT _ _)	= RE_REP (rem_rep e)		-- remove nested reps in alternatives
+re_rep e		= RE_REP e
+
+-- |
+-- remove redundant nested *'s in RE
+-- theoretically this is unneccessary,
+-- but without this simplification the runtime can increase exponentally
+-- when computing deltas, e.g. for a** or (a|b*)* which is the same as (a|b)*
+
+rem_rep			:: RE a -> RE a
+rem_rep (RE_ALT e1 e2)	= RE_ALT (rem_rep e1) (rem_rep e2)
+rem_rep (RE_REP e1)	= rem_rep e1
+rem_rep e1		= e1
+
+
+-- |
+-- Constructs a repetition (+) of a regular expression
+--
+--    * 1.parameter re_a :  regular expression to be repeted
+--
+--    - returns : new regular expression
+
+re_plus			:: RE a -> RE a
+re_plus RE_UNIT		= RE_UNIT
+re_plus (RE_ZERO m) 	= RE_ZERO m
+re_plus e		= RE_PLUS e
+
+
+-- |
+-- Constructs an option (?) of a regular expression
+--
+--    * 1.parameter re_a :  regular expression to be optional
+--
+--    - returns : new regular expression
+
+re_opt			:: RE a -> RE a
+re_opt RE_UNIT		= RE_UNIT
+re_opt (RE_ZERO _)	= RE_UNIT
+re_opt e		= RE_OPT e
+
+
+-- |
+-- Constructs a sequence (,) of two regular expressions
+--
+--    * 1.parameter re_a :  first regular expression in sequence
+--
+--    - 2.parameter re_b :  second regular expression in sequence
+--
+--    - returns : new regular expression
+
+re_seq			:: RE a -> RE a -> RE a
+re_seq (RE_ZERO m) _	= RE_ZERO m
+re_seq RE_UNIT f	= f
+re_seq _ (RE_ZERO m)	= RE_ZERO m
+re_seq e RE_UNIT	= e
+re_seq e f		= RE_SEQ e f
+
+
+-- |
+-- Constructs an alternative (|) of two regular expressions
+--
+--    * 1.parameter re_a :  first regular expression of alternative
+--
+--    - 2.parameter re_b :  second regular expression of alternative
+--
+--    - returns : new regular expression
+
+re_alt			:: RE a -> RE a -> RE a
+re_alt (RE_ZERO _) f	= f
+re_alt e (RE_ZERO _)	= e
+re_alt e f		= RE_ALT e f
+
+
+
+-- ------------------------------------------------------------
+
+
+-- |
+-- Checks if a regular expression matches the empty sequence.
+--
+-- nullable e == [] `in` L(e)
+--
+-- This check indicates if a regular expression fits to a sentence or not.
+--
+--    * 1.parameter re :  regular expression to be checked
+--
+--    - returns : true if regular expression matches the empty sequence,
+--                otherwise false
+
+nullable		::  (Show a) => RE a -> Bool
+nullable (RE_ZERO _)	= False
+nullable RE_UNIT	= True
+nullable (RE_SYM _)	= False
+nullable (RE_REP _)	= True
+nullable (RE_PLUS e)	= nullable e
+nullable (RE_OPT _)	= True
+nullable (RE_SEQ e f)	= nullable e && nullable f
+nullable (RE_ALT e f)	= nullable e || nullable f
+nullable RE_DOT		= False
+
+
+-- |
+-- Derives a regular expression with respect to one symbol.
+--
+-- L(delta e x) = x \ L(e)
+--
+--    * 1.parameter re :  regular expression to be derived
+--
+--    - 2.parameter sym :  the symbol on which the regular expression is applied
+--
+--    - returns : the derived regular expression
+
+delta :: (Eq a, Show a) => RE a -> a -> RE a
+delta re x = case re of
+	RE_ZERO	_		-> re					-- re_zero m
+	RE_UNIT			-> re_zero ("Symbol " ++ show x ++ " unexpected.")
+	RE_SYM sym
+		| x == sym	-> re_unit
+		| otherwise	-> re_zero ("Symbol " ++ show sym ++ " expected, but symbol " ++ show x ++ " found.")
+	RE_REP  e		-> re_seq (delta e x) re		-- (re_rep e)
+	RE_PLUS e		-> re_seq (delta e x) (re_rep e)
+	RE_OPT  e		-> delta e x
+	RE_SEQ  e f
+		| nullable e	-> re_alt (re_seq (delta e x) f) (delta f x)
+		| otherwise	-> re_seq (delta e x) f
+	RE_ALT  e f		-> re_alt (delta e x) (delta f x)
+	RE_DOT			-> re_unit
+
+
+-- |
+-- Derives a regular expression with respect to a sentence.
+--
+--    * 1.parameter re :  regular expression
+--
+--    - 2.parameter s :  sentence to which the regular expression is applied
+--
+--    - returns : the derived regular expression
+
+matches :: (Eq a, Show a) => RE a -> [a] -> RE a
+matches e = foldl delta e
+
+
+-- |
+-- Checks if an input matched a regular expression. The function should be
+-- called after matches.
+--
+-- Was the sentence used in @matches@ in the language of the regular expression?
+-- -> matches e s == s `in` L(e)?
+--
+--    * 1.parameter re :  the derived regular expression
+--
+--    - returns : empty String if input matched the regular expression, otherwise
+--               an error message is returned
+
+checkRE :: (Show a) => RE a -> String
+checkRE (RE_UNIT)	= ""
+checkRE (RE_ZERO m)	= m
+checkRE re
+	| nullable re	= ""
+	| otherwise	= "Input must match " ++ printRE re
+
+
+
+-- ------------------------------------------------------------
+
+
+
+-- |
+-- Constructs a string representation of a regular expression.
+--
+--    * 1.parameter re :  a regular expression
+--
+--    - returns : the string representation of the regular expression
+
+printRE :: (Show a) => RE a -> String
+printRE re'
+    = "( " ++ printRE1 re' ++ " )"
+      where
+      printRE1 :: (Show a) => RE a -> String
+      printRE1 re = case re of
+	  RE_ZERO m				-> "ERROR: " ++ m
+	  RE_UNIT				-> ""
+	  RE_SYM sym				-> show sym
+	  RE_DOT				-> "."
+	  RE_REP e
+	      | isSingle e			-> printRE1 e ++ "*"
+	      | otherwise			-> "(" ++ printRE1 e ++ ")*"
+	  RE_PLUS e
+	      | isSingle e			-> printRE1 e ++ "+"
+	      | otherwise			-> "(" ++ printRE1 e ++ ")+"
+	  RE_OPT e
+	      | isSingle e			-> printRE1 e ++ "?"
+	      | otherwise			-> "(" ++ printRE1 e ++ ")?"
+	  RE_SEQ e f
+	      | isAlt e  && not (isAlt f)	-> "(" ++ printRE1 e ++ ") , " ++ printRE1 f
+	      | not (isAlt e) && isAlt f	-> printRE1 e ++ " , (" ++ printRE1 f ++ ")"
+	      | isAlt e  && isAlt f		-> "(" ++ printRE1 e ++ ") , (" ++ printRE1 f ++ ")"
+	      | otherwise			-> printRE1 e ++ " , " ++ printRE1 f
+	  RE_ALT e f
+	      | isSeq e  && not (isSeq f)	-> "(" ++ printRE1 e ++ ") | " ++ printRE1 f
+	      | not (isSeq e) && isSeq f	-> printRE1 e ++ " | (" ++ printRE1 f ++ ")"
+	      | isSeq e  && isSeq f		-> "(" ++ printRE1 e ++ ") | (" ++ printRE1 f ++ ")"
+	      | otherwise			-> printRE1 e ++ " | " ++ printRE1 f
+
+
+      isSingle :: RE a -> Bool
+      isSingle (RE_ZERO _)    = True
+      isSingle RE_UNIT        = True
+      isSingle (RE_SYM _)     = True
+      isSingle _              = False
+
+
+      isSeq :: RE a -> Bool
+      isSeq (RE_SEQ _ _)      = True
+      isSeq _                 = False
+
+
+      isAlt :: RE a -> Bool
+      isAlt (RE_ALT _ _)      = True
+      isAlt _                 = False
diff --git a/src/Text/XML/HXT/DTDValidation/TypeDefs.hs b/src/Text/XML/HXT/DTDValidation/TypeDefs.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/TypeDefs.hs
@@ -0,0 +1,165 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.TypeDefs
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides all datatypes for DTD validation
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.TypeDefs
+    ( module Text.XML.HXT.DTDValidation.TypeDefs
+    , module Text.XML.HXT.DOM.Interface
+    , module Text.XML.HXT.Arrow.XmlArrow
+    , module Control.Arrow
+    , module Control.Arrow.ArrowList
+    , module Control.Arrow.ArrowIf
+    , module Control.Arrow.ArrowState
+    , module Control.Arrow.ArrowTree
+    , module Control.Arrow.ListArrow
+    , module Control.Arrow.StateListArrow
+    )
+where
+
+import Control.Arrow			-- classes
+import Control.Arrow.ArrowList
+import Control.Arrow.ArrowIf
+import Control.Arrow.ArrowState
+import Control.Arrow.ArrowTree
+
+import Control.Arrow.ListArrow		-- arrow types
+import Control.Arrow.StateListArrow
+
+import Text.XML.HXT.Arrow.XmlArrow
+
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode as XN
+
+-- ------------------------------------------------------------
+
+infixr 0 $$
+
+type XmlArrow	= LA XmlTree XmlTree
+type XmlArrowS	= LA XmlTree XmlTrees
+
+-- ------------------------------------------------------------
+
+dtd_name
+ , dtd_value
+ , dtd_type
+ , dtd_kind
+ , dtd_modifier
+ , dtd_default	:: Attributes -> String
+
+dtd_name	= lookup1 a_name
+dtd_value	= lookup1 a_value
+dtd_type	= lookup1 a_type
+dtd_kind	= lookup1 a_kind
+dtd_modifier	= lookup1 a_modifier
+dtd_default	= lookup1 a_default
+
+-- ------------------------------------------------------------
+
+isUnparsedEntity	:: ArrowDTD a => a XmlTree XmlTree
+isUnparsedEntity	= filterA $
+			  getDTDAttrl >>> isA (hasEntry k_ndata)
+
+hasDTDAttrValue		:: ArrowDTD a => String -> (String -> Bool) -> a XmlTree XmlTree
+hasDTDAttrValue	an p	= filterA $
+			  getDTDAttrl >>> isA (p . lookup1 an)
+
+isRequiredAttrKind	:: ArrowDTD a => a XmlTree XmlTree
+isRequiredAttrKind	= hasDTDAttrValue a_kind (== k_required)
+
+isDefaultAttrKind	:: ArrowDTD a => a XmlTree XmlTree
+isDefaultAttrKind	= hasDTDAttrValue a_kind (== k_default)
+
+isFixedAttrKind		:: ArrowDTD a => a XmlTree XmlTree
+isFixedAttrKind		= hasDTDAttrValue a_kind (== k_fixed)
+
+isMixedContentElement	:: ArrowDTD a => a XmlTree XmlTree
+isMixedContentElement	= hasDTDAttrValue a_type (== v_mixed)
+
+isEmptyElement		:: ArrowDTD a => a XmlTree XmlTree
+isEmptyElement		= hasDTDAttrValue a_type (== k_empty)
+
+isEnumAttrType		:: ArrowDTD a => a XmlTree XmlTree
+isEnumAttrType		= hasDTDAttrValue a_type (== k_enumeration)
+
+isIdAttrType		:: ArrowDTD a => a XmlTree XmlTree
+isIdAttrType		= hasDTDAttrValue a_type (== k_id)
+
+isIdRefAttrType		:: ArrowDTD a => a XmlTree XmlTree
+isIdRefAttrType		= hasDTDAttrValue a_type (`elem` [k_idref, k_idrefs])
+
+isNotationAttrType	:: ArrowDTD a => a XmlTree XmlTree
+isNotationAttrType	= hasDTDAttrValue a_type (== k_notation)
+
+isAttlistOfElement	:: ArrowDTD a => String -> a XmlTree XmlTree
+isAttlistOfElement el	= isDTDAttlist
+			  >>>
+			  hasDTDAttrValue a_name (== el)
+
+valueOfDTD		:: String -> XmlTree -> String
+valueOfDTD n		= concat . runLA ( getDTDAttrl >>^ lookup1 n )
+
+valueOf			:: String -> XmlTree -> String
+valueOf n		= concat . runLA ( getAttrValue n )
+
+getDTDAttributes	:: XmlTree -> Attributes
+getDTDAttributes	= concat . runLA getDTDAttrl
+
+isDTDDoctypeNode	:: XmlTree -> Bool
+isDTDDoctypeNode	= not . null . runLA isDTDDoctype
+
+isDTDElementNode	:: XmlTree -> Bool
+isDTDElementNode	= not . null . runLA isDTDElement
+
+isDTDAttlistNode	:: XmlTree -> Bool
+isDTDAttlistNode	= not . null . runLA isDTDAttlist
+
+isDTDContentNode	:: XmlTree -> Bool
+isDTDContentNode	= not . null . runLA isDTDContent
+
+isDTDNameNode		:: XmlTree -> Bool
+isDTDNameNode		= not . null . runLA isDTDName
+
+isElemNode		:: XmlTree -> Bool
+isElemNode		= not . null . runLA isElem
+
+nameOfAttr		:: XmlTree -> String
+nameOfAttr		= concat . runLA (getAttrName >>^ qualifiedName)
+
+nameOfElem		:: XmlTree -> String
+nameOfElem		= concat . runLA (getElemName >>^ qualifiedName)
+
+-- |
+-- infix operator for applying an arrow to a list of trees
+--
+--    * 1.parameter f :  the arrow
+--
+--    - 2.parameter ts :  the list of trees
+--
+--    - returns : list of results
+
+($$)		:: XmlArrow -> XmlTrees -> XmlTrees
+f $$ l		= runLA (unlistA >>> f) l
+
+-- | create an error message
+
+msgToErr	:: (String -> String) -> LA String XmlTree
+msgToErr f	= mkErr $< this
+		  where
+		  mkErr "" = none
+		  mkErr s  = err (f s)
+
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DTDValidation/Validation.hs b/src/Text/XML/HXT/DTDValidation/Validation.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/Validation.hs
@@ -0,0 +1,130 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.Validation
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   This module provides functions for validating XML documents represented as
+   XmlTree.
+
+   Unlike other popular XML validation tools the validation functions return
+   a list of errors instead of aborting after the first error was found.
+
+   Note: The validation process has been split into validation and transformation!
+   If @validate@ did not report any errors, @transform@
+   should be called, to change the document the way a validating parser
+   is expected to do.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.Validation
+    ( getDTDSubset
+    , validate
+    , validateDTD
+    , validateDoc
+    , removeDoublicateDefs
+    , transform
+    )
+
+where
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+
+import qualified Text.XML.HXT.DTDValidation.DTDValidation     as DTDValidation
+import qualified Text.XML.HXT.DTDValidation.DocValidation     as DocValidation
+import qualified Text.XML.HXT.DTDValidation.IdValidation      as IdValidation
+import qualified Text.XML.HXT.DTDValidation.DocTransformation as DocTransformation
+
+-- |
+-- Main validation filter. Check if the DTD and the document are valid.
+--
+--
+--    - returns : a function which expects a complete document as XmlTree input
+--                     and returns a list of all errors found.
+
+validate 	:: XmlArrow
+validate	= validateDTD <+> validateDoc
+
+-- |
+-- Check if the DTD is valid.
+--
+--
+--    - returns : a function which expects an XmlTree from the parser as input
+--                     and returns a list of all errors found in the DTD.
+
+validateDTD	:: XmlArrow
+validateDTD	= choiceA
+		  [ getDTDSubset	:-> DTDValidation.validateDTD
+		  , this		:-> err "Can't validate DTD: There is no DOCTYPE declaration in the document."
+		  ]
+-- |
+-- Check if the document corresponds to the given DTD.
+--
+--
+--    - returns : a function which expects a complete document as XmlTree input
+--                     and returns a list of all errors found in the content part.
+
+validateDoc	:: XmlArrow
+validateDoc
+    = validateDoc' $< getDTD
+    where
+    validateDoc' []		= err "Can't validate document: There is no DOCTYPE declaration in the document."
+    validateDoc' (dtdPart:_)	= DocValidation.validateDoc dtdPart
+				  <+>
+				  IdValidation.validateIds  dtdPart
+
+getDTD		:: XmlArrowS
+getDTD		= listA ( getDTDSubset
+			  >>>
+			  removeDoublicateDefs
+			)
+
+-- |
+-- filter for transforming a document with respect to the given DTD.
+--
+-- Validating parsers
+-- are expected to  normalize attribute values and add default values.
+-- This function should be called after a successful validation.
+--
+--
+--    - returns : a function which expects a complete XML document tree
+--                and returns the transformed XmlTree
+
+transform	:: XmlArrow
+transform	= choiceA
+		  [ isRoot	:-> (transformDoc $< getDTD)
+		  , this	:-> fatal "Can't transform document: No document root given"
+		  ]
+                  where
+		  transformDoc []	= this
+		  transformDoc dtd	= DocTransformation.transform (head dtd)
+
+-- |
+-- Removes doublicate declarations from the DTD which first declaration is
+-- binding. This is the case for ATTLIST and ENTITY declarations.
+--
+--
+--    - returns : A function that replaces the children of DOCTYPE nodes by a list
+--               where all multiple declarations are removed.
+
+removeDoublicateDefs	:: XmlArrow
+removeDoublicateDefs	= DTDValidation.removeDoublicateDefs
+
+--
+-- selects the DTD part of a document
+-- but only, if there is more than the internal part for the 4 predefined XML entities
+
+getDTDSubset		:: XmlArrow
+getDTDSubset		= getChildren
+			  >>>
+			  ( filterA $ isDTDDoctype >>> getDTDAttrl >>> isA (hasEntry a_name) )
+
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DTDValidation/XmlRE.hs b/src/Text/XML/HXT/DTDValidation/XmlRE.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DTDValidation/XmlRE.hs
@@ -0,0 +1,116 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DTDValidation.XmlRE
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   A module for regular expression matching, adapted for XML DTDs.
+
+   This module is based on the module RE.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DTDValidation.XmlRE
+    ( RE
+
+    , checkRE
+    , matches
+    , printRE
+
+    , re_unit
+    , re_zero
+    , re_sym
+    , re_rep
+    , re_plus
+    , re_opt
+    , re_seq
+    , re_alt
+    , re_dot
+    )
+where
+
+-- import Debug.Trace(trace)
+
+import Text.XML.HXT.DTDValidation.RE hiding (matches)
+
+import Text.XML.HXT.DTDValidation.TypeDefs
+import Text.XML.HXT.Arrow.Edit
+    ( removeComment
+    , removeWhiteSpace
+    )
+import qualified Text.XML.HXT.DOM.XmlNode as XN
+
+-- |
+-- Derives a regular expression with respect to a list of elements.
+--
+--    * 1.parameter re :  regular expression
+--
+--    - 2.parameter list :  list of elements to which the regular expression is applied
+--
+--    - returns : the derived regular expression
+
+matches :: RE String -> XmlTrees -> RE String
+matches re list
+    = foldl delta re (removeUnimportantStuff $$ list)
+      where
+      removeUnimportantStuff :: XmlArrow
+      removeUnimportantStuff = processBottomUp (removeWhiteSpace >>> removeComment)
+
+      -- trace of growth of REs
+      -- delta' re el = delta (trace (("RE : " ++) . (++ "\n" ) . show $ re) re) el
+
+
+-- |
+-- Derives a regular expression with respect to one element.
+--
+-- L(delta e x) = x \ L(e)
+--
+--    * 1.parameter re :  regular expression to be derived
+--
+--    - 2.parameter el :  the element on which the regular expression is applied
+--
+--    - returns : the derived regular expression
+
+delta :: RE String -> XmlTree -> RE String
+delta re el
+    | not (allowed el) = re
+    | otherwise        = case re of
+        RE_ZERO m		 -> re_zero m
+        RE_UNIT			 -> re_zero (elemName el ++" unexpected.")
+        RE_SYM sym
+    	    | sym == k_pcdata	 -> if ((XN.isText el) || (XN.isCdata el))
+				    then re_unit
+				    else re_zero ("Character data expected, but "++ elemName el ++" found.")
+       	    | expectedNode el sym -> re_unit
+	    | otherwise           -> re_zero ("Element "++ show sym ++" expected, but "++ elemName el ++" found.")
+        RE_REP e                  -> re_seq (delta e el) (re_rep e)
+        RE_PLUS e                 -> re_seq (delta e el) (re_rep e)
+        RE_OPT e                  -> delta e el
+        RE_SEQ e f
+       	    | nullable e          -> re_alt (re_seq (delta e el) f) (delta f el)
+       	    | otherwise           -> re_seq (delta e el) f
+        RE_ALT e f                -> re_alt (delta e el) (delta f el)
+        RE_DOT                    -> re_unit
+
+    where
+    expectedNode	:: XmlTree -> String -> Bool
+    expectedNode n sym
+	| XN.isElem n	= nameOfElem n == sym
+	| otherwise	= False
+
+    elemName		:: XmlTree -> String
+    elemName n
+	| XN.isElem n	= "element "++ show (nameOfElem n)
+	| otherwise	= "character data"
+
+    allowed	:: XmlTree -> Bool
+    allowed n	= XN.isElem n || XN.isText n || XN.isCdata n
+
+-- ------------------------------------------------------------
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
@@ -28,10 +28,6 @@
     , readable
     )
 
-import Network.URI
-    ( unEscapeString
-    )
-
 -- ------------------------------------------------------------
 
 getStdinCont		:: IO (Either String String)
@@ -64,7 +60,8 @@
 			       )
 		      return (either readErr Right c)
     where
-    source' = drivePath . unEscapeString $ source
+    -- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source
+    source' = drivePath $ source
     readErr e
 	= Left ( "system error when reading file "
 		 ++ show source
diff --git a/src/Text/XML/HXT/Parser.hs b/src/Text/XML/HXT/Parser.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- |
--- Simple parse functions.
---
--- Version : $Id: Parser.hs,v 1.2 2006/11/09 20:27:42 hxml Exp $
---
---
--- the "main" building blocks for an application.
--- this module exports all important functions for parsing, validating and transforming XML.
--- it also exports all basic datatypes and functions of the toolbox.
---
-
-module Text.XML.HXT.Parser
-    ( module Text.XML.HXT.DOM
-
-    , module Text.XML.HXT.Parser.XmlParser
-    , module Text.XML.HXT.Parser.HtmlParser
-    , module Text.XML.HXT.Parser.XmlInput
-    , module Text.XML.HXT.Parser.XmlOutput
-    , module Text.XML.HXT.Parser.DTDProcessing
-    , module Text.XML.HXT.Parser.MainFunctions
-
-    , module Text.XML.HXT.Validator.Validation
-    )
-where
-
-import Text.XML.HXT.DOM
-
-import Text.XML.HXT.Parser.XmlParser
-import Text.XML.HXT.Parser.HtmlParser
-import Text.XML.HXT.Parser.XmlInput
-import Text.XML.HXT.Parser.XmlOutput
-import Text.XML.HXT.Parser.DTDProcessing
-import Text.XML.HXT.Parser.MainFunctions
-
-import Text.XML.HXT.Validator.Validation
-
--- ------------------------------------------------------------
-
diff --git a/src/Text/XML/HXT/Parser/DTDProcessing.hs b/src/Text/XML/HXT/Parser/DTDProcessing.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/DTDProcessing.hs
+++ /dev/null
@@ -1,932 +0,0 @@
--- ------------------------------------------------------------
-
-{- |
-   Module     : Text.XML.HXT.Parser.DTDProcessing
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
-   License    : MIT
-
-   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-   Stability  : experimental
-   Portability: portable
-   Version    : $Id: DTDProcessing.hs,v 1.15 2006/11/12 14:53:00 hxml Exp $
-
-   DTD processing function for
-   including external parts of a DTD
-   parameter entity substitution and general entity substitution
-
--}
-
--- ------------------------------------------------------------
-
-module Text.XML.HXT.Parser.DTDProcessing
-    ( getWellformedDoc
-    , checkWellformedDoc
-    , processDTD
-    , processGeneralEntities
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.Parser.XmlOutput
-    ( traceTree
-    , traceSource
-    , traceMsg
-    )
-
-import Text.XML.HXT.Parser.XmlParser
-    ( parseXmlDoc
-    , parseXmlDTDPart
-    , parseXmlAttrValue
-    , parseXmlGeneralEntityValue
-    )
-
-import Text.XML.HXT.Parser.XmlDTDParser
-    ( parseXmlDTDdecl
-    , parseXmlDTDdeclPart
-    , parseXmlDTDEntityValue
-    )
-
-import Text.XML.HXT.Parser.XmlInput
-    ( getXmlContents
-    , getXmlEntityContents
-    , runInLocalURIContext
-    , runInNewURIContext
-    , getBaseURI
-    , setBaseURI
-    , getAbsolutURI
-    , isStandaloneDocument
-    )
-
-import Text.XML.HXT.DOM.EditFilters
-    ( transfCharRef
-    , transfAllCharRef
-    )
-
-import Text.XML.HXT.DOM.XmlState
-
-import Data.Maybe
-
-import qualified Data.Map as M
-    ( Map
-    , empty
-    , lookup
-    , insert
-    -- , foldWithKey
-    )
-
--- ------------------------------------------------------------
---
--- the "main" building blocks
-
--- |
--- monadic filter for reading, parsing and checking a wellformed document.
--- the input tree must consist of a root node with a source attribute
--- in its attribute list.
---
--- All attributes from the document root are copied into the system state,
--- and may be queried by the monadic filters, e.g. trace options.
---
--- Result is the single element list containing the well-formed document tree
--- or, in case of errors, the document root with an empty list as children
--- and attributes 'a_status' and 'a_module' for error level and the module,
--- where the error occured.
---
--- this is a shortcut for 'getXmlContents' .\>\> 'checkWellformedDoc'
---
--- example for a main program:
---
--- @
--- main =
---   run\' \$
---   do
---   res  \<- getWellformedDoc \$ newDocument \"myfile.xml\"
---   ...
--- @
-
-getWellformedDoc	:: XmlStateFilter state
-getWellformedDoc
-    = setSystemParams
-      .>>
-      getXmlContents
-      .>>
-      checkWellformedDoc
-
--- |
--- parses a text node with 'parseXmlDoc', processes the DTD and general entities
--- and transforms all char references into characters
-
-checkWellformedDoc		:: XmlStateFilter state
-checkWellformedDoc
-    = parseXmlDoc
-      .>>
-      processDTD
-      .>>
-      processGeneralEntities
-      .>>
-      liftMf transfAllCharRef
-
--- ------------------------------------------------------------
---
-
-type RecList		= [String]
-
-type DTDState res	= XState PeEnv res
-
-type DTDStateFilter	= XmlTree -> DTDState XmlTrees
-
-data DTDPart		= Internal
-			| External
-			  deriving (Eq)
-
--- ------------------------------------------------------------
-
-type PeEnv		= M.Map String XmlTree
-
-emptyPeEnv	:: PeEnv
-emptyPeEnv	= M.empty
-
-lookupPeEnv	:: String -> PeEnv -> Maybe XmlTree
-lookupPeEnv	= M.lookup
-
-addPeEntry	:: String -> XmlTree -> PeEnv -> PeEnv
-addPeEntry	= M.insert
-
--- ------------------------------------------------------------
-
--- |
--- a filter for DTD processing
---
--- inclusion of external parts of DTD,
--- parameter entity substitution
--- conditional section evaluation
---
--- input tree must represent a complete document including root node
-
-processDTD		:: XmlStateFilter a
-processDTD
-    = runInLocalURIContext
-         ( processRoot
-	   .>>
-	   traceTree
-	   .>>
-	   traceSource
-	 )
-      `whenM` ( isRoot .> getChildren )
-      where
-
-      processRoot	:: XmlStateFilter a
-      processRoot t
-	  = do
-	    sequence_ . map (\ (a, ts) -> setSysParamTree a ts) . toTreel . getAttrl $ t
-	    setSysParam a_standalone ""
-	    ( traceMsg 1 ("processDTD: process parameter entities")
-	      .>>
-	      liftMf (modifyChildren addDoctype)
-	      .>>
-	      processChildrenM substParamEntities
-	      .>>
-	      checkResult "in XML DTD processing"
-	      ) `whenM` statusOk
-	      $ t
-
-      -- Adds an empty DOCTYPE node to document. Needed for documents without a DTD.
-      -- Otherwise processor can not substitute predefined entities. If an xml declaration
-      -- is present, the node is inserted after this node.
-      addDoctype :: XmlSFilter
-      addDoctype docChilds
-          = if null doctype
-            then if null xmlDecl
-                 then [mkXDTDTree DOCTYPE [] []] ++ docChilds
-                 else (head docChilds) : [mkXDTDTree DOCTYPE [] []] ++ (tail docChilds)
-            else docChilds
-            where
-            doctype = isDoctype $$ docChilds
-            xmlDecl = isPi t_xml $$ isXPi $$ docChilds
-
-
-substParamEntities	:: XmlStateFilter a
-substParamEntities
-    = processParamEntities
-      `whenM`
-      isDoctype
-      where
-
-      processParamEntities	:: XmlStateFilter a
-      processParamEntities t'
-	  = do
-	    (dtdPre, envPre) <- processPredef
-
-	    -- process internal part of DTD with initial empty env for parameter entities
-	    (dtdInt, envInt) <- processInt envPre t'
-
-	    -- process external part of DTD with resulting env from internal DTD
-	    dtdExt <- runInLocalURIContext (processExt envInt) t'
-
-	    -- merge predefined, internal and external part
-	    trace 2 "substParamEntities: merge internal and external DTD parts"
-	    return (replaceChildren (foldl1 mergeDTDs [dtdPre, dtdInt, dtdExt]) t')
-
-      processPredef
-	  = do
-	    trace 2 "substParamEntities: substitute predefined entities"
-	    chain' emptyPeEnv (substParamEntity Internal $$< predefDTDPart)
-
-      processInt env' n'
-	  = do
-	    trace 2 "substParamEntities: substitute parameter entities in internal DTD part"
-	    chain' env' (substParamEntity Internal $$< getChildren n')
-
-      processExt env' n'
-	  = do
-	    trace 2 "substParamEntities: process external part of DTD"
-            extDtd <- processExternalDTD n'
-	    trace 2 "substParamEntities: substitute parameter entities in external DTD part"
-	    chain env' ( (substParamEntity External) $$< extDtd)
-
--- ------------------------------------------------------------
--- |
--- substitute parameter entities
--- result is the input tree with the list of text nodes as children or an error message
-
-substPEref'	:: DTDPart -> PeEnv -> XmlFilter
-
-substPEref' loc env n@(NTree (XDTD PEREF al) _)
-    | isInternalRef	= xerr ("a parameter entity reference of " ++ peName' ++ " occurs in the internal subset of the DTD")
-
-    | isUndefinedRef	= xerr ("parameter entity " ++ peName' ++ " not found (forward reference?)")
-
-    | null baseUri	= [setChildren peContent n]
-
-    | otherwise		= [(NTree (XDTD PEREF ((a_url,baseUri):al)) peContent)]
-    where
-    peName		= lookup1 a_peref al
-    peName'		= show peName
-    peVal		= lookupPeEnv peName env
-    isInternalRef	= loc == Internal
-    isUndefinedRef	= isNothing peVal
-
-    (NTree (XDTD PENTITY peAl) peContent) = fromJust peVal
-    baseUri		= lookup1 a_url peAl
-
-    -- peContent		= getChildren $ fromJust peVal
-
-substPEref' _ _ n
-    = [n]
-
--- ------------------------------------------------------------
-
-{-
-dumpPE	:: DTDStateFilter
-dumpPE t
-    = do
-      env <- getState
-      ( traceMsg 2 ("dumpPE: parameter entity environment\n" ++ M.foldWithKey showPE "" env)
-	.>>
-	thisM ) t
-    where
-    showPE k v b = k ++ "\t" ++ show v ++ "\n" ++ b
--}
-
-traceDTD	:: String -> XmlStateFilter a
-traceDTD msg	= traceMsg 4 msg .>> traceTree
-
--- ------------------------------------------------------------
-
-getExternalParamEntityValue	:: DTDStateFilter
-getExternalParamEntityValue n@(NTree (XDTD PENTITY al) _cl)
-    = do
-      rl <- ( getXmlEntityContents
-	      .>>
-	      liftMf getChildren
-	    )
-	    $ newDocument' ((a_source, sysVal) : al)
-      base <- getBaseURI
-      if null rl
-	 then issueErr ("illegal external parameter entity value for entity %" ++ peName ++";") n
-	 else thisM (NTree (XDTD PENTITY ((a_url, base) : al)) rl)
-    where
-    sysVal = lookup1 k_system al
-    peName = lookup1 a_name   al
-
-getExternalParamEntityValue n
-    = error ("getExternalParamEntityValue: illegal argument: " ++ show n)
-
--- ------------------------------------------------------------
-
--- |
--- the dtd parameter entity substitution filter
-
-substParamEntity	:: DTDPart -> DTDStateFilter
-
-substParamEntity loc n@(NTree xn _cs)
-    | isDTDElemNode ENTITY xn					-- ENITITY and parameter ENTITY decl
-	= traceDTD ("ENTITY declaration before DTD declaration parsing")
-	  .>>
-	  processChildrenM (substPeRefsInDTDdecl [])
-          .>>
-	  liftF parseXmlDTDdecl
-          .>>
-	  substRefsInEntityValue
-          .>>
-	  processEntityDecl
-          .>>
-          traceDTD ("ENTITY declaration after DTD declaration parsing")
-          $ n
-
-    | isDTDElemNode PEREF xn					-- parameter entity ref in DTD
-	= substPeRefsInDTDpart [] n
-
-    | isDTDElemNode ELEMENT xn					-- ELEMENT, ATTLIST, NOTATION
-      ||
-      isDTDElemNode ATTLIST xn
-      ||
-      isDTDElemNode NOTATION xn
-	= traceDTD  "DTD declaration before PE substitution"
-	  .>>
-	  processChildrenM (substPeRefsInDTDdecl [])
-          .>>
-	  liftF parseXmlDTDdecl
-          .>>
-	  traceDTD "DTD declaration after DTD declaration parsing"
-	  $ n
-
-    | isDTDElemNode CONDSECT xn					-- conditional section
-      &&
-      loc == Internal
-	  = do
-	    issueErr "conditional sections in internal part of the DTD is not allowed" n
-            return []
-
-    | isDTDElemNode CONDSECT xn					-- conditional section
-      &&
-      loc == External
-	  = let
-	    (XDTD _ al) = xn
-	    content	= mkXTextTree (lookup1 a_value al)
-	    in
-	    traceDTD "substParamEntity: process conditional section"
-	    .>>
-	    processChildrenM (substPeRefsInCondSect [])
-            .>>
-	    liftF parseXmlDTDdecl
-	    .>>
-            evalCond content
-	    $ n
-
-    | isXCmtNode xn						-- remove comments
-	= noneM n
-
-    | otherwise							-- default: keep things unchanged (should not occur)
-	= thisM n
-    where
-
-    processEntityDecl	:: DTDStateFilter
-    processEntityDecl n'@(NTree (XDTD ENTITY al) cs)	= if isExtern
-	  then ( do
-		 url <- getAbsolutURI sysVal			-- add the absolute URI
-		 return [NTree (XDTD ENTITY ((a_url, url) : al)) cs]
-	       )
-	  else liftMf (substChildren (xmlTreesToText . getChildren)) n'
-	where
-	isExtern = hasEntry k_system al
-	sysVal   = lookup1  k_system al
-      
-    processEntityDecl n'@(NTree (XDTD PENTITY al) _)
-	= do
-	  env <- getState
-	  if (isJust . lookupPeEnv peName) $ env
-	     then
-	     issueWarn ("parameter entity " ++ show peName ++ " already defined") n
-	     else
-	     ( ifM isExternalParameterEntity
-	           ( runInLocalURIContext getExternalParamEntityValue )
-                   ( liftMf (substChildren (xmlTreesToText . getChildren)) )
-	       .>>
-	       addPE peName
-	     ) n'
-	  where
-	  peName = lookup1 a_name al
-
-    processEntityDecl n'
-	= error ("processEntityDecl called with wrong argument" ++ show n')
-
-    addPE	:: String -> DTDStateFilter
-    addPE name t
-	= do
-	  trace 2 ("substParamEntity: add entity to env: " ++ xshow [t])
-	  changeState $ addPeEntry name t
-	  return []
-
-    substPEref	:: DTDStateFilter
-    substPEref n'
-	= do
-	  env <- getState
-	  liftF (substPEref' loc env) $ n'
-
-    substPeRefsInValue	:: [String] -> DTDStateFilter
-    substPeRefsInValue recList n'@(NTree (XDTD PEREF al) _cl)
-	= ( if peName `elem` recList
-	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in entity value")
-	    else ( substPEref
-		   .>>
-		   liftF parseXmlDTDEntityValue
-		   .>>
-		   liftF transfCharRef
-		   .>>
-		   ( substPeRefsInValue (peName : recList)
-		     `whenM`
-		     isPeRef
-		   )
-		 )
-	  ) $ n'
-	where
-	peName = lookup1 a_peref al
-
-    substPeRefsInValue _ n'
-	= thisM n'
-
-    substRefsInEntityValue	:: DTDStateFilter
-    substRefsInEntityValue n'@(NTree (XDTD decl al) _cl)
-	| decl `elem` [ENTITY, PENTITY]
-	    = ( if hasEntry k_system al
-		then thisM							-- externals not yet handled ??? really
-		else processChildrenM ( liftF transfCharRef
-					.>>
-					substPeRefsInValue []
-				      )
-	      ) n'
-    substRefsInEntityValue  n'
-	= error ("substRefsInEntityValue called with wrong argument" ++ show n')
-
-    runInPeContext	:: DTDStateFilter -> DTDStateFilter
-    runInPeContext f n'@(NTree (XDTD PEREF al) _)
-	| null base
-	    = f n'
-	| otherwise
-	    = runInNewURIContext base f n'
-	where
-	base = lookup1 a_url al
-
-    runInPeContext f n'
-	= f n'
-
-    substPeRefsInDTDdecl	:: [String] -> DTDStateFilter
-    substPeRefsInDTDdecl recList n'@(NTree (XDTD PEREF al) _cl)
-	= ( if peName `elem` recList
-	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in DTD declaration")
-	    else ( substPEref
-		   .>>
-		   traceDTD "substPeRefsInDTDdecl: parseXmlDTDdeclPart"
-		   .>>
-		   ( runInPeContext
-		     ( liftF ( parseXmlDTDdeclPart )
-		       .>>
-		       traceDTD "substPeRefsInDTDdecl: after parseXmlDTDdeclPart"
-		       .>>
-		       processChildrenM ( substPeRefsInDTDdecl (peName : recList) )
-		     )
-		     `whenM`
-		     isPeRef
-		   )
-		 )
-	  ) $ n'
-	where
-	peName = lookup1 a_peref al
-
-    substPeRefsInDTDdecl _ n'
-	= thisM n'
-
-    substPeRefsInDTDpart	:: [String] -> DTDStateFilter
-    substPeRefsInDTDpart recList n'@(NTree (XDTD PEREF al) _cl)
-	= ( if peName `elem` recList
-	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in DTD part")
-	    else ( substPEref
-		   .>>
-		   traceDTD "substPeRefsInDTDpart: parseXmlDTDPart"
-		   .>>
-		   runInPeContext
-		   ( liftF (getChildren .> parseXmlDTDPart ("parameter entity " ++ show peName))
-		     .>>
-		     traceDTD "substPeRefsInDTDdecl: after parseXmlDTDPart"
-		     .>>
-		     substParamEntity loc -- cyclic check not yet done (peName : recList)
-		   )
-		 )
-	  ) $ n'
-	where
-	peName = lookup1 a_peref al
-
-    substPeRefsInDTDpart _ n'
-	= thisM n'
-
-    substPeRefsInCondSect	:: [String] -> DTDStateFilter
-    substPeRefsInCondSect recList n'@(NTree (XDTD PEREF al) _cl)
-	= ( if peName `elem` recList
-	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in conditional section")
-	    else ( substPEref
-		   .>>
-		   traceDTD "substPeRefsInCondSect: parseXmlDTDdeclPart"
-		   .>>
-		   ( runInPeContext
-		     ( liftF ( parseXmlDTDdeclPart )
-		       .>>
-		       traceDTD "substPeRefsInCondSect: after parseXmlDTDdeclPart"
-		       .>>
-		       processChildrenM ( substPeRefsInCondSect (peName : recList) )
-		     )
-		     `whenM`
-		     isPeRef
-		   )
-		 )
-	  ) $ n'
-	where
-	peName = lookup1 a_peref al
-
-    substPeRefsInCondSect _ n'
-	= thisM n'
-
-
-evalCond :: XmlTree -> DTDStateFilter
-evalCond content (NTree n _)
-    | c == k_include
-	= liftF (parseXmlDTDPart "conditional section")
-	  .>>
-	  traceDTD "evalCond: DTD part"
-	  .>>
-	  substParamEntity External
-          $ content 
-    | otherwise
-	= return []
-    where
-    c = textOfXNode n
-
--- ------------------------------------------------------------
-
-processExternalDTD	:: XmlStateFilter a
-processExternalDTD n@(NTree (XDTD DOCTYPE al) _dtd)
-    | null sysVal
-	= return []
-    | otherwise
-	= do
-	  checkStandalone
-	  dtdContent <- ( getXmlEntityContents
-			  .>>
-			  traceMsg 2 ("processExternalDTD: parsing DTD part for " ++ show sysVal)
-			  .>>
-			  liftMf getChildren
-			  .>>
-			  liftF (parseXmlDTDPart sysVal)
-			)
-		       $ newDocument sysVal
-	  trace 2 "processExternalDTD: parsing DTD part done"
-	  traceTree $ mkRootTree [] dtdContent
-	  return dtdContent
-    where
-    sysVal		= lookup1 k_system al
-    checkStandalone	= do
-			  _isAlone <- isStandaloneDocument
-			  if False -- isAlone
-			     then issueErr ("external DTD " ++ show sysVal ++ " specified for standalone document") n
-			     else return []
-
-processExternalDTD  _
-    = return []
-
--- ------------------------------------------------------------
--- |
--- merge the external and the internal part of a DTD into one internal part.
--- parameter entity substitution should be made before applying this filter
--- internal definitions shadow external ones
---
---
--- preliminary: no real merge is done
-
-mergeDTDs	:: XmlTrees -> XmlTrees -> XmlTrees
-mergeDTDs dtdInt dtdExt
-    = dtdInt ++ (mergeDTDentry dtdInt $$ dtdExt)
-
-mergeDTDentry	:: XmlTrees -> XmlFilter
-mergeDTDentry dtdPart
-    = none `when` found
-      where
-      filterList = map filterDTDNode dtdPart	-- construct the list of filters
-      found      = cat filterList		-- concatenate the filters (set union)
-
-
-filterDTDNode	:: XmlTree -> XmlFilter
-
-filterDTDNode (NTree (XDTD dtdElem al) _)
-    | dtdElem `elem` [ELEMENT, NOTATION, ENTITY]
-	= filterElement
-	  where
-	  filterElement n@(NTree (XDTD dtdElem' al') _cl')
-	      | dtdElem == dtdElem' &&
-		lookup a_name al' == lookup a_name al
-		  = [n]
-	      | otherwise
-		  = []
-	  filterElement _
-	      = []
-
-filterDTDNode (NTree (XDTD ATTLIST al) _)
-    = filterAttlist
-      where
-      filterAttlist n@(NTree (XDTD ATTLIST al') _cl')
-	  | lookup a_name  al' == lookup a_name  al &&
-	    lookup a_value al' == lookup a_value al
-		= [n]
-      filterAttlist _
-	  = []
-
-filterDTDNode _
-    =  none
-
--- ------------------------------------------------------------
-
-predefinedEntities	:: String
-predefinedEntities
-    = concat [ "<!ENTITY lt   '&#38;#60;'>"
-	     , "<!ENTITY gt   '&#62;'>"
-	     , "<!ENTITY amp  '&#38;#38;'>"
-	     , "<!ENTITY apos '&#39;'>"
-	     , "<!ENTITY quot '&#34;'>"
-	     ]
-
-predefDTDPart		:: XmlTrees
-predefDTDPart
-    = parseXmlDTDPart "predefined entities" $ mkXTextTree predefinedEntities
-
--- ------------------------------------------------------------
---
--- 4.4 XML Processor Treatment of General Entities and References
-
-data GeContext
-    = ReferenceInContent
-    | ReferenceInAttributeValue
-    | ReferenceInEntityValue
-    -- or OccursInAttributeValue				-- not used during substitution but during validation
-    -- or ReferenceInDTD					-- not used: syntax check detects errors
-
-type GeFct		= GeContext -> RecList -> GeStateFilter
-
-type GeState res	= XState GeEnv res
-
-type GeStateFilter	= XmlTree -> GeState XmlTrees
-
--- ------------------------------------------------------------
-
-newtype GeEnv	= GeEnv (M.Map String GeFct)
-
-emptyGeEnv	:: GeEnv
-emptyGeEnv	= GeEnv M.empty
-
-lookupGeEnv		:: String -> GeEnv -> Maybe GeFct
-lookupGeEnv k (GeEnv env)
-    = M.lookup k env
-
-addGeEntry	:: String -> GeFct -> GeEnv -> GeEnv
-addGeEntry k a (GeEnv env)
-    = GeEnv $ M.insert k a env
-
--- ------------------------------------------------------------
-
--- |
--- substitution of general entities
---
--- input: a complete document tree including root node
-
-processGeneralEntities	:: XmlStateFilter a
-processGeneralEntities
-    = ( traceMsg 1 "processGeneralEntities: collect and substitute general entities"
-	.>>
-	processEntities
-	.>>
-	checkResult "in general entity processing"
-	.>>
-	traceTree
-	.>>
-	traceSource
-      )
-      `whenM` statusOk
-      where
-      processEntities t'
-	  = do
-	    res <- chain initialEnv (processGeneralEntity ReferenceInContent [] $$< getChildren t')
-	    return $ replaceChildren res t'
-	    where
-	    initialEnv = emptyGeEnv
-
--- ------------------------------------------------------------
-
-processGeneralEntity	:: GeContext -> RecList -> GeStateFilter
-processGeneralEntity cx rl n@(NTree (XDTD DOCTYPE _) dtdPart)
-    = do
-      res <- processGeneralEntity cx rl $$< dtdPart
-      return $ replaceChildren res n
-
-processGeneralEntity cx rl n@(NTree (XDTD ENTITY al) cl)
-    | isIntern
-	= do
-	  trace 2 ("processGeneralEnity: general entity definition for " ++ show name)
-	  value <- liftF (parseXmlGeneralEntityValue ("general internal entity " ++ show name)) $ mkXTextTree (xshow cl)
-	  res   <- processGeneralEntity ReferenceInEntityValue (name:rl) $$< value
-	  insertEntity name (substInternal res)
-    | isExtern
-	= do
-	  baseUri <- getBaseURI
-	  insertEntity name (substExternalParsed1Time baseUri)
-
-    | isUnparsed
-	= do
-	  trace 2 ("processGeneralEnity: unparsed entity definition for " ++ show name)
-	  insertEntity name (substUnparsed [])
-    where
-    isUnparsed	= not isIntern && not isExtern
-    isExtern	= not isIntern && not (hasEntry k_ndata al)
-    isIntern	= not (hasEntry k_system al)
-
-    name	= lookup1 a_name   al
-    -- sysVal	= lookup1 k_system al
-    url		= lookup1 a_url    al		-- a_url contains absolut url for k_system
-    context	= addEntry a_source url al
-
-    processExternalEntityContents	:: XmlTrees -> GeState XmlTrees
-    processExternalEntityContents cl'
-	| null cl'						-- reading content did not succeed
-	    = return []
-	| null txt'						-- something weird in entity content
-	    = do
-	      issueErr ("illegal external parsed entity value for entity " ++ show name) n
-	      return []
-	| otherwise						-- o.k.: parse the contents
-	    = do
-	      res' <- liftF (parseXmlGeneralEntityValue ("external parsed entity " ++ show name)) $$< txt'
-	      ( traceSource
-		.>>
-		traceTree ) $ mkRootTree (fromAttrl context) res'
-	      return res'
-	where
-	txt' = (getChildren .> isXText) $$ cl'
-
-    insertEntity	:: String -> GeFct -> GeState XmlTrees
-    insertEntity name' fct'
-	= do
-	  geEnv' <- getState
-	  case lookupGeEnv name' geEnv' of
-	    Just _fct
-		-> do
-		   issueWarn ("entity " ++ show name ++ " already defined, repeated definition ignored") n
-		   return []
-            Nothing
-		-> do
-		   changeState $ addGeEntry name' fct' 
-		   return $ this n
-
-    -- --------
-    --
-    -- 4.4 XML Processor Treatment of Entities and References
-
-    substInternal	:: XmlTrees -> GeContext -> RecList -> GeStateFilter
-    substInternal nl ReferenceInContent rl' _n'
-	= included nl rl'
-
-    substInternal nl ReferenceInAttributeValue rl' _n'
-	= includedInLiteral nl rl'
-
-    substInternal _nl ReferenceInEntityValue _rl n'
-	= bypassed n'
-
-    -- --------
-
-    substExternalParsed1Time	:: String -> GeContext -> RecList -> GeStateFilter
-    substExternalParsed1Time baseUri' cx' rl' n'
-	= do
-	  trace 2 ("substExternalParsed1Time: read and parse external parsed entity " ++ show name)
-	  res  <- runInLocalURIContext getContents' $ newDocument' context
-	  changeState $ addGeEntry name (substExternalParsed res)
-	  substExternalParsed res cx' rl' n' 
-	  where
-	  getContents'	:: GeStateFilter
-	  getContents' t''
-	      = do
-		setBaseURI baseUri'
-		rs' <- getXmlEntityContents t''
-		processExternalEntityContents rs'
-
-
-    substExternalParsed	:: XmlTrees -> GeContext -> RecList -> GeStateFilter
-    substExternalParsed  nl ReferenceInContent rl' _n'
-	= includedIfValidating nl rl'
-
-    substExternalParsed _nl ReferenceInAttributeValue _rl _n'
-	= forbidden "external parsed general" "in attribute value"
-
-    substExternalParsed _nl ReferenceInEntityValue _rl n'
-	= bypassed n'
-
-    -- --------
-
-    substUnparsed	:: XmlTrees -> GeContext -> RecList -> GeStateFilter
-    substUnparsed _nl ReferenceInContent _rl _n'
-	= forbidden "unparsed" "content"
-    substUnparsed _nl ReferenceInAttributeValue _rl _n'
-	= forbidden "unparsed" "attribute value"
-    substUnparsed _nl ReferenceInEntityValue _rl _n'
-	= forbidden "unparsed" "entity value"
-
-    -- --------
-							-- see XML 1.0 chapter:
-
-    included nl	rl'					-- 4.4.2
-	= processGeneralEntity cx (name:rl') $$< nl
-
-    includedIfValidating				-- 4.4.3
-	= included
-
-    includedInLiteral					-- 4.4.5
-	= included
-
-    bypassed n'						-- 4.4.7
-	= return $ this n'
-
-    forbidden msg' cx'					-- 4.4.4
-	= do
-	  issueErr ("reference of " ++ msg' ++ show name ++ " forbidden in " ++ cx') n
-          return []
-
-							-- normalize default value in ATTLIST
-processGeneralEntity _cx rl n@(NTree (XDTD ATTLIST al) _cl)
-    | hasDefaultValue
-	= do
-	  res <- ( liftF (parseXmlAttrValue "default value of attribute ")
-                   .>>
-		   substGeneralEntityInAValue rl
-		 ) $ mkXTextTree defaultValue
-	  return $ addDTDAttr a_default (xshow res) n
-    | otherwise
-	= return $ this n
-    where
-    hasDefaultValue = hasEntry  a_default al
-    defaultValue    = lookup1   a_default al
-
-processGeneralEntity cx rl n@(NTree (XEntityRef name) _)
-    = do
-      trace 2 ("processGeneralEnity: entity reference for entity " ++ show name)
-      trace 3 ("recursion list = " ++ show rl)
-      geEnv <- getState
-      case lookupGeEnv name geEnv of
-        Just fct
-	  -> if name `elem` rl
-	     then do
-		  issueErr ("recursive substitution of general entity reference " ++ show ref ++ " not processed") n
-		  return nl
-	     else do
-		  fct cx rl n
-        Nothing
-	  -> do
-	     issueErr ("general entity reference " ++ show ref ++ " not processed, no definition found, (forward reference?)") n
-	     return nl
-      where
-      nl  = this n
-      ref = xshow nl
-
-
-processGeneralEntity cx rl n@(NTree (XTag _tagName al) cl)
-    = do
-      al' <- substGeneralEntityInAttr rl $$< al
-      cl' <- processGeneralEntity cx rl  $$< cl
-      return $ (replaceAttrl al' .> replaceChildren cl') n
-
-processGeneralEntity _cx _rl n
-    = return $ this n
-
--- ------------------------------------------------------------
-
-substGeneralEntityInAttr	:: RecList -> XmlTree -> GeState XmlTrees
-substGeneralEntityInAttr rl a@(NTree (XAttr _) aValue)
-    = do
-      nv <- substGeneralEntityInAValue rl $$< aValue
-      return (replaceChildren nv a)
-
-substGeneralEntityInAttr _ _
-    = return []
-
-substGeneralEntityInAValue	:: RecList -> GeStateFilter
-substGeneralEntityInAValue rl
-    = ( processGeneralEntity ReferenceInAttributeValue rl
-	`whenM`
-	isXEntityRef
-      )
-      .>>
-      liftMf ( ( modifyText normalizeWhiteSpace `when` isXText)
-	      .>
-	      (transfCharRef `when` isXCharRef)
-	    )
-      where
-      normalizeWhiteSpace
-	  = map ( \c -> if c `elem` "\n\t\r" then ' ' else c )
-
--- ------------------------------------------------------------
-
-
diff --git a/src/Text/XML/HXT/Parser/DefaultURI.hs b/src/Text/XML/HXT/Parser/DefaultURI.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/DefaultURI.hs
+++ /dev/null
@@ -1,49 +0,0 @@
--- ------------------------------------------------------------
---
--- defaut uri computation
--- this routine is platform dependent
--- and must be exchanged when porting the toolbox e.g. to windows
---
--- Version : $Id: DefaultURI.hs,v 1.4 2006/03/02 10:13:57 hxml Exp $
-
-module Text.XML.HXT.Parser.DefaultURI
-    ( setDefaultURI
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.XmlState
-
-import System.Directory
-    ( getCurrentDirectory
-    )
-
-import Network.URI
-    ( escapeURIChar
-    , isUnescapedInURI
-    )
-
-setDefaultURI   :: XState state ()
-setDefaultURI
-     = do
-       wd <- io getCurrentDirectory
-       setSysParam transferDefaultURI ("file://" ++ normalize wd ++ "/")
-
-       where
-
-       -- under Windows getCurrentDirectory returns something like: "c:\path\to\file"
-       -- backslaches are not allowed in URIs and paths must start with a /
-       -- so this is transformed into "/c:/path/to/file"
-
-       normalize wd'@(d : ':' : _)
-	   | d `elem` ['A'..'Z'] || d `elem` ['a'..'z']
-	       = '/' : concatMap win32ToUriChar wd'
-       normalize wd'
-	   = concatMap escapeNonUriChar wd'
-				 
-       win32ToUriChar '\\' = "/"
-       win32ToUriChar c    = escapeNonUriChar c
-
-       escapeNonUriChar c  = escapeURIChar isUnescapedInURI c   -- from Network.URI
diff --git a/src/Text/XML/HXT/Parser/HtmlParsec.hs b/src/Text/XML/HXT/Parser/HtmlParsec.hs
--- a/src/Text/XML/HXT/Parser/HtmlParsec.hs
+++ b/src/Text/XML/HXT/Parser/HtmlParsec.hs
@@ -22,8 +22,7 @@
 -- ------------------------------------------------------------
 
 module Text.XML.HXT.Parser.HtmlParsec
-    ( substHtmlEntities
-    , parseHtmlText
+    ( parseHtmlText
     , parseHtmlDocument
     , parseHtmlContent
     , isEmptyHtmlTag
@@ -34,8 +33,17 @@
 
 where
 
-import Text.XML.HXT.DOM.XmlTree
+import Text.XML.HXT.DOM.Interface
 
+import Text.XML.HXT.DOM.XmlNode
+    ( mkText
+    , mkError
+    , mkCmt
+    , mkElement
+    , mkAttr
+    , mkDTDElem
+    )
+
 import Text.ParserCombinators.Parsec
     ( Parser
     , SourcePos
@@ -83,10 +91,6 @@
     ( xmlChar
     )
 
-import Text.XML.HXT.Parser.XhtmlEntities
-    ( xhtmlEntities
-    )
-
 import Data.Maybe
     ( fromMaybe
     )
@@ -98,7 +102,7 @@
 
 -- ------------------------------------------------------------
 
-parseHtmlText	:: String -> XmlFilter
+parseHtmlText	:: String -> XmlTree -> XmlTrees
 parseHtmlText loc t
     = parseXmlText htmlDocument loc $ t
 
@@ -106,7 +110,7 @@
 
 parseHtmlFromString	:: Parser XmlTrees -> String -> String -> XmlTrees
 parseHtmlFromString parser loc
-    = either (xerr . (++ "\n") . show) id . parse parser loc
+    = either ((:[]) . mkError c_err . (++ "\n") . show) id . parse parser loc
 
 parseHtmlDocument	:: String -> String -> XmlTrees
 parseHtmlDocument	= parseHtmlFromString htmlDocument
@@ -133,7 +137,7 @@
 	       ( do
 		 pos <- getPosition
 		 try (string "<?")
-		 return $ xwarn (show pos ++ " wrong XML declaration")
+		 return $ [mkError c_warn (show pos ++ " wrong XML declaration")]
 	       )
 	     )
       misc1   <- many misc
@@ -143,7 +147,7 @@
 		   ( do
 		     pos <- getPosition
 		     try (upperCaseString "<!DOCTYPE")
-		     return $ xwarn (show pos ++ " HTML DOCTYPE declaration ignored")
+		     return $ [mkError c_warn (show pos ++ " HTML DOCTYPE declaration ignored")]
 		   )
 		 )
       return (xml ++ misc1 ++ dtdPart)
@@ -159,7 +163,7 @@
 		  option [] externalID
 		)
 	skipS0
-	return [mkXDTDTree DOCTYPE ((a_name, n) : exId) []]
+	return [mkDTDElem DOCTYPE ((a_name, n) : exId) []]
       )
 
 externalID	:: Parser Attributes
@@ -212,7 +216,7 @@
 	c   <- xmlChar
 	return ( addHtmlWarn (show pos ++ " markup char " ++ show c ++ " not allowed in this context")
 		 .
-		 addHtmlElems (xtext [c])
+		 addHtmlElems [mkText [c]]
 		 $
 		 context
 	       )
@@ -301,7 +305,7 @@
 	    n <- lowerCaseName
 	    v <- hAttrValue
 	    skipS0
-	    return $ mkXAttrTree n v
+	    return $ mkAttr (mkName n) v
 
 hAttrValue	:: Parser XmlTrees
 hAttrValue
@@ -320,7 +324,7 @@
       <|>
       ( do			-- HTML allows unquoted attribute values
 	cs <- many (noneOf " \r\t\n>\"\'")
-	return [mkXTextTree cs]
+	return [mkText cs]
       )
 
 hAttrValue''	:: String -> Parser XmlTrees
@@ -333,7 +337,7 @@
       <|>
       ( do
 	char '&'
-	return (mkXTextTree "&")
+	return (mkText "&")
       )
 
 hContent	:: Context -> Parser Context
@@ -351,7 +355,7 @@
 hComment
     = do
       c <- between (try $ string "<!--") (string "-->") (allBut many "-->")
-      return (mkXCmtTree c)
+      return (mkCmt c)
 
 checkSymbol	:: Parser a -> String -> Context -> Parser Context
 checkSymbol p msg context
@@ -377,11 +381,11 @@
 
 addHtmlTag	:: String -> XmlTrees -> XmlTrees -> Context -> Context
 addHtmlTag tn al body (body1, openTags)
-    = (xtag tn al (reverse body) ++ body1, openTags)
+    = ([mkElement (mkName tn) al (reverse body)] ++ body1, openTags)
 
 addHtmlWarn	:: String -> Context -> Context
 addHtmlWarn msg
-    = addHtmlElems (xwarn msg)
+    = addHtmlElems [mkError c_warn msg]
 
 addHtmlElems	:: XmlTrees -> Context -> Context
 addHtmlElems elems (body, openTags)
@@ -529,28 +533,5 @@
 				,"p"			-- not "div"
 				]			= True
 _	`closes` _					= False
-
--- ------------------------------------------------------------
---
--- XHTML entities
-
-substHtmlEntities	:: XmlFilter
-substHtmlEntities
-    = choice [ isXEntityRef	:-> substEntity
-	     , isXTag		:-> processAttr (processChildren substHtmlEntities)
-	     , this		:-> this
-	     ]
-      where
-      substEntity t'@(NTree (XEntityRef en) _)
-	  = case (lookup en xhtmlEntities) of
-	    Just i
-		-> [mkXCharRefTree i]
-	    Nothing
-		-> xwarn ("no XHTML entity found for reference: \"&" ++ en ++ ";\"")
-		   ++
-		   (xmlTreesToText [t'])
-
-      substEntity _
-	  = error "substHtmlEntities: illegal argument"
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/HtmlParser.hs b/src/Text/XML/HXT/Parser/HtmlParser.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/HtmlParser.hs
+++ /dev/null
@@ -1,142 +0,0 @@
--- ------------------------------------------------------------
-
-{- |
-   Module     : Text.XML.HXT.Parser.HtmlParser
-   Copyright  : Copyright (C) 2005 Uwe Schmidt
-   License    : MIT
-
-   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-   Stability  : stable
-   Portability: portable
-
-   This parser tries to interprete everything as HTML
-   no errors are emitted during parsing. If something looks
-   weired, warning messages are inserted in the document tree.
-  
-   Module contains state filter for easy parsing and error handling
-   real work is done in 'Text.XML.HXT.Parser.HtmlParsec'
-
--}
-
--- ------------------------------------------------------------
-
-module Text.XML.HXT.Parser.HtmlParser
-    ( getHtmlDoc
-    , parseHtmlDoc
-    , runHtmlParser
-    , module Text.XML.HXT.Parser.HtmlParsec
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.XmlState
-import Text.XML.HXT.Parser.HtmlParsec
-
-import Text.XML.HXT.Parser.XmlInput
-    ( getXmlContents
-    )
-
-import Text.XML.HXT.Parser.XmlOutput
-    ( traceTree
-    , traceSource
-    , traceMsg
-    )
-
--- ------------------------------------------------------------
-
--- |
--- read a document and parse it with 'parseHtmlDoc'. The main entry point of this module
---
--- The input tree must be a root tree like in '	Text.XML.HXT.Parser.MainFunctions.getXmlDoc'. The content is read with 'Text.XML.HXT.Parser.XmlInput.getXmlContents',
--- is parsed with 'parseHtmlDoc' and canonicalized (char refs are substituted in content and attributes,
--- but comment is preserved)
---
--- see also : 'Text.XML.HXT.Parser.DTDProcessing.getWellformedDoc'
-
-getHtmlDoc	:: XmlStateFilter state
-getHtmlDoc
-    = setSystemParams
-      .>>
-      getXmlContents
-      .>>
-      parseHtmlDoc
-
--- | The HTML parsing filter
---
--- The input is parsed with 'runHtmlParser', everything is interpreted as HTML,
--- if errors ocuur, the parser will try to do some meaningfull action and continues
--- parsing. Afterwards the entitiy references for defined for XHTML are resovled,
--- any unresolved reference is transformed into plain text.
---
--- Error messages
--- during parsing and entity resolving are added as warning nodes into the resulting tree.
---
--- The warnings are issued, if the 1. parameter noWarnings is set to True,
--- afterwards all are removed from the resulting tree.
-
-parseHtmlDoc	:: XmlStateFilter a
-parseHtmlDoc
-    = parseDoc
-      `whenM` ( isRoot .> getChildren .> isXText )
-      where
-      parseDoc t'
-	  = ( traceMsg 2 ("parseHtmlDoc: parse HTML document " ++ show loc)
-	      .>>
-	      runHtmlParser
-	      .>>
-	      liftMf (processTopDown substHtmlEntities)
-	      .>>
-	      removeWarnings
-	      .>>
-	      traceTree
-	      .>>
-	      traceSource
-              ) $ t'
-	  where
-	  loc    = valueOf a_source t'			-- get document source uri
-
-      removeWarnings	:: XmlStateFilter a
-      removeWarnings t'
-	  = let
-	    noWarnings  = not (satisfies (hasOption a_issue_warnings) t')
-	    selWarnings = deep
-			  ( choice [ isWarning :-> this
-				   , isXTag    :-> (getAttrl .> selWarnings)
-				   ]
-			  )
-	    remWarnings = processTopDown
-			  ( choice [ isWarning :-> none
-				   , isXTag    :-> (processAttrl (remWarnings $$))
-				   , this      :-> this
-				   ]
-			  )
-	    warnings = selWarnings t'
-	    in do 
-	       if null warnings
-		  then thisM t'
-		  else do
-		       if noWarnings
-			  then return []
-			  else do
-			       issueError $$< warnings
-		       return (remWarnings t')
-
--- | The pure HTML parser, usually called via 'parseHtmlDoc'.
---
-
-runHtmlParser	:: XmlStateFilter a
-runHtmlParser t
-    = if null errs
-      then do
-	   return (replaceChildren res t)
-      else do
-	   issueError $$< errs
-	   return (setStatus c_err "parsing HTML" t)
-      where
-      res  = getChildren .> parseHtmlText loc $ t
-      errs = isXError .> neg isWarning $$ res
-      loc  = valueOf a_source t
-
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/MainFunctions.hs b/src/Text/XML/HXT/Parser/MainFunctions.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/MainFunctions.hs
+++ /dev/null
@@ -1,458 +0,0 @@
--- |
--- Simple parse functions.
---
--- Version : $Id: MainFunctions.hs,v 1.2 2004/11/20 16:53:15 hxml Exp $
---
---
--- the main building blocks for an application.
--- this module exports complex filters and functions for
--- common tasks for input and parsing, output and option handling.
---
-
-module Text.XML.HXT.Parser.MainFunctions
-    ( getXmlDocument
-    , putXmlDocument
-
-    , parseDocument
-    , writeDocument
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.XmlState
-import Text.XML.HXT.Parser.HtmlParser
-import Text.XML.HXT.Parser.XmlInput
-import Text.XML.HXT.Parser.XmlOutput
-import Text.XML.HXT.Parser.DTDProcessing
-import Text.XML.HXT.Validator.Validation
-import Text.XML.HXT.DOM.EditFilters
-import Text.XML.HXT.DOM.Namespace
-
-import System.IO
-
--- ------------------------------------------------------------
-
--- |
--- convenient function for reading a XML document without
--- dealing with state monads, error messages collection and other details
---
--- getXmlDocument calls 'parseDocument' with the list of parsing options
--- and an url or filename as document source.
---
--- result is a triple
---
--- * the resulting document tree with a root node containing all
---   meta info about the document (options, status info, http header, ...)
---
--- - the list of errors and warnings
---
--- - the error level: one of 'c_ok', 'c_warn', 'c_err', 'c_fatal'
---
--- example for input (see also example in 'putXmlDocument' and example in 'writeDocument')
---
--- > main :: IO ()
--- > main
--- >   = do
--- >     (res, errs, rc) <- getXmlDocument [] "test.xml"
--- >     if rc >= c_err
--- >       then issueErrors errs
--- >       else processTree res
--- >
--- > issueErrors :: XmlTrees -> IO ()
--- >
--- > processTree :: XmlTree  -> IO ()
---
--- for options see 'parseDocument', 'a_collect_errors' is set implicitly
-
-getXmlDocument	:: Attributes -> String -> IO (XmlTree, XmlTrees, Int)
-getXmlDocument options url
-    = do
-      let options' = [ (a_collect_errors, v_1)		-- collect errors
-		     , (a_issue_errors,   v_0)		-- but don't issue
-		     ]					-- can be overwritten by supporting other values in options
-	             ++
-		     options
-		     ++
-		     [ (a_source, url)			-- set the source url
-		     ]
-      res <- run' $ parseDocument options' emptyRoot
-      let root = head res
-      let errs = tail res
-      let elvl = intValueOf a_status root
-      return (root, errs, elvl)
-
-
--- |
--- the inverse operation to 'getXmlDocument'
---
--- writes a complete document tree to a file, writing can be
--- controlled by options, the real work is done with filter 'writeDocument'.
--- useful options are the options of 'writeDocument'.
---
--- result is a pair: 1.part is a list of error messages, 2. part is the return code,
--- the status info of the write filter
---
--- this filter is useful, when processing XML in an arbitray context in the IO monad
---
--- an example main program for such an application is:
---
--- > main :: IO ()
--- > main
--- >   = do
--- >     (input, readErrs, rc) <- getXmlDocument [...] "test.xml"
--- >     if rc >= c_err
--- >       then issueErrors readErrs
--- >       else processTree input
--- >
--- > processTree :: XmlTree -> IO ()
--- > processTree t
--- >   = let res = computeNewTree input
--- >     in do
--- >        (writeErrs, rc2) <- putXmlDocument [...] "out.xml" res
--- >        if rc2 >= c_err
--- >          then issueErrors writeErrs
--- >          else return ()
--- >
--- > issueErrors :: XmlTrees -> IO ()
--- >
--- > computeNewTree :: XmlTree -> XmlTree
-
-
-putXmlDocument	:: Attributes -> String -> XmlTree -> IO (XmlTrees, Int)
-putXmlDocument options fileName t
-    = do
-      let options' = [ (a_collect_errors, v_1)		-- collect errors
-		     , (a_issue_errors,   v_0)		-- but don't issue
-		     ]					-- can be overwritten by supporting other values in options
-	             ++
-		     options
-		     ++
-		     [ (a_output_file, fileName)	-- set the source url
-		     ]
-      res <- run' $ writeDocument options' t
-      let root = head res
-      let errs = tail res
-      let elvl = intValueOf a_status root
-      return (errs, elvl)
-
--- ------------------------------------------------------------
-
--- |
--- the main parsing filter
---
--- this filter can be configured by an option list, a list of
--- option name, option value pairs.
--- the input tree must be a possibly empty document root tree.
--- all the options are stored as attributes in this root node to control processing.
---
--- available options:
---
--- * 'a_parse_html': use HTML parser, else use XML parser (default)
---
--- - 'a_validate' : validate document (default), else skip validation
---
--- - 'a_check_namespaces' : check namespaces, else skip namespace processing (default)
---
--- - 'a_canonicalize' : canonicalize document (default), else skip canonicalization
---
--- - 'a_preserve_comment' : preserve comments during canonicalization, else remove comments (default)
---
--- - 'a_remove_whitespace' : remove all whitespace, used for document indentation, else skip this step (default)
---
--- - 'a_indent' : indent document by inserting whitespace, else skip this step (default)
---
--- - 'a_issue_warnings' : issue warnings, when parsing HTML (default), else ignore HTML parser warnings
---
--- - 'a_issue_errors' : issue all error messages on stderr (default), or ignore all error messages
---
--- - 'a_collect_errors' : all error messages are collected during processing and appended to the result document
--- 			  for further processing within the calling modules
---
--- - 'a_trace' : trace level: values: 0 -4
---
--- - 'a_proxy' : proxy for http access, e.g. www-cache:3128
---
--- - 'a_use_curl' : for http access via external programm curl, default is native HTTP access
---
--- - 'a_options_curl' : more options for external program curl
---
--- - 'a_source' : the document source url
---
--- - 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', ...)
---
--- examples:
---
--- > parseDocument [ (a_source,   "test.xml")
--- >               , (a_validate, "0")
--- >               , (a_encoding, isoLatin1)
--- >               ] emptyRoot
---
--- reads document \"test.xml\" without validation and default encoding 'isoLatin1'
---
--- > parseDocument [ (a_source,         "http://www.haskell.org/")
--- >               , (a_parse_html,     "1")
--- >               , (a_proxy,          "www-cache:3128")
--- >               , (a_curl,           "1")
--- >               , (a_issue_warnings, "0")
--- >               ] emptyRoot
---
--- reads Haskell homepage with HTML parser ignoring any warnings and with http access via external program curl and proxy \"www-cache\" at port 3128
---
--- > parseDocument [ (a_source,            "http://www.w3c.org/")
--- >               , (a_parse_html,        "0")                       -- default
--- >               , (a_validate,          "1")                       -- default
--- >               , (a_check_namespace,   "1")
--- >               , (a_remove_whitespace, "1")
--- >               , (a_trace,             "2")
--- >               ] emptyRoot
---
--- read w3c home page, validate and chech namespaces, remove whitespace between tags, trace activities with level 2
---
--- > parseDocument [ (a_source,   "test.xml")
--- >               , (a_validate,        "1")
--- >               , (a_check_namespace, "1")
--- >               , (a_collect_errors,  "1")
--- >               , (a_issue_errors,    "0")
--- >               ] emptyRoot
---
--- reads file \"test.xml\", validates it, checks namespaces, does not issue any erros
--- but collects errors and appends the list of errors to the single element list for the document.
--- this enables the calling application to define own error handlers.
-
-parseDocument	:: Attributes -> XmlStateFilter state
-parseDocument userOptions
-    = processDocument userOptions defaultOptions
-      ( traceMsg 1 "parseDocument: options added, start processing"
-	.>>
-	traceTree
-	.>>
-	getXmlContents					-- get the content as text
-	.>>
-	choiceM						-- select parser
-	[ hasOption a_parse_html
-		:-> parseHtmlDoc			-- parse everything as HTML
-	, this
-		:-> checkWellformedDoc			-- parse XML and process entities
-	            .>>
-                    ( getValidatedDoc			-- validate
-		      `whenM`
-		      hasOption a_validate
-		    )
-	]
-	.>>
-	( propagateAndValidateNamespaces			-- namespace processing
-	  `whenM`
-	  hasOption a_check_namespaces
-	)
-	.>>
-	liftMf						-- canonicalization
-	( choice
-	  [ hasOption a_preserve_comment		-- don't remove comments (in XPath required)
- 	  	:-> canonicalizeForXPath
-	  , this
-		:-> canonicalizeAllNodes		-- do normal canonicaliazion
-	  ]
-	  `when`
-	  hasOption a_canonicalize			-- caconicalization can be switched off
-	)
-	.>>
-	liftMf
-	( removeDocWhiteSpace				-- remove all whitespace between tags
-	  `when`
-	  hasOption a_remove_whitespace
-	)
-	.>>
-	traceMsg 1 "parseDocument: document processed"	-- trace output
-	.>>
-	traceSource
-	.>>
-	traceTree
-      )
-    where
-    defaultOptions
-	= [ ( a_parse_html,		v_0 )
-	  , ( a_validate,		v_1 )
-	  , ( a_issue_errors,		v_1 )
-	  , ( a_issue_warnings,		v_1 )
-	  , ( a_check_namespaces,	v_0 )
-	  , ( a_canonicalize,		v_1 )
-	  , ( a_preserve_comment,	v_0 )
-	  , ( a_remove_whitespace,	v_0 )
-	  ]
-
--- ------------------------------------------------------------
-
-addOptions		:: Attributes -> XmlFilter
-addOptions
-    = seqF . map (\ (n,v) -> addAttr n v )
-
-addDefaultOptions	:: Attributes -> XmlFilter
-addDefaultOptions
-    = seqF . map (\ (n,v) -> addAttr n v `whenNot` hasAttr n)
-
--- ------------------------------------------------------------
-
--- |
--- the main filter for writing documents
---
--- this filter can be configured by an option list like 'getXmlDocument'
---
--- available options are
---
--- * 'a_indent' : indent document for readability, (default: no indentation)
---
--- - 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)
---
--- - 'a_output_file' : destination file for document, default is \"-\" for stdout
---
--- - 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'
---
--- - 'a_output_xml' : (default) issue XML: quote special XML chars \>,\<,\",\',&
---                    add XML processing instruction
---                    and encode document with respect to 'a_output_encoding',
---                    if explizitly switched of, the plain text is issued, this is useful
---                    for non XML output, e.g. generated Haskell code, LaTex, Java, ...
---
--- - 'a_show_tree' : show tree representation of document (for debugging)
---
--- - 'a_show_haskell' : show Haskell representaion of document (for debugging)
---
--- - 'a_issue_errors', 'a_collect_errors' : see 'parseDocument'
---
---  a typical main program running in the XmlState monad
---  has the following structure:
---
--- >
--- > main :: IO ()
--- > main
--- >     = do
--- >       argv <- getArgs                                              -- get the commandline arguments
--- >       (inp, outp, options) <- cmdlineOpts argv                     -- and evaluate them, return a key-value list
--- >                                                                    -- and input and output
--- >       res  <- run' $ application inp outp options $ emptyRoot      -- run the application
--- > 
--- >       exitWith (if null res
--- >                 then ExitFailure (-1)
--- >                 else exitSuccess
--- >                )
--- >
--- > application :: String -> String -> Attributes -> XmlStateFilter ()
--- > application inp outp al
--- >   = parseDocument (al ++ [(a_source, inp)])                        -- set options and source
--- >     .>>                                                            -- and parse document
--- >     processDocument                                                -- the hard work
--- >     .>>
--- >     writeDocument [(a_output_file, outp)]                          -- issue results
--- >     .>>
--- >     checkStatus                                                    -- check errors
--- >
-
-
-writeDocument	:: Attributes -> XmlStateFilter state
-writeDocument userOptions
-    = processDocument userOptions defaultOptions
-      ( traceMsg 1 "writeDocument: options added, start processing"
-	.>>
-	liftMf
-	( choice
-	  [ hasOption a_indent			:-> indentDoc			-- document indentation
-	  , hasOption a_remove_whitespace	:-> removeDocWhiteSpace		-- remove all whitespace between tags
-	  , this				:-> this
-	  ]
-	)
-	.>>
-	liftMf
-	( choice
-	  [ hasOption a_show_tree	:-> treeRepOfXmlDoc
-	  , hasOption a_show_haskell	:-> haskellRepOfXmlDoc
-	  , hasOption a_output_xml	:-> ( escapeXmlDoc		-- escape lt, gt, amp, quot, 
-					      .>
-					      addXmlPiToDoc		-- add <?xml ... > pi
-					      .>
-					      unparseXmlDoc		-- convert doc into text with respect to output encoding
-					    )
-	  , this			:-> this
-	  ]
-	)
-	.>>
-	writeXmlDoc
-	.>>
-	traceMsg 1 "writeDocument: finished"
-      )
-    where
-    defaultOptions
-	= [ ( a_output_file,		"-" )
-	  , ( a_indent,			v_0 )
-	  , ( a_remove_whitespace,	v_0 )
-	  , ( a_output_xml,		v_1 )
-	  , ( a_output_encoding,       utf8 )
-	  , ( a_show_tree,		v_0 )
-	  , ( a_show_haskell,		v_0 )
-	  ]
-
-writeXmlDoc	:: XmlStateFilter state
-writeXmlDoc t'
-    = put t'
-    where
-    put
-	| null fn || fn == "-"	= putXmlDoc
-	| otherwise		= putXmlDocToFile fn
-
-    fn = xshow . getValue a_output_file $ t'
-
-
--- ------------------------------------------------------------
---
-
--- |
--- wrapper filter for running a monadic filter
--- controlled by common options
---
--- input tree must be a complete document
--- parameters and default parameters can be used to contol
--- the filer and common tasks like error message handling
-
-processDocument	:: Attributes -> Attributes -> XmlStateFilter state -> XmlStateFilter state
-processDocument userOptions defaultOptions processFilter
-    = liftMf isRoot
-      .>>
-      liftMf (addOptions userOptions
-	      .>
-	      addOptions [(a_status, show c_ok)]
-	     )
-      .>>
-      liftMf (addDefaultOptions defaultOptions)
-      .>>
-      setSystemParams							-- store options in system state
-      .>>
-      choiceM
-      [ hasOption a_propagate_errors					-- error handling is set by calling environment
-		:-> thisM
-
-      , hasOption a_collect_errors
-	.>
-	hasOption a_issue_errors
-		:-> performAction (\ _ -> setSysErrorHandler (errorMsgLogging.>> errorMsgToStderr)	)
-
-      , hasOption a_collect_errors
-		:-> performAction (\ _ -> setSysErrorHandler errorMsgLogging	)
-
-      , hasOption a_issue_errors
-		:-> performAction (\ _ -> setSysErrorHandler errorMsgToStderr	)
-
-      , this
-		:-> performAction (\ _ -> setSysErrorHandler noneM		)
-      ]
-      .>>
-      processFilter
-      .>>
-      ( thisM
-        +++>>
-	( hasOption a_collect_errors
-          `guardsM`
-	  getErrorMsg
-	)
-      )
-
--- ------------------------------------------------------------
-
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandler.hs b/src/Text/XML/HXT/Parser/ProtocolHandler.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/ProtocolHandler.hs
+++ /dev/null
@@ -1,115 +0,0 @@
--- ------------------------------------------------------------
---
--- protocol handler functions
--- configuration file
--- real handler is generated with cpp
---
--- Version : $Id: ProtocolHandler.hs,v 1.4 2006/03/03 14:20:17 hxml Exp $
-
-module Text.XML.HXT.Parser.ProtocolHandler
-    ( getProtocolHandler
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlState
-
--- ------------------------------------------------------------
---
--- file io and network
-
-import Data.Maybe
-    ( fromMaybe
-    )
-
-import Network.URI
-    ( URI
-    , uriScheme
-    )
-
-import Text.XML.HXT.Parser.ProtocolHandlerFile
-    ( getFileContents
-    )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-import Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl
-    ( getHttpContentsNativeOrWithCurl
-    )
-
-
-
-
-
--- ------------------------------------------------------------
---
-
-getProtocolHandler	:: String -> (URI -> XmlStateFilter a)
-getProtocolHandler proto
-    = fromMaybe getUnsupported handler
-      where
-      handler  = lookup proto protocolHandler
-
---
--- the fall back protocol handler
-
-getUnsupported	:: URI -> XmlStateFilter a
-getUnsupported uri
-    = addFatal ( "unsupported protocol "
-		 ++ show (uriScheme uri)
-		 ++ " in URI: "
-		 ++ show uri
-	       )
-
--- ------------------------------------------------------------
---
--- the table of potocol handlers
--- looked up in getProtocolHandler
-
-protocolHandler	:: [(String, URI -> XmlStateFilter a)]
-protocolHandler
-    = [ ("file", getFileContents)
-      , ("http",
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	 getHttpContentsNativeOrWithCurl
-
-
-
-
-	)
-      ]
-
--- ------------------------------------------------------------
-
-
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandlerFile.hs b/src/Text/XML/HXT/Parser/ProtocolHandlerFile.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/ProtocolHandlerFile.hs
+++ /dev/null
@@ -1,79 +0,0 @@
--- ------------------------------------------------------------
---
--- protocol handler function for file protocol
--- implemented as filer
---
--- Version : $Id: ProtocolHandlerFile.hs,v 1.5 2006/03/03 14:20:17 hxml Exp $
-
-module Text.XML.HXT.Parser.ProtocolHandlerFile
-    ( getFileContents
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.XmlState
-
-import System.Directory
-    ( doesFileExist
-    , getPermissions
-    , readable
-    )
-
-import Network.URI
-    ( URI
-    , unEscapeString
-    , uriPath
-    )
-
-import System.IO
-import System.IO.Error
-
--- ------------------------------------------------------------
---
--- the file protocol handler
-
-getFileContents	:: URI -> XmlStateFilter a
-getFileContents uri n
-    = do
-      trace 2 ("getFileContent: reading file " ++ show source)
-      exists <- io $ doesFileExist source
-      if exists
-	 then do
-	      perm <- io $ getPermissions source
-	      if readable perm
-		 then do
-		      h <- io $ try ( openFile source ReadMode )
-		      case h of
-			     Left e
-				 -> readErr ( "system error when reading file "
-					      ++ show source
-					      ++ ": "
-					      ++ ioeGetErrorString e
-					    )
-			     Right h'
-				 -> do
-				    c <- io $ hGetContents h'
-				    return ( ( addAttrInt transferStatus 200
-					       .>
-					       addAttr transferMessage "OK"
-					       .>
-					       replaceChildren (xtext c)
-					     ) n
-					   )
-
-		 else readErr ("file " ++ show source ++ " not readable")
-         else readErr ("file " ++ show source ++ " not found")
-    where
-    source	= fileUriPath . unEscapeString . uriPath $ uri
-    readErr msg	= addFatal msg n
-
-    -- remove leading / if file starts with windows drive letter, e.g. /c:/windows -> c:/windows
-    fileUriPath ('/' : file@(d : ':' : _more))
-	| d `elem` ['A'..'Z'] || d `elem` ['a'..'z']
-	    = file
-    fileUriPath file
-	= file
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs b/src/Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs
+++ /dev/null
@@ -1,194 +0,0 @@
--- ------------------------------------------------------------
---
--- protocol handler functions for native http access
---
--- Version : $Id: ProtocolHandlerHttpCurl.hs,v 1.3 2005/04/14 12:52:53 hxml Exp $
-
-module Text.XML.HXT.Parser.ProtocolHandlerHttpCurl
-    ( getHttpContentsWithCurl
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.XmlState
-
-import Text.XML.HXT.Parser.ProtocolHandlerUtil
-    ( parseContentType
-    )
-
-import Text.ParserCombinators.Parsec
-    ( Parser
-    , parse
-    , anyChar
-    , char
-    , digit
-    , getInput
-    , many1
-    , manyTill
-    , spaces
-    , string
-    , (<|>)
-    )
-
-import qualified Text.ParserCombinators.Parsec
-    ( try
-    )
-
-import Network.URI
-    ( URI
-    )
-
-import System.PipeOpen
-    ( popen
-    )
-
-import Data.Char
-    ( toLower
-    )
-
--- ------------------------------------------------------------
---
--- the http protocol handler implemented by calling external program curl
-
-getHttpContentsWithCurl	:: URI -> XmlStateFilter a
-getHttpContentsWithCurl uri n
-    = do
-      trace 2 ( "getHttpContentWithCurl: reading from URL " ++ show uri )
-
-      proxy       <- getSysParam a_proxy
-      curlOptions <- getSysParam a_options_curl
-
-      let allArgs = args ++ proxyArgs proxy ++ words curlOptions
-
-      trace 4 ( "getHttpContentWithCurl: running " ++ show (unwords (cmd : allArgs)) )
-
-      (res, errs, rc) <- io $ popen cmd allArgs
-
-      trace 4 ( "getHttpContentWithCurl: PID:    " ++ show rc   )
-      trace 4 ( "getHttpContentWithCurl: stdin:  " ++ show res  )
-      trace 4 ( "getHttpContentWithCurl: stderr: " ++ show errs )
-
-      if rc /= 0
-	 then addFatal ( "http error when requesting URI (rc=" ++ show rc ++ ") "
-			 ++ show uri
-			 ++ ": "
-			 ++ errs
-		       ) n
-	 else let
-	      (st, al, contents) = parseResponse res
-	      in
-	      liftMf ( addAttrl (const al)
-		       .>
-		       replaceChildren (xtext contents)
-		     )
-	      .>> ( if st >= 200 && st < 300
-		    then thisM
-		    else
-		    addFatal ( "http error when accessing URI "
-			       ++ show uri
-			       ++ ": "
-			       ++ show st
-			       ++ " "
-			       ++ (valueOf transferMessage $ newRoot al)
-			     )
-		  )
-	      $ n
-    where
-    cmd  = "curl"
-    args = [ "--silent"
-	   , "--show-error"
-	   , "--dump-header", "-"
-	   , show uri
-	   ]
-    proxyArgs ""
-	= []
-    proxyArgs prx
-	= [ "--proxy", prx ]
-
-parseResponse	:: String -> (Int, XmlTrees, String)
-parseResponse inp
-    = case (parse parseHttpResponse "HTTP Header" inp) of
-      Right res -> res
-      Left  _   -> (999, xattr transferMessage "illegal HTTP response", inp)
-
--- ------------------------------------------------------------
---
--- parsers for HTTP response
-
-parseHttpResponse		:: Parser (Int, XmlTrees, String)
-parseHttpResponse
-    = do
-      allResponses <- many1
-		      ( do
-			(rc, rh) <- parseResp
-			rhs      <- parseHeaders
-			return (rc, rh, rhs)
-		      )
-      let (rc, rh, rhs) = last allResponses
-      content  <- getInput
-      return (rc, rh ++ rhs, content)
-    where
-
-    crlf		:: Parser ()
-    crlf
-	= do
-	  ( Text.ParserCombinators.Parsec.try (string "\r\n") <|> string "\n" )
-	  return ()
-
-    parseResp		:: Parser (Int, XmlTrees)
-    parseResp
-	= do
-	  vers <- ( do
-		    http <- string "HTTP/"
-		    mav <- many1 digit
-		    char '.'
-		    miv <- many1 digit
-		    return (http ++ mav ++ "." ++ miv)
-		  )
-	  spaces
-	  ds <- many1 digit
-	  spaces
-	  reason <- manyTill anyChar crlf
-	  return ( read ds,
-		   xattr transferMessage reason ++ xattr transferVersion vers
-		 )
-
-    parseHeaders	:: Parser XmlTrees
-    parseHeaders
-	= ( do
-	    crlf
-	    return []
-	  )
-	  <|>
-	  ( do
-	    header1 <- parse1Header
-	    rest    <- parseHeaders
-	    return $ header1 ++ rest
-	  )
-	  <|>
-	  ( do
-	    return $ xattr (httpPrefix ++ "IllegalHeaders") ""
-	  )
-
-    parse1Header	:: Parser XmlTrees
-    parse1Header
-	= do
-	  header <- manyTill anyChar (char ':')
-	  spaces
-	  value  <- manyTill anyChar crlf
-	  let ct = parseCT header value
-	  return $ ct ++ xattr (httpPrefix ++ header) value
-	where
-	parseCT	:: String -> String -> XmlTrees
-	parseCT h v
-	    | map toLower h == "content-type"
-		= ( case (parse parseContentType h v) of
-		    Right res -> concatMap (uncurry xattr) res
-		    Left  _   -> []
-		  )
-	    | otherwise
-		= []
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs b/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs
+++ /dev/null
@@ -1,150 +0,0 @@
--- ------------------------------------------------------------
---
--- protocol handler functions for native http access
---
--- Version : $Id: ProtocolHandlerHttpNative.hs,v 1.3 2005/04/14 12:52:53 hxml Exp $
-
-module Text.XML.HXT.Parser.ProtocolHandlerHttpNative
-    ( getHttpContentsWithHttp
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.XmlState
-
-import Text.XML.HXT.Parser.ProtocolHandlerUtil
-    ( parseContentType
-    )
-
-import Text.XML.HXT.DOM.Util
-    ( stringTrim
-    )
-
-import Text.ParserCombinators.Parsec
-    ( parse
-    )
-
-import System.IO
-import System.IO.Error
-
-import Network.URI
-    ( URI
-    )
-
-import Network.Socket
-    ( withSocketsDo
-    )
-
-import Network.HTTP		-- http modules
-import Network.Browser
-
--- ------------------------------------------------------------
---
--- the native http protocol handler
-
--- ------------------------------------------------------------
---
--- the http protocol handler, haskell implementation
-
-getHttpContentsWithHttp	:: URI -> XmlStateFilter a
-getHttpContentsWithHttp uri n
-    = do
-      traceLevel <- getTraceLevel
-      trace 2 ("getHttpContent: reading from URL " ++ show uri)
-      proxy <- getSysParam a_proxy
-      res <- io $  try (getHttp traceLevel uri proxy)
-      case res of
-	       Left e
-		   -> readErr ( "http error when requesting URI "
-				++ show uri
-				++ ": "
-				++ ioeGetErrorString e
-				++ " (perhaps server does not understand HTTP/1.1) "
-			      )
-	       Right response
-		   -> let
-		      al = convertResponseHeaders response
-		      cs = xtext (rspBody response)
-		      st = convertResponseStatus (rspCode response)
-		      in
-		      if st >= 200 && st < 300
-			 then
-			 return $ (addAttrl (const al) .> replaceChildren cs) n
-			 else 
-			 readErr ( "http error when accessing URI "
-				   ++ show (show uri)
-				   ++ ": "
-				   ++ show st
-				   ++ " "
-				   ++ rspReason response
-				 )
-    where
-    readErr msg	= addFatal msg n
-
-    getHttp		:: Int -> URI -> String -> IO Response
-    getHttp trc' uri' proxy'
-	= withSocketsDo $
-	  browse ( do
-		   setOutHandler (trcFct)
-		   setErrHandler (trcFct)
-
-		   setProxy' proxy'
-		   (_ruri, rsp) <- request rq
-		   return rsp
-		 )
-	where
-	trcFct s
-	    | trc' >= 5
-		= hPutStrLn stderr ("-- (" ++ show trc' ++ ") http: " ++ s)
-	    | otherwise
-		= return ()
-
-	rq = defaultGETRequest uri'
-	
-	setProxy' ""	= return ()
-	setProxy' p	= setProxy (Proxy p Nothing)
-
-    convertResponseStatus	:: (Int, Int, Int) -> Int
-    convertResponseStatus (a, b, c)
-	= 100 * a + 10 * b + c
-
-    convertResponseHeaders	:: Response -> XmlTrees
-    convertResponseHeaders r'
-	= cvResponseCode (rspCode r')
-	  ++
-	  cvResponseReason (rspReason r')
-          ++
-	  cvResponseHeaders (rspHeaders r')
-	where
-	cvResponseCode	:: (Int, Int, Int) -> XmlTrees
-	cvResponseCode st'
-	    = xattr transferStatus (show (convertResponseStatus st'))
-	      ++
-	      xattr transferVersion httpVersion
-
-	cvResponseReason	:: String -> XmlTrees
-	cvResponseReason r''
-	    = xattr transferMessage (stringTrim r'')
-
-	cvResponseHeaders	:: [Header] -> XmlTrees
-	cvResponseHeaders
-	    = concatMap cvResponseHeader
-
-	cvResponseHeader	:: Header -> XmlTrees
-	cvResponseHeader (Header name value)
-	    | name == HdrContentType
-		= ( case (parse parseContentType (show HdrContentType) value) of
-		    Right res -> concatMap (uncurry xattr) res
-		    Left  _   -> []
-		  )
-                  ++
-		  addHttpAttr
-	    | otherwise
-		= addHttpAttr
-	    where
-	    addHttpAttr = xattr (httpPrefix ++ (show name)) value
-
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs b/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- ------------------------------------------------------------
---
--- protocol handler functions for native http access
---
--- Version : $Id: ProtocolHandlerHttpNativeOrCurl.hs,v 1.1 2004/09/02 19:12:01 hxml Exp $
-
-module Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl
-    ( getHttpContentsNativeOrWithCurl
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlKeywords
-    ( a_use_curl
-    )
-
-import Text.XML.HXT.DOM.XmlState
-
-import Network.URI
-    ( URI
-    )
-
-import Text.XML.HXT.Parser.ProtocolHandlerHttpNative
-    ( getHttpContentsWithHttp
-    )
-
-import Text.XML.HXT.Parser.ProtocolHandlerHttpCurl
-    ( getHttpContentsWithCurl
-    )
-
-
--- ------------------------------------------------------------
---
--- the http protocol handler switch for internal / external access
-
-getHttpContentsNativeOrWithCurl		:: URI -> XmlStateFilter a
-getHttpContentsNativeOrWithCurl uri n
-    = do
-      curl <- getSysParamInt a_use_curl 0
-      ( if curl /= 0
-	then getHttpContentsWithCurl
-	else getHttpContentsWithHttp ) uri n
-
-
--- ------------------------------------------------------------
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
@@ -54,7 +54,7 @@
     , closesHtmlTag
     )
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
     ( XmlTrees
     , QName
     , NsEnv
@@ -68,7 +68,7 @@
     , xmlnsNamespace
     )
 
-import Text.XML.HXT.Arrow.XmlNode
+import Text.XML.HXT.DOM.XmlNode
     ( isElem
     , mkError
     , mkCmt
@@ -302,9 +302,9 @@
 	    then canonicalizeTags
 	    else id
 	  )
-	. parseTagsOptions (options { optTagWarning   = withWarnings
-				    , optLookupEntity = lookupEntity withWarnings asHtml
-				    }
+	. parseTagsOptions (parseOptions { optTagWarning   = withWarnings
+					 , optLookupEntity = lookupEntity withWarnings asHtml
+					 }
 			   )
       )
     where
diff --git a/src/Text/XML/HXT/Parser/XmlDTDParser.hs b/src/Text/XML/HXT/Parser/XmlDTDParser.hs
--- a/src/Text/XML/HXT/Parser/XmlDTDParser.hs
+++ b/src/Text/XML/HXT/Parser/XmlDTDParser.hs
@@ -8,7 +8,6 @@
    Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
    Stability  : experimental
    Portability: portable
-   Version    : $Id: XmlDTDParser.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $
 
    Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations
 
@@ -32,12 +31,28 @@
 import Text.ParserCombinators.Parsec
 import Text.ParserCombinators.Parsec.Pos
 
-import           Text.XML.HXT.DOM.XmlTree              hiding (choice)
-import           Text.XML.HXT.DOM.Util                (stringToUpper)
-
+import Text.XML.HXT.DOM.Interface	-- XmlTree              hiding (choice)
+import Text.XML.HXT.DOM.Util
+    ( stringToUpper
+    )
+import Text.XML.HXT.DOM.ShowXml
+    ( xshow
+    )
+import Text.XML.HXT.DOM.XmlNode
+    ( mkDTDElem
+    , mkText
+    , mkError
+    , isText
+    , isDTD
+    , getText
+    , getDTDPart
+    , getDTDAttrl
+    , getChildren
+    , setChildren
+    )
 import qualified Text.XML.HXT.Parser.XmlTokenParser    as XT
-import qualified Text.XML.HXT.Parser.XmlCharParser     as XC(xmlSpaceChar)
-import qualified Text.XML.HXT.Parser.XmlDTDTokenParser as XD(dtdToken)
+import qualified Text.XML.HXT.Parser.XmlCharParser     as XC ( xmlSpaceChar )
+import qualified Text.XML.HXT.Parser.XmlDTDTokenParser as XD ( dtdToken )
 
 -----------------------------------------------------------
 --
@@ -140,13 +155,13 @@
 name
     = do
       n <- XT.name
-      return (mkXDTDTree NAME [(a_name, n)] [])
+      return (mkDTDElem NAME [(a_name, n)] [])
 
 nmtoken		:: SParser XmlTree
 nmtoken
     = do
       n <- XT.nmtoken
-      return (mkXDTDTree NAME [(a_name, n)] [])
+      return (mkDTDElem NAME [(a_name, n)] [])
 
 -- ------------------------------------------------------------
 --
@@ -164,7 +179,7 @@
       skipS
       (al, cl) <- contentspec
       skipS0
-      return [mkXDTDTree ELEMENT ((a_name, n) : al) cl]
+      return [mkDTDElem ELEMENT ((a_name, n) : al) cl]
 
 contentspec	:: SParser (Attributes, XmlTrees)
 contentspec
@@ -191,7 +206,7 @@
     = ( do
 	(al, cl) <- choiceOrSeq
 	modifier <- optOrRep
-	return ([(a_type, v_children)], [mkXDTDTree CONTENT (modifier ++ al) cl])
+	return ([(a_type, v_children)], [mkDTDElem CONTENT (modifier ++ al) cl])
       )
       <?> "element content"
 
@@ -246,14 +261,14 @@
 	m <- optOrRep
 	return ( case m of
 		 [(_, "")] -> n
-		 _         -> mkXDTDTree CONTENT (m ++ [(a_kind, v_seq)]) [n]
+		 _         -> mkDTDElem CONTENT (m ++ [(a_kind, v_seq)]) [n]
 	       )
       )
       <|>
       ( do
 	(al, cl) <- choiceOrSeq
 	m <- optOrRep
-	return (mkXDTDTree CONTENT (m ++ al) cl)
+	return (mkDTDElem CONTENT (m ++ al) cl)
       )
 
 -- ------------------------------------------------------------
@@ -281,7 +296,7 @@
 	  else do
 	       char '*' <?> "closing parent for mixed content (\")*\")"
 	       return ( [ (a_type, v_mixed) ]
-		      , [ mkXDTDTree CONTENT [ (a_modifier, "*")
+		      , [ mkDTDElem CONTENT [ (a_modifier, "*")
 					     , (a_kind, v_choice)
 					     ] nl
 			]
@@ -307,7 +322,7 @@
       return (map (mkDTree n) al)
     where
     mkDTree n' (al, cl)
-	= mkXDTDTree ATTLIST ((a_name, n') : al) cl
+	= mkDTDElem ATTLIST ((a_name, n') : al) cl
     
 attDef		:: SParser (Attributes, XmlTrees)
 attDef
@@ -411,7 +426,7 @@
       skipS
       (al, cl) <- entityDef
       skipS0
-      return [mkXDTDTree ENTITY ((a_name, n) : al) cl]
+      return [mkDTDElem ENTITY ((a_name, n) : al) cl]
 
 entityDef		:: SParser (Attributes, XmlTrees)
 entityDef
@@ -435,7 +450,7 @@
       skipS
       (al, cs) <- peDef
       skipS0
-      return [mkXDTDTree PENTITY ((a_name, n) : al) cs]
+      return [mkDTDElem PENTITY ((a_name, n) : al) cs]
 
 peDef			:: SParser (Attributes, XmlTrees)
 peDef
@@ -505,7 +520,7 @@
 	       publicID
 	     )
       skipS0
-      return [mkXDTDTree NOTATION ((a_name, n) : eid) []]
+      return [mkDTDElem NOTATION ((a_name, n) : eid) []]
 
 publicID		:: SParser Attributes
 publicID
@@ -525,7 +540,7 @@
       skipS0
       let n' = stringToUpper n
       if n' `elem` [k_include, k_ignore]
-	 then return (xtext  n')
+	 then return [mkText  n']
 	 else fail $ "INCLUDE or IGNORE expected in conditional section"
 
 -- ------------------------------------------------------------
@@ -560,41 +575,57 @@
 
 -- ------------------------------------------------------------
 
-parseXmlDTDEntityValue	:: XmlFilter
-parseXmlDTDEntityValue (NTree (XDTD PEREF al) cl)
-    = ( either (xerr . (++ "\n") . show)
-	       (\cl' -> if null cl'
-                        then [mkXTextTree ""]
-                        else cl'
-	       )
-	.
-	parse parser source
-      ) input
+parseXmlDTDEntityValue	:: XmlTree -> XmlTrees
+parseXmlDTDEntityValue t	-- (NTree (XDTD PEREF al) cl)
+    | isDTDPEref t
+	= ( either
+	    ( (:[]) . mkError c_err . (++ "\n") . show )
+	    ( \cl' -> if null cl'
+                         then [mkText ""]
+                         else cl'
+	    )
+	    .
+	    parse parser source
+	  ) input
+    | otherwise
+	= []
     where
+    al     = fromMaybe [] . getDTDAttrl $ t
+    cl     = getChildren t
     parser = XT.entityTokensT "%&"
     source = "value of parameter entity " ++ lookupDef "" a_peref al
     input  = xshow cl
 
+{-
 parseXmlDTDEntityValue n
     = error ("parseXmlDTDEntityValue: illegal argument: " ++ show n)
-
+-}
 -- ------------------------------------------------------------
 
-parseXmlDTDdeclPart	:: XmlFilter
-parseXmlDTDdeclPart n@(NTree (XDTD PEREF al) cl)
-    = ( either (xerr . (++ "\n") . show)
-	       (\cl' -> replaceChildren cl' n)
-	.
-	parse parser source
-      ) input
+parseXmlDTDdeclPart	:: XmlTree -> XmlTrees
+parseXmlDTDdeclPart t		-- @(NTree (XDTD PEREF al) cl)
+    | isDTDPEref t
+	= ( (:[])
+	    .
+	    either
+	       ( mkError c_err . (++ "\n") . show )
+	       ( flip setChildren $ t ) -- \ cl' -> setChildren cl' t)
+	    .
+	    parse parser source
+	  ) input
+    | otherwise
+	= []
     where
+    al     = fromMaybe [] . getDTDAttrl $ t
+    cl     = getChildren t
     parser = many XD.dtdToken
     source = "value of parameter entity " ++ lookupDef "" a_peref al
     input  = xshow cl
 
+{-
 parseXmlDTDdeclPart n
     = error ("parseXmlDTDdeclPart: illegal argument: " ++ show n)
-
+-}
 -- ------------------------------------------------------------
 --
 -- the main entry point
@@ -606,13 +637,19 @@
 -- substitution.
 -- Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing
 
-parseXmlDTDdecl	:: XmlFilter
-parseXmlDTDdecl (NTree (XDTD dtdElem al) cl)
-    = ( either (xerr . (++ "\n") . show) id
-	.
-	runParser parser (initialLocalState pos) source
-      ) input
+parseXmlDTDdecl	:: XmlTree -> XmlTrees
+parseXmlDTDdecl t	-- (NTree (XDTD dtdElem al) cl)
+    | isDTD t
+	= ( either ((:[]) . mkError c_err . (++ "\n") . show) id
+	    .
+	    runParser parser (initialLocalState pos) source
+	  ) input
+    | otherwise
+	= []
     where
+    dtdElem = fromJust     . getDTDPart  $ t
+    al      = fromMaybe [] . getDTDAttrl $ t
+    cl      = getChildren t
     dtdParsers
 	= [ (ELEMENT,  elementDeclBody)
 	  , (ATTLIST,  attlistDeclBody)
@@ -630,10 +667,10 @@
 	     eof
 	     return res
     input  = concatMap collectText cl
-
+{-
 parseXmlDTDdecl _
     = []
-
+-}
 
 -- | collect the tokens of a DTD declaration body and build
 -- a string ready for parsing. The structure of the parameter entity values
@@ -641,6 +678,21 @@
 
 collectText	:: XmlTree -> String
 
+collectText t
+    | isText t
+	= fromMaybe "" . getText $ t
+    | isDTDPEref t
+	= prefixPe ++ concatMap collectText (getChildren t) ++ suffixPe
+    | otherwise
+	= ""
+    where
+    al       = fromMaybe [] . getDTDAttrl $ t
+    delPe    = "\0"
+    prefixPe = delPe ++ lookupDef "???" a_peref al ++ delPe
+    suffixPe = delPe ++ delPe
+
+{-
+
 collectText (NTree n _)
     | isXTextNode n
 	= textOfXNode n
@@ -654,5 +706,10 @@
 
 collectText _
     = ""
+-}
+
+isDTDPEref	:: XmlTree -> Bool
+isDTDPEref
+    = maybe False (== PEREF) . getDTDPart
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/XmlDTDTokenParser.hs b/src/Text/XML/HXT/Parser/XmlDTDTokenParser.hs
--- a/src/Text/XML/HXT/Parser/XmlDTDTokenParser.hs
+++ b/src/Text/XML/HXT/Parser/XmlDTDTokenParser.hs
@@ -21,7 +21,14 @@
 import Text.ParserCombinators.Parsec
 import Text.ParserCombinators.Parsec.Pos
 
-import           Text.XML.HXT.DOM.XmlTree		hiding (choice)
+-- import           Text.XML.HXT.DOM.XmlTree		hiding (choice)
+
+import Text.XML.HXT.DOM.Interface
+
+import Text.XML.HXT.DOM.XmlNode
+    ( mkDTDElem
+    , mkText
+    )
 import qualified Text.XML.HXT.Parser.XmlTokenParser	as XT
 
 -- ------------------------------------------------------------
@@ -34,7 +41,7 @@
       (dcl, al) <- dtdDeclStart
       content <- many1 dtdToken
       dtdDeclEnd
-      return (NTree (XDTD dcl al) content)
+      return $! mkDTDElem dcl al content
 
 dtdDeclStart :: GenParser Char state (DTDElem, Attributes)
 dtdDeclStart
@@ -80,24 +87,24 @@
 peReference
     = do
       r <- XT.peReference
-      return (mkXPERefTree r)
+      return $! (mkDTDElem PEREF [(a_peref, r)] [])
 
 attrValue	:: GenParser Char state XmlTree
 attrValue
     = do
       v <- XT.attrValue
-      return (mkXTextTree v)
+      return $! mkText v
 
 dtdChars	:: GenParser Char state XmlTree
 dtdChars
     = do
       v <- many1 (XT.singleChar "%\"'<>[]")		-- everything except string constants, < and >, [ and ] (for cond sections)
-      return (mkXTextTree v)				-- all illegal chars will be detected later during declaration parsing
+      return $! mkText v				-- all illegal chars will be detected later during declaration parsing
 
 percent		:: GenParser Char state XmlTree
 percent
     = do
       c <- char '%'
-      return (mkXTextTree [c])
+      return $! mkText [c]
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/XmlInput.hs b/src/Text/XML/HXT/Parser/XmlInput.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/XmlInput.hs
+++ /dev/null
@@ -1,384 +0,0 @@
--- ------------------------------------------------------------
---
--- input functions
--- implemented as filer
---
--- Version : $Id: XmlInput.hs,v 1.9 2006/03/03 14:20:17 hxml Exp $
-
-module Text.XML.HXT.Parser.XmlInput
-    ( getXmlContents
-    , getXmlEntityContents
-    , getUrlContents
-    , getContentLength
-    , guessDocEncoding
-    , runInLocalURIContext
-    , runInNewURIContext
-    , getBaseURI
-    , setBaseURI
-    , getAbsolutURI
-    , isStandaloneDocument
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.XmlState
-
-import Text.XML.HXT.Parser.DefaultURI
-    ( setDefaultURI
-    )
-
-import Text.XML.HXT.Parser.XmlParser
-    ( parseXmlDocEncodingSpec
-    , parseXmlEntityEncodingSpec
-    , removeEncodingSpec
-    )
-
-import Text.XML.HXT.DOM.Unicode
-    ( getDecodingFct
-    , guessEncoding
-    , normalizeNL
-    )
-
-import Text.XML.HXT.Parser.XmlOutput
-    ( traceTree
-    , traceSource
-    , traceMsg
-    )
-
-import Text.XML.HXT.Parser.ProtocolHandler
-    ( getProtocolHandler
-    )
-
--- ------------------------------------------------------------
---
--- URI manipulation
-
-import Network.URI
-    ( parseURIReference
-    , relativeTo
-    , uriScheme
-    )
-
--- ------------------------------------------------------------
---
--- utilities
-
-import Data.Maybe
-
--- ------------------------------------------------------------
---
--- filter for reading the content
--- input: a root node with arguments in tag attribute list
--- and without any children.
-
--- attribute a_source   ("source")   for input file or uri
---
--- attribute a_encoding ("encoding") for encoding scheme
---
--- attribute a_proxy    ("proxy")    for proxy tob be used in http access
-
-getXmlContents'		:: XmlFilter -> XmlStateFilter a
-getXmlContents' parseEncodingSpec
-    = getContent'
-      `whenM` isRoot
-      where
-      getContent' t'
-	  = ( liftMf (setStatus c_ok "getXmlContents")
-	      .>>
-	      getUrlContents
-	      .>>
-	      liftF parseEncodingSpec
-	      .>>
-	      guessDocEncoding
-	      .>>
-	      traceMsg 1 ("getXmlContents: content read and decoded from " ++ show input')
-	      .>>
-	      traceTree
-	      .>>
-	      traceSource
-	    ) t'
-	    where
-	    input' = valueOf a_source t'
-
--- |
--- filter for reading the content of a XML document
---
--- input is a root node with the source as an attibute
--- the text is read, the encoding scheme is parsed and selected
--- and the input is translated into the internal UTF-8 string representation
-
-getXmlContents		:: XmlStateFilter a
-getXmlContents
-    = getXmlContents' parseXmlDocEncodingSpec
-      .>>
-      setBaseURIFilter
-      .>>
-      setStandAloneFilter
-
--- |
--- filter for reading the content of an external XML entity
---
---
--- see also : 'getXmlContents'
-
-getXmlEntityContents	:: XmlStateFilter a
-getXmlEntityContents
-    = getXmlContents' parseXmlEntityEncodingSpec
-      .>>
-      liftF (processChildren removeEncodingSpec)	-- remove encoding spec, it's not part of the entity value
-      .>> 
-      setBaseURIFilter
-
--- ------------------------------------------------------------
-
-setBaseURIFilter	:: XmlStateFilter a
-setBaseURIFilter
-    = performAction (\ t -> setBaseURI (valueOf transferURI t))
-      `whenM` isRoot
-
--- |
--- filter command for saving and restoring
--- the base URI
---
---    * 1.parameter f :  the filter that possible changes the base URI
---
---
---    - returns : a filter with the same effect as f, that restores the base URI after application of f
-
-runInLocalURIContext		:: XmlStateFilter a -> XmlStateFilter a
-runInLocalURIContext f t
-    = do
-      oldContext <- getBaseURI
-      trace 2 ("runInLocalURIContext: save base URI " ++ show oldContext)
-      res <- f t
-      setBaseURI oldContext
-      trace 2 ("runInLocalURIContext: restore base URI " ++ show oldContext)
-      return res
-
--- |
--- filter command for running an action in a new URI context
-
-runInNewURIContext	:: String -> XmlStateFilter a -> XmlStateFilter a
-runInNewURIContext uri f
-    | null uri
-	= f
-    | otherwise
-	= runInLocalURIContext
-	  ( \ t -> ( do
-		     trace 2 ("runInNewURIContext: new base URI " ++ show uri)
-		     setBaseURI uri
-		     f t
-		   )
-	  )
-
--- ------------------------------------------------------------
--- |
--- guessEncoding uses encoding attribute and content
--- to determine the encoding scheme.
---
--- it's assumed that an encoding spec has been tried to parse before guessing the encoding.
---
--- UTF-8 is the default encoding
---
--- other supported encodings are ISO-8859-1 (also known as ISO-Latin-1),
--- US-ASCII, UTF-16 or ISO-10646-UCS-2, UTF-16BE, UTF-16LE
-
-guessDocEncoding	:: XmlStateFilter a
-guessDocEncoding
-    = addDocEncoding
-      `whenM` isRoot
-    where
-    addDocEncoding n'
-	= do
-	  trace 2 ( "guessDocEncoding: encoding is " ++ show guess)
-	  ( encFilter (getDecodingFct guess)
-	    .>>
-	    issueError
-	    .>>
-	    liftMf (addAttr transferEncoding guess) ) n'
-	  where
-	  guess	:: String
-	  guess	= head . filter (not . null)
-		  $ [ (guessEncoding . showXText . getChildren) n'
-		    , valueOf transferEncoding n'
-		    , valueOf a_encoding n'
-		    , utf8
-		    ]
-	  encFilter (Just fct)
-	      = decodeDoc fct
-
-	  encFilter Nothing
-	      = addFatal ("encoding scheme not supported: " ++ show guess)
-
-	  decodeDoc df n''
-	      | null errs	= liftMf (replaceChildren (xtext (normalizeNL res))) $ n''
-	      | otherwise	= ( liftMf (replaceChildren (xtext ""))
-				    .>>
-				    ( issueDecodingErrs
-				      +++>>
-				      addFatal "decoding errors detected"
-				    )
-				  ) n''
-	      where
-	      str = xshow . getChildren $ n''
-	      (res, errs) = df str
-	      issueDecodingErrs = catM . map (issueErr . (guess ++) . (" encoding error" ++)) $ errs
-
--- ------------------------------------------------------------
-
-getDefaultURI	:: XState state String
-getDefaultURI
-    = do
-      uri <- getSysParam transferDefaultURI
-      if null uri
-	 then do
-	      setDefaultURI
-	      getDefaultURI
-	 else return uri
-
--- |
--- set the base URI, all other URIs are handled relative to this base URI
---
--- the default base URI is @file:\/\/\/\<current-working-dir\>\/@
---
--- see also : 'getBaseURI'
-
-setBaseURI	:: String -> XState state ()
-setBaseURI str
-    = do
-      trace 2 ("setBaseURI: new base URI: " ++ show str)
-      setSysParam transferURI str
-
--- |
--- read the current base URI
---
--- see also : 'setBaseURI'
-
-getBaseURI	:: XState state String
-getBaseURI
-    = do
-      uri <- getSysParam transferURI
-      if null uri
-	 then do
-	      res <- getDefaultURI
-	      setBaseURI res
-	      getBaseURI
-	 else return uri
-
--- |
--- transform an URI into an absolut URI using the current base URI
---
---
---    * 1.parameter uri :  the URI as string
---
---
---    - returns : the absolut URI as string or \"\" in case of an error
-
-getAbsolutURI	:: String -> XState state String
-getAbsolutURI uri
-    = do
-      baseUri <- getBaseURI
-      return $ expandURI uri baseUri
-
-expandURI	:: String -> String -> String
-expandURI uri base
-    = fromMaybe "" $ expand
-    where
-    expand = do
-	     base' <- parseURIReference base
-	     uri'  <- parseURIReference uri
-	     abs'  <- relativeTo uri' base'
-	     return $ show abs'
-
--- ------------------------------------------------------------
-
-setStandAloneFilter	:: XmlStateFilter a
-setStandAloneFilter
-    = performAction setStandAlone
-      where
-      setStandAlone t
-	  = do
-	    if null standalone
-	       then return ()
-	       else do
-		    trace 2 ("setStandAloneFilter: standalone=" ++ show standaloneVal)
-		    setSysParam a_standalone standaloneVal
-	    where
-	    standalone	= getValue a_standalone t
-	    standaloneVal	= showXText standalone
-
--- |
--- predicate for testing the standalone document attribute
-
-isStandaloneDocument	:: XState state Bool
-isStandaloneDocument
-    = do
-      val <- getSysParam a_standalone
-      return (val == "yes")
-
--- ------------------------------------------------------------
-
--- |
--- the hard io operations
---
--- for reading a file or accessing a document via http
--- input must be a root node with a @source@ attribute specifying the URI
-
-getUrlContents	:: XmlStateFilter a
-getUrlContents
-    =  getCont
-      `whenM` isRoot
-    where
-    getCont n'
-	= do
-	  trace 1 ("getUrlContent: reading " ++ show src)
-	  uri <- getAbsolutURI src
-	  if null uri
-	     then urlErr ( "illegal URI for input: " ++ show src )
-	     else let
-		  uri'     = fromJust $ parseURIReference uri
-		  proto    = init . uriScheme $ uri'
-		  handler  = getProtocolHandler proto
-		  in
-		  ( liftMf (addAttr transferProtocol proto
-			   .>
-			   addAttr transferURI uri
-			  )
-		    .>>
-		    handler uri'
-		  ) $ n'
-	where
-	src        = valueOf a_source n'
-	urlErr msg = addFatal msg n'
-
--- ------------------------------------------------------------
-
--- |
--- compute the length of the data for a document read previously
--- by a call of 'getUrlContents. The result is stored as an attribute
--- value in the document root node. the attribute name is 'a_contentLength'
-
-getContentLength	:: XmlFilter
-getContentLength
-    = addAttrl contentLengthAttr
-      `when` isRoot
-      where
-      http_contentLength	= httpPrefix ++ "Content-Length"
-
-      contentLengthAttr		:: XmlFilter
-      contentLengthAttr t
-	  = choice [ hasAttr a_contentLength
-		     :-> none
-		   , hasAttr http_contentLength
-		     :-> mkXAttr a_contentLength (getValue http_contentLength)
-		   , this
-                     :-> mkXAttr a_contentLength getLength
-		   ] t
-
-      getLength			:: XmlFilter
-      getLength t
-	  = xtext (show . length . xshow . getChildren $ t)
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/XmlOutput.hs b/src/Text/XML/HXT/Parser/XmlOutput.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/XmlOutput.hs
+++ /dev/null
@@ -1,168 +0,0 @@
--- |
--- output functions
--- implemented as filer
---
--- Version : $Id: XmlOutput.hs,v 1.3 2005/04/14 12:52:53 hxml Exp $
-
-module Text.XML.HXT.Parser.XmlOutput
-    ( putXmlDoc
-    , putXmlDocToFile
-    , putXmlTree	-- for trace output
-    , putXmlSource	--  "    "     "
-
-    , hPutXmlDoc
-    , hPutXmlTree
-    , hPutXmlSource
-
-    , traceF
-    , traceMsg
-    , traceTree
-    , traceSource
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.XmlState
-
-import Text.XML.HXT.DOM.EditFilters	( indentDoc
-					, numberLinesInXmlDoc
-					, treeRepOfXmlDoc
-					, addHeadlineToXmlDoc
-					)
-
-import System.IO
-import System.IO.Error
-
--- ------------------------------------------------------------
-
--- |
--- document output for standard output
---
--- see also : 'hPutXmlDoc'
-
-putXmlDoc	:: XmlStateFilter a
-putXmlDoc	= hPutXmlDoc stdout
-
--- |
--- document output for arbitrary files.
---
--- Result is the input document
-
-hPutXmlDoc	:: Handle -> XmlStateFilter a
-hPutXmlDoc handle t
-    = do
-      res <- io $ try (hPutStr handle content)
-      case res of
-        Left ioerr
-	    -> ( issueFatal (show ioerr)
-		 +++>>
-		 thisM
-	       ) t
-	Right _
-	    -> thisM t
-
-    where
-    content = xshow . getChildren $ t
-
--- |
--- document output on a given file name
---
--- Result is the input document
---
--- see also : 'hPutXmlDoc', 'putXmlDoc'
-
-putXmlDocToFile	:: String -> XmlStateFilter a
-putXmlDocToFile fn t
-    = do
-      res <- io $ try (openFile fn WriteMode)
-      case res of
-        Left ioerr
-	    -> ( issueFatal (show ioerr)
-		 +++>>
-		 thisM
-	       ) t
-	Right h
-	    -> do
-	       t' <- hPutXmlDoc h t
-	       io $ try (hClose h)
-	       trace 2 ("document written to file: " ++ fn)
-	       return t'
-
--- ------------------------------------------------------------
-
--- |
--- output of tree representation for trace
-
-hPutXmlTree	:: Handle -> XmlStateFilter a
-hPutXmlTree handle
-    = performAction
-      (\ n -> liftMf (treeRepOfXmlDoc
-		     .>
-		     addHeadlineToXmlDoc
-		    )
-              .>>
-              hPutXmlDoc handle
-              $ n
-      )
-
-putXmlTree	:: XmlStateFilter a
-putXmlTree	= hPutXmlTree stdout
-
--- |
--- output of text representation for trace
-
-hPutXmlSource	:: Handle -> XmlStateFilter a
-hPutXmlSource handle
-    = performAction
-      (\ n -> liftMf ( ( rootTag
-			[ sattr a_source "internal tree" ]
-			[ this ]
-			`whenNot` isRoot
-		      )
-		      .>
-		      indentDoc
-		      .>
-		      numberLinesInXmlDoc
-		      .>
-		      addHeadlineToXmlDoc
-		    )
-              .>>
-              hPutXmlDoc handle
-              $ n
-      )
-
-putXmlSource	:: XmlStateFilter a
-putXmlSource	= hPutXmlSource stdout
-
--- ------------------------------------------------------------
-
--- trace filter for inserting trace operations
--- into a filter sequence
---
---    * 1.parameter level : like in 'traceCmd'
---
---    - 2.parameter cmd : the output filter, e.g. putXmlTree or putXmlSource
---
---    - 3.parameter : the tree
---
---    - returns: the tree
-
-traceF		:: Int -> XmlStateFilter a -> XmlStateFilter a
-traceF level cmd
-    = performAction (\ t -> traceCmd level (cmd t))
-
-traceMsg	:: Int -> String -> XmlStateFilter a
-traceMsg level msg
-    = performAction (\ _ -> trace level msg)
-
-traceTree	:: XmlStateFilter a
-traceTree
-    = traceF 4 (hPutXmlTree stderr)
-
-traceSource	:: XmlStateFilter a
-traceSource
-    = traceF 3 (hPutXmlSource stderr)
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/XmlParsec.hs b/src/Text/XML/HXT/Parser/XmlParsec.hs
--- a/src/Text/XML/HXT/Parser/XmlParsec.hs
+++ b/src/Text/XML/HXT/Parser/XmlParsec.hs
@@ -75,10 +75,35 @@
     , sourceName
     )
 
-import           Text.XML.HXT.DOM.XmlTree 		hiding     (choice)
+import Text.XML.HXT.DOM.ShowXml
+    ( xshow
+    )
 
-import Text.XML.HXT.Parser.XmlCharParser               (xmlChar)
+import Text.XML.HXT.DOM.Interface
 
+import Text.XML.HXT.DOM.XmlNode
+    ( mkElement
+    , mkAttr
+    , mkRoot
+    , mkDTDElem
+    , mkText
+    , mkCmt
+    , mkCdata
+    , mkError
+    , mkPi
+    , isText
+    , isRoot
+    , getText
+    , getChildren
+    , getAttrl
+    , getAttrName
+    , changeAttrl
+    , mergeAttrl
+    )
+
+import Text.XML.HXT.Parser.XmlCharParser
+    ( xmlChar
+    )
 import qualified Text.XML.HXT.Parser.XmlTokenParser	as XT
 import qualified Text.XML.HXT.Parser.XmlDTDTokenParser	as XD
 
@@ -97,7 +122,7 @@
 charData'
     = try ( do
 	    t <- XT.allBut1 many1 (\ c -> not (c `elem` "<&")) "]]>"
-	    return (mkXTextTree $! t)
+	    return (mkText $! t)
 	  )
 
 -- ------------------------------------------------------------
@@ -109,7 +134,7 @@
 comment
     = ( do
 	c <- between (try $ string "<!--") (string "-->") (XT.allBut many "--")
-	return (mkXCmtTree $! c)
+	return (mkCmt $! c)
       ) <?> "comment"
 
 -- ------------------------------------------------------------
@@ -125,7 +150,7 @@
 			XT.sPace
 			XT.allBut many "?>"
 		       )
-	return (mkXPiTree n $! p)
+	return $ mkPi (mkName n) [mkAttr (mkName a_value) [mkText p]]
       ) <?> "processing instruction"
       where
       pITarget	:: GenParser Char state String
@@ -145,7 +170,7 @@
 cDSect
     = do
       t <- between ( try $ string "<![CDATA[") (string "]]>") (XT.allBut many "]]>")
-      return (mkXCdataTree $! t)
+      return (mkCdata $! t)
       <?> "CDATA section"
 
 -- ------------------------------------------------------------
@@ -157,9 +182,9 @@
     = do
       pos <- getPosition
       dl <- document'
-      return ( (head . replaceChildren dl)
-	       $ newDocument (sourceName pos)
-	     )
+      return $ mkRoot [ mkAttr (mkName a_source) [mkText (sourceName pos)]
+		      , mkAttr (mkName a_status) [mkText (show c_ok)]
+		      ] dl
 
 document'	:: GenParser Char state XmlTrees
 document'
@@ -195,13 +220,13 @@
 xMLDecl'
     = do
       al <- xMLDecl
-      return [mkXmlDeclTree al]
+      return [mkPi (mkName t_xml) al]
 
 xMLDecl''	:: GenParser Char state XmlTree
 xMLDecl''
     = do
       al     <- option [] (try xMLDecl)
-      return (newRoot al)
+      return (mkRoot al [])
 
 versionInfo	:: GenParser Char state XmlTrees
 versionInfo
@@ -212,7 +237,7 @@
 	    )
 	XT.eq
 	vi <- XT.quoted XT.versionNum
-	return (xattr a_version vi)
+	return [mkAttr (mkName a_version) [mkText vi]]
       )
       <?> "version info (with quoted version number)"
 
@@ -224,7 +249,7 @@
       <|>
       ( ( do
 	  ws <- XT.sPace
-	  return (mkXTextTree ws)
+	  return (mkText ws)
 	) <?> ""
       )
 
@@ -250,7 +275,7 @@
 		    XT.skipS0
 		    return m
 		  )
-	return [mkXDTDTree DOCTYPE ((a_name, n) : exId) markup]
+	return [mkDTDElem DOCTYPE ((a_name, n) : exId) markup]
       )
 
 markupOrDeclSep	:: GenParser Char state XmlTrees
@@ -297,7 +322,7 @@
 	  )
       XT.eq
       sd <- XT.quoted (XT.keywords [v_yes, v_no])
-      return (xattr a_standalone sd)
+      return [mkAttr (mkName a_standalone) [mkText sd]]
 
 -- ------------------------------------------------------------
 --
@@ -343,16 +368,18 @@
 elementRest (n, al)
     = ( do
 	try $ string "/>"
-	return (mkXTagTree n (map (uncurry mkXAttrTree) al) [])
+	return $! (mkElement (mkName n) (map (mkA $!) al) [])
       )
       <|>
       ( do
 	XT.gt
 	c <- content
 	eTag n
-	return (mkXTagTree n (map ((uncurry mkXAttrTree) $!) al) $! c)
+	return $! (mkElement (mkName n) (map (mkA $!) al) $! c)
       )
       <?> "proper attribute list followed by \"/>\" or \">\""
+    where
+    mkA (n', ts') = mkAttr (mkName n') ts'
 
 eTag		:: String -> GenParser Char state ()
 eTag n'
@@ -413,7 +440,7 @@
       cs <- many XD.dtdToken
       char '['
       sect <- condSectCont
-      return (mkXDTDTree CONDSECT [(a_value, sect)] cs)
+      return (mkDTDElem CONDSECT [(a_value, sect)] cs)
     where
 
     condSectCont	:: GenParser Char state String
@@ -480,7 +507,7 @@
 textDecl''
     = do
       al    <- option [] (try textDecl)
-      return (newRoot al)
+      return (mkRoot al [])
 
 -- ------------------------------------------------------------
 --
@@ -495,7 +522,7 @@
 	  )
       XT.eq
       ed <- XT.quoted XT.encName
-      return (xattr a_encoding ed)
+      return [mkAttr (mkName a_encoding) [mkText ed]]
 
 -- ------------------------------------------------------------
 --
@@ -527,14 +554,14 @@
 
 parseXmlContent		:: XmlTree -> XmlTrees
 parseXmlContent
-    = xread . xshow . this
+    = xread . xshow . (:[])
 
 -- |
 -- a more general version of 'parseXmlContent'.
 -- The parser to be used and the context are extra parameter
 
 parseXmlText		:: Parser XmlTrees -> String -> XmlTree -> XmlTrees
-parseXmlText p loc	= parseXmlFromString p loc . xshow . this
+parseXmlText p loc	= parseXmlFromString p loc . xshow . (:[])
 
 parseXmlDocument	:: String -> String -> XmlTrees
 parseXmlDocument	= parseXmlFromString document'
@@ -542,27 +569,30 @@
 
 parseXmlFromString	:: Parser XmlTrees -> String -> String -> XmlTrees
 parseXmlFromString parser loc
-    = either (xerr . (++ "\n") . show) id . parse parser loc
+    = either ((:[]) . mkError c_err . (++ "\n") . show) id . parse parser loc
 
 -- ------------------------------------------------------------
 --
 
 removeEncodingSpec	:: XmlTree -> XmlTrees
-removeEncodingSpec (NTree n _cs)
-    | isXTextNode n
-	= ( either (xerr . (++ "\n") . show) xtext
+removeEncodingSpec t
+    | isText t
+	= ( either ((:[]) . mkError c_err . (++ "\n") . show) ((:[]) . mkText)
 	    . parse parser "remove encoding spec"
-	    . textOfXNode
-	  ) n
+	    . fromMaybe ""
+	    . getText
+	  ) t
+    | otherwise
+	= [t]
     where
     parser :: Parser String
     parser = do
 	     option [] textDecl
 	     getInput
-
+{-
 removeEncodingSpec n
     = [n]
-
+-}
 -- ------------------------------------------------------------
 
 -- |
@@ -638,18 +668,22 @@
 --			  else the unchanged tree
 
 parseXmlEncodingSpec	:: Parser XmlTree -> XmlTree -> XmlTrees
-parseXmlEncodingSpec encDecl
-    =  parseEncSpec
-      `when` isRoot
-      where
-      parseEncSpec r
-	  = case ( parse encDecl source . xshow . getChildren $ r ) of
-	    Right t
-		-> addAttrl (const (getAttrl t)) r
-	    Left _
-		-> this r
-	  where
-	  source = valueOf a_source r
+parseXmlEncodingSpec encDecl x
+    = (:[]) .
+      ( if isRoot x
+	then parseEncSpec
+	else id
+      ) $ x
+    where
+    parseEncSpec r
+	= case ( parse encDecl source . xshow . getChildren $ r ) of
+	  Right t
+	      -> changeAttrl (mergeAttrl . fromMaybe [] . getAttrl $ t) r
+	  Left _
+	      -> r
+	where
+	-- arrow \"getAttrValue a_source\" programmed on the tree level (oops!)
+	source = xshow . concat . map getChildren . filter ((== a_source) . maybe "" qualifiedName . getAttrName) . fromMaybe [] . getAttrl $ r
 
 parseXmlEntityEncodingSpec	:: XmlTree -> XmlTrees
 parseXmlEntityEncodingSpec	= parseXmlEncodingSpec textDecl''
diff --git a/src/Text/XML/HXT/Parser/XmlParser.hs b/src/Text/XML/HXT/Parser/XmlParser.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Parser/XmlParser.hs
+++ /dev/null
@@ -1,84 +0,0 @@
--- |
--- Xml Parser: the main parse filter 
---
--- Version : $Id: XmlParser.hs,v 1.5 2005/06/06 15:57:19 hxml Exp $
-
-
-module Text.XML.HXT.Parser.XmlParser
-    ( module Text.XML.HXT.Parser.XmlParsec
-    , module Text.XML.HXT.Parser.XmlTokenParser
-    , parseXmlDoc
-    , substXmlEntities
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.XmlState
-
-import Text.XML.HXT.Parser.XmlTokenParser
-
-import Text.XML.HXT.Parser.XmlEntities
-import Text.XML.HXT.Parser.XmlParsec
-import Text.XML.HXT.Parser.XmlOutput
-    ( traceTree
-    , traceSource
-    , traceMsg
-    )
-
--- ------------------------------------------------------------
-
--- |
--- The monadic parser for a whole document.
--- input must be a root node with a single text child.
--- Error messages are issued and global error state is set.
-
-parseXmlDoc	:: XmlStateFilter a
-parseXmlDoc
-    = parseDoc
-      `whenM` ( isRoot .> getChildren .> isXText )
-      where
-      parseDoc t
-	  = ( traceMsg 2 ("parseXmlDoc: parse XML document " ++ show loc)
-	      .>>
-	      parser
-	      .>>
-	      liftMf checkRes
-	      .>>
-	      traceTree
-	      .>>
-	      traceSource
-	    ) $ t
-	  where
-	  loc = valueOf a_source t			-- document name
-	  checkRes
-	      = setStatus c_err ("parsing XML source " ++ show loc)
-	        `whenNot`
-	        getChildren
-	  parser
-	      = processChildrenM (liftF (parseXmlText document' loc))
-
--- ------------------------------------------------------------
-
--- |
--- Filter for substitution of all occurences of the predefined XML entites quot, amp, lt, gt, apos
--- by equivalent character references
-
-substXmlEntities	:: XmlFilter
-substXmlEntities
-    = choice
-      [ isXEntityRef	:-> substEntity
-      , isXTag		:-> processAttr (processChildren substXmlEntities)
-      , this		:-> this
-      ]
-      where
-      substEntity t'@(NTree (XEntityRef en) _)
-	  = case (lookup en xmlEntities) of
-	    Just i
-		-> [mkXCharRefTree i]
-	    Nothing
-		-> this t'
-
-      substEntity _					-- just for preventing ghc warning
-	  = error "substXmlEntities: illegal argument"
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/XmlTokenParser.hs b/src/Text/XML/HXT/Parser/XmlTokenParser.hs
--- a/src/Text/XML/HXT/Parser/XmlTokenParser.hs
+++ b/src/Text/XML/HXT/Parser/XmlTokenParser.hs
@@ -81,9 +81,13 @@
 
 import Text.ParserCombinators.Parsec
 
+import Text.XML.HXT.DOM.Interface
 
-import Text.XML.HXT.DOM.XmlTree hiding
-    ( choice
+import Text.XML.HXT.DOM.XmlNode
+    ( mkDTDElem
+    , mkText
+    , mkCharRef
+    , mkEntityRef
     )
 
 import Text.XML.HXT.DOM.Unicode
@@ -453,13 +457,13 @@
 nameT
     = do
       n <- name
-      return (mkXDTDTree NAME [(a_name, n)] [])
+      return (mkDTDElem NAME [(a_name, n)] [])
 
 nmtokenT	:: GenParser Char state XmlTree
 nmtokenT
     = do
       n <- nmtoken
-      return (mkXDTDTree NAME [(a_name, n)] [])
+      return (mkDTDElem NAME [(a_name, n)] [])
 
 
 entityValueT	:: GenParser Char state XmlTrees
@@ -487,7 +491,7 @@
       <|>
       ( do
 	cs <- many1 (singleChar notAllowed)
-	return (mkXTextTree cs)
+	return (mkText cs)
       )
 
 attrValueT	:: GenParser Char state XmlTrees
@@ -505,7 +509,7 @@
 singleCharsT notAllowed
     = do
       cs <- singleChars notAllowed
-      return (mkXTextTree cs)
+      return (mkText cs)
 
 -- ------------------------------------------------------------
 --
@@ -521,25 +525,25 @@
 charRefT
     = do
       i <- charRef
-      return (mkXCharRefTree $! i)
+      return $! (mkCharRef $! i)
 
 entityRefT	:: GenParser Char state XmlTree
 entityRefT
     = do
       n <- entityRef
-      return (mkXEntityRefTree $! n)
+      return $! (mkEntityRef $! n)
 
 bypassedEntityRefT	:: GenParser Char state XmlTree
 bypassedEntityRefT
     = do
       n <- entityRef
-      return (mkXTextTree ("&" ++ n ++ ";"))
+      return $! (mkText ("&" ++ n ++ ";"))
 
 peReferenceT	:: GenParser Char state XmlTree
 peReferenceT
     = do
       r <- peReference
-      return (mkXPERefTree r)
+      return $! (mkDTDElem PEREF [(a_peref, r)] [])
 
 -- ------------------------------------------------------------
 
diff --git a/src/Text/XML/HXT/RelaxNG/BasicArrows.hs b/src/Text/XML/HXT/RelaxNG/BasicArrows.hs
--- a/src/Text/XML/HXT/RelaxNG/BasicArrows.hs
+++ b/src/Text/XML/HXT/RelaxNG/BasicArrows.hs
@@ -21,7 +21,7 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
     hiding
     ( mkText
diff --git a/src/Text/XML/HXT/RelaxNG/CreatePattern.hs b/src/Text/XML/HXT/RelaxNG/CreatePattern.hs
--- a/src/Text/XML/HXT/RelaxNG/CreatePattern.hs
+++ b/src/Text/XML/HXT/RelaxNG/CreatePattern.hs
@@ -15,7 +15,7 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 
 import Text.XML.HXT.Arrow.XmlArrow
 
diff --git a/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs b/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs
--- a/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs
+++ b/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs
@@ -9,7 +9,7 @@
   )
 where
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
     ( relaxNamespace
     )
 
diff --git a/src/Text/XML/HXT/RelaxNG/PatternToString.hs b/src/Text/XML/HXT/RelaxNG/PatternToString.hs
--- a/src/Text/XML/HXT/RelaxNG/PatternToString.hs
+++ b/src/Text/XML/HXT/RelaxNG/PatternToString.hs
@@ -12,7 +12,7 @@
 
 import Data.Tree.NTree.TypeDefs
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 
 import Text.XML.HXT.RelaxNG.DataTypes
 import Text.XML.HXT.RelaxNG.CreatePattern
diff --git a/src/Text/XML/HXT/RelaxNG/Schema.hs b/src/Text/XML/HXT/RelaxNG/Schema.hs
--- a/src/Text/XML/HXT/RelaxNG/Schema.hs
+++ b/src/Text/XML/HXT/RelaxNG/Schema.hs
@@ -1,3917 +1,3916 @@
 {- |
    Module     : Text.HXT.RelaxNG.Schema
-   Version    : $Id: Schema.hs,v 1.3 2005/09/30 14:41:44 hxml Exp $
-
-Don't edit this module, it's generated by RelaxSchemaToXmlTree
-
--}
-
-module Text.XML.HXT.RelaxNG.Schema
-    ( relaxSchemaTree, relaxSchemaArrow )
-where
-
-import Text.XML.HXT.DOM.TypeDefs
-import Text.XML.HXT.DOM.XmlTreeFunctions
-
-import Control.Arrow.ListArrows
-
-relaxSchemaArrow :: ArrowList a => a b XmlTree
-relaxSchemaArrow = constA relaxSchemaTree
-
-relaxSchemaTree :: XmlTree
-relaxSchemaTree =
-  let
-  ns1	= "http://relaxng.org/ns/structure/1.0"
-  qn1	= mkSNsName "RelaxContext:xml"
-  qn2	= mkSNsName "RelaxContextBaseURI"
-  qn3	= mkSNsName "RelaxContextDefault"
-  qn4	= mkNsName "anyName" ns1
-  qn5	= mkNsName "attribute" ns1
-  qn6	= mkNsName "choice" ns1
-  qn7	= mkNsName "data" ns1
-  qn8	= mkSNsName "datatypeLibrary"
-  qn9	= mkNsName "define" ns1
-  qn10	= mkNsName "element" ns1
-  qn11	= mkNsName "empty" ns1
-  qn12	= mkNsName "except" ns1
-  qn13	= mkNsName "grammar" ns1
-  qn14	= mkNsName "group" ns1
-  qn15	= mkNsName "interleave" ns1
-  qn16	= mkSNsName "name"
-  qn17	= mkNsName "name" ns1
-  qn18	= mkSNsName "ns"
-  qn19	= mkNsName "nsName" ns1
-  qn20	= mkNsName "oneOrMore" ns1
-  qn21	= mkNsName "ref" ns1
-  qn22	= mkNsName "start" ns1
-  qn23	= mkNsName "text" ns1
-  qn24	= mkSNsName "type"
-  qn25	= mkNsName "value" ns1
-  in
-  mkRootTree []
-    [ mkQTagTree qn13 []
-      [ mkQTagTree qn22 []
-        [ mkQTagTree qn6 []
-          [ mkQTagTree qn6 []
-            [ mkQTagTree qn6 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                              ] []
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                    ] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                  ] []
-                ]
-              , mkQTagTree qn21
-                [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                ] []
-              ]
-            , mkQTagTree qn21
-              [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-              ] []
-            ]
-          , mkQTagTree qn21
-            [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-            ] []
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "grammar"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "22" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "23" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "externalRef"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn5 []
-                [ mkQTagTree qn17
-                  [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                  ]
-                  [ mkXTextTree "href"
-                  ]
-                , mkQTagTree qn7
-                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                  ] []
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "notAllowed"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "data"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn5 []
-                [ mkQTagTree qn17
-                  [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                  ]
-                  [ mkXTextTree "type"
-                  ]
-                , mkQTagTree qn7
-                  [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                  ] []
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                      ] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "41" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "41" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "except"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "param"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn5 []
-              [ mkQTagTree qn17
-                [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                ]
-                [ mkXTextTree "name"
-                ]
-              , mkQTagTree qn7
-                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                ] []
-              ]
-            , mkQTagTree qn23 [] []
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "value"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "type"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn23 [] []
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "text"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "empty"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "parentRef"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn5 []
-              [ mkQTagTree qn17
-                [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                ]
-                [ mkXTextTree "name"
-                ]
-              , mkQTagTree qn7
-                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                ] []
-              ]
-            , mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "ref"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn5 []
-              [ mkQTagTree qn17
-                [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                ]
-                [ mkXTextTree "name"
-                ]
-              , mkQTagTree qn7
-                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                ] []
-              ]
-            , mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "mixed"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "list"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "oneOrMore"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "zeroOrMore"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "optional"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "choice"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "interleave"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "group"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "attribute"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "name"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                , mkQTagTree qn15 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn20 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                        ] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "element"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "name"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                , mkQTagTree qn15 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn20 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                        ] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "23" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "include"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn5 []
-                [ mkQTagTree qn17
-                  [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                  ]
-                  [ mkXTextTree "href"
-                  ]
-                , mkQTagTree qn7
-                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                  ] []
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                        ] []
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "22" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "div"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "22" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "23" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "div"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                        ] []
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "choice"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-                        ] []
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "nsName"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "anyName"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "name"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn7
-              [ mkQAttrTree qn24 [ mkXTextTree "QName" ]
-              , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-              ] []
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "except"
-            ]
-          , mkQTagTree qn15 []
-            [ mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                  ] []
-                ]
-              ]
-            , mkQTagTree qn20 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-                      ] []
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                    ] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn4 []
-            [ mkQTagTree qn12 []
-              [ mkQTagTree qn19
-                [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                ] []
-              ]
-            ]
-          , mkQTagTree qn6 []
-            [ mkQTagTree qn11 [] []
-            , mkQTagTree qn20 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 [] []
-                    , mkQTagTree qn23 [] []
-                    ]
-                  , mkQTagTree qn23 [] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "0" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn4 [] []
-          , mkQTagTree qn6 []
-            [ mkQTagTree qn11 [] []
-            , mkQTagTree qn20 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 [] []
-                    , mkQTagTree qn23 [] []
-                    ]
-                  , mkQTagTree qn23 [] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "define"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "name"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "combine"
-                      ]
-                    , mkQTagTree qn6 []
-                      [ mkQTagTree qn25
-                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "" ]
-                        , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        ]
-                        [ mkXTextTree "choice"
-                        ]
-                      , mkQTagTree qn25
-                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "" ]
-                        , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        ]
-                        [ mkXTextTree "interleave"
-                        ]
-                      ]
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "start"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "combine"
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn25
-                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "" ]
-                      , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      ]
-                      [ mkXTextTree "choice"
-                      ]
-                    , mkQTagTree qn25
-                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "" ]
-                      , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      ]
-                      [ mkXTextTree "interleave"
-                      ]
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                                                    ] []
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                    ] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "44" ]
+
+   Don't edit this module, it's generated by RelaxSchemaToXmlTree
+
+-}
+
+module Text.XML.HXT.RelaxNG.Schema
+    ( relaxSchemaTree, relaxSchemaArrow )
+where
+
+import Text.XML.HXT.DOM.TypeDefs
+import Text.XML.HXT.DOM.XmlNode (mkRoot, mkElement, mkAttr, mkText)
+
+import Control.Arrow.ListArrows
+
+relaxSchemaArrow :: ArrowList a => a b XmlTree
+relaxSchemaArrow = constA relaxSchemaTree
+
+relaxSchemaTree :: XmlTree
+relaxSchemaTree =
+  let
+  ns1	= "http://relaxng.org/ns/structure/1.0"
+  qn1	= mkSNsName "RelaxContext:xml"
+  qn2	= mkSNsName "RelaxContextBaseURI"
+  qn3	= mkSNsName "RelaxContextDefault"
+  qn4	= mkNsName "anyName" ns1
+  qn5	= mkNsName "attribute" ns1
+  qn6	= mkNsName "choice" ns1
+  qn7	= mkNsName "data" ns1
+  qn8	= mkSNsName "datatypeLibrary"
+  qn9	= mkNsName "define" ns1
+  qn10	= mkNsName "element" ns1
+  qn11	= mkNsName "empty" ns1
+  qn12	= mkNsName "except" ns1
+  qn13	= mkNsName "grammar" ns1
+  qn14	= mkNsName "group" ns1
+  qn15	= mkNsName "interleave" ns1
+  qn16	= mkSNsName "name"
+  qn17	= mkNsName "name" ns1
+  qn18	= mkSNsName "ns"
+  qn19	= mkNsName "nsName" ns1
+  qn20	= mkNsName "oneOrMore" ns1
+  qn21	= mkNsName "ref" ns1
+  qn22	= mkNsName "start" ns1
+  qn23	= mkNsName "text" ns1
+  qn24	= mkSNsName "type"
+  qn25	= mkNsName "value" ns1
+  in
+  mkRoot []
+    [ mkElement qn13 []
+      [ mkElement qn22 []
+        [ mkElement qn6 []
+          [ mkElement qn6 []
+            [ mkElement qn6 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn21
+                                              [ mkAttr qn16 [ mkText "24" ]
+                                              ] []
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "25" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "26" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "27" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "28" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "29" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "30" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "31" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "32" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "33" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "34" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "35" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "36" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "37" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "38" ]
+                    ] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "39" ]
+                  ] []
+                ]
+              , mkElement qn21
+                [ mkAttr qn16 [ mkText "42" ]
+                ] []
+              ]
+            , mkElement qn21
+              [ mkAttr qn16 [ mkText "43" ]
+              ] []
+            ]
+          , mkElement qn21
+            [ mkAttr qn16 [ mkText "44" ]
+            ] []
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "44" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "grammar"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "11" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "10" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "22" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "23" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "43" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "externalRef"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn5 []
+                [ mkElement qn17
+                  [ mkAttr qn18 [ mkText "" ]
+                  ]
+                  [ mkText "href"
+                  ]
+                , mkElement qn7
+                  [ mkAttr qn24 [ mkText "anyURI" ]
+                  , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                  ] []
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "15" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "42" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "notAllowed"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "15" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "39" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "data"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn5 []
+                [ mkElement qn17
+                  [ mkAttr qn18 [ mkText "" ]
+                  ]
+                  [ mkText "type"
+                  ]
+                , mkElement qn7
+                  [ mkAttr qn24 [ mkText "NCName" ]
+                  , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                  ] []
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn21
+                      [ mkAttr qn16 [ mkText "40" ]
+                      ] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "41" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "41" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "except"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "40" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "param"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn5 []
+              [ mkElement qn17
+                [ mkAttr qn18 [ mkText "" ]
+                ]
+                [ mkText "name"
+                ]
+              , mkElement qn7
+                [ mkAttr qn24 [ mkText "NCName" ]
+                , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                ] []
+              ]
+            , mkElement qn23 [] []
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "38" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "value"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "type"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "NCName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn23 [] []
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "37" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "text"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "15" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "36" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "empty"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "15" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "35" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "parentRef"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn5 []
+              [ mkElement qn17
+                [ mkAttr qn18 [ mkText "" ]
+                ]
+                [ mkText "name"
+                ]
+              , mkElement qn7
+                [ mkAttr qn24 [ mkText "NCName" ]
+                , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                ] []
+              ]
+            , mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "34" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "ref"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn5 []
+              [ mkElement qn17
+                [ mkAttr qn18 [ mkText "" ]
+                ]
+                [ mkText "name"
+                ]
+              , mkElement qn7
+                [ mkAttr qn24 [ mkText "NCName" ]
+                , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                ] []
+              ]
+            , mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "33" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "mixed"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "32" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "list"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "31" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "oneOrMore"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "30" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "zeroOrMore"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "29" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "optional"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "28" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "choice"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "27" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "interleave"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "26" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "group"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "25" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "attribute"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "name"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "QName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                , mkElement qn15 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn20 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "15" ]
+                        ] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "17" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "18" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "19" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "20" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "24" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "element"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn6 []
+                [ mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "name"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "QName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                , mkElement qn15 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn20 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "15" ]
+                        ] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "17" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "18" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "19" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "20" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "23" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "include"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn5 []
+                [ mkElement qn17
+                  [ mkAttr qn18 [ mkText "" ]
+                  ]
+                  [ mkText "href"
+                  ]
+                , mkElement qn7
+                  [ mkAttr qn24 [ mkText "anyURI" ]
+                  , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                  ] []
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "11" ]
+                        ] []
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "10" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "21" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "22" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "div"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "11" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "10" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "22" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "23" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "21" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "div"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "11" ]
+                        ] []
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "10" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "21" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "20" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "choice"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "17" ]
+                        ] []
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "18" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "19" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "20" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "19" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "nsName"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "18" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "anyName"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "17" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "name"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn7
+              [ mkAttr qn24 [ mkText "QName" ]
+              , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+              ] []
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "16" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "except"
+            ]
+          , mkElement qn15 []
+            [ mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "15" ]
+                  ] []
+                ]
+              ]
+            , mkElement qn20 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn21
+                      [ mkAttr qn16 [ mkText "17" ]
+                      ] []
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "18" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "19" ]
+                    ] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "20" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "15" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn4 []
+            [ mkElement qn12 []
+              [ mkElement qn19
+                [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                ] []
+              ]
+            ]
+          , mkElement qn6 []
+            [ mkElement qn11 [] []
+            , mkElement qn20 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 [] []
+                    , mkElement qn23 [] []
+                    ]
+                  , mkElement qn23 [] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "0" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "0" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn4 [] []
+          , mkElement qn6 []
+            [ mkElement qn11 [] []
+            , mkElement qn20 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 [] []
+                    , mkElement qn23 [] []
+                    ]
+                  , mkElement qn23 [] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "0" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "10" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "define"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "name"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "NCName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "combine"
+                      ]
+                    , mkElement qn6 []
+                      [ mkElement qn25
+                        [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                        , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
+                        , mkAttr qn8 [ mkText "" ]
+                        , mkAttr qn24 [ mkText "token" ]
+                        , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        ]
+                        [ mkText "choice"
+                        ]
+                      , mkElement qn25
+                        [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                        , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
+                        , mkAttr qn8 [ mkText "" ]
+                        , mkAttr qn24 [ mkText "token" ]
+                        , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        ]
+                        [ mkText "interleave"
+                        ]
+                      ]
+                    ]
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "24" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "42" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "11" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "start"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "combine"
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn25
+                      [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                      , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
+                      , mkAttr qn8 [ mkText "" ]
+                      , mkAttr qn24 [ mkText "token" ]
+                      , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      ]
+                      [ mkText "choice"
+                      ]
+                    , mkElement qn25
+                      [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                      , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]
+                      , mkAttr qn8 [ mkText "" ]
+                      , mkAttr qn24 [ mkText "token" ]
+                      , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      ]
+                      [ mkText "interleave"
+                      ]
+                    ]
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "15" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "24" ]
+                                                    ] []
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "25" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "26" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "27" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "28" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "29" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "30" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "31" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "32" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "33" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "34" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "35" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "36" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "37" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "38" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "39" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "42" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "43" ]
+                    ] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "44" ]
                   ] []
                 ]
               ]
diff --git a/src/Text/XML/HXT/RelaxNG/SchemaGrammar.hs b/src/Text/XML/HXT/RelaxNG/SchemaGrammar.hs
--- a/src/Text/XML/HXT/RelaxNG/SchemaGrammar.hs
+++ b/src/Text/XML/HXT/RelaxNG/SchemaGrammar.hs
@@ -1,3825 +1,3824 @@
 {- |
    Module     : Text.HXT.RelaxNG.SchemaGrammar
-   Version    : $Id: SchemaGrammar.hs,v 1.3 2005/09/30 14:41:45 hxml Exp $
-
-Don't edit this module, it's generated by RelaxSchemaToXmlTree
-
--}
-
-module Text.XML.HXT.RelaxNG.SchemaGrammar
-    ( relaxSchemaTree, relaxSchemaArrow )
-where
-
-import Text.XML.HXT.DOM.TypeDefs
-import Text.XML.HXT.DOM.XmlTreeFunctions
-
-import Control.Arrow.ListArrows
-
-relaxSchemaArrow :: ArrowList a => a b XmlTree
-relaxSchemaArrow = constA relaxSchemaTree
-
-relaxSchemaTree :: XmlTree
-relaxSchemaTree =
-  let
-  ns1	= "http://relaxng.org/ns/structure/1.0"
-  qn1	= mkSNsName "RelaxContext:xml"
-  qn2	= mkSNsName "RelaxContextBaseURI"
-  qn3	= mkSNsName "RelaxContextDefault"
-  qn4	= mkNsName "anyName" ns1
-  qn5	= mkNsName "attribute" ns1
-  qn6	= mkNsName "choice" ns1
-  qn7	= mkNsName "data" ns1
-  qn8	= mkSNsName "datatypeLibrary"
-  qn9	= mkNsName "define" ns1
-  qn10	= mkNsName "element" ns1
-  qn11	= mkNsName "empty" ns1
-  qn12	= mkNsName "except" ns1
-  qn13	= mkNsName "grammar" ns1
-  qn14	= mkNsName "group" ns1
-  qn15	= mkNsName "interleave" ns1
-  qn16	= mkSNsName "name"
-  qn17	= mkNsName "name" ns1
-  qn18	= mkSNsName "ns"
-  qn19	= mkNsName "nsName" ns1
-  qn20	= mkNsName "oneOrMore" ns1
-  qn21	= mkNsName "ref" ns1
-  qn22	= mkNsName "start" ns1
-  qn23	= mkNsName "text" ns1
-  qn24	= mkSNsName "type"
-  qn25	= mkNsName "value" ns1
-  in
-  mkRootTree []
-    [ mkQTagTree qn13 []
-      [ mkQTagTree qn22 []
-        [ mkQTagTree qn21
-          [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-          ] []
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "externalRef"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn5 []
-                [ mkQTagTree qn17
-                  [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                  ]
-                  [ mkXTextTree "href"
-                  ]
-                , mkQTagTree qn7
-                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                  ] []
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "notAllowed"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "data"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn5 []
-                [ mkQTagTree qn17
-                  [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                  ]
-                  [ mkXTextTree "type"
-                  ]
-                , mkQTagTree qn7
-                  [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                  ] []
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "41" ]
-                      ] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "42" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "except"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "41" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "param"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn5 []
-              [ mkQTagTree qn17
-                [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                ]
-                [ mkXTextTree "name"
-                ]
-              , mkQTagTree qn7
-                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                ] []
-              ]
-            , mkQTagTree qn23 [] []
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "value"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "type"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn23 [] []
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "text"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "empty"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "parentRef"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn5 []
-              [ mkQTagTree qn17
-                [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                ]
-                [ mkXTextTree "name"
-                ]
-              , mkQTagTree qn7
-                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                ] []
-              ]
-            , mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "ref"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn5 []
-              [ mkQTagTree qn17
-                [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                ]
-                [ mkXTextTree "name"
-                ]
-              , mkQTagTree qn7
-                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                ] []
-              ]
-            , mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "mixed"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "list"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "oneOrMore"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "zeroOrMore"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "optional"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "choice"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "interleave"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "group"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "attribute"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "name"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                , mkQTagTree qn15 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn20 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                        ] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "element"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "name"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                , mkQTagTree qn15 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn20 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                        ] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "include"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn5 []
-                [ mkQTagTree qn17
-                  [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                  ]
-                  [ mkXTextTree "href"
-                  ]
-                , mkQTagTree qn7
-                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                  ] []
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                        ] []
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "22" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "23" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "div"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "23" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "22" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "div"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                        ] []
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "22" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "choice"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                        ] []
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "nsName"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "anyName"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "name"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn7
-              [ mkQAttrTree qn24 [ mkXTextTree "QName" ]
-              , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-              ] []
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "17" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "except"
-            ]
-          , mkQTagTree qn15 []
-            [ mkQTagTree qn6 []
-              [ mkQTagTree qn11 [] []
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                  ] []
-                ]
-              ]
-            , mkQTagTree qn20 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "18" ]
-                      ] []
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "19" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "20" ]
-                    ] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "21" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn4 []
-            [ mkQTagTree qn12 []
-              [ mkQTagTree qn19
-                [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                ] []
-              ]
-            ]
-          , mkQTagTree qn6 []
-            [ mkQTagTree qn11 [] []
-            , mkQTagTree qn20 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 [] []
-                    , mkQTagTree qn23 [] []
-                    ]
-                  , mkQTagTree qn23 [] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "0" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn4 [] []
-          , mkQTagTree qn6 []
-            [ mkQTagTree qn11 [] []
-            , mkQTagTree qn20 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 [] []
-                    , mkQTagTree qn23 [] []
-                    ]
-                  , mkQTagTree qn23 [] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "define"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "name"
-                    ]
-                  , mkQTagTree qn7
-                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]
-                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                    ] []
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "combine"
-                      ]
-                    , mkQTagTree qn6 []
-                      [ mkQTagTree qn25
-                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "" ]
-                        , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        ]
-                        [ mkXTextTree "choice"
-                        ]
-                      , mkQTagTree qn25
-                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "" ]
-                        , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                        ]
-                        [ mkXTextTree "interleave"
-                        ]
-                      ]
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn20 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn6 []
-                                                    [ mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                      ] []
-                                                    , mkQTagTree qn21
-                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                      ] []
-                                                    ]
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                    ] []
-                  ]
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "start"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn5 []
-                  [ mkQTagTree qn17
-                    [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                    ]
-                    [ mkXTextTree "combine"
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn25
-                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "" ]
-                      , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      ]
-                      [ mkXTextTree "choice"
-                      ]
-                    , mkQTagTree qn25
-                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]
-                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "" ]
-                      , mkQAttrTree qn24 [ mkXTextTree "token" ]
-                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                      ]
-                      [ mkXTextTree "interleave"
-                      ]
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn14 []
-                [ mkQTagTree qn14 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "ns"
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  , mkQTagTree qn6 []
-                    [ mkQTagTree qn11 [] []
-                    , mkQTagTree qn5 []
-                      [ mkQTagTree qn17
-                        [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                        ]
-                        [ mkXTextTree "datatypeLibrary"
-                        ]
-                      , mkQTagTree qn7
-                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                        ] []
-                      ]
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn20 []
-                    [ mkQTagTree qn5 []
-                      [ mkQTagTree qn4 []
-                        [ mkQTagTree qn12 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                              ] []
-                            , mkQTagTree qn19
-                              [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                              ] []
-                            ]
-                          ]
-                        ]
-                      , mkQTagTree qn23 [] []
-                      ]
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn6 []
-                            [ mkQTagTree qn6 []
-                              [ mkQTagTree qn6 []
-                                [ mkQTagTree qn6 []
-                                  [ mkQTagTree qn6 []
-                                    [ mkQTagTree qn6 []
-                                      [ mkQTagTree qn6 []
-                                        [ mkQTagTree qn6 []
-                                          [ mkQTagTree qn6 []
-                                            [ mkQTagTree qn6 []
-                                              [ mkQTagTree qn6 []
-                                                [ mkQTagTree qn6 []
-                                                  [ mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "25" ]
-                                                    ] []
-                                                  , mkQTagTree qn21
-                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]
-                                                    ] []
-                                                  ]
-                                                , mkQTagTree qn21
-                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]
-                                                  ] []
-                                                ]
-                                              , mkQTagTree qn21
-                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]
-                                                ] []
-                                              ]
-                                            , mkQTagTree qn21
-                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]
-                                              ] []
-                                            ]
-                                          , mkQTagTree qn21
-                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]
-                                            ] []
-                                          ]
-                                        , mkQTagTree qn21
-                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]
-                                          ] []
-                                        ]
-                                      , mkQTagTree qn21
-                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]
-                                        ] []
-                                      ]
-                                    , mkQTagTree qn21
-                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]
-                                      ] []
-                                    ]
-                                  , mkQTagTree qn21
-                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]
-                                    ] []
-                                  ]
-                                , mkQTagTree qn21
-                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]
-                                  ] []
-                                ]
-                              , mkQTagTree qn21
-                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]
-                                ] []
-                              ]
-                            , mkQTagTree qn21
-                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]
-                              ] []
-                            ]
-                          , mkQTagTree qn21
-                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]
-                            ] []
-                          ]
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "40" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]
-                      ] []
-                    ]
-                  , mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]
-                    ] []
-                  ]
-                , mkQTagTree qn21
-                  [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-                  ] []
-                ]
-              ]
-            ]
-          ]
-        ]
-      , mkQTagTree qn9
-        [ mkQAttrTree qn16 [ mkXTextTree "14" ]
-        ]
-        [ mkQTagTree qn10 []
-          [ mkQTagTree qn17
-            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-            ]
-            [ mkXTextTree "grammar"
-            ]
-          , mkQTagTree qn14 []
-            [ mkQTagTree qn14 []
-              [ mkQTagTree qn14 []
-                [ mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "ns"
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                , mkQTagTree qn6 []
-                  [ mkQTagTree qn11 [] []
-                  , mkQTagTree qn5 []
-                    [ mkQTagTree qn17
-                      [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                      ]
-                      [ mkXTextTree "datatypeLibrary"
-                      ]
-                    , mkQTagTree qn7
-                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]
-                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]
-                      ] []
-                    ]
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn5 []
-                    [ mkQTagTree qn4 []
-                      [ mkQTagTree qn12 []
-                        [ mkQTagTree qn6 []
-                          [ mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]
-                            ] []
-                          , mkQTagTree qn19
-                            [ mkQAttrTree qn18 [ mkXTextTree "" ]
-                            ] []
-                          ]
-                        ]
-                      ]
-                    , mkQTagTree qn23 [] []
-                    ]
-                  ]
-                ]
-              ]
-            , mkQTagTree qn15 []
-              [ mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn21
-                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]
-                    ] []
-                  ]
-                ]
-              , mkQTagTree qn6 []
-                [ mkQTagTree qn11 [] []
-                , mkQTagTree qn20 []
-                  [ mkQTagTree qn6 []
-                    [ mkQTagTree qn6 []
-                      [ mkQTagTree qn6 []
-                        [ mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]
-                          ] []
-                        , mkQTagTree qn21
-                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]
-                          ] []
-                        ]
-                      , mkQTagTree qn21
-                        [ mkQAttrTree qn16 [ mkXTextTree "23" ]
-                        ] []
-                      ]
-                    , mkQTagTree qn21
-                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]
+
+   Don't edit this module, it's generated by RelaxSchemaToXmlTree
+
+-}
+
+module Text.XML.HXT.RelaxNG.SchemaGrammar
+    ( relaxSchemaTree, relaxSchemaArrow )
+where
+
+import Text.XML.HXT.DOM.TypeDefs
+import Text.XML.HXT.DOM.XmlNode (mkRoot, mkElement, mkAttr, mkText)
+
+import Control.Arrow.ListArrows
+
+relaxSchemaArrow :: ArrowList a => a b XmlTree
+relaxSchemaArrow = constA relaxSchemaTree
+
+relaxSchemaTree :: XmlTree
+relaxSchemaTree =
+  let
+  ns1	= "http://relaxng.org/ns/structure/1.0"
+  qn1	= mkSNsName "RelaxContext:xml"
+  qn2	= mkSNsName "RelaxContextBaseURI"
+  qn3	= mkSNsName "RelaxContextDefault"
+  qn4	= mkNsName "anyName" ns1
+  qn5	= mkNsName "attribute" ns1
+  qn6	= mkNsName "choice" ns1
+  qn7	= mkNsName "data" ns1
+  qn8	= mkSNsName "datatypeLibrary"
+  qn9	= mkNsName "define" ns1
+  qn10	= mkNsName "element" ns1
+  qn11	= mkNsName "empty" ns1
+  qn12	= mkNsName "except" ns1
+  qn13	= mkNsName "grammar" ns1
+  qn14	= mkNsName "group" ns1
+  qn15	= mkNsName "interleave" ns1
+  qn16	= mkSNsName "name"
+  qn17	= mkNsName "name" ns1
+  qn18	= mkSNsName "ns"
+  qn19	= mkNsName "nsName" ns1
+  qn20	= mkNsName "oneOrMore" ns1
+  qn21	= mkNsName "ref" ns1
+  qn22	= mkNsName "start" ns1
+  qn23	= mkNsName "text" ns1
+  qn24	= mkSNsName "type"
+  qn25	= mkNsName "value" ns1
+  in
+  mkRoot []
+    [ mkElement qn13 []
+      [ mkElement qn22 []
+        [ mkElement qn21
+          [ mkAttr qn16 [ mkText "14" ]
+          ] []
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "44" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "externalRef"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn5 []
+                [ mkElement qn17
+                  [ mkAttr qn18 [ mkText "" ]
+                  ]
+                  [ mkText "href"
+                  ]
+                , mkElement qn7
+                  [ mkAttr qn24 [ mkText "anyURI" ]
+                  , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                  ] []
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "43" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "notAllowed"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "40" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "data"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn5 []
+                [ mkElement qn17
+                  [ mkAttr qn18 [ mkText "" ]
+                  ]
+                  [ mkText "type"
+                  ]
+                , mkElement qn7
+                  [ mkAttr qn24 [ mkText "NCName" ]
+                  , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                  ] []
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn21
+                      [ mkAttr qn16 [ mkText "41" ]
+                      ] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "42" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "42" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "except"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "41" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "param"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn5 []
+              [ mkElement qn17
+                [ mkAttr qn18 [ mkText "" ]
+                ]
+                [ mkText "name"
+                ]
+              , mkElement qn7
+                [ mkAttr qn24 [ mkText "NCName" ]
+                , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                ] []
+              ]
+            , mkElement qn23 [] []
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "39" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "value"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "type"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "NCName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn23 [] []
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "38" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "text"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "37" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "empty"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "36" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "parentRef"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn5 []
+              [ mkElement qn17
+                [ mkAttr qn18 [ mkText "" ]
+                ]
+                [ mkText "name"
+                ]
+              , mkElement qn7
+                [ mkAttr qn24 [ mkText "NCName" ]
+                , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                ] []
+              ]
+            , mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "35" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "ref"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn5 []
+              [ mkElement qn17
+                [ mkAttr qn18 [ mkText "" ]
+                ]
+                [ mkText "name"
+                ]
+              , mkElement qn7
+                [ mkAttr qn24 [ mkText "NCName" ]
+                , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                ] []
+              ]
+            , mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "34" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "mixed"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "33" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "list"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "32" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "oneOrMore"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "31" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "zeroOrMore"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "30" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "optional"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "29" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "choice"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "28" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "interleave"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "27" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "group"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "26" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "attribute"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "name"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "QName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                , mkElement qn15 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn20 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "16" ]
+                        ] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "18" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "19" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "20" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "21" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "25" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "element"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn6 []
+                [ mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "name"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "QName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                , mkElement qn15 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn20 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "16" ]
+                        ] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "18" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "19" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "20" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "21" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "24" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "include"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn5 []
+                [ mkElement qn17
+                  [ mkAttr qn18 [ mkText "" ]
+                  ]
+                  [ mkText "href"
+                  ]
+                , mkElement qn7
+                  [ mkAttr qn24 [ mkText "anyURI" ]
+                  , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                  ] []
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "11" ]
+                        ] []
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "10" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "22" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "23" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "div"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "11" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "10" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "23" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "24" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "22" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "div"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "11" ]
+                        ] []
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "10" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "22" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "21" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "choice"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn21
+                        [ mkAttr qn16 [ mkText "18" ]
+                        ] []
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "19" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "20" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "21" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "20" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "nsName"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "17" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "19" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "anyName"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "17" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "18" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "name"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn7
+              [ mkAttr qn24 [ mkText "QName" ]
+              , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+              ] []
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "17" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "except"
+            ]
+          , mkElement qn15 []
+            [ mkElement qn6 []
+              [ mkElement qn11 [] []
+              , mkElement qn20 []
+                [ mkElement qn21
+                  [ mkAttr qn16 [ mkText "16" ]
+                  ] []
+                ]
+              ]
+            , mkElement qn20 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn21
+                      [ mkAttr qn16 [ mkText "18" ]
+                      ] []
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "19" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "20" ]
+                    ] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "21" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "16" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn4 []
+            [ mkElement qn12 []
+              [ mkElement qn19
+                [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                ] []
+              ]
+            ]
+          , mkElement qn6 []
+            [ mkElement qn11 [] []
+            , mkElement qn20 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 [] []
+                    , mkElement qn23 [] []
+                    ]
+                  , mkElement qn23 [] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "0" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "0" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn4 [] []
+          , mkElement qn6 []
+            [ mkElement qn11 [] []
+            , mkElement qn20 []
+              [ mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 [] []
+                    , mkElement qn23 [] []
+                    ]
+                  , mkElement qn23 [] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "0" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "10" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "define"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "name"
+                    ]
+                  , mkElement qn7
+                    [ mkAttr qn24 [ mkText "NCName" ]
+                    , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                    ] []
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "combine"
+                      ]
+                    , mkElement qn6 []
+                      [ mkElement qn25
+                        [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                        , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
+                        , mkAttr qn8 [ mkText "" ]
+                        , mkAttr qn24 [ mkText "token" ]
+                        , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        ]
+                        [ mkText "choice"
+                        ]
+                      , mkElement qn25
+                        [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                        , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
+                        , mkAttr qn8 [ mkText "" ]
+                        , mkAttr qn24 [ mkText "token" ]
+                        , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                        ]
+                        [ mkText "interleave"
+                        ]
+                      ]
+                    ]
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn20 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn6 []
+                                                    [ mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "25" ]
+                                                      ] []
+                                                    , mkElement qn21
+                                                      [ mkAttr qn16 [ mkText "26" ]
+                                                      ] []
+                                                    ]
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "27" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "28" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "29" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "30" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "31" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "32" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "33" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "34" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "35" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "36" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "37" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "38" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "39" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "40" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "43" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "44" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "14" ]
+                    ] []
+                  ]
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "11" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "start"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn5 []
+                  [ mkElement qn17
+                    [ mkAttr qn18 [ mkText "" ]
+                    ]
+                    [ mkText "combine"
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn25
+                      [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                      , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
+                      , mkAttr qn8 [ mkText "" ]
+                      , mkAttr qn24 [ mkText "token" ]
+                      , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      ]
+                      [ mkText "choice"
+                      ]
+                    , mkElement qn25
+                      [ mkAttr qn1 [ mkText "http://www.w3.org/XML/1998/namespace" ]
+                      , mkAttr qn3 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      , mkAttr qn2 [ mkText "file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]
+                      , mkAttr qn8 [ mkText "" ]
+                      , mkAttr qn24 [ mkText "token" ]
+                      , mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                      ]
+                      [ mkText "interleave"
+                      ]
+                    ]
+                  ]
+                ]
+              , mkElement qn14 []
+                [ mkElement qn14 []
+                  [ mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "ns"
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  , mkElement qn6 []
+                    [ mkElement qn11 [] []
+                    , mkElement qn5 []
+                      [ mkElement qn17
+                        [ mkAttr qn18 [ mkText "" ]
+                        ]
+                        [ mkText "datatypeLibrary"
+                        ]
+                      , mkElement qn7
+                        [ mkAttr qn24 [ mkText "anyURI" ]
+                        , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                        ] []
+                      ]
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn20 []
+                    [ mkElement qn5 []
+                      [ mkElement qn4 []
+                        [ mkElement qn12 []
+                          [ mkElement qn6 []
+                            [ mkElement qn19
+                              [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                              ] []
+                            , mkElement qn19
+                              [ mkAttr qn18 [ mkText "" ]
+                              ] []
+                            ]
+                          ]
+                        ]
+                      , mkElement qn23 [] []
+                      ]
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn6 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn6 []
+                          [ mkElement qn6 []
+                            [ mkElement qn6 []
+                              [ mkElement qn6 []
+                                [ mkElement qn6 []
+                                  [ mkElement qn6 []
+                                    [ mkElement qn6 []
+                                      [ mkElement qn6 []
+                                        [ mkElement qn6 []
+                                          [ mkElement qn6 []
+                                            [ mkElement qn6 []
+                                              [ mkElement qn6 []
+                                                [ mkElement qn6 []
+                                                  [ mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "25" ]
+                                                    ] []
+                                                  , mkElement qn21
+                                                    [ mkAttr qn16 [ mkText "26" ]
+                                                    ] []
+                                                  ]
+                                                , mkElement qn21
+                                                  [ mkAttr qn16 [ mkText "27" ]
+                                                  ] []
+                                                ]
+                                              , mkElement qn21
+                                                [ mkAttr qn16 [ mkText "28" ]
+                                                ] []
+                                              ]
+                                            , mkElement qn21
+                                              [ mkAttr qn16 [ mkText "29" ]
+                                              ] []
+                                            ]
+                                          , mkElement qn21
+                                            [ mkAttr qn16 [ mkText "30" ]
+                                            ] []
+                                          ]
+                                        , mkElement qn21
+                                          [ mkAttr qn16 [ mkText "31" ]
+                                          ] []
+                                        ]
+                                      , mkElement qn21
+                                        [ mkAttr qn16 [ mkText "32" ]
+                                        ] []
+                                      ]
+                                    , mkElement qn21
+                                      [ mkAttr qn16 [ mkText "33" ]
+                                      ] []
+                                    ]
+                                  , mkElement qn21
+                                    [ mkAttr qn16 [ mkText "34" ]
+                                    ] []
+                                  ]
+                                , mkElement qn21
+                                  [ mkAttr qn16 [ mkText "35" ]
+                                  ] []
+                                ]
+                              , mkElement qn21
+                                [ mkAttr qn16 [ mkText "36" ]
+                                ] []
+                              ]
+                            , mkElement qn21
+                              [ mkAttr qn16 [ mkText "37" ]
+                              ] []
+                            ]
+                          , mkElement qn21
+                            [ mkAttr qn16 [ mkText "38" ]
+                            ] []
+                          ]
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "39" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "40" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "43" ]
+                      ] []
+                    ]
+                  , mkElement qn21
+                    [ mkAttr qn16 [ mkText "44" ]
+                    ] []
+                  ]
+                , mkElement qn21
+                  [ mkAttr qn16 [ mkText "14" ]
+                  ] []
+                ]
+              ]
+            ]
+          ]
+        ]
+      , mkElement qn9
+        [ mkAttr qn16 [ mkText "14" ]
+        ]
+        [ mkElement qn10 []
+          [ mkElement qn17
+            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+            ]
+            [ mkText "grammar"
+            ]
+          , mkElement qn14 []
+            [ mkElement qn14 []
+              [ mkElement qn14 []
+                [ mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "ns"
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                , mkElement qn6 []
+                  [ mkElement qn11 [] []
+                  , mkElement qn5 []
+                    [ mkElement qn17
+                      [ mkAttr qn18 [ mkText "" ]
+                      ]
+                      [ mkText "datatypeLibrary"
+                      ]
+                    , mkElement qn7
+                      [ mkAttr qn24 [ mkText "anyURI" ]
+                      , mkAttr qn8 [ mkText "http://www.w3.org/2001/XMLSchema-datatypes" ]
+                      ] []
+                    ]
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn5 []
+                    [ mkElement qn4 []
+                      [ mkElement qn12 []
+                        [ mkElement qn6 []
+                          [ mkElement qn19
+                            [ mkAttr qn18 [ mkText "http://relaxng.org/ns/structure/1.0" ]
+                            ] []
+                          , mkElement qn19
+                            [ mkAttr qn18 [ mkText "" ]
+                            ] []
+                          ]
+                        ]
+                      ]
+                    , mkElement qn23 [] []
+                    ]
+                  ]
+                ]
+              ]
+            , mkElement qn15 []
+              [ mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn21
+                    [ mkAttr qn16 [ mkText "16" ]
+                    ] []
+                  ]
+                ]
+              , mkElement qn6 []
+                [ mkElement qn11 [] []
+                , mkElement qn20 []
+                  [ mkElement qn6 []
+                    [ mkElement qn6 []
+                      [ mkElement qn6 []
+                        [ mkElement qn21
+                          [ mkAttr qn16 [ mkText "11" ]
+                          ] []
+                        , mkElement qn21
+                          [ mkAttr qn16 [ mkText "10" ]
+                          ] []
+                        ]
+                      , mkElement qn21
+                        [ mkAttr qn16 [ mkText "23" ]
+                        ] []
+                      ]
+                    , mkElement qn21
+                      [ mkAttr qn16 [ mkText "24" ]
                       ] []
                     ]
                   ]
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
@@ -26,7 +26,12 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode as XN
+    ( mkAttr
+    , mkText
+    )
+
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
@@ -37,11 +42,6 @@
 
 import Text.XML.HXT.Arrow.Edit
     ( removeWhiteSpace
-    )
-
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
-    ( mkAttr
-    , mkText
     )
 
 import Text.XML.HXT.RelaxNG.DataTypes
diff --git a/src/Text/XML/HXT/RelaxNG/Utils.hs b/src/Text/XML/HXT/RelaxNG/Utils.hs
--- a/src/Text/XML/HXT/RelaxNG/Utils.hs
+++ b/src/Text/XML/HXT/RelaxNG/Utils.hs
@@ -33,7 +33,7 @@
 
 import Text.ParserCombinators.Parsec
 
-import Text.XML.HXT.Parser.XmlParser
+import Text.XML.HXT.Parser.XmlTokenParser
     ( skipS0
     , nmtoken
     , name
diff --git a/src/Text/XML/HXT/RelaxNG/Validation.hs b/src/Text/XML/HXT/RelaxNG/Validation.hs
--- a/src/Text/XML/HXT/RelaxNG/Validation.hs
+++ b/src/Text/XML/HXT/RelaxNG/Validation.hs
@@ -30,7 +30,13 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+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.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
@@ -52,12 +58,6 @@
 import Text.XML.HXT.RelaxNG.Utils
     ( formatStringListQuot
     , compareURI
-    )
-
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
-
-import Text.XML.HXT.DOM.Unicode
-    ( isXmlSpaceChar
     )
 
 import Data.Maybe
diff --git a/src/Text/XML/HXT/RelaxNG/Validator.hs b/src/Text/XML/HXT/RelaxNG/Validator.hs
--- a/src/Text/XML/HXT/RelaxNG/Validator.hs
+++ b/src/Text/XML/HXT/RelaxNG/Validator.hs
@@ -18,7 +18,7 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 
diff --git a/src/Text/XML/HXT/Validator/AttributeValueValidation.hs b/src/Text/XML/HXT/Validator/AttributeValueValidation.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/AttributeValueValidation.hs
+++ /dev/null
@@ -1,358 +0,0 @@
--- |
--- This module provides functions for validating attributes.
-
--- The main functions are:
---
---  - Check if the attribute value meets the lexical constraints of its type
---
---  - Normalization of an attribute value
---
-
--- Special namings in source code:
---
---  - nd - XDTD node
---
---  - n  - XTag node
---
--- Version : $Id: AttributeValueValidation.hs,v 1.1 2004/09/02 19:12:02 hxml Exp $
---
-module Text.XML.HXT.Validator.AttributeValueValidation
-    ( checkAttributeValue
-    , normalizeAttributeValue
-    )
-where
-
-import Text.XML.HXT.Parser.XmlParser
-    ( parseNMToken
-    , parseName
-    )
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.Util
-
--- |
--- Checks if the attribute value meets the lexical constraints of its type.
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - returns : a function which takes an element (XTag or XDTD ATTLIST),
---                    checks if the attribute value meets the lexical constraints
---                    of its type and returns a list of errors
-
-checkAttributeValue :: XmlTrees -> XmlTree -> XmlFilter
-checkAttributeValue dtdPart attrDecl@(NTree (XDTD ATTLIST al) _) n@(NTree (XTag _ _al') _)
-    = checkValue attrType dtdPart normalizedVal attrDecl n
-      where
-      attrType      = lookup1 a_type al
-      attrValue     = valueOf (getAttrName al) n
-      normalizedVal = normalizeAttributeValue (Just attrDecl) attrValue
-
-checkAttributeValue dtdPart attrDecl@(NTree (XDTD ATTLIST al) _) n@(NTree (XDTD ATTLIST al') _)
-    = checkValue attrType dtdPart normalizedVal attrDecl n
-      where
-      attrType      = lookup1 a_type al
-      attrValue     = lookup1 a_default al'
-      normalizedVal = normalizeAttributeValue (Just attrDecl) attrValue
-
-checkAttributeValue _ nd n
-    = error ("checkAttributeValue: illegeal parameter:\n" ++ show nd ++ show n)
-
-
--- |
--- Dispatches the attibute check by the attribute type.
---
---    * 1.parameter typ :  the attribute type
---
---    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 3.parameter attrValue :  the normalized attribute value to be checked
---
---    - 4.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - returns : a functions which takes an element (XTag or XDTD ATTLIST),
---                        checks if the attribute value meets the lexical constraints
---                        of its type and returns a list of errors
-
-checkValue :: String -> XmlTrees -> String -> XmlTree -> XmlFilter
-checkValue typ dtdPart attrValue attrDecl
-	| typ == k_cdata	= none
-	| typ == k_enumeration	= checkValueEnumeration attrDecl attrValue
-	| typ == k_entity	= checkValueEntity dtdPart attrDecl attrValue
-	| typ == k_entities	= checkValueEntities dtdPart attrDecl attrValue
-	| typ == k_id		= checkValueId attrDecl attrValue
-	| typ == k_idref	= checkValueIdref attrDecl attrValue
-	| typ == k_idrefs	= checkValueIdrefs attrDecl attrValue
-	| typ == k_nmtoken	= checkValueNmtoken attrDecl attrValue
-	| typ == k_nmtokens	= checkValueNmtokens attrDecl attrValue
-	| typ == k_notation	= checkValueEnumeration attrDecl attrValue
-	| otherwise		= error ("Attribute type " ++ show typ ++ " unknown.")
-
--- |
--- Checks the value of Enumeration attribute types. (3.3.1 \/ p.27 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 2.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueEnumeration :: XmlTree -> String -> XmlFilter
-checkValueEnumeration (NTree (XDTD ATTLIST al) cs) attrValue
-    = if attrValue `elem` enumVals
-      then none
-      else err ("Attribute " ++ show (getAttrName al) ++ " for element " ++ show (getElemName al) ++
-                " must have a value from list "++ show enumVals ++ ".")
-      where
-      enumVals :: [String]
-      enumVals = map (getEnumVal) cs
-
-      getEnumVal :: XmlTree -> String
-      getEnumVal (NTree (XDTD NAME al') _) = lookup1 a_name al'
-      getEnumVal _                         = ""
-
-checkValueEnumeration n _
-    = error ("checkValueEnumeration: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Checks the value of ENTITY attribute types. (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the
---                    unparsed entity declarations
---
---    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 3.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueEntity :: XmlTrees -> XmlTree -> String -> XmlFilter
-checkValueEntity dtdPart (NTree (XDTD ATTLIST al) _) attrValue
-    = if attrValue `elem` upEntities
-      then none
-      else err ("Entity " ++ show attrValue ++ " of attribute " ++ show (getAttrName al) ++
-                " for element " ++ show (getElemName al) ++ " is not unparsed. " ++
-                "The following unparsed entities exist: " ++ show upEntities ++ ".")
-      where
-      upEntities :: [String]
-      upEntities = map (getEnumVal) (isUnparsedEntity $$ dtdPart)
-
-      getEnumVal :: XmlTree -> String
-      getEnumVal (NTree (XDTD ENTITY al') _) = lookup1 a_name al'
-      getEnumVal _                           = ""
-
-
-checkValueEntity _ n _
-    = error ("checkValueEntity: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Checks the value of ENTITIES attribute types. (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the
---                    unparsed entity declarations
---
---    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 3.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueEntities ::XmlTrees -> XmlTree -> String -> XmlFilter
-checkValueEntities dtdPart attrDecl@(NTree (XDTD ATTLIST al) _) attrValue
-    = if null valueList
-      then err ("Attribute " ++ show (getAttrName al) ++ " of element " ++
-                 show (getElemName al) ++ " must be one or more names.")
-      else cat (map (checkValueEntity dtdPart attrDecl) valueList)
-      where
-      valueList = words attrValue
-
-checkValueEntities _ n _
-    = error ("checkValueEntities: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Checks the value of NMTOKEN attribute types. (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 2.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueNmtoken :: XmlTree -> String -> XmlFilter
-checkValueNmtoken (NTree (XDTD ATTLIST al) _) attrValue
-    = checkNmtoken parseRes
-      where
-      parseRes :: XmlTrees
-      parseRes = parseNMToken "" (mkXTextTree attrValue)
-
-      checkNmtoken :: XmlTrees -> XmlFilter
-      checkNmtoken ((NTree (XError _ s) _):_)
-          = err ("Attribute value " ++ show attrValue ++ " of attribute " ++ show (getAttrName al) ++
-	         " for element " ++ show (getElemName al) ++ " must be a name token, "++ (lines s) !! 1 ++".")
-
-      checkNmtoken _ = none
-
-
-checkValueNmtoken n _
-    = error ("checkValueNmtoken: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Checks the value of NMTOKENS attribute types. (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 2.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueNmtokens :: XmlTree -> String -> XmlFilter
-checkValueNmtokens attrDecl@(NTree (XDTD ATTLIST al) _) attrValue
-    = if null valueList
-      then err ("Attribute "++ show (getAttrName al) ++" of element " ++
-                 show (getElemName al) ++ " must be one or more name tokens.")
-      else cat (map (checkValueNmtoken attrDecl) valueList)
-      where
-      valueList = words attrValue
-
-checkValueNmtokens n _
-    = error ("checkValueNmtokens: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Checks the value of ID attribute types. (3.3.1 \/ p.25 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 2.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueId :: XmlTree -> String -> XmlFilter
-checkValueId attrDecl attrValue
-    = checkForName "Attribute value" attrDecl attrValue
-
-
--- |
--- Checks the value of IDREF attribute types. (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 2.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueIdref :: XmlTree -> String -> XmlFilter
-checkValueIdref attrDecl attrValue
-    = checkForName "Attribute value" attrDecl attrValue
-
-
--- |
--- Checks the value of IDREFS attribute types. (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 2.parameter attrValue :  the normalized attribute value to be checked
-
-checkValueIdrefs :: XmlTree -> String -> XmlFilter
-checkValueIdrefs attrDecl attrValue
-    = cat (map (checkValueIdref attrDecl) (words attrValue))
-
-
-
--- -----------------------------------------------------------------------------
--- General helper functions for checking attribute values
---
-
--- |
--- Checks if the value of an attribute is a name.
---
---    * 1.parameter msg :  error message, should be "Entity" or "Attribute value"
---
---    - 2.parameter attrDecl :  the declaration of the attribute from the DTD
---
---    - 3.parameter attrValue :  the normalized attribute value to be checked
-
-checkForName ::  String -> XmlTree -> String -> XmlFilter
-checkForName msg (NTree (XDTD ATTLIST al) _) attrValue
-    = checkName parseRes
-      where
-      parseRes :: XmlTrees
-      parseRes = parseName "" (mkXTextTree attrValue)
-
-      checkName :: XmlTrees -> XmlFilter
-      checkName ((NTree (XError _ s) _):_)
-          = err (msg ++ " "++ show attrValue ++" of attribute " ++ show (getAttrName al) ++
-	    " for element "++ show (getElemName al) ++" must be a name, " ++ (lines s) !! 1 ++ ".")
-
-      checkName _ = none
-
-
-checkForName _ n _
-    = error ("checkForName: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Gets the element name from an attribute list of an XDTD ATTLIST node.
---
---    * 1.parameter tag :  the attibute list of an XDTD ATTLIST
---
---    - returns : the element name
-
-getElemName :: Attributes -> String
-getElemName = lookup1 a_name
-
-
--- |
--- Gets the attribute name from an attribute list of an XDTD ATTLIST node.
---
---    * 1.parameter tag :  the attibute list of an XDTD ATTLIST
---
---    - returns : the attribute name
-
-getAttrName :: Attributes -> String
-getAttrName = lookup1 a_value
-
-
-
--- -----------------------------------------------------------------------------
-
-
--- |
--- Normalizes an attribute value with respect to its type. (3.3.3 \/ p.29 in Spec)
---
---    * 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected
---                   is a list. If the list is empty, no declaration exists.
---
---    - 2.parameter value :  the attribute value to be normalized
---
---    - returns : the normalized value
---
-normalizeAttributeValue :: Maybe XmlTree -> String -> String
-normalizeAttributeValue (Just (NTree (XDTD ATTLIST al) _)) value
-    = normalizeAttribute attrType
-      where
-      attrType = lookup1 a_type al
-
-      normalizeAttribute :: String -> String
-      normalizeAttribute typ
-          | typ == k_cdata	= cdataNormalization value
-          | otherwise		= otherNormalization value
-
-
--- Attribute not declared in DTD, normalization as CDATA
-normalizeAttributeValue _ value
-    = cdataNormalization value
-
-
--- ------------------------------------------------------------
--- Helper functions for normalization
-
-
--- |
--- Normalization of CDATA attribute values.
--- is already done when parsing
--- during entity substituion for attribute values
-cdataNormalization :: String -> String
-cdataNormalization = id
-
-
--- | Normalization of attribute values other than CDATA.
-otherNormalization :: String -> String
-otherNormalization = reduceWSSequences . stringTrim . cdataNormalization
-
--- | Reduce whitespace sequences to a single whitespace.
-reduceWSSequences :: String -> String
-reduceWSSequences str = unwords (words str)
-
-
diff --git a/src/Text/XML/HXT/Validator/DTDValidation.hs b/src/Text/XML/HXT/Validator/DTDValidation.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/DTDValidation.hs
+++ /dev/null
@@ -1,628 +0,0 @@
--- |
--- This module provides functions for validating the DTD of XML documents
--- represented as XmlTree.
-
--- Unlike other popular XML validation tools the validation process returns
--- a list of errors instead of aborting after the first error was found.
-
-
--- Unlike validation of the document, the DTD branch is traversed four times:
---
---  - Validation of Notations
---
---  - Validation of Unparsed Entities
---
---  - Validation of Element declarations
---
---  - Validation of Attribute declarations
-
--- Special namings in source code:
---
---  - nd - XDTD node
---
--- Author : .\\artin Schmidt
--- Version : $Id: DTDValidation.hs,v 1.1 2004/09/02 19:12:02 hxml Exp $
-
-module Text.XML.HXT.Validator.DTDValidation
-    ( removeDoublicateDefs
-    , validateDTD
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.Validator.AttributeValueValidation
-
-
-
--- |
--- Validate a DTD.
---
---    - returns : a functions which takes the DTD subset of the XmlTree, checks
---                  if the DTD is valid and returns a list of errors
-
-validateDTD :: XmlFilter
-validateDTD dtdPart
-    = {-# SCC "validateNotations" #-} validateNotations dtdPart'
-      ++
-      {-# SCC "validateEntities" #-} validateEntities dtdPart' notationNames
-      ++
-      {-# SCC "validateElements" #-} validateElements dtdPart' elemNames
-      ++
-      {-# SCC "validateAttributes" #-} validateAttributes dtdPart' elemNames notationNames
-
-      where
-      dtdPart' = getChildren dtdPart
-
-      notationNames :: [String]
-      notationNames
-          = getXTextValues (isNotation .> getDTDValue a_name $$ dtdPart')
-
-      elemNames :: [String]
-      elemNames
-          = getXTextValues (isElement  .> getDTDValue a_name $$ dtdPart')
-
-
-
-
--- ------------------------------------------------------------
-
--- |
--- Returns a list of XText values.
---
---    * 1.parameter xtextList :  a list of XText nodes
---
---    - returns : the values of the XText nodes
-
-getXTextValues :: XmlTrees -> [String]
-getXTextValues
-  = concatMap showT
-  where
-    showT (NTree n _)
-	| isXTextNode n = [textOfXNode n]
-    showT _             = []
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Validation of Notations, checks if all notation names are unique.
--- Validity constraint: Unique Notation Name (4.7 \/ p.44 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - returns : a list of errors
-
-validateNotations :: XmlTrees -> XmlTrees
-validateNotations dtdPart
-    = checkForUniqueNotation notations []
-      where
-      notations = isNotation $$ dtdPart
-
-      checkForUniqueNotation :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueNotation (x@(NTree (XDTD NOTATION al) _):xs) used
-          = if name `elem` used
-	    then err ("Notation "++ show name ++ " was already specified.") x
-		 ++
-		 checkForUniqueNotation xs used
-
-	    else checkForUniqueNotation xs (name : used)
-	    where
-	    name = lookup1 a_name al
-
-      checkForUniqueNotation [] _ = []
-
-      checkForUniqueNotation nd _
-          = error ("checkForUniqueNotation: illegeal parameter:\n" ++ show nd)
-
-
--- |
--- Validation of Entities.
---
--- 1. Issues a warning if entities are declared multiple times.
---
---    Optional warning: (4.2 \/ p.35 in Spec) 
---
---
--- 2. Validates that a notation is declared for an unparsed entity.
---
---    Validity constraint: Notation Declared (4.2.2 \/ p.36 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter notationNames :  list of all notation names declared in the DTD
---
---    - returns : a list of errors
-
-validateEntities :: XmlTrees -> [String] -> XmlTrees
-validateEntities dtdPart notationNames
-    = checkForUniqueEntity entities []
-      ++
-      checkNotationDecls notationNames upEntities
-
-      where
-      entities   = isEntity $$ dtdPart
-      upEntities = isUnparsedEntity $$ dtdPart
-
-      -- Check if entities are declared multiple times
-      checkForUniqueEntity :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueEntity (x@(NTree (XDTD ENTITY al) _):xs) used
-          = if name `elem` used
-	    then warn ("Entity "++ show name ++ " was already specified. " ++
-	               "First declaration will be used.") x
-		 ++
-		 checkForUniqueEntity xs used
-
-	    else checkForUniqueEntity xs (name : used)
-	    where
-	    name = lookup1 a_name al
-
-      checkForUniqueEntity [] _ = []
-
-      checkForUniqueEntity nd _
-          = error ("checkForUniqueEntity: illegeal parameter:\n" ++ show nd)
-
-
-      -- Find unparsed entities for which no notation is specified
-      checkNotationDecls :: [String] -> XmlTrees -> XmlTrees
-      checkNotationDecls notationNames' upEntities'
-	  = concatMap (checkNotationDecl) upEntities'
-          where
-          checkNotationDecl :: XmlTree -> XmlTrees
-          checkNotationDecl n@(NTree (XDTD ENTITY al) _)
-              = if (notationName al) `elem` notationNames'
-	        then []
-                else err ("The notation " ++ show (notationName al) ++ " must be declared " ++
-	                  "when referenced in the unparsed entity declaration for " ++
-		          show (upEntityName al) ++ ".") n
-                where
-		notationName = lookup1 k_ndata
-                upEntityName = lookup1 a_name
-
-          checkNotationDecl nd
-              = error ("checkNotationDecl: illegeal parameter:\n" ++ show nd)
-
-
-
--- |
--- Validation of Element declarations.
---
--- 1. Validates that an element is not declared multiple times.
---
---    Validity constraint: Unique Element Type Declaration (3.2 \/ p.21 in Spec) 
---
---
--- 2. Validates that an element name only appears once in a mixed-content declaration.
---
---    Validity constraint: No Duplicate Types (3.2 \/ p.21 in Spec) 
---
---
--- 3. Issues a warning if an element mentioned in a content model is not declared in the
---    DTD.
---
---    Optional warning: (3.2 \/ p.21 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter elemNames :  list of all element names declared in the DTD
---
---    - returns : a list of errors
-
-
-validateElements :: XmlTrees -> [String] -> XmlTrees
-validateElements dtdPart elemNames
-    = checkForUniqueElement elements []
-      ++
-      checkMixedContents mixedContentElems
-      ++
-      checkContentModels elemNames elements
-
-      where
-      elements          = isElement $$ dtdPart
-      mixedContentElems = isMixedContentElement $$ dtdPart
-
-
-      -- Validates that an element is not declared multiple times
-      checkForUniqueElement :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueElement (x@(NTree (XDTD ELEMENT al) _):xs) used
-          = if name `elem` used
-	    then err ("Element type " ++ show name ++
-		      " must not be declared more than once.") x
-		 ++
-		 checkForUniqueElement xs used
-
-	    else checkForUniqueElement xs (name : used)
-	    where
-	    name = lookup1 a_name al
-
-      checkForUniqueElement [] _ = []
-
-      checkForUniqueElement nd _
-          = error ("checkForUniqueElement: illegeal parameter:\n" ++ show nd)
-
-
-      -- Validates that an element name only appears once in a mixed-content declaration
-      checkMixedContents elems
-          = concatMap (checkMixedContent) elems
-	  where
-          checkMixedContent (NTree (XDTD ELEMENT al) cs)
-	      = checkMC (getChildren (head cs)) []
-	      where
-	      elemName = lookup1 a_name al
-
-	      checkMC :: XmlTrees -> [String] -> XmlTrees
-	      checkMC (x@(NTree (XDTD NAME al') _):xs) used
-                  = if name `elem` used
-	            then err ("The element type " ++ show name ++
-			      " was already specified in the mixed-content model of the element declaration " ++
-		              show elemName ++ ".") x
-		         ++
-		         checkMC xs used
-
-	            else checkMC xs (name : used)
-	            where
-	            name = lookup1 a_name al'
-
-              checkMC [] _ = []
-
-              checkMC nd _
-	          = error ("checkMC: illegeal parameter:\n" ++ show nd)
-
-	  checkMixedContent nd
-	      = error ("checkMixedContent: illegeal parameter:\n" ++ show nd)
-
-
-      -- Issues a warning if an element mentioned in a content model is not
-      -- declared in the DTD.
-      checkContentModels names elems
-          = concatMap checkContentModel elems
-	  where
-          checkContentModel :: XmlFilter
-          checkContentModel (NTree (XDTD ELEMENT al) cs)
-              = validateContent (lookup1 a_type al)
-	      where
-	      elemName = lookup1 a_name al
-
-	      validateContent :: String -> XmlTrees
-	      validateContent cm
-	          | cm == v_children = checkContent (head cs)
-	          | cm == v_mixed    = checkContent (head cs)
-	          | otherwise        = []  -- no child elements to check
-
-	      checkContent :: XmlFilter
-	      checkContent n@(NTree (XDTD NAME al') _)
-	          = if childElemName `elem` names
-	            then []
-	            else warn ("The element type "++ show childElemName ++
-		               ", used in content model of element "++ show elemName ++
-			       ", is not declared.") n
-	            where
-		    childElemName = lookup1 a_name al'
-
-	      checkContent (NTree (XDTD CONTENT _) cs')
-	          = concatMap (checkContent) cs'
-
-	      checkContent nd
-	          = error ("checkContent: illegeal parameter:\n" ++ show nd)
-
-          checkContentModel nd
-              = error ("checkContentModel: illegeal parameter:\n" ++ show nd)
-
-
--- |
--- Validation of Attribute declarations.
---
--- (1) Issues a warning if an attribute is declared for an element type not itself
---    decared.
---
---    Optinal warning: (3.3 \/ p. 24 in Spec)
---
---
--- 2. Issues a warning if more than one definition is provided for the same
---    attribute of a given element type. Fist declaration is binding, later
---    definitions are ignored.
---
---    Optional warning: (3.3 \/ p.24 in Spec)
---
---
--- 3. Issues a warning if the same Nmtoken occures more than once in enumerated
---    attribute types of a single element type.
---
---    Optional warning: (3.3.1 \/ p.27 in Spec) 
---
---
--- 4. Validates that an element type has not more than one ID attribute defined.
---
---    Validity constraint: One ID per Element Type (3.3.1 \/ p.26 in Spec) 
---
---
--- 5. Validates that an element type has not more than one NOTATION attribute defined.
---
---    Validity constraint: One Notation per Element Type (3.3.1 \/ p.27 in Spec) 
---
---
--- 6. Validates that an ID attributes has the type #IMPLIED or #REQUIRED.
---
---    Validity constraint: ID Attribute Default (3.3.1 \/ p.26 in Spec) 
---
---
--- 7. Validates that all referenced notations are declared.
---
---    Validity constraint: Notation Attributes (3.3.1 \/ p.27 in Spec) 
---
---
--- 8. Validates that notations are not declared for EMPTY elements.
---
---    Validity constraint: No Notation on Empty Element (3.3.1 \/p.27 in Spec) 
---
---
--- 9. Validates that the default value matches the lexical constraints of it's type.
---
---    Validity constraint: Attribute default legal (3.3.2 \/ p.28 in Spec)
---
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter elemNames :  list of all element names declared in the DTD
---
---    - 3.parameter notationNames :  list of all notation names declared in the DTD
---
---    - returns : a list of errors
-
-validateAttributes :: XmlTrees -> [String] -> [String] -> XmlTrees
-validateAttributes dtdPart elemNames notationNames
-    = -- 1. Find attributes for which no elements are declared
-      ((checkDeclaredElements elemNames) $$ attributes)
-      ++
-      -- 2. Find attributes which are declared more than once
-      (checkForUniqueAttributeDeclaration attributes [])
-      ++
-      -- 3. Find enumerated attribute types which nmtokens are declared more than once
-      (checkEnumeratedTypes
-      `o`
-      (isEnumAttrType `orElse` isNotationAttrType) $$ attributes)
-      ++
-      -- 4. Validate that there exists only one ID attribute for an element
-      (checkForUniqueId idAttributes [])
-      ++
-      -- 5. Validate that there exists only one NOTATION attribute for an element
-      (checkForUniqueNotation notationAttributes [])
-      ++
-      -- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED
-      (checkIdKindConstraint $$ idAttributes)
-      ++
-      -- 7. Validate that all referenced notations are declared
-      ((checkNotationDeclaration notationNames) $$ notationAttributes)
-      ++
-      -- 8. Validate that notations are not declared for EMPTY elements
-      ((checkNoNotationForEmptyElement
-      	  (
-    	      getXTextValues (getDTDValue a_name $$ (isEmptyElement $$ dtdPart))
-       	  )
-        ) $$ notationAttributes)
-      ++
-      -- 9. Validate that the default value matches the lexical constraints of it's type
-      ((checkDefaultValueTypes dtdPart) $$ (isDefaultAttrKind $$ attributes))
-
-      where
-      --------------------------------------------------------------------------
-      -- helper functions
-      attributes         = isAttlist $$ dtdPart
-      idAttributes       = isIdAttrType $$ attributes
-      notationAttributes = isNotationAttrType $$ attributes
-
-
-      elemName = lookup1 a_name
-      attName  = lookup1 a_value
-
-      --------------------------------------------------------------------------
-      -- 1. Find attributes for which no elements are declared
-      checkDeclaredElements :: [String] -> XmlFilter
-      checkDeclaredElements elemNames' n@(NTree (XDTD ATTLIST al) _)
-          = if (elemName al) `elem` elemNames'
-	    then []
-	    else warn ("The element type \""++ elemName al ++ "\" used in declaration "++
-	               "of attribute \""++ attName al ++"\" is not declared.") n
-
-      checkDeclaredElements _ nd
-          = error ("checkDeclaredElements: illegeal parameter:\n" ++ show nd)
-
-      --------------------------------------------------------------------------
-      -- 2. Find attributes which are declared more than once
-      checkForUniqueAttributeDeclaration :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueAttributeDeclaration (x@(NTree (XDTD ATTLIST al) _):xs) used
-          = if name `elem` used
-	    then warn ("Attribute \""++ aname ++"\" for element type \""++
-		        ename ++"\" is already declared. First "++
-		        "declaration will be used.") x
-		 ++
-		 checkForUniqueAttributeDeclaration xs used
-
-	    else checkForUniqueAttributeDeclaration xs (name : used)
-	    where
-	    ename = elemName al
-	    aname = attName al
-	    name  = ename ++ "|" ++ aname
-
-      checkForUniqueAttributeDeclaration [] _ = []
-
-      checkForUniqueAttributeDeclaration nd _
-          = error ("checkForUniqueAttributeDeclaration: illegeal parameter:\n" ++ show nd)
-
-
-      --------------------------------------------------------------------------
-      -- 3. Find enumerated attribute types which nmtokens are declared more than once
-      checkEnumeratedTypes :: XmlFilter
-      checkEnumeratedTypes (NTree (XDTD ATTLIST al) cs)
-          = checkForUniqueType cs []
-	  where
-	  checkForUniqueType :: XmlTrees -> [String] -> XmlTrees
-          checkForUniqueType (x@(NTree (XDTD NAME al') _):xs) used
-              = if nmtoken `elem` used
-	        then warn ("Nmtoken \""++ nmtoken ++"\" should not "++
-		        "occur more than once in attribute \""++ attName al ++
-			"\" for element \""++ elemName al ++ "\".") x
-		     ++
-		     checkForUniqueType xs used
-
-	        else checkForUniqueType xs (nmtoken : used)
-	        where
-	        nmtoken = lookup1 a_name al'
-
-          checkForUniqueType [] _ = []
-
-          checkForUniqueType nd _
-              = error ("checkForUniqueType: illegeal parameter:\n" ++ show nd)
-
-      checkEnumeratedTypes nd
-          = error ("checkEnumeratedTypes: illegeal parameter:\n" ++ show nd)
-
-
-      --------------------------------------------------------------------------
-      -- 4. Validate that there exists only one ID attribute for an element
-      checkForUniqueId :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueId (x@(NTree (XDTD ATTLIST al) _):xs) used
-          = if ename `elem` used
-	    then err ("Element \""++ ename ++ "\" already has attribute of type "++
-		       "ID, another attribute \""++ attName al ++ "\" of type ID is "++
-		       "not permitted.") x
-		 ++
-		 checkForUniqueId xs used
-
-	    else checkForUniqueId xs (ename : used)
-	    where
-	    ename = elemName al
-
-      checkForUniqueId [] _ = []
-
-      checkForUniqueId nd _
-          = error ("checkForUniqueId: illegeal parameter:\n" ++ show nd)
-
-      --------------------------------------------------------------------------
-      -- 5. Validate that there exists only one NOTATION attribute for an element
-      checkForUniqueNotation :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueNotation (x@(NTree (XDTD ATTLIST al) _):xs) used
-          = if ename `elem` used
-	    then err ("Element \""++ elemName al ++ "\" already has attribute of type "++
-		       "NOTATION, another attribute \""++ attName al ++ "\" of type NOTATION "++
-		       "is not permitted.") x
-		 ++
-		 checkForUniqueNotation xs used
-
-	    else checkForUniqueNotation xs (ename : used)
-	    where
-	    ename = elemName al
-
-      checkForUniqueNotation [] _ = []
-
-      checkForUniqueNotation nd _
-          = error ("checkForUniqueNotation: illegeal parameter:\n" ++ show nd)
-
-      --------------------------------------------------------------------------
-      -- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED
-      checkIdKindConstraint :: XmlFilter
-      checkIdKindConstraint nd@(NTree (XDTD ATTLIST al) _)
-          = if (attKind == k_implied) || (attKind == k_required)
-	    then []
-	    else err ("ID attribute \""++ attName al ++"\" must have a declared default "++
-	              "of \"#IMPLIED\" or \"REQUIRED\"") nd
-	    where
-	    attKind = lookup1 a_kind al
-
-      checkIdKindConstraint nd
-          = error ("checkIdKindConstraint: illegeal parameter:\n" ++ show nd)
-
-
-      --------------------------------------------------------------------------
-      -- 7. Validate that all referenced notations are declared
-      checkNotationDeclaration :: [String] -> XmlFilter
-      checkNotationDeclaration notations (NTree (XDTD ATTLIST al) cs)
-          = checkNotations $$ cs
-	  where
-	  checkNotations :: XmlFilter
-	  checkNotations nd@(NTree (XDTD NAME al') _)
-	      = if notation `elem` notations
-	        then []
-	        else err ("The notation \""++ notation ++"\" must be declared when "++
-		          "referenced in the notation type list for attribute \""++ attName al ++
-			  "\" of element \""++ elemName al ++"\".") nd
-                where
-	        notation = lookup1 a_name al'
-
-          checkNotations nd
-              = error ("checkNotations: illegeal parameter:\n" ++ show nd)
-
-      checkNotationDeclaration _ nd
-          = error ("checkNotationDeclaration: illegeal parameter:\n" ++ show nd)
-
-      --------------------------------------------------------------------------
-      -- 8. Validate that notations are not declared for EMPTY elements
-      checkNoNotationForEmptyElement :: [String] -> XmlFilter
-      checkNoNotationForEmptyElement emptyElems nd@(NTree (XDTD ATTLIST al) _)
-          = if (elemName al) `elem` emptyElems
-	    then err ("Attribute \""++ attName al ++"\" of type NOTATION must not be "++
-	              "declared on the element \""++ elemName al ++"\" declared EMPTY.")
-		      nd
-	    else []
-
-      checkNoNotationForEmptyElement _ nd
-          = error ("checkNoNotationForEmptyElement: illegeal parameter:\n" ++ show nd)
-
-      --------------------------------------------------------------------------
-      -- 9. Validate that default values meet the lexical constraints of the attribute types
-      checkDefaultValueTypes :: XmlTrees -> XmlFilter
-      checkDefaultValueTypes dtdPart' n@(NTree (XDTD ATTLIST _) _)
-          = checkAttributeValue dtdPart' n n
-
-      checkDefaultValueTypes _ nd
-          = error ("checkDefaultValueTypes: illegeal parameter:\n" ++ show nd)
-
-
-
--- ------------------------------------------------------------
-
--- |
--- Removes doublicate declarations from the DTD, which first declaration is
--- binding. This is the case for ATTLIST and ENTITY declarations.
---
---    - returns : A function that replaces the children of DOCTYPE nodes by a list
---               where all multiple declarations are removed.
-
-removeDoublicateDefs :: XmlFilter
-removeDoublicateDefs n@(NTree (XDTD DOCTYPE _) cs)
-    = replaceChildren (removeDoubleDefs [] cs) n
-      where
-      removeDoubleDefs :: [String] -> XmlTrees -> XmlTrees
-      removeDoubleDefs used (x@(NTree (XDTD ATTLIST al) _):xs)
-          = if elemAttr `elem` used
-            then removeDoubleDefs used xs
-            else x
-	         :
-	         removeDoubleDefs (elemAttr : used) xs
-            where
-	    elemAttr = elemName ++ "|" ++ attrName
-            attrName = lookup1 a_value al
-            elemName = lookup1 a_name al
-
-
-      removeDoubleDefs used (x@(NTree (XDTD ENTITY al) _):xs)
-          = if name `elem` used
-            then removeDoubleDefs used xs
-            else x
-	         :
-	         removeDoubleDefs (name : used) xs
-            where
-            name = lookup1 a_name al
-
-
-      removeDoubleDefs used (x:xs)
-          = x : removeDoubleDefs used xs
-
-      removeDoubleDefs _ []
-          = []
-
-
-removeDoublicateDefs n
-    = [n]
-
diff --git a/src/Text/XML/HXT/Validator/DocTransformation.hs b/src/Text/XML/HXT/Validator/DocTransformation.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/DocTransformation.hs
+++ /dev/null
@@ -1,235 +0,0 @@
--- |
--- This module provides functions for transforming XML documents represented as
--- XmlTree with respect to its DTD.
-
--- Transforming an XML document with respect to its DTD means:
---
---  - add all attributes with default values
---
---  - normalize all attribute values
---
---  - sort all attributes in lexical order
---
-
-
--- Note: Transformation should be started after validation.
-
-
--- Before the document is validated, a lookup-table is build on the basis of
--- the DTD which maps element names to their transformation functions.
--- After this initialization phase the whole document is traversed in preorder
--- and every element is transformed by the XmlFilter from the lookup-table.
-
--- Special namings in source code:
---
---  - nd - XDTD node
---
---  - n  - XTag node
---
--- Author : .\\artin Schmidt
--- Version : $Id: DocTransformation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $
-
-module Text.XML.HXT.Validator.DocTransformation
-    ( transform
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.Validator.AttributeValueValidation
-
-import Data.Maybe
-import Data.List
-
-
-
--- |
--- Lookup-table which maps element names to their transformation functions. The
--- transformation functions are XmlFilters.
-
-type TransEnvTable	= [TransEnv]
-type TransEnv 		= (ElemName, TransFct)
-type ElemName		= String
-type TransFct		= XmlFilter
-
-
--- ------------------------------------------------------------
-
-
--- |
--- filter for transforming the document.
---
---    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree
---
---    - 2.parameter doc :  the document subset of the XmlTree
---
---    - returns : a list of errors
-
-transform :: XmlTree -> XmlTree -> XmlTrees
-transform dtdPart dom
-    = traverseTree transTable dom
-    where
-    transTable = {-# SCC "buildAllTransFcts" #-} buildAllTransformationFunctions dtdPart
-
-
-
--- |
--- Traverse the XmlTree in preorder.
---
---    * 1.parameter transEnv :  lookup-table which maps element names to their transformation functions
---
---    - returns : the whole transformed document
-
-traverseTree :: TransEnvTable -> XmlFilter
-traverseTree transEnv n@(NTree (XTag name _) cs)
-    = replaceChildren (concatMap (traverseTree transEnv) cs) (head (transFct n))
-      where
-      transFct = case (lookup (qualifiedName name) transEnv) of
-          Nothing -> this   -- element not in DTD, can't be transformed
-	  Just f  -> f
-
-traverseTree _ n = [n]
-
-
--- |
--- Build all transformation functions.
---
---    * 1.parameter dtdPart :  the DTD subset, root node should be of type @DOCTYPE@
---
---    - returns : lookup-table which maps element names to their transformation functions
-
-buildAllTransformationFunctions :: XmlTree -> TransEnvTable
-buildAllTransformationFunctions dtdPart
-    = buildTransRoot
-      :
-      -- construct the list of filters
-      map (buildTransformationFunctions dtdNodes) (isElement $$ dtdNodes)
-      where
-      dtdNodes = getChildren dtdPart
-
-
--- |
--- Build a transformation function for the document root. By root @\/@
--- is meant, which is the topmost dummy created by the parser. This function is only a
--- dummy, too.
---
---    * returns : entry for the lookup-table
-
-buildTransRoot :: TransEnv
-buildTransRoot = (t_root, this)
-
-
-
--- |
--- Build transformation functions for an element.
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    * 1.parameter nd :  element declaration for which the transformation functions are
---                    created
---
---    - returns : entry for the lookup-table
-
-buildTransformationFunctions :: XmlTrees -> XmlTree -> TransEnv
-
-buildTransformationFunctions dtdPart n@(NTree (XDTD ELEMENT al) _)
-    = (name, transFct)
-    where
-    name = lookup1 a_name al
-    transFct = lexicographicAttributeOrder
-               `o`
-	       normalizeAttributeValues n dtdPart
-	       `o`
-	       setDefaultAttributeValues n dtdPart
-
-buildTransformationFunctions _ n
-    = error ("buildTransformationFunctions: illegeal parameter:\n" ++ show n)
-
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Sort the attributes of an element in lexicographic order.
---
---    * returns : a function which takes an element (XTag), sorts its
---                  attributes in lexicographic order and returns the changed element
-
-lexicographicAttributeOrder :: XmlFilter
-lexicographicAttributeOrder
-    = processAttrl sortAttrl
-      where
-      sortAttrl al
-	  = map (al !!) ixs
-	    where
-	    ns  = map nameOf al
-	    ixs = map snd . sort . zip ns $ [(0::Int)..]
-
--- |
--- Normalize attribute values.
---
---    * returns : a function which takes an element (XTag), normalizes its
---                  attribute values and returns the changed element
-
-normalizeAttributeValues :: XmlTree -> XmlTrees -> XmlFilter
-normalizeAttributeValues elemDescr@(NTree (XDTD ELEMENT _) _) dtdPart
-    = processAttr normalizeAttr
-      where
-      elemName     = valueOfDTD a_name elemDescr
-      declaredAtts = isAttlistOfElement elemName $$ dtdPart
-
-      normalizeAttr :: XmlFilter
-      normalizeAttr att
-	  = normalizeAttrValue (if null attDescr
-				then Nothing
-				else Just (head attDescr)) att
-	    where
-	    attDescr = filter (\ x -> (valueOfDTD a_value x) == nameOf att) declaredAtts
-
-      normalizeAttrValue :: Maybe XmlTree -> XmlFilter
-      normalizeAttrValue descr
-	  = modifyChildren ((modifyText (normalizeAttributeValue descr) $$) . xmlTreesToText)
-
-normalizeAttributeValues n _
-    = error ("normalizeAttributeValues: illegeal parameter:\n" ++ show n)
-
-
-
--- |
--- Set default attribute values if they are not set.
---
---    * returns : a function which takes an element (XTag), adds missing attribute
---                  defaults and returns the changed element
-
-setDefaultAttributeValues :: XmlTree -> XmlTrees -> XmlFilter
-setDefaultAttributeValues elemDescr@(NTree (XDTD ELEMENT _) _) dtdPart
-    = seqF (map setDefault defaultAtts)
-      where
-						-- select the element name from the dtd
-      elemName = valueOfDTD a_name elemDescr
-
-      defaultAtts = ( isFixedAttrKind		-- select attributes with default values
-		      `orElse`
-		      isDefaultAttrKind
-		    )
-                    $$
-		    (isAttlistOfElement elemName $$ dtdPart)
-
-      setDefault	:: XmlTree -> XmlFilter
-      setDefault attrDescr			-- add the default attributes
-	  = ( addAttr attName defaultValue	-- to tag nodes with missing attributes
-	      `whenNot`
-	      hasAttr attName
-	    )
-	    `when`
-	    isXTag
-	    where
-	    attName      = valueOfDTD a_value   attrDescr
-	    defaultValue = valueOfDTD a_default attrDescr
-
-
-setDefaultAttributeValues n _
-    = error ("setDefaultAttributeValues: illegeal parameter:\n" ++ show n)
-
-
diff --git a/src/Text/XML/HXT/Validator/DocValidation.hs b/src/Text/XML/HXT/Validator/DocValidation.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/DocValidation.hs
+++ /dev/null
@@ -1,538 +0,0 @@
--- |
--- This module provides functions for validating XML Documents represented as
--- XmlTree.
-
--- Unlike other popular XML validation tools the validation process returns
--- a list of errors instead of aborting after the first error was found.
-
-
--- Before the document is validated, a lookup-table is build on the basis of
--- the DTD which maps element names to their validation functions.
--- After this initialization phase the whole document is traversed in preorder
--- and every element is validated by the XmlFilter from the lookup-table.
-
--- Special namings in source code:
---
---  - nd - XDTD node
---
---  - n  - XTag node
---
--- Author : .\\artin Schmidt
--- Version : $Id: DocValidation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $
-
-module Text.XML.HXT.Validator.DocValidation
-    ( validateDoc
-    )
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.Validator.AttributeValueValidation
-import Text.XML.HXT.Validator.XmlRE
-
-import Data.Maybe
-
--- |
--- Lookup-table which maps element names to their validation functions. The
--- validation functions are XmlFilters.
-
-type ValiEnvTable	= [ValiEnv]
-type ValiEnv 		= (ElemName, ValFct)
-type ElemName		= String
-type ValFct		= XmlFilter
-
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Validate a document.
---
---    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree
---
---    - 2.parameter doc :  the document subset of the XmlTree
---
---    - returns : a list of errors
-
-validateDoc :: XmlTree -> XmlTree -> XmlTrees
-validateDoc dtdPart doc
-    = traverseTree valTable doc
-    where
-    valTable = {-# SCC "buildAllValFcts" #-} buildAllValidationFunctions dtdPart
-
-
--- |
--- Traverse the XmlTree in preorder.
---
---    * 1.parameter valiEnv :  lookup-table which maps element names to their validation functions
---
---    - returns : list of errors
-
-traverseTree :: ValiEnvTable -> XmlFilter
-traverseTree valiEnv n@(NTree (XTag name _) cs)
-    = (valFct n) ++ concatMap (traverseTree valiEnv) cs
-      where
-      valFct :: XmlFilter
-      valFct
-          = case (lookup (qualifiedName name) valiEnv) of
-	    Nothing -> err ("Element " ++ show (qualifiedName name) ++ " not declared in DTD.")
-	    Just f  -> f
-
-traverseTree _ _ = []
-
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Build all validation functions.
---
---    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@
---
---    - returns : lookup-table which maps element names to their validation functions
-
-buildAllValidationFunctions :: XmlTree -> ValiEnvTable
-buildAllValidationFunctions dtdPart
-    = buildValidateRoot dtdPart
-      :
-      -- construct a list of validation filters for all element declarations
-      map (buildValidateFunctions dtdNodes) (isElement $$ dtdNodes)
-      where
-      dtdNodes = getChildren dtdPart
-
-
--- |
--- Build a validation function for the document root. By root node @\/@
--- is meant, which is the topmost dummy created by the parser.
---
---    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@
---
---    - returns : entry for the lookup-table
-
-buildValidateRoot :: XmlTree -> ValiEnv
-buildValidateRoot (NTree (XDTD DOCTYPE al) _)
-    = (t_root, valFct)
-      where
-      name = lookup1 a_name al
-
-      valFct :: XmlFilter
-      valFct nd@(NTree (XTag _ _) cs)
-          = if msg == ""
-            then []
-            else err ("Root Element must be " ++ show name ++ ". " ++ msg) nd
-	    where
-	    re = re_sym (name)
-	    msg = checkRE (matches re cs)
-
-      valFct n = error ("buildValidateRoot: illegeal parameter:\n" ++ show n)
-
-buildValidateRoot nd
-    = error ("buildValidateRoot: illegeal parameter:\n" ++ show nd)
-
-
--- |
--- Build validation functions for an element.
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter nd :  element declaration for which the validation functions are
---                   created
---
---    - returns : entry for the lookup-table
-
-buildValidateFunctions :: XmlTrees -> XmlTree -> ValiEnv
-
-buildValidateFunctions dtdPart nd@(NTree (XDTD ELEMENT al) _)
-    = (elemName, valFct)
-      where
-      elemName = lookup1 a_name al
-
-      valFct :: XmlFilter
-      valFct = buildContentValidation nd
-               +++
-	       buildAttributeValidation dtdPart nd
-
-buildValidateFunctions _ nd
-    = error ("buildValidateFunctions: illegeal parameter:\n" ++ show nd)
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Build validation functions for the content model of an element.
--- Validity constraint: Element Valid (3 \/ p.18 in Spec)
---
---    * 1.parameter nd :  element declaration for which the content validation functions
---                  are built
---
---    - returns : a function which takes an element (XTag), checks if its
---                  children match its content model and returns a list of errors
-
-buildContentValidation :: XmlTree -> XmlFilter
-buildContentValidation nd@(NTree (XDTD ELEMENT al) _)
-    = contentValidation attrType nd
-      where
-      attrType = lookup1 a_type al
-
-
-      -- Delegates construction of the validation function on the basis of the
-      -- content model type
-      contentValidation :: String -> XmlTree -> XmlFilter
-      contentValidation typ (NTree (XDTD ELEMENT _) cs)
-          | typ == k_pcdata   = contentValidationPcdata
-          | typ == k_empty    = contentValidationEmpty
-          | typ == k_any      = contentValidationAny
-          | typ == v_children = contentValidationChildren cs
-          | typ == v_mixed    = contentValidationMixed cs
-          | otherwise         = error ("contentValidation: unknown type: " ++ show typ)
-
-      contentValidation _ nd'
-          = error ("contentValidation: illegeal parameter:\n" ++ show nd')
-
-
-      -- Checks #PCDATA content models
-      contentValidationPcdata :: XmlFilter
-      contentValidationPcdata n@(NTree (XTag name _) cs)
-          = if msg == ""
-            then []
-            else err ("The content of element "++ show (qualifiedName name) ++
-	              " must match (#PCDATA). "++ msg) n
-	    where
-	    re = re_rep (re_sym k_pcdata)
-	    msg = checkRE (matches re cs)
-
-      contentValidationPcdata n
-          = error ("contentValidationPcdata: illegeal parameter:\n" ++ show n)
-
-
-      -- Checks EMPTY content models
-      contentValidationEmpty :: XmlFilter
-      contentValidationEmpty n@(NTree (XTag name _) cs)
-          = if msg == ""
-            then []
-            else err ("The content of element " ++ show (qualifiedName name) ++
-	              " must match EMPTY. " ++ msg) n
-	    where
-	    re = re_unit
-	    msg = checkRE (matches re cs)
-
-      contentValidationEmpty n
-          = error ("contentValidationEmpty: illegeal parameter:\n" ++ show n)
-
-
-      -- Checks ANY content models
-      contentValidationAny :: XmlFilter
-      contentValidationAny n@(NTree (XTag name _) cs)
-          = if msg == ""
-            then []
-            else err ("The content of element " ++ show (qualifiedName name) ++
-	              " must match ANY. " ++ msg) n
-	    where
-	    re = re_rep (re_dot)
-	    msg = checkRE (matches re cs)
-
-      contentValidationAny n
-          = error ("contentValidationAny: illegeal parameter:\n" ++ show n)
-
-
-      -- Checks "children" content models
-      contentValidationChildren :: XmlTrees -> XmlFilter
-      contentValidationChildren cm n@(NTree (XTag name _) cs)
-          = if msg == ""
-            then []
-            else err ("The content of element " ++ show (qualifiedName name) ++
-	              " must match " ++ printRE re ++ ". " ++ msg) n
-	    where
-	    re = createRE (head cm)
-	    msg = checkRE (matches re cs)
-
-      contentValidationChildren _ n
-          = error ("contentValidationChildren: illegeal parameter:\n" ++ show n)
-
-
-      -- Checks "mixed content" content models
-      contentValidationMixed :: XmlTrees -> XmlFilter
-      contentValidationMixed cm n@(NTree (XTag name _) cs)
-          = if msg == ""
-            then []
-            else err ("The content of element "++ show (qualifiedName name) ++
-	              " must match " ++ printRE re ++ ". " ++ msg) n
-	    where
-	    re = re_rep (re_alt (re_sym k_pcdata) (createRE (head cm)))
-	    msg = checkRE (matches re cs)
-
-      contentValidationMixed _ n
-          = error ("contentValidationMixed: illegeal parameter:\n" ++ show n)
-
-
-buildContentValidation nd
-    = error ("buildContentValidation: illegeal parameter:\n" ++ show nd)
-
-
-
--- |
--- Build a regular expression from the content model. The regular expression
--- is provided by the module XmlRE.
---
---    * 1.parameter nd :  node of the content model. Expected: @CONTENT@ or
---              @NAME@
---
---    - returns : regular expression of the content model
-
-createRE ::  XmlTree -> RE String
-createRE (NTree (XDTD CONTENT al) cs)
-    = processModifier modifier
-      where
-      modifier = lookup1 a_modifier al
-      kind     = lookup1 a_kind al
-
-      processModifier :: String -> RE String
-      processModifier m
-          | m == v_plus	  = re_plus (processKind kind)
-	  | m == v_star	  = re_rep  (processKind kind)
-	  | m == v_option = re_opt  (processKind kind)
-	  | m == v_null	  = processKind kind
-	  | otherwise     = error ("Unknown modifier: " ++ show m)
-
-      processKind :: String -> RE String
-      processKind k
-          | k == v_seq	  = makeSequence cs
-	  | k == v_choice = makeChoice cs
-	  | otherwise	  = error ("Unknown kind: " ++ show k)
-
-      makeSequence :: XmlTrees -> RE String
-      makeSequence []     = re_unit
-      makeSequence (x:xs) = re_seq (createRE x) (makeSequence xs)
-
-      makeChoice :: XmlTrees -> RE String
-      makeChoice []       = re_zero ""
-      makeChoice (x:xs)   = re_alt (createRE x) (makeChoice xs)
-
-createRE (NTree (XDTD NAME al) _)
-    = re_sym (lookup1 a_name al)
-
-createRE nd
-    = error ("createRE: illegeal parameter:\n" ++ show nd)
-
-
-
--- ------------------------------------------------------------
-
-
-
--- |
--- Build validation functions for the attributes of an element.
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter nd :  element declaration for which the attribute validation functions
---                  are created
---
---    - returns : a function which takes an element (XTag), checks if its
---                  attributes are valid and returns a list of errors
-
-buildAttributeValidation :: XmlTrees -> XmlTree -> XmlFilter
-buildAttributeValidation dtdPart nd =
-    noDoublicateAttributes
-    +++
-    checkNotDeclardAttributes attrDecls nd
-    +++
-    checkRequiredAttributes attrDecls nd
-    +++
-    checkFixedAttributes attrDecls nd
-    +++
-    checkValuesOfAttributes attrDecls dtdPart nd
-    where
-    attrDecls = isAttlist $$ dtdPart
-
-
--- |
--- Validate that all attributes of an element are unique.
--- Well-formdness constraint: Unique AttSpec (3.1 \/ p.19 in Spec)
---
---    - returns : a function which takes an element (XTag), checks if its
---                  attributes are unique and returns a list of errors
-
-noDoublicateAttributes :: XmlFilter
-noDoublicateAttributes n@(NTree (XTag _ _) _)
-    = doubles . reverse $ names
-      where
-      tagname = nameOf n
-      names   = map nameOf . getAttrl $ n
-
-      doubles :: [String] -> XmlTrees
-      doubles []
-	  = []
-      doubles (n1:ns)
-	  = ( if n1 `elem` ns
-	      then err ("Attribute " ++ show n1 ++ " was already specified for element " ++ show tagname ++ ".") n
-	      else []
-	    ) ++ doubles ns
-
-noDoublicateAttributes n
-    = error ("noDoublicateAttributes: illegeal parameter:\n" ++ show n)
-
-
--- |
--- Validate that all \#REQUIRED attributes are provided.
--- Validity constraint: Required Attributes (3.3.2 \/ p.28 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter nd :  element declaration which attributes have to be checked
---
---    - returns : a function which takes an element (XTag), checks if all
---                  required attributes are provided and returns a list of errors
-
-checkRequiredAttributes :: XmlTrees -> XmlTree -> XmlFilter
-checkRequiredAttributes attrDecls (NTree (XDTD ELEMENT al) _)
-    = checkRequired requiredAtts
-      where
-      elemName     = lookup1 a_name al
-      requiredAtts = isRequiredAttrKind $$ (isAttlistOfElement elemName $$ attrDecls)
-
-
-      checkRequired :: XmlTrees -> XmlFilter
-      checkRequired ((NTree (XDTD ATTLIST al') _):xs) n@(NTree (XTag name _) _)
-          = if satisfies (hasAttr attName) n
-	    then checkRequired xs n
-	    else err ("Attribute " ++ show attName ++ " must be declared for element type " ++
-	             show (qualifiedName name) ++ ".") n
-	         ++
-		 checkRequired xs n
-	    where
-	    attName = lookup1 a_value al'
-
-      checkRequired [] _ = []
-
-      checkRequired nd n
-          = error ("checkRequired: illegeal parameter:\n" ++ show nd ++ show n)
-
-
-checkRequiredAttributes _ nd
-    = error ("checkRequiredAttributes: illegeal parameter:\n" ++ show nd)
-
-
-
--- |
--- Validate that \#FIXED attributes match the default value.
--- Validity constraint: Fixed Attribute Default (3.3.2 \/ p.28 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter nd :  element declaration which attributes have to be checked
---
---    - returns : a function which takes an element (XTag), checks if all
---                  fixed attributes match the default value and returns a list of errors
-
-checkFixedAttributes :: XmlTrees -> XmlTree -> XmlFilter
-checkFixedAttributes attrDecls (NTree (XDTD ELEMENT al) _)
-    = checkFixed fixedAtts
-      where
-      elemName  = lookup1 a_name al
-      fixedAtts = isFixedAttrKind $$ (isAttlistOfElement elemName $$ attrDecls)
-
-
-      checkFixed :: XmlTrees -> XmlFilter
-      checkFixed (x@(NTree (XDTD ATTLIST al') _):xs) n@(NTree (XTag name _) _)
-          = if satisfies (hasAttr attName) n
-	    then if attValue == fixedValue
-	         then checkFixed xs n
-	         else err ("Attribute " ++ show attName ++ " of element " ++ show (qualifiedName name) ++
-		           " with value " ++ show attValue ++ " must have a value of " ++
-			   show fixedValue ++ ".") n
-	              ++
-		      checkFixed xs n
-	    else checkFixed xs n
-	    where
-	    attName    = lookup1 a_value al'
-	    fixedValue = normalizeAttributeValue (Just x) (lookup1 a_default al')
-	    attValue   = normalizeAttributeValue (Just x) (valueOf attName n)
-
-      checkFixed [] _ = []
-
-      checkFixed nd n
-          = error ("checkFixed: illegeal parameter:\n" ++ show nd ++ show n)
-
-
-checkFixedAttributes _ nd
-    = error ("checkFixedAttributes: illegeal parameter:\n" ++ show nd)
-
-
--- |
--- Validate that an element has no attributes which are not declared.
--- Validity constraint: Attribute Value Type (3.1 \/ p.19 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter nd :  element declaration which attributes have to be checked
---
---    - returns : a function which takes an element (XTag), checks if all
---                  attributes are declared and returns a list of errors
-
-checkNotDeclardAttributes :: XmlTrees -> XmlTree -> XmlFilter
-checkNotDeclardAttributes attrDecls elemDescr
-    = checkNotDeclared
-      where
-      elemName = valueOfDTD a_name elemDescr
-      decls    = isAttlistOfElement elemName $$ attrDecls
-
-      checkNotDeclared :: XmlFilter
-      checkNotDeclared n
-	  = ( isXTag
-	      `guards`
-	      cat (map (searchForDeclaredAtt elemName decls) (getAttrl n))
-	    ) n
-
-      searchForDeclaredAtt :: String -> XmlTrees -> XmlTree -> XmlFilter
-      searchForDeclaredAtt name ((NTree (XDTD ATTLIST al') _):xs) att
-          = if (lookup1 a_value al') == nameOf att
-            then none
-	    else searchForDeclaredAtt name xs att
-
-      searchForDeclaredAtt name [] (NTree (XAttr attrName) _)
-          = err ("Attribute " ++ show (qualifiedName attrName) ++ " of element " ++ show name ++ " is not declared in DTD.")
-
-      searchForDeclaredAtt _ nd a
-          = error ("searchForDeclaredAtt: illegeal paramter:\n" ++ show nd ++ show a)
-
--- |
--- Validate that the attribute value meets the lexical constraints of its type.
--- Validity constaint: Attribute Value Type (3.1 \/ p.19 in Spec)
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter nd :  element declaration which attributes have to be checked
---
---    - returns : a function which takes an element (XTag), checks if all
---                  attributes meet the lexical constraints and returns a list of errors
-
-checkValuesOfAttributes :: XmlTrees -> XmlTrees -> XmlTree -> XmlFilter
-checkValuesOfAttributes attrDecls dtdPart elemDescr
-    = checkValues
-      where
-      elemName = valueOfDTD a_name elemDescr
-      decls    = isAttlistOfElement elemName $$ attrDecls
-
-      checkValues :: XmlFilter
-      checkValues n
-          = ( isXTag
-	      `guards`
-	      cat (map (checkValue decls) (getAttrl n))
-	    ) n
-
-      checkValue :: XmlTrees -> XmlTree -> XmlFilter
-      checkValue (attrDecl@(NTree (XDTD ATTLIST al') _):xs) att
-          = if (lookup1 a_value al') == nameOf att
-            then checkAttributeValue dtdPart attrDecl
-	    else checkValue xs att
-
-      checkValue [] _
-          = none  -- undeclared attribute, reported by separate function
-
-      checkValue n _
-          = error ("checkValue: illegeal parameter:\n" ++ show n)
-
diff --git a/src/Text/XML/HXT/Validator/IdValidation.hs b/src/Text/XML/HXT/Validator/IdValidation.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/IdValidation.hs
+++ /dev/null
@@ -1,269 +0,0 @@
--- |
--- This module provides functions for checking special ID/IDREF/IDREFS constraints.
-
--- Checking special ID/IDREF/IDREFS constraints means:
---
---  - checking that all ID values are unique.
---
---  - checking that all IDREF/IDREFS values match the value of some ID attribute
---
-
-
--- ID-Validation should be started before or after validating the document.
-
-
--- First all nodes with ID attributes are collected from the document, then
--- it is validated that values of ID attributes do not occure more than once.
--- During a second iteration over the document it is validated that there exists
--- an ID attribute value for IDREF/IDREFS attribute values.
-
--- Special namings in source code:
---
---  - nd - XDTD node
---
---  - n  - XTag node
---
--- Author : .\\artin Schmidt
--- Version : $Id: IdValidation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $
-
-module Text.XML.HXT.Validator.IdValidation
-    ( validateIds
-    )
-where
-
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.Validator.AttributeValueValidation
-
-
-
--- |
--- Lookup-table which maps element names to their validation functions. The
--- validation functions are XmlFilters.
-
-type IdEnvTable		= [IdEnv]
-type IdEnv 		= (ElemName, IdFct)
-type ElemName		= String
-type IdFct		= XmlFilter
-
-
-
--- |
--- Perform the validation of the ID/IDREF/IDREFS constraints.
---
---    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree
---
---    - 2.parameter doc :  the document subset of the XmlTree
---
---    - returns : a list of errors
-
-validateIds :: XmlTree -> XmlTree -> XmlTrees
-validateIds dtdPart doc
-    = {-# SCC "checkForUniqueIds" #-} checkForUniqueIds idNodeList dtdNodes
-      ++
-      {-# SCC "checkIdReferences" #-} checkIdReferences idRefEnv doc
-      where
-      idEnv      = buildIdCollectorFcts dtdNodes
-      idRefEnv   = buildIdrefValidationFcts dtdNodes idNodeList
-      idNodeList = traverseTree idEnv doc
-      dtdNodes   = getChildren dtdPart
-
-
--- |
--- Traverse the XmlTree in preorder.
---
---    * 1.parameter idEnv :  lookup-table which maps element names to their validation functions
---
---    - returns : list of errors
-
-traverseTree :: IdEnvTable -> XmlFilter
-traverseTree idEnv n@(NTree (XTag name _) cs)
-    = (idFct n) ++ concatMap (traverseTree idEnv) cs
-      where
-      idFct :: XmlFilter
-      idFct
-          = case (lookup (qualifiedName name) idEnv) of
-	    Nothing -> none
-	    Just f  -> f
-
-traverseTree _ _ = []
-
-
-
--- |
--- Returns the value of an element's ID attribute. The attribute name has to be
--- retrieved first from the DTD.
---
---    * 1.parameter dtdPart :  list of ID attribute definitions from the DTD
---
---    - 2.parameter n :  element which ID attribute value should be returned
---
---    - returns : normalized value of the ID attribute
-
-getIdValue :: XmlTrees -> XmlTree -> String
-getIdValue (x@(NTree (XDTD ATTLIST al) _):xs) n@(NTree (XTag name _al') _)
-    = if (qualifiedName name) == elemName
-      then attrValue
-      else getIdValue xs n
-      where
-      elemName  = lookup1 a_name al
-      attrName  = lookup1 a_value al
-      attrValue = normalizeAttributeValue (Just x) (valueOf attrName n)
-
-getIdValue _ _ = ""
-
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Build collector functions which return XTag nodes with ID attributes from
--- a document.
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - returns : lookup-table which maps element names to their collector function
-
-buildIdCollectorFcts :: XmlTrees -> IdEnvTable
-buildIdCollectorFcts dtdPart
-    = map (buildIdCollectorFct) (isIdAttrType $$ dtdPart)
-      where
-      buildIdCollectorFct :: XmlTree -> IdEnv
-      buildIdCollectorFct (NTree (XDTD ATTLIST al) _)
-          = (elemName, hasAttr attrName)
-            where
-            elemName = lookup1 a_name al
-            attrName = lookup1 a_value al
-
-      buildIdCollectorFct nd
-          = error ("buildIdCollectorFct: illegeal parameter:\n" ++ show nd)
-
-
--- |
--- Build validation functions for checking if IDREF\/IDREFS values match a value
--- of some ID attributes.
---
---    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - 2.parameter idNodeList :  list of all XTag nodes with ID attributes
---
---    - returns : lookup-table which maps element names to their validation function
-
-buildIdrefValidationFcts :: XmlTrees -> XmlTrees -> IdEnvTable
-buildIdrefValidationFcts dtdPart idNodeList
-    = map buildElemValidationFct elements
-      where
-      elements    = isElement $$ dtdPart
-      idValueList = getIdValues (isIdAttrType $$ dtdPart)
-
-      getIdValues :: XmlTrees -> [String]
-      getIdValues idAttrTypes
-          = map (getIdValue idAttrTypes) idNodeList
-
-
-      buildElemValidationFct :: XmlTree -> IdEnv
-      buildElemValidationFct (NTree (XDTD ELEMENT al) _)
-          = (elemName, buildIdrefValidationFct idRefAttrTypes)
-	  where
-	  elemName = lookup1 a_name al
-	  idRefAttrTypes = isIdRefAttrType $$ (isAttlistOfElement elemName) $$ dtdPart
-
-      buildElemValidationFct nd
-          = error ("buildIdrefValidationFct: illegeal parameter:\n" ++ show nd)
-
-
-      buildIdrefValidationFct :: XmlTrees -> XmlFilter
-      buildIdrefValidationFct (nd@(NTree (XDTD ATTLIST al) _):xs)
-          = checkIdref +++ buildIdrefValidationFct xs
-            where
-            attrName = lookup1 a_value al
-	    attrType = lookup1 a_type al
-
-            checkIdref :: XmlFilter
-            checkIdref n@(NTree (XTag name _) _)
-                = if satisfies (hasAttr attrName) n
-	          then if attrType == k_idref
-		       then checkValueDeclared n attrValue
-		       else let valueList = words attrValue
-		            in if null valueList
-		               then err ("Attribute " ++ show attrName ++
-					 " of Element " ++ show (qualifiedName name) ++
-					 " must have at least one name.") n
-		               else concatMap (checkValueDeclared n) (words attrValue)
-	          else []
-		  where
-		  attrValue = normalizeAttributeValue (Just nd) (valueOf attrName n)
-
-	    checkIdref _ = []
-
-
-	    checkValueDeclared :: XmlTree -> String -> XmlTrees
-	    checkValueDeclared n@(NTree (XTag _ _) _) attrValue
-	        = if attrValue `elem` idValueList
-		  then []
-		  else err ("An Element with identifier " ++ show attrValue ++
-		            " must appear in the document.") n
-
-            checkValueDeclared _ _ = []
-
-      buildIdrefValidationFct []
-          = none
-
-      buildIdrefValidationFct nd
-          = error ("buildIdCollectorFct: illegeal parameter:\n" ++ show nd)
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Validate that all ID values are unique within a document.
--- Validity constraint: ID (3.3.1 \/p. 25 in Spec)
---
---    * 1.parameter idNodeList :  list of all XTag nodes with ID attributes
---
---    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node
---
---    - returns : a list of errors
-
-checkForUniqueIds :: XmlTrees -> XmlTrees -> XmlTrees
-checkForUniqueIds idNodeList dtdPart
-    = checkForUniqueId idNodeList []
-      where
-      idAttrTypes = isIdAttrType $$ dtdPart
-
-      checkForUniqueId :: XmlTrees -> [String] -> XmlTrees
-      checkForUniqueId (x@(NTree (XTag name _) _):xs) used
-          = if attrValue `elem` used
-	    then err ("Attribute value " ++ show attrValue ++ " of type ID for element " ++
-	              show (qualifiedName name) ++ " must be unique within the document.") x
-		 ++
-		 checkForUniqueId xs used
-
-	    else checkForUniqueId xs (attrValue : used)
-	    where
-	    attrValue = getIdValue (isAttlistOfElement (qualifiedName name) $$ idAttrTypes) x
-
-      checkForUniqueId _ _ = []
-
-
-
--- |
--- Validate that all IDREF\/IDREFS values match the value of some ID attribute.
--- Validity constraint: IDREF (3.3.1 \/ p.26 in Spec)
---
---    * 1.parameter idRefEnv :  lookup-table which maps element names to their validation function
---
---    - 2.parameter doc :  the document to validate
---
---    - returns : a list of errors
-
-checkIdReferences :: IdEnvTable -> XmlTree -> XmlTrees
-checkIdReferences idRefEnv doc
-    = traverseTree idRefEnv doc
-
-
-
-
-
diff --git a/src/Text/XML/HXT/Validator/RE.hs b/src/Text/XML/HXT/Validator/RE.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/RE.hs
+++ /dev/null
@@ -1,330 +0,0 @@
--- |
--- A module for regular expression matching based on derivatives of regular expressions.
---
--- The code was taken from Joe English (<http://www.flightlab.com/~joe/sgml/validate.html>).
--- Tested and extended by Martin Schmidt.
---
--- Further references for the algorithm:
---
--- Janusz A. Brzozowski.
---
--- 	Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. 
---
--- Mark Hopkins.
---
---	Regular Expression Package. Posted to comp.compilers, 1994.
---      Available per FTP at <ftp://iecc.com/pub/file/regex.tar.gz>.
---
--- Version : $Id: RE.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $
-
-module Text.XML.HXT.Validator.RE
-    ( RE(..)
-
-    , re_unit
-    , re_zero
-    , re_sym
-    , re_rep
-    , re_plus
-    , re_opt
-    , re_seq
-    , re_alt
-    , re_dot
-
-    , checkRE
-    , matches
-    , nullable
-    , printRE
-  )
-where
-
--- |
--- Data type for regular expressions.
-
-data RE a =
-	RE_ZERO	String		--' L(0)   = {} (empty set)
-	| RE_UNIT		--' L(1)   = { [] } (empty sequence)
-	| RE_SYM a		--' L(x)   = { [x] }
-	| RE_DOT                --' accept any single symbol
-	| RE_REP (RE a)		--' L(e*)  = { [] } `union` L(e+)
-	| RE_PLUS (RE a)	--' L(e+)  = { x ++ y | x <- L(e), y <- L(e*) }
-	| RE_OPT (RE a)		--' L(e?)  = L(e) `union` { [] }
-	| RE_SEQ (RE a) (RE a)	--' L(e,f) = { x ++ y | x <- L(e), y <- L(f) }
-	| RE_ALT (RE a) (RE a)	--' L(e|f) = L(e) `union` L(f)
-	deriving (Show, Eq)
-
-
-
--- ------------------------------------------------------------
--- Constructor functions to simplify regular expressions when constructing them.
-
--- |
--- Constructs a regular expression for an empty set.
---
---    * 1.parameter errMsg :  error message
---
---    - returns : regular expression for an empty set
-
-re_zero			:: String -> RE a
-re_zero m		= RE_ZERO m
-
-
--- |
--- Constructs a regular expression for an empty sequence.
---
---    - returns : regular expression for an empty sequence
-
-re_unit			:: RE a
-re_unit			= RE_UNIT
-
-
--- |
--- Constructs a regular expression for accepting a symbol
---
---    * 1.parameter sym :  the symbol to be accepted
---
---    - returns : regular expression for accepting a symbol
-
-re_sym			:: a -> RE a
-re_sym x		= RE_SYM x
-
-
--- |
--- Constructs a regular expression for accepting any singel symbol
---
---    - returns : regular expression for accepting any singel symbol
-
-re_dot			:: RE a
-re_dot			= RE_DOT
-
-
--- |
--- Constructs an optional repetition (*) of a regular expression
---
---    * 1.parameter re_a :  regular expression to be repeted
---
---    - returns : new regular expression
-
-re_rep			:: RE a -> RE a
-re_rep RE_UNIT		= RE_UNIT
-re_rep (RE_ZERO _)	= RE_UNIT
-re_rep e@(RE_REP _)	= RE_REP (rem_rep e)		-- remove nested reps
-re_rep e@(RE_ALT _ _)	= RE_REP (rem_rep e)		-- remove nested reps in alternatives
-re_rep e		= RE_REP e
-
--- |
--- remove redundant nested *'s in RE
--- theoretically this is unneccessary,
--- but without this simplification the runtime can increase exponentally
--- when computing deltas, e.g. for a** or (a|b*)* which is the same as (a|b)*
-
-rem_rep			:: RE a -> RE a
-rem_rep (RE_ALT e1 e2)	= RE_ALT (rem_rep e1) (rem_rep e2)
-rem_rep (RE_REP e1)	= rem_rep e1
-rem_rep e1		= e1
-
-
--- |
--- Constructs a repetition (+) of a regular expression
---
---    * 1.parameter re_a :  regular expression to be repeted
---
---    - returns : new regular expression
-
-re_plus			:: RE a -> RE a
-re_plus RE_UNIT		= RE_UNIT
-re_plus (RE_ZERO m) 	= RE_ZERO m
-re_plus e		= RE_PLUS e
-
-
--- |
--- Constructs an option (?) of a regular expression
---
---    * 1.parameter re_a :  regular expression to be optional
---
---    - returns : new regular expression
-
-re_opt			:: RE a -> RE a
-re_opt RE_UNIT		= RE_UNIT
-re_opt (RE_ZERO _)	= RE_UNIT
-re_opt e		= RE_OPT e
-
-
--- |
--- Constructs a sequence (,) of two regular expressions
---
---    * 1.parameter re_a :  first regular expression in sequence
---
---    - 2.parameter re_b :  second regular expression in sequence
---
---    - returns : new regular expression
-
-re_seq			:: RE a -> RE a -> RE a
-re_seq (RE_ZERO m) _	= RE_ZERO m
-re_seq RE_UNIT f	= f
-re_seq _ (RE_ZERO m)	= RE_ZERO m
-re_seq e RE_UNIT	= e
-re_seq e f		= RE_SEQ e f
-
-
--- |
--- Constructs an alternative (|) of two regular expressions
---
---    * 1.parameter re_a :  first regular expression of alternative
---
---    - 2.parameter re_b :  second regular expression of alternative
---
---    - returns : new regular expression
-
-re_alt			:: RE a -> RE a -> RE a
-re_alt (RE_ZERO _) f	= f
-re_alt e (RE_ZERO _)	= e
-re_alt e f		= RE_ALT e f
-
-
-
--- ------------------------------------------------------------
-
-
--- |
--- Checks if a regular expression matches the empty sequence.
---
--- nullable e == [] `in` L(e)
---
--- This check indicates if a regular expression fits to a sentence or not.
---
---    * 1.parameter re :  regular expression to be checked
---
---    - returns : true if regular expression matches the empty sequence,
---                otherwise false
-
-nullable		::  (Show a) => RE a -> Bool
-nullable (RE_ZERO _)	= False
-nullable RE_UNIT	= True
-nullable (RE_SYM _)	= False
-nullable (RE_REP _)	= True
-nullable (RE_PLUS e)	= nullable e
-nullable (RE_OPT _)	= True
-nullable (RE_SEQ e f)	= nullable e && nullable f
-nullable (RE_ALT e f)	= nullable e || nullable f
-nullable RE_DOT		= False
-
-
--- |
--- Derives a regular expression with respect to one symbol.
---
--- L(delta e x) = x \ L(e)
---
---    * 1.parameter re :  regular expression to be derived
---
---    - 2.parameter sym :  the symbol on which the regular expression is applied
---
---    - returns : the derived regular expression
-
-delta :: (Eq a, Show a) => RE a -> a -> RE a
-delta re x = case re of
-	RE_ZERO	_		-> re					-- re_zero m
-	RE_UNIT			-> re_zero ("Symbol " ++ show x ++ " unexpected.")
-	RE_SYM sym
-		| x == sym	-> re_unit
-		| otherwise	-> re_zero ("Symbol " ++ show sym ++ " expected, but symbol " ++ show x ++ " found.")
-	RE_REP  e		-> re_seq (delta e x) re		-- (re_rep e)
-	RE_PLUS e		-> re_seq (delta e x) (re_rep e)
-	RE_OPT  e		-> delta e x
-	RE_SEQ  e f
-		| nullable e	-> re_alt (re_seq (delta e x) f) (delta f x)
-		| otherwise	-> re_seq (delta e x) f
-	RE_ALT  e f		-> re_alt (delta e x) (delta f x)
-	RE_DOT			-> re_unit
-
-
--- |
--- Derives a regular expression with respect to a sentence.
---
---    * 1.parameter re :  regular expression
---
---    - 2.parameter s :  sentence to which the regular expression is applied
---
---    - returns : the derived regular expression
-
-matches :: (Eq a, Show a) => RE a -> [a] -> RE a
-matches e = foldl delta e
-
-
--- |
--- Checks if an input matched a regular expression. The function should be
--- called after matches.
---
--- Was the sentence used in @matches@ in the language of the regular expression?
--- -> matches e s == s `in` L(e)?
---
---    * 1.parameter re :  the derived regular expression
---
---    - returns : empty String if input matched the regular expression, otherwise
---               an error message is returned
-
-checkRE :: (Show a) => RE a -> String
-checkRE (RE_UNIT)	= ""
-checkRE (RE_ZERO m)	= m
-checkRE re
-	| nullable re	= ""
-	| otherwise	= "Input must match " ++ printRE re
-
-
-
--- ------------------------------------------------------------
-
-
-
--- |
--- Constructs a string representation of a regular expression.
---
---    * 1.parameter re :  a regular expression
---
---    - returns : the string representation of the regular expression
-
-printRE :: (Show a) => RE a -> String
-printRE re'
-    = "( " ++ printRE1 re' ++ " )"
-      where
-      printRE1 :: (Show a) => RE a -> String
-      printRE1 re = case re of
-	  RE_ZERO m				-> "ERROR: " ++ m
-	  RE_UNIT				-> ""
-	  RE_SYM sym				-> show sym
-	  RE_DOT				-> "."
-	  RE_REP e
-	      | isSingle e			-> printRE1 e ++ "*"
-	      | otherwise			-> "(" ++ printRE1 e ++ ")*"
-	  RE_PLUS e
-	      | isSingle e			-> printRE1 e ++ "+"
-	      | otherwise			-> "(" ++ printRE1 e ++ ")+"
-	  RE_OPT e
-	      | isSingle e			-> printRE1 e ++ "?"
-	      | otherwise			-> "(" ++ printRE1 e ++ ")?"
-	  RE_SEQ e f
-	      | isAlt e  && not (isAlt f)	-> "(" ++ printRE1 e ++ ") , " ++ printRE1 f
-	      | not (isAlt e) && isAlt f	-> printRE1 e ++ " , (" ++ printRE1 f ++ ")"
-	      | isAlt e  && isAlt f		-> "(" ++ printRE1 e ++ ") , (" ++ printRE1 f ++ ")"
-	      | otherwise			-> printRE1 e ++ " , " ++ printRE1 f
-	  RE_ALT e f
-	      | isSeq e  && not (isSeq f)	-> "(" ++ printRE1 e ++ ") | " ++ printRE1 f
-	      | not (isSeq e) && isSeq f	-> printRE1 e ++ " | (" ++ printRE1 f ++ ")"
-	      | isSeq e  && isSeq f		-> "(" ++ printRE1 e ++ ") | (" ++ printRE1 f ++ ")"
-	      | otherwise			-> printRE1 e ++ " | " ++ printRE1 f
-
-
-      isSingle :: RE a -> Bool
-      isSingle (RE_ZERO _)    = True
-      isSingle RE_UNIT        = True
-      isSingle (RE_SYM _)     = True
-      isSingle _              = False
-
-
-      isSeq :: RE a -> Bool
-      isSeq (RE_SEQ _ _)      = True
-      isSeq _                 = False
-
-
-      isAlt :: RE a -> Bool
-      isAlt (RE_ALT _ _)      = True
-      isAlt _                 = False
diff --git a/src/Text/XML/HXT/Validator/Validation.hs b/src/Text/XML/HXT/Validator/Validation.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/Validation.hs
+++ /dev/null
@@ -1,65 +0,0 @@
--- |
--- This module provides a state filter as a main function for validating XML documents.
---
--- The real validation is done with pure filters from module 'Text.XML.HXT.Validator.ValidationFilter'
---
--- Author : .\\artin Schmidt
--- Version : $Id: Validation.hs,v 1.2 2004/11/23 15:50:23 hxml Exp $
-
-module Text.XML.HXT.Validator.Validation
-    ( getValidatedDoc
-    , module Text.XML.HXT.Validator.ValidationFilter
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.XmlState
-
-import Text.XML.HXT.Validator.ValidationFilter
-
-import Text.XML.HXT.Parser.XmlOutput
-    ( traceTree
-    , traceSource
-    , traceMsg
-    )
-
--- ------------------------------------------------------------
-
--- |
--- monadic filter for validating and transforming a wellformed document.
---
--- the "main" function for validation.
---
--- the input tree must consist of a root node with a complete document and DTD.
--- Result is the single element list containing same tree but tranformed with respect to the DTD,
--- or, in case of errors, the root with an empty list of children
-
-getValidatedDoc		:: XmlStateFilter state
-getValidatedDoc
-    = traceMsg 1 "validating document"
-      .>>
-      ( ( runValidation
-	  .>>
-	  traceTree
-	  .>>
-	  traceSource
-	)
-	`whenM` (isRoot .> getChildren)
-      )
-      where
-      runValidation t
-	  = do
-	    issueError $$< res
-	    ( if null errs
-	      then ( traceMsg 1 "transforming validated document"
-		     .>>
-		     liftMf transform
-		   )
-	      else liftMf (setStatus c_err "validating document")
-	      ) t
-	    where
-	    res  = validate t
-	    errs = isXError .> neg isWarning $$ res
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Validator/ValidationFilter.hs b/src/Text/XML/HXT/Validator/ValidationFilter.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/ValidationFilter.hs
+++ /dev/null
@@ -1,126 +0,0 @@
--- |
--- This module provides functions for validating XML documents represented as
--- XmlTree.
-
--- Unlike other popular XML validation tools the validation functions return
--- a list of errors instead of aborting after the first error was found.
--- 
--- Note: The validation process has been split into validation and transformation!
---       If @validate@ did not report any errors, @transform@
---       should be called, to change the document the way a validating parser
---       is expected to do.
-
---
--- Author : .\\artin Schmidt
--- Version : $Id: ValidationFilter.hs,v 1.1 2004/11/23 15:50:23 hxml Exp $
-
-module Text.XML.HXT.Validator.ValidationFilter
-    ( getDTDSubset
-    , validate
-    , validateDTD
-    , validateDoc
-    , removeDoublicateDefs
-    , transform
-    )
-
-where
-
-import Text.XML.HXT.DOM.XmlTree
-
-import qualified Text.XML.HXT.Validator.DTDValidation as DTDValidation
-import qualified Text.XML.HXT.Validator.DocValidation as DocValidation
-import qualified Text.XML.HXT.Validator.IdValidation as IdValidation
-import qualified Text.XML.HXT.Validator.DocTransformation as DocTransformation
-
--- |
--- Main validation filter. Check if the DTD and the document are valid.
---
---
---    - returns : a function which expects a complete document as XmlTree input
---                     and returns a list of all errors found.
-
-validate 	:: XmlFilter
-validate	= validateDTD +++ validateDoc
-
--- |
--- Check if the DTD is valid.
---
---
---    - returns : a function which expects an XmlTree from the parser as input
---                     and returns a list of all errors found in the DTD.
-
-validateDTD	:: XmlFilter
-validateDTD
-    = choice [ getDTDSubset
-	       :-> DTDValidation.validateDTD
-	     , this
-               :-> err "Can't validate DTD: There is no DOCTYPE declaration in the document."
-	     ]
--- |
--- Check if the document corresponds to the given DTD.
---
---
---    - returns : a function which expects a complete document as XmlTree input
---                     and returns a list of all errors found in the content part.
-
-validateDoc	:: XmlFilter
-validateDoc t
-    = ( if null dtds
-	then err "Can't validate document: There is no DOCTYPE declaration in the document."
-	else ( DocValidation.validateDoc dtdPart
-               +++
-	       IdValidation.validateIds dtdPart
-	     )
-      ) $ t
-      where
-      dtds = getDTDSubset .> processBottomUp removeDoublicateDefs $ t
-      dtdPart  = head dtds
-
--- |
--- filter for transforming a document with respect to the given DTD.
---
--- Validating parsers
--- are expected to  normalize attribute values and add default values.
--- This function should be called after a successful validation.
---
---
---    - returns : a function which expects a complete XML document tree
---                and returns the transformed XmlTree
-
-transform	:: XmlFilter
-transform
-    = choice [ isRoot
-               :-> transformDoc
-	     , this
-	       :-> fatal "Can't transform document: No document root given"
-	     ]
-      where
-      transformDoc t
-	  | null dtds
-	      = this t
-	  | otherwise
-	      = DocTransformation.transform (head dtds) t
-	  where
-	  dtds = getDTDSubset .> processBottomUp removeDoublicateDefs $ t
-
--- |
--- Removes doublicate declarations from the DTD which first declaration is
--- binding. This is the case for ATTLIST and ENTITY declarations.
---
---
---    - returns : A function that replaces the children of DOCTYPE nodes by a list
---               where all multiple declarations are removed.
-
-removeDoublicateDefs :: XmlFilter
-removeDoublicateDefs
-    = DTDValidation.removeDoublicateDefs
-
---
--- selects the DTD part of a document
--- but only, if there is more than the internal part for the 4 predefined XML entities
-
-getDTDSubset	:: XmlFilter
-getDTDSubset
-    = getChildren .> isDoctype .> hasRootName
-      where
-      hasRootName = isOf (hasEntry a_name . attrlOfDTD)
diff --git a/src/Text/XML/HXT/Validator/XmlRE.hs b/src/Text/XML/HXT/Validator/XmlRE.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Validator/XmlRE.hs
+++ /dev/null
@@ -1,105 +0,0 @@
--- |
--- A module for regular expression matching, adapted for XML DTDs.
---
--- This module is based on the module RE.
---
--- Author .\\artin Schmidt
-
--- Version : $Id: XmlRE.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $
-
-module Text.XML.HXT.Validator.XmlRE
-    ( RE
-
-    , checkRE
-    , matches
-    , printRE
-
-    , re_unit
-    , re_zero
-    , re_sym
-    , re_rep
-    , re_plus
-    , re_opt
-    , re_seq
-    , re_alt
-    , re_dot
-    )
-where
-
--- import Debug.Trace(trace)
-
-import Text.XML.HXT.Validator.RE hiding (matches)
-
-import Text.XML.HXT.DOM.XmlTree
-
-import Text.XML.HXT.DOM.EditFilters
-    ( removeComment
-    , removeWhiteSpace
-    )
-
--- |
--- Derives a regular expression with respect to a list of elements.
---
---    * 1.parameter re :  regular expression
---
---    - 2.parameter list :  list of elements to which the regular expression is applied
---
---    - returns : the derived regular expression
-
-matches :: RE String -> XmlTrees -> RE String
-matches re list
-    = foldl delta re (removeUnimportantStuff $$ list)
-      where
-      removeUnimportantStuff :: XmlFilter
-      removeUnimportantStuff = processBottomUp (removeWhiteSpace `o` removeComment)
-      -- trace of growth of REs
-      -- delta' re el = delta (trace (("RE : " ++) . (++ "\n" ) . show $ re) re) el
-
-
--- |
--- Derives a regular expression with respect to one element.
---
--- L(delta e x) = x \ L(e)
---
---    * 1.parameter re :  regular expression to be derived
---
---    - 2.parameter el :  the element on which the regular expression is applied
---
---    - returns : the derived regular expression
-
-delta :: RE String -> XmlTree -> RE String
-delta re el
-    | not (allowed el) = re
-    | otherwise        = case re of
-        RE_ZERO m		 -> re_zero m
-        RE_UNIT			 -> re_zero (elemName el ++" unexpected.")
-        RE_SYM sym
-    	    | sym == k_pcdata	 -> let node = getNode el in
-	                            if ((isXTextNode node) || (isXCdataNode node))
-				    then re_unit
-				    else re_zero ("Character data expected, but "++ elemName el ++" found.")
-       	    | expectedNode el sym -> re_unit
-	    | otherwise           -> re_zero ("Element "++ show sym ++" expected, but "++ elemName el ++" found.")
-        RE_REP e                  -> re_seq (delta e el) (re_rep e)
-        RE_PLUS e                 -> re_seq (delta e el) (re_rep e)
-        RE_OPT e                  -> delta e el
-        RE_SEQ e f
-       	    | nullable e          -> re_alt (re_seq (delta e el) f) (delta f el)
-       	    | otherwise           -> re_seq (delta e el) f
-        RE_ALT e f                -> re_alt (delta e el) (delta f el)
-        RE_DOT                    -> re_unit
-
-    where
-    expectedNode :: XmlTree -> String -> Bool
-    expectedNode (NTree (XTag n _) _) sym = (qualifiedName n) == sym
-    expectedNode _ _			  = False
-
-    elemName :: XmlTree -> String
-    elemName (NTree (XTag n _) _)	= "element "++ show (qualifiedName n)
-    elemName _				= "character data"
-
-    allowed :: XmlTree -> Bool
-    allowed (NTree (XTag _ _) _)	= True
-    allowed (NTree (XText _) _)		= True
-    allowed (NTree (XCdata _) _)	= True
-    allowed _				= False
diff --git a/src/Text/XML/HXT/XPath/NavTree.hs b/src/Text/XML/HXT/XPath/NavTree.hs
--- a/src/Text/XML/HXT/XPath/NavTree.hs
+++ b/src/Text/XML/HXT/XPath/NavTree.hs
@@ -10,19 +10,23 @@
     )
 where
 
-import Data.NavTree
+import Data.Maybe
 
-import Text.XML.HXT.DOM.XmlTreeTypes
-    ( XNode(..) )
+import Data.NavTree
 
-import Text.XML.HXT.DOM.XmlTreeFunctions
-    ( isRootNode, namespaceOf )
+import Text.XML.HXT.DOM.Interface
+    ( XNode
+    , xmlnsNamespace
+    , namespaceUri
+    )
 
-import Text.XML.HXT.DOM.XmlKeywords
-   ( xmlnsNamespace )
+import Text.XML.HXT.DOM.XmlNode
+    ( isRoot
+    , isElem
+    , getName
+    , getAttrl
+    )
 
-import Data.Maybe
-	
 -- -----------------------------------------------------------------------------
 -- functions for representing XPath axes. All axes except the namespace-axis are supported
 
@@ -62,11 +66,14 @@
 
 
 attributeAxis :: NavTree XNode -> [NavTree XNode]
-attributeAxis t@(NT (NTree x@(XTag _ alFull) _) a _ _)
-    | not . isRootNode $ x
+attributeAxis t@(NT xt a _ _)
+    | isElem xt
+      &&
+      not (isRoot xt)
 	= foldr (\ attr -> ((NT attr (t:a) [] []):)) [] al
     | otherwise
-        = []
-    where al = filter ((/= xmlnsNamespace) . namespaceOf) alFull
+	= []
+    where
+    al = filter ((/= xmlnsNamespace) . maybe "" namespaceUri . getName) . fromMaybe [] . getAttrl $ xt
 
-attributeAxis _ = []
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/XPath/XPathDataTypes.hs b/src/Text/XML/HXT/XPath/XPathDataTypes.hs
--- a/src/Text/XML/HXT/XPath/XPathDataTypes.hs
+++ b/src/Text/XML/HXT/XPath/XPathDataTypes.hs
@@ -1,10 +1,22 @@
--- |
--- The core data types of XPath.
--- The Type NodeSet is based on the module "NavTree" which was adapted from
--- HXML (<http://www.flightlab.com/~joe/hxml/>)
---
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.XPath.XPathDataTypes
+   Copyright  : Copyright (C) 2006 Uwe Schmidt
+   License    : MIT
 
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   The core data types of XPath.
+   The Type NodeSet is based on the module "NavTree" which was adapted from
+   HXML (<http://www.flightlab.com/~joe/hxml/>)
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.XPath.XPathDataTypes
     ( module Text.XML.HXT.XPath.XPathDataTypes
     , module Text.XML.HXT.XPath.NavTree
@@ -12,7 +24,7 @@
 where
 
 import Text.XML.HXT.XPath.NavTree
-import Text.XML.HXT.DOM.XmlTree
+import Text.XML.HXT.DOM.Interface
 
 -- -----------------------------------------------------------------------------
 --
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
@@ -48,16 +48,32 @@
     , emptyNodeSet
     )
 
-import Text.XML.HXT.DOM.XmlTree
-import Text.XML.HXT.DOM.EditFilters
-    ( canonicalizeForXPath )
-
 import Text.ParserCombinators.Parsec
     ( runParser )
 
 import Data.Maybe
     ( fromJust )
 
+-- ----------------------------------------
+
+-- the DOM functions
+
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode as XN
+
+-- ----------------------------------------
+
+-- the list arrow functions
+
+import Control.Arrow			( (>>>), (>>^) )
+import Control.Arrow.ArrowList		( arrL, isA )
+import Control.Arrow.ArrowIf    	( filterA )
+import Control.Arrow.ListArrow		( runLA )
+import qualified
+       Control.Arrow.ArrowTree		as AT
+import Text.XML.HXT.Arrow.XmlArrow	( ArrowDTD, isDTD, getDTDAttrl )
+import Text.XML.HXT.Arrow.Edit		( canonicalizeForXPath )
+
 -- -----------------------------------------------------------------------------
 
 -- |
@@ -70,7 +86,7 @@
 -- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
 -- are convertet to text nodes.
 
-getXPath		:: String -> XmlFilter
+getXPath		:: String -> XmlTree -> XmlTrees
 getXPath		= getXPathWithNsEnv []
 
 -- |
@@ -79,8 +95,11 @@
 -- Works like 'getXPath' but the prefix:localpart names in the XPath expression
 -- are interpreted with respect to the given namespace environment
 
-getXPathWithNsEnv	:: NsEnv -> String -> XmlFilter
-getXPathWithNsEnv env s	= canonicalizeForXPath .> getXPathValues xPValue2XmlTrees xPathErr env s
+getXPathWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlTrees
+getXPathWithNsEnv env s	= runLA ( canonicalizeForXPath
+				  >>>
+				  arrL (getXPathValues xPValue2XmlTrees xPathErr env s)
+				)
 
 -- |
 -- Select parts of an XML tree by a XPath expression.
@@ -95,12 +114,12 @@
 -- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
 -- are convertet to text nodes.
 
-getXPathSubTrees	:: String -> XmlFilter
+getXPathSubTrees	:: String -> XmlTree -> XmlTrees
 getXPathSubTrees	= getXPathSubTreesWithNsEnv []
 
 -- | Same as 'getXPathSubTrees' but with namespace aware XPath expression
 
-getXPathSubTreesWithNsEnv	:: NsEnv -> String -> XmlFilter
+getXPathSubTreesWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlTrees
 getXPathSubTreesWithNsEnv nsEnv xpStr
     = getXPathValues xPValue2XmlTrees xPathErr nsEnv xpStr
 
@@ -128,23 +147,23 @@
     evalXP xpe
 	= cvRes xpRes
 	where
-	t'      = head . addRoot $ t			-- we need a root node for starting xpath eval
+	t'      = addRoot t				-- we need a root node for starting xpath eval
 	idAttr	= ( ("", "idAttr")			-- id attributes from DTD (if there)
 		  , idAttributesToXPathValue . getIdAttributes $ t'
 		  )
 	navTD	= ntree t'
 	xpRes	= evalExpr (idAttr:(getVarTab varEnv),[]) (1, 1, navTD) xpe (XPVNode [navTD])
 
-addRoot	:: XmlFilter
+addRoot	:: XmlTree -> XmlTree
 addRoot t
-    | null . isRoot $ t
-	= rootTag [] [this] $ t
+    | XN.isRoot t
+	= t
     | otherwise
-	= this t
+	= XN.mkRoot [] [t]
 
 xPathErr	:: String -> String -> [XmlTree]
 xPathErr xpStr parseError
-    = xerr ("Syntax error in XPath expression " ++ show xpStr ++ ": " ++ show parseError)
+    = [XN.mkError c_err ("Syntax error in XPath expression " ++ show xpStr ++ ": " ++ show parseError)]
 
 -- |
 -- The main evaluation entry point. 
@@ -504,7 +523,10 @@
       where
       isWildcardTest = localPart q == "*"
 
-nodeTest (PI s)                         = filterNodes (isPiNode s)
+nodeTest (PI n)                         = filterNodes isPiNode
+					  where
+					  isPiNode = maybe False ((== n) . qualifiedName) . XN.getPiName
+
 nodeTest (TypeTest t)                   = typeTest t
 
 nameTest	:: QName -> XNode -> Bool
@@ -533,27 +555,15 @@
     prefixMatch    = not . null . namePrefix   $ xpName
 
 wildcardTest _ _ = False
-  
-{- old stuff
 
-filterd :: String -> XNode -> Bool
-filterd uri (XTag a _) = uri == namespaceUri a
-filterd _   _          = False
-
-isOfTagNode1 :: QName -> XNode -> Bool
-isOfTagNode1 (QN _prefix local uri) (XTag (QN _prefix1 local1 uri1) _) = local == local1 && uri1 == uri -- is this the better variant?:  prefix == prefix1 && local == local1
-isOfTagNode1 _                      _                                  = False
--}
-
 -- |
 -- tests whether a node is of a special type
 --
 typeTest :: XPathNode -> XPathFilter
 typeTest XPNode         = id
-typeTest XPCommentNode  = filterNodes isXCmtNode
-typeTest XPPINode       = filterNodes isXPiNode
-typeTest XPTextNode     = filterNodes isXTextNode
-
+typeTest XPCommentNode  = filterNodes XN.isCmt
+typeTest XPPINode       = filterNodes XN.isPi
+typeTest XPTextNode     = filterNodes XN.isText
 
 -- |
 -- the filter selects the NTree part of a navigable tree and
@@ -567,8 +577,6 @@
 filterNodes _ _
     = XPVError "Call to filterNodes without a nodeset"
 
-
-
 -- |
 -- evaluates a boolean expression, the evaluation is non-strict
 boolEval :: Env -> Context -> Op -> [Expr] -> XPathFilter
@@ -624,18 +632,31 @@
 
 idAttributesToXPathValue	:: XmlTrees -> XPathValue
 idAttributesToXPathValue ts
-    = XPVString (foldr (\ n -> ( (valueOfDTD "value" n ++ " ") ++)) [] ts)
+    = XPVString (foldr (\ n -> ( (valueOfDTD a_value n ++ " ") ++)) [] ts)
 
 -- |
 -- Extracts all ID-attributes from the document type definition (DTD).
 --
 
-getIdAttributes	:: XmlFilter
+getIdAttributes	:: XmlTree -> XmlTrees
 getIdAttributes
-    = getChildren
-      .>
-      isXDTD
-      .>
-      deep (isIdAttrType)
+    = runLA $
+      AT.getChildren
+      >>>
+      isDTD
+      >>>
+      AT.deep (isIdAttrType)
 
 -- ----------------------------------------
+
+isIdAttrType		:: ArrowDTD a => a XmlTree XmlTree
+isIdAttrType		= hasDTDAttrValue a_type (== k_id)
+
+valueOfDTD		:: String -> XmlTree -> String
+valueOfDTD n		= concat . runLA ( getDTDAttrl >>^ lookup1 n )
+
+hasDTDAttrValue		:: ArrowDTD a => String -> (String -> Bool) -> a XmlTree XmlTree
+hasDTDAttrValue	an p	= filterA $
+			  getDTDAttrl >>> isA (p . lookup1 an)
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/XPath/XPathFct.hs b/src/Text/XML/HXT/XPath/XPathFct.hs
--- a/src/Text/XML/HXT/XPath/XPathFct.hs
+++ b/src/Text/XML/HXT/XPath/XPathFct.hs
@@ -1,10 +1,22 @@
--- |
--- The module contains the core-functions of the XPath function library.
--- All functions are implemented as XFct. Each XFct contains the evaluation context,
--- the variable environment and the function arguments.
---
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.XPath.XPathFct
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
 
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   The module contains the core-functions of the XPath function library.
+   All functions are implemented as XFct. Each XFct contains the evaluation context,
+   the variable environment and the function arguments.
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.XPath.XPathFct
     ( XFct
     , evalFct
@@ -25,18 +37,23 @@
 
 import Text.XML.HXT.XPath.XPathDataTypes
 import Text.XML.HXT.XPath.XPathParser
-      ( parseNumber
-      --, parseStr     Tim Walkenhorst: Whatever it does parseStr is not useful for normalize-space
-      )
+    ( parseNumber
+    )
 import Text.XML.HXT.XPath.XPathArithmetic
-      ( xPathAdd )
+    ( xPathAdd
+    )
 
-import qualified Text.XML.HXT.Arrow.XmlNode as XN
-import           Text.XML.HXT.Arrow.ReadDocument (readDocument)
-import           Text.XML.HXT.Arrow.XmlIOStateArrow (runX)
+import Control.Arrow				( (>>>), (<+>) )
+import Control.Arrow.ArrowList			( constA )
+import Control.Arrow.ArrowIf    		( ifA )
+import Control.Arrow.ArrowTree			( deep )
+import Control.Arrow.ListArrow			( LA, runLA )
+import Text.XML.HXT.Arrow.XmlArrow
+import Text.XML.HXT.Arrow.ReadDocument		(readDocument)
+import Text.XML.HXT.Arrow.XmlIOStateArrow	(runX)
 
-import Text.XML.HXT.DOM.XmlTree
-      hiding (mkNode)
+import           Text.XML.HXT.DOM.Interface
+import qualified Text.XML.HXT.DOM.XmlNode as XN
 
 import System.IO.Unsafe
     ( unsafePerformIO
@@ -49,36 +66,39 @@
     , isDigit
     , ord
     )
+
 import Data.List
     ( sortBy
     )
+
 import Data.Maybe
-      ( fromJust
-      , fromMaybe
-      )      
 
 -- -----------------------------------------------------------------------------
 
 -- added by Tim Walkenhorst to fix Pos0 vs. Float 0.0 problems...
+
 int2XPNumber :: Int -> XPNumber
 int2XPNumber 0 = Pos0
 int2XPNumber i = Float $ fromIntegral i
 
 -- |
 -- Type signature for all functions which can be used in the XPath module.
-type XFct = (Context -> Env -> [XPathValue] -> XPathValue)
 
+type XFct = (Context -> Env -> [XPathValue] -> XPathValue)
 
 -- |
 -- All functions are stored in a function table.
+
 type FctTable = [(FctName, FctTableElem)]
 
 -- |
 -- Each table entry consists of the function and the expected function arguments.
+
 type FctTableElem = (XFct, CheckArgCount)
 
 -- |
 -- Tests whether the number of current function arguments is correct
+
 type CheckArgCount = ([XPathValue] -> Bool)
 
 zero, zeroOrOne, one, two, twoOrM, twoOrThree, three :: CheckArgCount
@@ -93,6 +113,7 @@
 
 -- |
 -- The core-functions library
+
 fctTable :: FctTable
 fctTable = [
             ("last", (xlast, zero)), -- nodeset functions
@@ -139,12 +160,14 @@
 
 -- |
 -- Returns the table of keys, needed by xslt, from the environment
+
 getKeyTab :: Env -> KeyTab
 getKeyTab (_, keyTab) = keyTab
 
 
 -- |
 -- Returns the table of variables from the environment
+
 getVarTab :: Env -> VarTab
 getVarTab (varTab, _) = varTab
 
@@ -152,6 +175,7 @@
 -- |
 -- Returns the conversion function for the XPath results: string, boolean and number
 -- A nodeset can not be converted.
+
 getConvFct :: XPathValue -> Maybe XFct
 getConvFct (XPVNumber _) = Just xnumber
 getConvFct (XPVString _) = Just xstring
@@ -161,6 +185,7 @@
 
 -- |
 -- Filter for ordering a list of Nodes in document order
+
 createDocumentOrder :: XPathFilter
 createDocumentOrder (XPVNode n) = XPVNode (sortBy documentOrder n)
       where
@@ -173,6 +198,7 @@
 
 -- |
 -- Filter for ordering a list of Nodes in reverse document order
+
 createDocumentOrderReverse :: XPathFilter
 createDocumentOrderReverse (XPVNode n) = XPVNode (sortBy documentOrderReverse n)
       where
@@ -180,14 +206,11 @@
       documentOrderReverse a b = compare (documentPos b) (documentPos a)
 
 createDocumentOrderReverse e@(XPVError _) = e
-createDocumentOrderReverse _ = XPVError "Call to createDocumentOrderReverse without a nodeset"
-
-
-
-
+createDocumentOrderReverse _              = XPVError "Call to createDocumentOrderReverse without a nodeset"
 
 -- |
 -- Filter for removing identical fragment trees in a nodeset
+
 remDups :: XPathFilter
 remDups e@(XPVError _) = e
 remDups (XPVNode []) = XPVNode []
@@ -200,6 +223,7 @@
 
 -- |
 -- Check whether a node is not a part of a node list. Needed to implement matching & testing in xslt.
+
 isNotInNodeList :: NavXmlTree -> [NavXmlTree] -> Bool
 isNotInNodeList n xs' = nodeID (Just n) `notElem` map (nodeID . Just) xs'
 
@@ -219,17 +243,16 @@
 nodeID Nothing = []
 nodeID (Just t@(NT (NTree (XAttr qn) _)  _ _ _)) = IdAttr qn : nodeID (upNT t)
 nodeID (Just t@(NT node _ prev _))               
-   | isRootNode $ getNode node
-       = return $ IdRoot (getText $ getValue "rootId" node) 
+   | XN.isRoot node
+       = return $ IdRoot (getRootId node) 
    | otherwise
        = IdPos (length prev) : nodeID (upNT t)
    where
-   getText	:: XmlTrees -> String
-   getText (x:_) = fromMaybe "" (XN.getText x)
-   getText _	 = ""
+   getRootId	= concat . runLA (getAttrValue "rootId")
 
 -- |
 -- Calculates the position of a node in a tree (in document order)
+
 documentPos :: NavXmlTree -> [IdPathStep]
 documentPos tree = reverse $ nodeID (Just tree)
 
@@ -241,7 +264,7 @@
 -- argument evaluation returns an error.
 --
 --    - returns : the function value as 'XPathValue'
---
+
 evalFct :: FctName -> Env -> Context -> [XPathValue] -> XPathValue
 evalFct name env cont args
     = case (lookup name fctTable) of
@@ -263,6 +286,7 @@
 --
 --    * 1.parameter fct :  the conversion function
 --
+
 toXValue :: XFct -> Context -> Env -> [XPathValue] -> [XPathValue]
 toXValue fct c env args = [fct c env [x] | x <- args]
 
@@ -274,25 +298,29 @@
 
 -- |
 -- number last(): returns a number equal to the context size from the expression evaluation context
+
 xlast :: XFct
 xlast (_, len , _) _ _ = XPVNumber $ int2XPNumber len
 
 
 -- |
 -- number position(): returns a number equal to the context position from the expression evaluation context
+
 xposition :: XFct
 xposition (pos, _ , _) _ _ = XPVNumber $ int2XPNumber pos
 
 
 -- |
 -- number count(node-set): returns the number of nodes in the argument node-set
+
 xcount :: XFct
 xcount _ _ [XPVNode ns] = XPVNumber $ int2XPNumber $ length ns
 xcount _ _ _ = XPVError "Call to function count with wrong arguments"
 
 
 -- |
--- node-set id(object): selects elements by their unique ID 
+-- node-set id(object): selects elements by their unique ID
+
 xid :: XFct
 xid (_, _, cn) env [XPVNode ns]
     = isInId  (getIds env) (strValues ns) [cn]
@@ -307,6 +335,7 @@
 -- |
 -- returns all IDs from the variable environment as a list of strings.
 -- the IDs are stored in the variable: idAttr
+
 getIds :: Env -> [String]
 getIds env
 -- hier muss noch auf prefix getestet werden
@@ -323,61 +352,57 @@
     = [ n | n@(NT a@(NTree _ _) _ _ _) <- ns, or $ map (idInIdList a str) ids]
       where
       idInIdList :: XmlTree -> [String] -> String -> Bool
-      idInIdList al str' b = (xshow $ getValue b al) `elem` str'
+      idInIdList al str' b = (getValue b al) `elem` str'
 
 
 -- |
 -- string local-name(node-set?):
--- returns the local part of the expanded-name of the node in the argument node-set that is first in document order. 
+-- returns the local part of the expanded-name of the node in the argument node-set
+-- that is first in document order. 
 -- If the argument node-set is empty or the first node has no expanded-name, an empty string is returned. 
 -- If the argument is omitted, it defaults to a node-set with the context node as its only member
 
 --   Bugfix: name(\/) is "" not "\/"!
 
 xlocalName :: XFct
-xlocalName (_, _, cn) _ [] = XPVString (xpLocalPartOf $ subtreeNT cn)
+xlocalName (_, _, cn) _ []  = XPVString (xpLocalPartOf $ subtreeNT cn)
 xlocalName _ _ [XPVNode []] = XPVString ""
 xlocalName _ _ [XPVNode ns] = XPVString (xpLocalPartOf $ subtreeNT $ head $ ns)
-xlocalName _ _ _ = XPVError "Call to function local-name with wrong arguments"
-
-
-xpLocalPartOf :: XmlTree -> String
-xpLocalPartOf n = if isRootNode (getNode n)
-                    then ""
-                    else localPartOf n
+xlocalName _ _ _            = XPVError "Call to function local-name with wrong arguments"
 
 -- |
 -- string namespace-uri(node-set?):
--- returns the namespace URI of the expanded-name of the node in the argument node-set that is first in document order.
--- If the argument node-set is empty, the first node has no expanded-name, or the namespace URI of the expanded-name
--- is null, an empty string is returned. If the argument is omitted, it defaults to a node-set with the context node as its only member
+-- returns the namespace URI of the expanded-name of the node in the argument node-set
+-- that is first in document order.
+-- If the argument node-set is empty, the first node has no expanded-name,
+-- or the namespace URI of the expanded-name
+-- is null, an empty string is returned. If the argument is omitted,
+-- it defaults to a node-set with the context node as its only member
+
 xnamespaceUri :: XFct
-xnamespaceUri (_, _, cn) _ [] = XPVString (namespaceOf $ subtreeNT cn)
+xnamespaceUri (_, _, cn) _ []  = XPVString (xpNamespaceOf $ subtreeNT cn)
 xnamespaceUri _ _ [XPVNode []] = XPVString ""
-xnamespaceUri _ _ [XPVNode ns] = XPVString (namespaceOf $ subtreeNT $ head $ ns)
-xnamespaceUri _ _ _ = XPVError "Call to function namespace-uri with wrong arguments"
+xnamespaceUri _ _ [XPVNode ns] = XPVString (xpNamespaceOf $ subtreeNT $ head $ ns)
+xnamespaceUri _ _ _            = XPVError "Call to function namespace-uri with wrong arguments"
 
 
 -- |
 -- string name(node-set?): 
--- returns a string containing a QName representing the expanded-name of the node in the argument node-set 
--- that is first in document order. If the argument node-set is empty or the first node has no expanded-name, 
--- an empty string is returned. If the argument it omitted, it defaults to a node-set with the context node as its only member.
+-- returns a string containing a QName representing the expanded-name of the node
+-- in the argument node-set 
+-- that is first in document order. If the argument node-set is empty or the first
+-- node has no expanded-name, 
+-- an empty string is returned. If the argument it omitted, it defaults to a node-set
+-- with the context node as its only member.
 -- Tim Walkenhorst: 
 
 --   Bugfix: name(\/) is "" not "\/"!
 
 xname :: XFct
-xname (_, _, cn) _ [] =  XPVString (xpNameOf $ subtreeNT cn)
+xname (_, _, cn) _ []  =  XPVString (xpNameOf $ subtreeNT cn)
 xname _ _ [XPVNode []] = XPVString ""
 xname _ _ [XPVNode ns] = XPVString (xpNameOf $ subtreeNT $ head $ ns)
-xname _ _ _ = XPVError "Call to function name with wrong arguments"
-
-xpNameOf :: XmlTree -> String 
-xpNameOf n = if isRootNode (getNode n) 
-               then "" 
-               else nameOf n
-
+xname _ _ _            = XPVError "Call to function name with wrong arguments"
 
 -- ------------------------------------------------------------
 -- string functions
@@ -406,10 +431,12 @@
 -- |
 -- Returns the string-value of a node,
 -- the value of a namespace node is not supported
+
 stringValue :: NavXmlTree -> XPathValue
 stringValue (NT a _ _ _)
-    = XPVString $ xshow . textFilter $ a
-      where
+    = XPVString $ xpTextOf a
+
+{-
       textFilter 
         = getXCmt `orElse`
 --        getXNamespace `orElse`
@@ -420,11 +447,12 @@
 --          (isXAttr `guards` multi isXText) `orElse`          
 --          (isXText `guards` multi isXText) `orElse`
 --          getXCmt
-
+-}
 
 
 -- |
 -- string string(object?): converts an object to a string
+
 xstring :: XFct
 xstring _ _ [XPVNode []]           = XPVString ""
 xstring _ _ [XPVNode (x:_)]        = stringValue x
@@ -446,6 +474,7 @@
 
 -- |
 -- string concat(string, string, string*): returns the concatenation of its arguments
+
 xconcat :: XFct
 xconcat c env args 
     = XPVString (foldr (\ (XPVString s) -> (s ++)) "" (toXValue xstring c env args))
@@ -455,6 +484,7 @@
 -- boolean starts-with(string, string): 
 -- returns true if the first argument string starts 
 -- with the second argument string, and otherwise returns false
+
 xstartsWith :: XFct
 xstartsWith c env args
     = XPVBool ( (\ ((XPVString a):[XPVString b]) -> strStartsWith a b) (toXValue xstring c env args))
@@ -462,7 +492,9 @@
 
 -- |
 -- boolean contains(string, string):
--- returns true if the first argument string contains the second argument string, and otherwise returns false
+-- returns true if the first argument string contains the second argument string,
+-- and otherwise returns false
+
 xcontains :: XFct
 xcontains c env args
     = XPVBool ( (\ ((XPVString s):[XPVString sub]) -> getFirstPos s sub /= -1) (toXValue xstring c env args))
@@ -470,8 +502,11 @@
 
 -- |
 -- string substring-before(string, string):
--- returns the substring of the first argument string that precedes the first occurrence of the second argument string 
--- in the first argument string, or the empty string if the first argument string does not contain the second argument string
+-- returns the substring of the first argument string that precedes the first occurrence of
+-- the second argument string 
+-- in the first argument string, or the empty string if the first argument string does not
+-- contain the second argument string
+
 xsubstringBefore :: XFct
 xsubstringBefore c env args
     = xsubstringBefore' c env (toXValue xstring c env args)
@@ -486,8 +521,11 @@
 
 -- |
 -- string substring-after(string, string):
--- returns the substring of the first argument string that follows the first occurrence of the second argument string 
--- in the first argument string, or the empty string if the first argument string does not contain the second argument string
+-- returns the substring of the first argument string that follows the first occurrence of
+-- the second argument string 
+-- in the first argument string, or the empty string if the first argument string does not
+-- contain the second argument string
+
 xsubstringAfter :: XFct
 xsubstringAfter c env args
     = xsubstringAfter' c env (toXValue xstring c env args)
@@ -505,9 +543,12 @@
 
 -- |
 -- string substring(string, number, number?):
--- returns the substring of the first argument starting at the position specified in the second argument 
--- with length specified in the third argument. If the third argument is not specified, it returns the substring 
+-- returns the substring of the first argument starting at the position specified
+-- in the second argument 
+-- with length specified in the third argument. If the third argument is not specified,
+-- it returns the substring 
 -- starting at the position specified in the second argument and continuing to the end of the string.
+
 xsubstring :: XFct
 xsubstring c env (x:xs)
     = xsubstring' c env ((toXValue xstring c env [x])++(toXValue xnumber c env xs))
@@ -535,8 +576,10 @@
 
 -- |
 -- number string-length(string?):
--- returns the number of characters in the string. If the argument is omitted, it defaults to the context node 
+-- returns the number of characters in the string. If the argument is omitted,
+-- it defaults to the context node 
 -- converted to a string, in other words the string-value of the context node.
+
 xstringLength :: XFct
 xstringLength c@(_, _, cn) env []
     = XPVNumber (Float (fromIntegral $ length s))
@@ -547,10 +590,13 @@
 
 -- |
 -- string normalize-space(string?):
--- returns the argument string with whitespace normalized by stripping leading and trailing whitespace and replacing sequences 
--- of whitespace characters by a single space. If the argument is omitted, it defaults to the context node converted to a string, 
+-- returns the argument string with whitespace normalized by stripping leading
+-- and trailing whitespace and replacing sequences 
+-- of whitespace characters by a single space. If the argument is omitted,
+-- it defaults to the context node converted to a string, 
 -- in other words the string-value of the context node.
 -- The string is parsed by a function parseStr from XPathParser module. <-- No longer! Tim Walkenhorst
+
 xnormalizeSpace :: XFct
 xnormalizeSpace c@(_, _, cn) env []
     = (\(XPVString s) -> XPVString $ normStr s) (xstring c env [XPVNode [cn]])
@@ -673,7 +719,6 @@
 xsum _ _ _
     = XPVError "The value of the function sum is not a nodeset"
 
-
 -- |
 -- number floor(number): returns the largest (closest to positive infinity) number that is not greater 
 -- than the argument and that is an integer
@@ -701,7 +746,6 @@
       xceiling' [XPVNumber a] = XPVNumber a
       xceiling' _             = XPVError "Call to xceiling' without a number"
 
-
 -- |
 -- number round(number):
 -- returns the number that is closest to the argument and that is an integer. 
@@ -776,6 +820,7 @@
 -- converts its first argument to a string using the format pattern string
 -- specified by the second argument and the decimal-format named by the
 -- third argument, or the default decimal-format, if there is no third argument
+
 xformatNumber :: XFct
 xformatNumber c env (x:xs)
     = xsubstring' c env ((toXValue xstring c env [x])++(toXValue xnumber c env xs))
@@ -786,11 +831,17 @@
 -- Poor man's document(...) function. Opens exactly one document. 
 -- Does not support "fragment identifiers". "Base-URI" is always current directory.
 -- Should still be good enough for home use.
+
 xdocument :: XFct
 xdocument c e val = XPVNode $ (\(XPVString s) -> xdocument' s) $ xstring c e val
 
 xdocument' :: String -> [NavXmlTree]
-xdocument' uri = map ntree $ concatMap (addAttr "rootId" ("doc " ++ uri)) $ unsafePerformIO $ runX $ readDocument [(a_validate, v_0)] uri
+xdocument' uri = map ntree $
+		 unsafePerformIO $
+		 runX ( readDocument [(a_validate, v_0)] uri
+			>>>
+			addAttr "rootId" ("doc " ++ uri)
+		      )
 
 -- generate-id, should be fully compliant with XSLT specification.
 xgenerateId :: XFct
@@ -806,4 +857,31 @@
     where convert c = if isAscii c && (isUpper c || isLower c || isDigit c)
                       then [c]
                       else "_" ++ (show $ ord c) ++ "_"
-    
+
+-- ------------------------------------------------------------
+
+xpNamePart :: LA XmlTree String -> XmlTree -> String
+xpNamePart getNp
+    = concat
+      .
+      runLA ( ifA isRoot
+	      (constA "")
+	      getNp
+	    )
+
+xpLocalPartOf	:: XmlTree -> String
+xpLocalPartOf	= xpNamePart getLocalPart
+
+xpNamespaceOf	:: XmlTree -> String
+xpNamespaceOf	= xpNamePart getNamespaceUri
+
+xpNameOf	:: XmlTree -> String
+xpNameOf	= xpNamePart getName
+
+getValue	:: String -> XmlTree -> String
+getValue n	= concat . runLA (getAttrValue n)
+
+xpTextOf	:: XmlTree -> String
+xpTextOf	= concat . runLA (xshow ((getCmt >>> mkText) <+> deep isText))
+
+-- ------------------------------------------------------------
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
@@ -22,22 +22,22 @@
     )
 where
 
+import Data.Maybe
+
+import Text.ParserCombinators.Parsec
+
 import Text.XML.HXT.DOM.TypeDefs
 
 import Text.XML.HXT.XPath.XPathKeywords
-import Text.XML.HXT.XPath.XPathDataTypes hiding (choice)
-
-import Data.Maybe
+import Text.XML.HXT.XPath.XPathDataTypes
 
-import Text.XML.HXT.Parser.XmlParser
+import Text.XML.HXT.Parser.XmlTokenParser
     ( separator
     , systemLiteral
     , skipS0
     , ncName
     , qName
     )
-
-import Text.ParserCombinators.Parsec
 
 lookupNs		:: NsEnv -> String -> String
 lookupNs uris prefix
diff --git a/src/Text/XML/HXT/XPath/XPathToString.hs b/src/Text/XML/HXT/XPath/XPathToString.hs
--- a/src/Text/XML/HXT/XPath/XPathToString.hs
+++ b/src/Text/XML/HXT/XPath/XPathToString.hs
@@ -1,8 +1,20 @@
--- |
--- Format an expression or value in tree- or string-representation
---
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.XPath.XPathToString
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
 
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   Format an expression or value in tree- or string-representation
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.XPath.XPathToString
     ( expr2XPathTree
     , xPValue2String
@@ -13,7 +25,13 @@
     )
 where
 
-import Text.XML.HXT.DOM.XmlTree
+-- import Text.XML.HXT.DOM.XmlTree
+
+import Text.XML.HXT.DOM.Interface
+import Text.XML.HXT.DOM.XmlNode
+    ( mkText
+    , mkError
+    )
 import Text.XML.HXT.DOM.FormatXmlTree
     ( formatXmlTree )
 
@@ -34,8 +52,6 @@
 toXPathTree			:: [NavTree a] -> [NTree a]
 toXPathTree xs			= foldr (\ x -> (subtreeNT x :)) [] xs
 
-
-
 -- -----------------------------------------------------------------------------
 -- |
 -- Format a XPath-value in string representation.
@@ -65,6 +81,9 @@
 xPValue2XmlTrees (XPVString s)		= xtext s
 xPValue2XmlTrees (XPVError  s)		= xerr s
 
+xtext, xerr	:: String -> XmlTrees
+xtext = (:[]) . mkText
+xerr  = (:[]) . mkError c_err
 
 
 -- -----------------------------------------------------------------------------
@@ -113,3 +132,5 @@
 typeTest2String XPCommentNode	= "comment()"
 typeTest2String XPPINode 	= "processing-instruction()"
 typeTest2String XPTextNode 	= "text()"
+
+-- ------------------------------------------------------------
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
@@ -18,7 +18,7 @@
 
 module Text.XML.HXT.XSLT.Common
     ( module Control.Arrow
-    , module Text.XML.HXT.Arrow.XmlNode
+    , module Text.XML.HXT.DOM.XmlNode
     , module Text.XML.HXT.DOM.XmlKeywords
     , module Text.XML.HXT.DOM.TypeDefs
     , module Text.XML.HXT.DOM.FormatXmlTree
@@ -90,7 +90,7 @@
 import Text.XML.HXT.Arrow.XmlArrow
     ( xshow
     )
-import Text.XML.HXT.Arrow.XmlNode
+import Text.XML.HXT.DOM.XmlNode
     ( XmlNode (..)
     , mkElement
     , mkRoot
diff --git a/src/Text/XML/HXT/XSLT/XsltArrows.hs b/src/Text/XML/HXT/XSLT/XsltArrows.hs
--- a/src/Text/XML/HXT/XSLT/XsltArrows.hs
+++ b/src/Text/XML/HXT/XSLT/XsltArrows.hs
@@ -36,7 +36,7 @@
 
 import Control.Arrow.ListArrows
 
-import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.DOM.Interface
 import Text.XML.HXT.Arrow.XmlIOStateArrow
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.ReadDocument
diff --git a/src/hxt-package.hs b/src/hxt-package.hs
--- a/src/hxt-package.hs
+++ b/src/hxt-package.hs
@@ -1,7 +1,7 @@
 module Main
 where
 
-import Data.List ( sort )
+import Data.List
 import System.Environment
 
 part1	:: [String]
@@ -59,17 +59,18 @@
       , "import-dirs: " ++ dir ++ "/imports"
       , "library-dirs: " ++ dir
       , "hs-libraries: HShxt"
-      , "depends: base, haskell98, parsec, HTTP, HUnit, network, containers, directory, process, tagsoup"
+      , "depends: base, haskell98, parsec, HTTP, HUnit, network, containers, directory, process, tagsoup-0.6"
       ]
 
 part4b :: [String]
 part4b
     = [ " hs-source-dirs: src"
-      , " ghc-options: -Wall -fglasgow-exts"
+      , " ghc-options: -Wall"
+      , " extensions: MultiParamTypeClasses DeriveDataTypeable FunctionalDependencies FlexibleInstances"
       , ""
-      , " build-depends: base, haskell98, parsec, HTTP, HUnit, network, tagsoup"
+      , " build-depends: base, haskell98 >= 1, parsec >= 2.1 && < 3, HTTP >= 3001.0.4, HUnit >= 1.2, network >= 2.1, tagsoup >= 0.6"
       , " if flag(splitBase)"
-      , "   build-depends: base >= 3, containers, directory, process"
+      , "   build-depends: base >= 3, containers >= 0.1, directory >= 1, process >= 1"
       , " else"
       , "   build-depends: base < 3"
       ]
@@ -98,6 +99,8 @@
     where
     isCabal = cabal == "cabal"
     ml = foldr1 (\ x y -> x ++ ",\n" ++ y) . sort . map editPath
-    editPath = ("  " ++) . map slash2dot . reverse . drop 1 . dropWhile (/= '.') . reverse . drop 2
+    editPath = ("  " ++) . map slash2dot . reverse . drop 1 . dropWhile (/= '.') . reverse . removeLeadingDot
     slash2dot '/' = '.'
     slash2dot c   = c
+    removeLeadingDot ('.':'/':path)	= path
+    removeLeadingDot path		= path
